Показать сообщение отдельно

  #232  
Старый 24.07.2015, 18:06
spiceman
Участник форума
Регистрация: 18.03.2013
Сообщений: 104
С нами: 6921972

Репутация: 0
По умолчанию

урсхадов фип кто там ау разработчик в общем. фикс говноедство, типа

Код:





Код:
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;
}
 
Ответить с цитированием