ISXEQServices.h
Code: Select all
#define SPAWNSERVICE_ADDSPAWN ((ISXSERVICE_MSG)+1)
#define SPAWNSERVICE_REMOVESPAWN ((ISXSERVICE_MSG)+2)
#define SPAWNSERVICE_ADDITEM ((ISXSERVICE_MSG)+3)
#define SPAWNSERVICE_REMOVEITEM ((ISXSERVICE_MSG)+4)
[color=red]#define SPAWNSERVICE_ADDGM ((ISXSERVICE_MSG)+5)[/color]
Code: Select all
void __cdecl SpawnRequest(ISXInterface *pClient, unsigned long MSG, void *lpData)
{
if (MSG==ISXSERVICE_CLIENTADDED)
{
// printf("Spawn Service - Client Added");
if (gGameState==GAMESTATE_INGAME)
{
PSPAWNINFO pSpawn=(PSPAWNINFO)pSpawnList;
while(pSpawn)
{
pISInterface->ServiceNotify(pExtension,hSpawnService,(ISXInterface*)lpData,SPAWNSERVICE_ADDSPAWN,pSpawn);
[color=red]if (pSpawn->GM) pISInterface->ServiceNotify(pExtension,hSpawnService,(ISXInterface*)lpData,SPAWNSERVICE_ADDGM,pSpawn);[/color]
pSpawn=pSpawn->pNext;
}
PGROUNDITEM pItem=(PGROUNDITEM)pItemList;
while(pItem)
{
pISInterface->ServiceNotify(pExtension,hSpawnService,(ISXInterface*)lpData,SPAWNSERVICE_ADDITEM,pItem);
pItem=pItem->pNext;
}
}
}
}
Code: Select all
EQLIB_API VOID PluginsAddSpawn(PSPAWNINFO pNewSpawn)
{
PluginDebug("PluginsAddSpawn(%s,%d,%d)",pNewSpawn->Name,pNewSpawn->Race,pNewSpawn->BodyType);
SpawnByName[pNewSpawn->Name]=pNewSpawn;
if (gGameState>GAMESTATE_CHARSELECT)
SetNameSpriteState(pNewSpawn,1);
if (GetBodyTypeDesc(pNewSpawn->BodyType)[0]=='*')
{
WriteChatf("Spawn '%s' has unknown bodytype %d",pNewSpawn->Name,pNewSpawn->BodyType);
}
pISInterface->ServiceBroadcast(pExtension,hSpawnService,SPAWNSERVICE_ADDSPAWN,pNewSpawn);
[color=red]if (pNewSpawn->GM) pISInterface->ServiceBroadcast(pExtension,hSpawnService,SPAWNSERVICE_ADDGM,pNewSpawn);[/color]
}


