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

sc6ut

неизвестный
Модератор
383
1,090
например setPlayerPos?
C++:
// регистрируешь callback на incoming rpc в mainloop
SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_INCOMING_RPC, incomingRPC);

bool __stdcall incomingRPC(stRakNetHookParams* params) {
    // проверяешь ид рпц
    if (params->packetId == RPC_ScrSetPlayerPos) {
        // если нужный то возвращаешь false (=не принимаем рпц)
        return false;
    }
    // остальные рпц принимаешь
    return true;
}
 
Последнее редактирование:
  • Нравится
  • Влюблен
Реакции: Vintik и Metall

SR_team

like pancake
BH Team
4,809
6,491
Что здесь не так?
C++:
void CALLBACK cmd_chat(std::string param)
{
    BitStream bs;
    bs.WriteBits((unsigned char*)(param.c_str()), sizeof(param));
    SF->getRakNet()->SendRPC(RPC_Chat, &bs);
}
1wjqylB.png
sizeof от std::string это 24 или 32, а не длина строкию К тому же тебе нужен просто Write, а не WriteBits
 
  • Нравится
Реакции: 3lcode

imring

Ride the Lightning
Всефорумный модератор
2,365
2,552
Что здесь не так?
C++:
void CALLBACK cmd_chat(std::string param)
{
    BitStream bs;
    bs.WriteBits((unsigned char*)(param.c_str()), sizeof(param));
    SF->getRakNet()->SendRPC(RPC_Chat, &bs);
}
1wjqylB.png
C++:
bs.Write<unsigned char>(param.size());
bs.Write(param.data(), param.size());
 
  • Влюблен
Реакции: 3lcode

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,746
4,831
Почему не работает?
Не работает:
if (SF->getGame()->isKeyPressed(VK_CONTROL)) // Ctrl - 0x11
{
    // Какой-нибудь код
}
А это работает.
Это работает:
if (SF->getGame()->isKeyPressed('K')) // K - 0x4B
{
    // Какой-нибудь код
}
mb VK_LCONTROL?
 
  • Нравится
  • Влюблен
Реакции: Dark_Knight и 3lcode

Metall

Потрачен
70
26
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как проиграть анимацию в сф? ну как?
 

TimeLordRu

Известный
151
38
[Список доступных классов:
CSAMP, CRakNet, CRender, CCLEO, CGame.

Описание:

SF API это удобный инструмент позволяющий использовать возможности плагина SAMPFUNCS на максимум.
Предоставлены удобные классы для максимально простого и эффективного написания своих плагинов на языке программирования c++.
Более подробная информация вскоре будет выложена в Wiki

Установка:
Папку SFAPI положить в каталог своего проекта, в настройках выставить тип конфигурации .dll и конечное расширение .sf.
Затем, объявить объект класса CSAMPFUNCS и в точке входа в приложение при выполнении операции DLL_PROCESS_ATTACH вызвать функцию obj_api->initPlugin( mainloop, hModule ), где mainloop - это указатель на функцию которая будет выполняться в основном цикле игры, а hModule это дескриптор.

Либо извлечь готовый настроенный проект SFPlugin.zip из архива с SF.

Список уроков:
1. Основы API
2. Dialog hider
3. Render
4. RakNet

Разработчик SF API: urShadow
вместо диалог хайдера у тебя 1 урок) с сылками напутал)
 

3lcode

Участник
11
1
Последнее редактирование:

Smeruxa

t.me/smeruxa
Проверенный
1,381
729
СФ, пытаюсь получить координаты машины, в структурах полазил, не смог найти, у меня идет поиск по ИД
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,777
Как получить эту иконку на радаре. Не получается..
1619596130836.png

UPD: Иконку по центру, то есть персонажа.
 
  • Нравится
Реакции: James Saula

frit

Известный
389
174
Как я могу получить ник администратора в сообщение чата? После хочу добавить его ник в собейт
bool CALLBACK incomingRPC(stRakNetHookParams* params) { if (params->packetId == ScriptRPCEnumeration::RPC_ScrClientMessage) { DWORD color; DWORD strlen; char string[2048]; params->bitStream->ResetReadPointer(); params->bitStream->Read(color); params->bitStream->Read(strlen); params->bitStream->Read(string, strlen); string[strlen] = '\0'; if (strstr(string, "Администратор") != 0) { SF->getSAMP()->getChat()->AddChatMessage(-1, "пидор найден"); } } return true; }
используй регулярные выражения, конкретно библиотеку regex