Другое SAMPFUNCS | API C++

rraggerr

проверенный какой-то
1,626
847
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Посмотреть вложение 21613

если передаю аргумент в строку, то вместо русских символов выводит знаки вопроса.
есть методы решения этой проблемы?
Используй шрифт поддерживающий русский язык, дефолтный шрифт имгуи его не поддерживает.
А если всеравно вопросы то, на мунлоадере с таким сталкивался, как решалось точно не помню, вроде что то с кодировкой
 

CyberSuslik

Участник
88
12
Например хук на RPC.
C++:
bool __stdcall incomingRPC(stRakNetHookParams *params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage)
    {
        size_t len;
        DWORD color;
        char message[256];
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(color);
        params->bitStream->Read(len);
        params->bitStream->Read(message, len);
        params->bitStream->ResetReadPointer();
        message[len] = '\0';
       
    }
    return true;
}
Да, да этот хук я подлядел в чужом коде. Интересует следующий момент. Допустим что бы просто скрыть эту строку надо написать
if (strstr(msg, "Объвление"))
return false;

А что написать если нужно вернуть эту строку но уже со своими данными "Объявление (Реклама)"
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
Да, да этот хук я подлядел в чужом коде. Интересует следующий момент. Допустим что бы просто скрыть эту строку надо написать
if (strstr(msg, "Объвление"))
return false;

А что написать если нужно вернуть эту строку но уже со своими данными "Объявление (Реклама)"
Либо так:
C++:
SF->getSAMP()->getChat()->AddChatMessage(color, "[Реклама] %s", message);
return false;
И можешь это попробовать:
C++:
char newStr[256];
sprintf_s(newStr, "[Реклама] %s", message);
size_t newLen = strlen(newStr);
params->bitStream->ResetWritePointer();
params->bitStream->IgnoreBytes(sizeof(DWORD));
params->bitStream->Write(newLen);
params->bitStream->Write(newStr, newLen);
 

Adder

Известный
22
0
Либо так:
C++:
SF->getSAMP()->getChat()->AddChatMessage(color, "[Реклама] %s", message);
return false;
И можешь это попробовать:
C++:
char newStr[256];
sprintf_s(newStr, "[Реклама] %s", message);
size_t newLen = strlen(newStr);
params->bitStream->ResetWritePointer();
params->bitStream->IgnoreBytes(sizeof(DWORD));
params->bitStream->Write(newLen);
params->bitStream->Write(newStr, newLen);
А с помощью params->bitStream->Write. Реально перезаписать сообщение, которое находится в чате уже давно? Например:
[....] Третье сообщение <- вот это сообщение
[....] Второе сообщение
[....] Первое сообщение
 

#Rin

Известный
Всефорумный модератор
1,214
1,036
А с помощью params->bitStream->Write. Реально перезаписать сообщение, которое находится в чате уже давно? Например:
[....] Третье сообщение <- вот это сообщение
[....] Второе сообщение
[....] Первое сообщение
Нет, для этого нужно в структуре чата, изменить строку, а после прорендерить чат заново.
 

Musaigen

abobusnik
Проверенный
1,585
1,309
Есть что-нибудь подобное в SF setCameraPositionUnfixed?
И как получить координаты своей камеры?
 

checkdasound

Известный
Проверенный
963
406
1. Как получить хэндл по иду?
2. Как получить ид модели скина игрока?
 

Rjx13

Известный
Проверенный
224
160
Как получить ближайший ID игрока в определенном радиуса от прицела?
 

AnWu

Guardian of Order
Всефорумный модератор
4,689
5,205
@CleanLegend SF->getSAMP()->sendClickPlayer() Что отправлять вторым параметром? int source