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

rraggerr

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

Musaigen

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

checkdasound

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

AnWu

Известный
Всефорумный модератор
4,778
5,403
@CleanLegend SF->getSAMP()->sendClickPlayer() Что отправлять вторым параметром? int source