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

Dimoz

Новичок
98
16
Ты ресурс в проект добавил то?
Конечно.

gj a

Надо парсер иметь, d3d c *.dds изображением работает.
В принципе, я научился делать прозрачный фон у BMP (из-за прозрачности и нужна была текстура в формате PNG), но все равно спасибо.
 

Harch

Новичок
40
0
Вот я нахожусь в поезде. Как сделать тп меня вместе с поездом куда-либо?
 

Harch

Новичок
40
0
Также интересует вопрос, как поставить игру на паузу прямо из плагина? Какая функция?
 

spiceman

GOWNIK <3
104
35
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
урсхадов фип кто там ау разработчик в общем. фикс говноедство, типа
Код:
void CALLBACK mainloop() {
    static bool init = false;
    if (!init) {
        if (GAME == nullptr)
            return;

        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;

        if (!SF->getSAMP()->IsInitialized())
            return;

        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "SAMPFUNCS Plugin loaded.");

        init = true;
    }
}

bool APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) {
    switch (dwReasonForCall) {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
    }
    return true;
}
сделойте в методе инициализации плагина еще один параметр, колбек, вызывающийся после инициализации плагина. а основная петля будет вызываться уже после инициализации.
т.е будет нечто такое прекрасное, за что вам будут благодарны боги всех религий
Код:
void onPluginInit() {
    SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC);
    SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player);
}

void mainloop() {
    if(SF->getGame()->isKeyPressed( 'H' )) {           
        int &iDialogStatus = SF->getSAMP()->getDialog()->iIsActive;
        iDialogStatus ^= true;
        if(!iDialogStatus)
            SF->getSAMP()->getMisc()->ToggleCursor(false);
    };
}

bool APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) {
    switch (dwReasonForCall) {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(onPluginInit, mainloop, hModule);
    }
    return true;
}
 
Последнее редактирование:
  • Нравится
Реакции: XyJluraH_J

Harch

Новичок
40
0
Попытался так. Но мотоциклы и машины так тпшит, а вот поезд - нет :C Что не так?

Код:
void vehicleTeleport(float x, float y, float z)
{
    actor_info *self = SF->getGame()->actorInfoGet(VEHICLE_SELF, VEHICLE_ALIVE);
    self->vehicle->base.matrix[4 * 3] = x;
    self->vehicle->base.matrix[4 * 3 + 1] = y;
    self->vehicle->base.matrix[4 * 3 + 2] = z;
}
 

slonoboyko

Потрачен
40
21
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Попытался так. Но мотоциклы и машины так тпшит, а вот поезд - нет :C Что не так?

Код:
void vehicleTeleport(float x, float y, float z)
{
    actor_info *self = SF->getGame()->actorInfoGet(VEHICLE_SELF, VEHICLE_ALIVE);
    self->vehicle->base.matrix[4 * 3] = x;
    self->vehicle->base.matrix[4 * 3 + 1] = y;
    self->vehicle->base.matrix[4 * 3 + 2] = z;
}
Насколько я знаю, поезд не может тпхнутся. Он всегда на рельсах
 

Harch

Новичок
40
0
По идее при ТП поезд должен встать на ближайшие рельсы. В скриптах, по крайней мере, при установке поезда так.

Ладно, как тогда поставить игру на паузу? Аналог нажатия escape фактически?
 

Enjoy

Новичок
Проверенный
164
11
Можно ли перехватить как-то выгрузку плагина (т.е. pfree NAME).
Я просто хочу убить поток в это время.
 

CarLCas

Известный
161
118
Подскажите пожалуйста как получить координаты игрока сидящего в машине?