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

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Не советую это делать для АПИ. Я пока сам не знаю, как для отдельных меню его юзать.

Вышло чет легко. Средства имгуи позволяют использовать хуевую тучу шрифтов для разных элементов. Вот тебе https://pastebin.com/ZQRK44Kf
С Апи будет работать.
 
Последнее редактирование модератором:
  • Нравится
Реакции: Perojek)0

iAmerican

Известный
Друг
614
257
в mainloop'e..
C++:
SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC);

сам каллбек...
C++:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{

   // КОД РАБОТАЕТ ТОЛЬКО ТУТ.
// То что ниже проверки , не работает вообще.
// Самое смешное что вчера буквально всё работало , сегодня перестало.
// Других плагинов нету, код не трогал , устанавливал только addon , но пробовал удалять , без разницы..

    if (params->packetId == ScriptRPCEnumeration::RPC_ScrShowDialog)
    {

// Тут уже не работает
        unsigned short DialogID;

        BYTE style, caplen, button1_len, button2_len;
        char caption[255], button1[25], button2[25], info[0x1000];
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(DialogID);
        params->bitStream->Read(style);
        params->bitStream->Read(caplen);
        params->bitStream->Read(caption, caplen);
        caption[caplen] = '\0';
        params->bitStream->Read(button1_len);
        params->bitStream->Read(button1, button1_len);
        button1[button1_len] = '\0';
        params->bitStream->Read(button2_len);
        params->bitStream->Read(button2, button2_len);
        button2[button2_len] = '\0';
        SF->getRakNet()->DecodeString(info, 0x1000, params->bitStream);

        std::string str = info, temp = caption;
        std::smatch res, stars;
        stChatInfo *chat = SF->getSAMP()->getChat();
.....
.....
....
.....
}

Сделал всё , сломал addon что то , помогло только переустановка GTA полностью.
Оставлю тут. Может столкнется кто нибудь.
 
Последнее редактирование:

tar1k

Новичок
5
1
C++:
void CALLBACK cmd(std::string param)
{
   int id;
   uint16_t pID, t_pID; uint8_t type, wID;
   float fOrigin[3], fTarget[3], fCenter[3];

   sscanf(param.c_str(), "%d", &id);
   BitStream bs;
   pID = id;
   fCenter[0] = 0.122;
   fCenter[1] = 0.133;
   fCenter[2] = 0.535;
   stOnFootData pos = SF->getSAMP()->getPlayers()->pRemotePlayer[id]->pPlayerData->onFootData;
   fOrigin[0] = pos.fPosition[0];
   fOrigin[1] = pos.fPosition[1];
   fOrigin[2] = pos.fPosition[2];
   fTarget[0] = PEDSELF->GetPosition()->fX;
   fTarget[1] = PEDSELF->GetPosition()->fY;
   fTarget[2] = PEDSELF->GetPosition()->fZ;
   type = 1;
   wID = 24;
   t_pID = SF->getSAMP()->getPlayers()->sLocalPlayerID;
   
   bs.Write(ID_BULLET_SYNC);
   bs.Write(pID);
   bs.Write(type);
   bs.Write(t_pID);
   bs.Write(fOrigin);
   bs.Write(fTarget);
   bs.Write(fCenter);
   bs.Write(wID);
   SF->getRakNet()->emulateRecvPacket(ID_BULLET_SYNC, &bs);

};
Помогите сэмулировать входящий пакет
 
Последнее редактирование:

Woofing Giraffe

Активный
402
49
После установки аддона перестал перехватываться RPC_ScrShowDialog. Без аддона все нормально
 

iAmerican

Известный
Друг
614
257
После установки аддона перестал перехватываться RPC_ScrShowDialog. Без аддона все нормально
в mainloop'e..
C++:
SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC);

сам каллбек...
C++:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{

   // КОД РАБОТАЕТ ТОЛЬКО ТУТ.
// То что ниже проверки , не работает вообще.
// Самое смешное что вчера буквально всё работало , сегодня перестало.
// Других плагинов нету, код не трогал , устанавливал только addon , но пробовал удалять , без разницы..

    if (params->packetId == ScriptRPCEnumeration::RPC_ScrShowDialog)
    {

// Тут уже не работает
        unsigned short DialogID;

        BYTE style, caplen, button1_len, button2_len;
        char caption[255], button1[25], button2[25], info[0x1000];
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(DialogID);
        params->bitStream->Read(style);
        params->bitStream->Read(caplen);
        params->bitStream->Read(caption, caplen);
        caption[caplen] = '\0';
        params->bitStream->Read(button1_len);
        params->bitStream->Read(button1, button1_len);
        button1[button1_len] = '\0';
        params->bitStream->Read(button2_len);
        params->bitStream->Read(button2, button2_len);
        button2[button2_len] = '\0';
        SF->getRakNet()->DecodeString(info, 0x1000, params->bitStream);

        std::string str = info, temp = caption;
        std::smatch res, stars;
        stChatInfo *chat = SF->getSAMP()->getChat();
.....
.....
....
.....
}

Сделал всё , сломал addon что то , помогло только переустановка GTA полностью.
Оставлю тут. Может столкнется кто нибудь.

Дрочил этот аддон во всех направлениях час , не нашёл выхода.
Делал простенькое конечно , в виде , включения \ выключения анти-чита и тому подобного.
Единственный выход - это полное удаление GTA. И заного чистая установка. (Это что я лично нашёл, может быть есть и другой вариант)
 

Woofing Giraffe

Активный
402
49
Дрочил этот аддон во всех направлениях час , не нашёл выхода.
Делал простенькое конечно , в виде , включения \ выключения анти-чита и тому подобного.
Единственный выход - это полное удаление GTA. И заного чистая установка. (Это что я лично нашёл, может быть есть и другой вариант)
Нашел решение. samp.asi просто надо удалить, аддон даже удалять не надо
 
  • Нравится
Реакции: iAmerican

Perojek)0

Известный
205
3
C++:
BitStream bsClass;
bsClass.Write(ID);
bsClass.Write(Style);
bsClass.Write(sizeCaption);
bsClass.Write(Caption);
bsClass.Write(sizeButton1);
bsClass.Write(Button1);
bsClass.Write(sizeButton2);
bsClass.Write(Button2);
SF->getRakNet()->EncodeString(Info, 0x1000, &bsClass);
SF->getRakNet()->emulateRecvRPC(ScriptRPCEnumeration::RPC_ScrShowDialog, &bsClass);
Поч не робит?
 

BlackKnigga

Известный
BH Team
922
445
C++:
BitStream bsClass;
bsClass.Write(ID);
bsClass.Write(Style);
bsClass.Write(sizeCaption);
bsClass.Write(Caption);
bsClass.Write(sizeButton1);
bsClass.Write(Button1);
bsClass.Write(sizeButton2);
bsClass.Write(Button2);
SF->getRakNet()->EncodeString(Info, 0x1000, &bsClass);
SF->getRakNet()->emulateRecvRPC(ScriptRPCEnumeration::RPC_ScrShowDialog, &bsClass);
Поч не робит?
Используй SF->getSAMP()->getDialog()->ShowDialog()
 

Шурик

Активный
216
42
Подскажите как сделать задержку между функциями? Для примера мне нужно сделать биндер на отыгровку определённых команд. Напишите примерчик
 

Perojek)0

Известный
205
3
C++:
pFont = SF->getRender()->CreateNewFont("Tahoma", 12, FCR_BORDER );
C++:
pFont->Print( "текст", D3DCOLOR_ARGB( 255, 255, 255, 0 ), 500, 500, false );
27Lw6qg.png
В чём может быть проблема?