SPAWNSERVICE_ADDGM

Moderator: MacroQuest Developers

cronic
a grimling bloodguard
a grimling bloodguard
Posts: 536
Joined: Wed Nov 26, 2003 11:01 pm

SPAWNSERVICE_ADDGM

Post by cronic » Fri Mar 18, 2005 8:06 pm

This may come in handy - adds a new message to broadcast if a GM is added to the zone. Allegedly, even stealthed GMs are added to the zone briefly and then removed.



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]
ISXEQServices.cpp

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;
			}
		}
	}
}
ISXEQServices.cpp

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]
}
cronic

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Fri Mar 18, 2005 8:14 pm

I'll put this in, but slightly modified, because you have an "add" but no "remove" -- if a system is tracking GMs based solely on ADD_GM, it will crash when the spawn is removed.

I'll add a GM removal message.
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0









xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: SPAWNSERVICE_ADDGM

Post by xyilla » Mon Jan 05, 2026 8:43 am