示例#1
0
文件: main.cpp 项目: Pottus/SKY
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX * amx)
{
	static bool bFirst = false;

	if(!bFirst) {
		bFirst = true;

		// Get pNetGame
		int (*pfn_GetNetGame)(void) = (int(*)(void))ppPluginData[PLUGIN_DATA_NETGAME];
		pNetGame = (CNetGame*)pfn_GetNetGame();

		// Get pConsole
		int (*pfn_GetConsole)(void) = (int(*)(void))ppPluginData[PLUGIN_DATA_CONSOLE];
		pConsole = (void*)pfn_GetConsole();

		// Get pRakServer
		int (*pfn_GetRakServer)(void) = (int(*)(void))ppPluginData[PLUGIN_DATA_RAKSERVER];
		pRakServer = (RakServer*)pfn_GetRakServer();
	}

	return InitScripting(amx);
}
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX *amx) 
{	
	static bool bFirstLoad = false;
	if (bFirstLoad == false)
	{
		int(*pfn_GetNetGame)(void) = (int(*)(void))ppPluginData[PLUGIN_DATA_NETGAME];
		pNetGame = (CNetGame*)pfn_GetNetGame();

		int(*pfn_GetRakServer)(void) = (int(*)(void))ppPluginData[PLUGIN_DATA_RAKSERVER];
		pRakServer = (RakServer*)pfn_GetRakServer();

		pRakServer->UnregisterAsRemoteProcedureCall(&RPC_VehicleDestroyed);
		pRakServer->RegisterAsRemoteProcedureCall(&RPC_VehicleDestroyed, OnVehWrecked);

		bFirstLoad = true;
	}

	if (&pNetGame->pGameModePool->m_amx == amx)
	{
		pGameModeAmx = amx;
	}
	
	return AMX_ERR_NONE;
}