Другое С/С++ Вопрос - Ответ

iAmerican

Известный
Друг
611
261
Добрый день,скачал я значит плагин https://github.com/dotSILENT/chandling/releases, оригинальный ASI разработчика работает у всех игроков, а мой собранный ASI (даже пробовал собрать не меняя) работает только у меня и у человека у которого установлена Visual Studio, тоисть я кидаю свой ASI игроку он у него не работает,я кидаю точно такой же, НО от разработчика и он у него работает.

исходник моего asi: https://yadi.sk/d/Z3mM8GuC_RSu7w
http://prntscr.com/o8jsw8
 

TheUnity

Известный
137
60
можно как то не дать серверу воспроизводить звук? например, 1169 id звука
 

ШPEK

Известный
1,474
528
можно как то не дать серверу воспроизводить звук? например, 1169 id звука
C++:
#include <Windows.h>
#include "main.h"

SAMPFUNCS *SF = new SAMPFUNCS();

bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
    if (params->packetId == ScriptRPCEnumeration::RPC_ScrPlaySound) {
        DWORD soundId;
        params->bitStream->ResetReadPointer();
        params->bitStream->Read(soundId);
        if (soundId == 1169) return false; // id звука = 1169
    }
        return true;
};

void __stdcall mainloop()
{
    static bool initialized = false;
    if (!initialized)
    {
        if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
        {
            initialized = true;
            SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKHOOK_TYPE_INCOMING_RPC, incomingRPC);
        }
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    if (dwReasonForCall == DLL_PROCESS_ATTACH)
        SF->initPlugin(mainloop, hModule);
    return TRUE;
}
 

vania3450

Новичок
6
1
у меня есть исходник который создает plugin для сервера, но создает его в dll формате, как можно закомпилить его в so для Linux сервера?
 

Roger571

Известный
58
31
у меня есть исходник который создает plugin для сервера, но создает его в dll формате, как можно закомпилить его в so для Linux сервера?
Для меня самым простым и быстрым решением оказалось просто установить виртуалку и компилировать уже в ней.
Но если интересно, то можешь почитать, вот и еще
 

vania3450

Новичок
6
1
Для меня самым простым и быстрым решением оказалось просто установить виртуалку и компилировать уже в ней.
Но если интересно, то можешь почитать, вот и еще
Хорошо, а как через линукс компилить если поставлю на виртуалку, не скажешь?