All pastes #1672517 Raw Edit

YSI_script.own

public cpp v1 · immutable
#1672517 ·published 2009-11-15 20:18 UTC
rendered paste body
/*----------------------------------------------------------------------------*-					==============================					Y Sever Includes - Script Core					==============================Description:	Provides a simple interface for basic script creation with no hassle.Legal:	Copyright (C) 2007 Alex "Y_Less" Cole	This program is free software; you can redistribute it and/or	modify it under the terms of the GNU General Public License	as published by the Free Software Foundation; either version 2	of the License, or (at your option) any later version.	This program is distributed in the hope that it will be useful,	but WITHOUT ANY WARRANTY; without even the implied warranty of	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the	GNU General Public License for more details.	You should have received a copy of the GNU General Public License	along with this program; if not, write to the Free Software	Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,	MA 02110-1301, USA.Changelog:	07/08/07:		Merged a few callbacks and their Ex's.	29/06/07:		Added reset protection for filterscripts.		Moved Default_LoadScript() out the new file for greater seamlessness.	13/06/07:		First versionFunctions:	Public:		-	Core:		-	Stock:		-	Static:		-	Inline:		Script_OnFilterScriptInit - Wrapper for OnFilterScriptInit.		Script_OnFilterScriptExit - Wrapper for OnFilterScriptExit.		Script_OnGameModeInit - Wrapper for OnGameModeInit.		Script_OnGameModeExit - Wrapper for OnGameModeExit.		Script_OnPlayerRequestClass - Wrapper for OnPlayerRequestClass		Script_OnPlayerRequestSpawnEx - Wrapper for OnPlayerRequestSpawn.		Script_OnPlayerConnect - Wrapper for OnPlayerConnect.		Script_OnPlayerDisconnect - Wrapper for OnPlayerDisconnect.		Script_OnPlayerSpawn - Wrapper for OnPlayerSpawn.		Script_OnPlayerDeath - Wrapper for OnPlayerDeath.		Script_OnVehicleSpawn - Wrapper for OnVehicleSpawn.		Script_OnVehicleDeath - Wrapper for OnVehicleDeath.		Script_OnPlayerText - Wrapper for OnPlayerText.		Script_OnPlayerPrivmsg - Wrapper for OnPlayerPrivmsg.		Script_OnPlayerCommandText - Wrapper for OnPlayerCommandText.		Script_OnPlayerInfoChange - Wrapper for OnPlayerInfoChange.		Script_OnPlayerEnterVehicle - Wrapper for OnPlayerEnterVehicle.		Script_OnPlayerExitVehicle - Wrapper for OnPlayerExitVehicle.		Script_OnPlayerStateChange - Wrapper for OnPlayerStateChange.		Script_OnPlayerEnterCheckpointEx - Wrapper for OnPlayerEnterCheckpoint.		Script_OnPlayerLeaveCheckpointEx - Wrapper for OnPlayerLeaveCheckpoint.		Script_OnPlayerEnterRaceCheckpoint - Wrapper for OnPlayerEnterRaceCheckpoint.		Script_OnPlayerLeaveRaceCheckpoint - Wrapper for OnPlayerLeaveRaceCheckpoint.		Script_OnRconCommand - Wrapper for OnRconCommand.		Script_OnPlayerObjectMoved - Wrapper for OnPlayerObjectMoved.		Script_OnPlayerPickUpPickup - Wrapper for OnPlayerPickUpPickup.		Script_OnPlayerSelectedMenuRow - Wrapper for OnPlayerSelectedMenuRow.		Script_OnPlayerExitedMenu - Wrapper for OnPlayerExitedMenu.		Script_OnVehicleMod - Wrapper for OnVehicleMod.		Script_OnVehiclePaintjob - Wrapper for OnVehiclePaintjob.		Script_OnVehicleRespray - Wrapper for OnVehicleRespray.		Script_OnPlayerLogin - Wrapper for OnPlayerLogin.		Script_OnPlayerLogout - Wrapper for OnPlayerLogout.		Script_OnPlayerLeaveArea - Wrapper for OnPlayerLeaveArea.		Script_OnPlayerEnterArea - Wrapper for OnPlayerEnterArea.		Script_OnRaceEnd - Wrapper for OnRaceEnd.		Script_OnPlayerExitRace - Wrapper for OnPlayerExitRace.		Script_OnPlayerFinishRace - Wrapper for OnPlayerFinishRace.		Script_OnPlayerInteriorChange - Wrapper for OnPlayerInteriorChange.		Script_OnPlayerKeyStateChange - Wrapper for OnPlayerKeyStateChange.		Script_OnDynamicObjectMoved - Wrapper for OnDynamicObjectMoved.		Script_OnGangWarCapture - Wrapper for OnGangWarCapture.		Script_OnGangWarStart - Wrapper for OnGangWarStart.		Script_OnGangWarDefend - Wrapper for OnGangWarEnd.	API:		-Definitions:	-Enums:	-Macros:	-Tags:	-Variables:	Global:		-	Static:		YSI_g_sSetup - Used for filterscripts to not reset variables in GMs.Commands:	-Compile options:	-Operators:	--*----------------------------------------------------------------------------*/enum e_YCB (<<= 1){	e_YCB_OnFilterScriptInit = 1,	e_YCB_OnFilterScriptExit,	e_YCB_OnGameModeInit,	e_YCB_OnGameModeExit,	e_YCB_OnPlayerConnect,	e_YCB_OnPlayerDisconnect,	e_YCB_OnPlayerSpawn,	e_YCB_OnVehicleSpawn,	e_YCB_OnVehicleDeath,	e_YCB_OnPlayerDeath,	e_YCB_OnPlayerText,	e_YCB_OnPlayerCommandText,	e_YCB_OnPlayerRequestClass,	e_YCB_OnPlayerStateChange,	e_YCB_OnPlayerEnterCheckpoint,	e_YCB_OnPlayerLeaveCheckpoint,	e_YCB_OnPlayerEnterRCP,	e_YCB_OnPlayerRequestSpawn,	e_YCB_OnPlayerPickUpPickup,	e_YCB_OnPlayerSelectedMenuRow,	e_YCB_OnPlayerExitedMenu,	e_YCB_OnPlayerKeyStateChange,	e_YCB_OnPlayerLogin}static	e_YCB:YSI_g_sCallbacks;#define Script_CheckCallback(%0) \	if (funcidx("Script_" #%0) != -1) YSI_g_sCallbacks |= e_YCB_%0#define Script_Call(%0,%1) \	(YSI_g_sCallbacks & e_YCB_%0) ? CallLocalFunction("Script_" #%0, %1)Script_InitCallbacks(){	Script_CheckCallback(OnFilterScriptInit);	Script_CheckCallback(OnFilterScriptExit);	Script_CheckCallback(OnGameModeInit);	Script_CheckCallback(OnGameModeExit);	Script_CheckCallback(OnPlayerConnect);	Script_CheckCallback(OnPlayerDisconnect);	Script_CheckCallback(OnPlayerSpawn);	Script_CheckCallback(OnVehicleSpawn);	Script_CheckCallback(OnVehicleDeath);	Script_CheckCallback(OnPlayerDeath);	Script_CheckCallback(OnPlayerText);	Script_CheckCallback(OnPlayerCommandText);	Script_CheckCallback(OnPlayerRequestClass);	Script_CheckCallback(OnPlayerStateChange);	Script_CheckCallback(OnPlayerEnterCheckpoint);	Script_CheckCallback(OnPlayerLeaveCheckpoint);	Script_CheckCallback(OnPlayerEnterRCP);	Script_CheckCallback(OnPlayerRequestSpawn);	Script_CheckCallback(OnPlayerPickUpPickup);	Script_CheckCallback(OnPlayerSelectedMenuRow);	Script_CheckCallback(OnPlayerExitedMenu);	Script_CheckCallback(OnPlayerKeyStateChange);	Script_CheckCallback(OnPlayerLogin);}/*----------------------------------------------------------------------------*-Function:	Script_OnFilterScriptInitParams:	-Return:	-Notes:	--*----------------------------------------------------------------------------*/#if defined FILTERSCRIPTpublic OnFilterScriptInit(){	Script_InitCallbacks();	Default_OnFilterScriptInit();	//Script_Call(OnFilterScriptInit, "") : {};	CallLocalFunction("Script_OnFilterScriptInit", "");	Default_LoadScript();	return 1;}#define OnFilterScriptInit Script_OnFilterScriptInitforward Script_OnFilterScriptInit();#endif/*----------------------------------------------------------------------------*-Function:	Script_OnGameModeInitParams:	-Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnGameModeInit(){	#if !defined FILTERSCRIPT		Script_InitCallbacks();	#endif	DBGP3("OnGameModeInit() call Default_OnGameModeInit()");	Default_OnGameModeInit();	DBGP3("OnGameModeInit() call Script_OnGameModeInit()");	//Script_Call(OnGameModeInit, "") : {};	CallLocalFunction("Script_OnGameModeInit", "");	#if !defined FILTERSCRIPT		DBGP3("OnGameModeInit() call Default_LoadScript()");		Default_LoadScript();	#endif	return 1;}#define OnGameModeInit Script_OnGameModeInitforward Script_OnGameModeInit();/*----------------------------------------------------------------------------*-Function:	Script_OnFilterScriptExitParams:	-Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnFilterScriptExit(){	Default_OnFilterScriptExit();	return Script_Call(OnFilterScriptExit, "") : 0;}#define OnFilterScriptExit Script_OnFilterScriptExitforward Script_OnFilterScriptExit();/*----------------------------------------------------------------------------*-Function:	Script_OnGameModeExitParams:	-Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnGameModeExit(){	Default_OnGameModeExit();	return Script_Call(OnGameModeExit, "") : 0;}#define OnGameModeExit Script_OnGameModeExitforward Script_OnGameModeExit();/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerRequestClassExParams:	playerid - The player who requested a class.	classid - The class they requested.Return:	-Notes:	Over rules standard code.  Merged with OnPlayerRequestClassEx-*----------------------------------------------------------------------------*/public OnPlayerRequestClass(playerid, classid){	return Default_OnPlayerRequestClass(playerid, classid);}#if defined FILTERSCRIPT	#define OnPlayerRequestClass OnPlayerRequestClassExFS	forward OnPlayerRequestClassExFS(playerid, classid);#else	#define OnPlayerRequestClass OnPlayerRequestClassExGM	forward OnPlayerRequestClassExGM(playerid, classid);#endif/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerRequestSpawnParams:	playerid - Player who requested the spawn.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerRequestSpawn(playerid){	return Default_OnPlayerRequestSpawn(playerid);}#define OnPlayerRequestSpawn OnPlayerRequestSpawnEx#if defined FILTERSCRIPT	#define OnPlayerRequestSpawnEx OnPlayerRequestSpawnExFS	forward OnPlayerRequestSpawnExFS(playerid, classid);#else	#define OnPlayerRequestSpawnEx OnPlayerRequestSpawnExGM	forward OnPlayerRequestSpawnExGM(playerid, classid);#endif/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerConnectParams:	playerid - The player who connected.Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnPlayerConnect(playerid){	Default_OnPlayerConnect(playerid);	/*new		ret = Script_Call(OnPlayerConnect, "i", playerid) : 1;	Default_OnPlayerConnect2(playerid);	return ret;*/	return Script_Call(OnPlayerConnect, "i", playerid) : 1;}#define OnPlayerConnect Script_OnPlayerConnectforward OnPlayerConnect(playerid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerDisconnectParams:	playerid - The player who disconnected.	reason - Why they left.Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnPlayerDisconnect(playerid, reason){	Default_OnPlayerDisconnect(playerid, reason);	#if defined _YSI_SYSTEM_ITTER		new			ret;		ret = Script_Call(OnPlayerDisconnect, "ii", playerid, reason) : 1;		Itter_OnPlayerDisconnect(playerid, reason);		return ret;	#else		return Script_Call(OnPlayerDisconnect, "ii", playerid, reason) : 1;	#endif}#define OnPlayerDisconnect Script_OnPlayerDisconnectforward Script_OnPlayerDisconnect(playerid, reason);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerSpawnParams:	playerid - The player who spawned.Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnPlayerSpawn(playerid){	Default_OnPlayerSpawn(playerid);	#if defined _YSI_GAMEMODE_CLASSES && !defined YSI_SLAVE_CLASS		if (Class_OnPlayerSpawn(playerid))		{			return 1;		}	#endif	return Script_Call(OnPlayerSpawn, "i", playerid) : 1;}#define OnPlayerSpawn Script_OnPlayerSpawnforward Script_OnPlayerSpawn(playerid);/*----------------------------------------------------------------------------*-Function:	Script_OnVehicleSpawnParams:	playerid - The player who spawned.Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnVehicleSpawn(vehicleid){	Default_OnVehicleSpawn(vehicleid);	return Script_Call(OnVehicleSpawn, "i", vehicleid) : 1;}#define OnVehicleSpawn Script_OnVehicleSpawnforward Script_OnVehicleSpawn(vehicleid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerDeathParams:	playerid - The player who died.	killerid - The player who killed them.	reason - How they died.Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnPlayerDeath(playerid, killerid, reason){	Default_OnPlayerDeath(playerid, killerid, reason);	return Script_Call(OnPlayerDeath, "iii", playerid, killerid, reason) : 1;}#define OnPlayerDeath Script_OnPlayerDeathforward Script_OnPlayerDeath(playerid, killerid, reason);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerTextParams:	playerid - The player who typed some text.	text[] - The text they entered.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerText(playerid, text[]){	if (Default_OnPlayerText(playerid, text))	{		return Script_Call(OnPlayerText, "is", playerid, text) : 1;	}	return 0;}#define OnPlayerText Script_OnPlayerTextforward Script_OnPlayerText(playerid, text[]);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerCommandTextParams:	playerid - The player who typed a command.	cmdtext[] - The command they entered.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerCommandText(playerid, cmdtext[]){	if (!Default_OnPlayerCommandText(playerid, cmdtext))	{		return Script_Call(OnPlayerCommandText, "is", playerid, cmdtext) : 0;	}	return 1;}#define OnPlayerCommandText Script_OnPlayerCommandTextforward Script_OnPlayerCommandText(playerid, cmdtext[]);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerStateChangeParams:	playerid - The player who changed state.	newstate - Their new state.	oldstate - Their last state.Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnPlayerStateChange(playerid, newstate, oldstate){	Default_OnPlayerStateChange(playerid, newstate, oldstate);	return Script_Call(OnPlayerStateChange, "iii", playerid, newstate, oldstate) : 0;}#define OnPlayerStateChange Script_OnPlayerStateChangeforward Script_OnPlayerStateChange(playerid, newstate, oldstate);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerEnterCheckpointParams:	playerid - The player who entered a checkpoint.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerEnterCheckpoint(playerid){	return Default_OnPlayerEnterCheckpoint(playerid);}#define OnPlayerEnterCheckpoint OnPlayerEnterCheckpointExforward OnPlayerEnterCheckpointEx(playerid, checkpointid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerLeaveCheckpointExParams:	playerid - The player who left a checkpoint.	cpid - Checkpoint they left.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerLeaveCheckpoint(playerid){	return Default_OnPlayerLeaveCheckpoint(playerid);}#define OnPlayerLeaveCheckpoint OnPlayerLeaveCheckpointExforward OnPlayerLeaveCheckpointEx(playerid, checkpointid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerEnterRaceCheckpointParams:	playerid - The player who entered a checkpoint.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerEnterRaceCheckpoint(playerid){	Default_OnPlayerEnterRaceCheckpoint(playerid);	return Script_Call(OnPlayerEnterRCP, "i", playerid) : 1;}#define OnPlayerEnterRaceCheckpoint Script_OnPlayerEnterRCPforward Script_OnPlayerEnterRCP(playerid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerPickUpPickupParams:	playerid - Player who picked up a pickup.	pickupid - Pickup picked up.Return:	-Notes:	Over rules standard code.  Calls secondary function for internal IDs.-*----------------------------------------------------------------------------*/public OnPlayerPickUpPickup(playerid, pickupid){	return Default_OnPlayerPickUpPickup(playerid, pickupid);}#define OnPlayerPickUpPickup OnPlayerPickUpPickupExforward OnPlayerPickUpPickupEx(playerid, pickupid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerSelectedMenuRowParams:	playerid - Player who selected something.	row - Thing selected.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerSelectedMenuRow(playerid, row){	Default_OnPlayerSelectedMenuRow(playerid, row);	return Script_Call(OnPlayerSelectedMenuRow, "ii", playerid, row) : 1;}#define OnPlayerSelectedMenuRow Script_OnPlayerSelectedMenuRowforward Script_OnPlayerSelectedMenuRow(playerid, row);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerExitedMenuParams:	playerid - Player who exited a menu.Return:	-Notes:	Over rules standard code.-*----------------------------------------------------------------------------*/public OnPlayerExitedMenu(playerid){	Default_OnPlayerExitedMenu(playerid);	return Script_Call(OnPlayerExitedMenu, "i", playerid) : 1;}#define OnPlayerExitedMenu Script_OnPlayerExitedMenuforward Script_OnPlayerExitedMenu(playerid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerKeyStateChangeParams:	playerid - Player who pressed a key.	newkeys - Keys currently pressed.	oldkeys - Keys pressed prior to now.Return:	-Notes:	--*----------------------------------------------------------------------------*/public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){	Default_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);	return Script_Call(OnPlayerKeyStateChange, "iii", playerid, newkeys, oldkeys) : 1;}#define OnPlayerKeyStateChange Script_OnPlayerKeyStateChangeforward Script_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerLoginParams:	playerid - Player who logged in.	yid - Internal player id.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/forward OnPlayerLogin(playerid, yid);public OnPlayerLogin(playerid, yid){	Default_OnPlayerLogin(playerid, yid);	return Script_Call(OnPlayerLogin, "ii", playerid, yid) : 1;}#define OnPlayerLogin Script_OnPlayerLoginforward Script_OnPlayerLogin(playerid, yid);/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerEnterAreaParams:	playerid - Player who entered an area.	area - Area they entered.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnPlayerEnterArea(%1,%2) \	forward OnPlayerEnterArea(%1, %2); \	public OnPlayerEnterArea(%1, %2)/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerLeaveAreaParams:	playerid - Player who left an area.	area - Area they left.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnPlayerLeaveArea(%1,%2) \	forward OnPlayerLeaveArea(%1, %2); \	public OnPlayerLeaveArea(%1, %2)/*----------------------------------------------------------------------------*-Function:	Script_OnRaceEndParams:	raceid - The race which ended.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnRaceEnd(%1) \	forward OnRaceEnd(%1); \	public OnRaceEnd(%1)/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerExitRaceParams:	playerid - The player who left the race.	raceid - The race they left.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnPlayerExitRace(%1,%2) \	forward OnPlayerExitRace(%1, %2); \	public OnPlayerExitRace(%1, %2)/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerFinishRaceParams:	playerid - The player who finished.	raceid - The race they finished.	position - Where they came (starting from 1).	prixe - What they won.	time - How long they took.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnPlayerFinishRace(%1,%2,%3,%4,%5) \	forward OnPlayerFinishRace(%1, %2, %3, %4, %5); \	public OnPlayerFinishRace(%1, %2, %3, %4, %5)/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerKeyPressParams:	playerid - The player who pressed a key.	key - Key they pressed.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnPlayerKeyPress(%1,%2) \	forward OnPlayerKeyPress(%1, %2); \	public OnPlayerKeyPress(%1, %2)/*----------------------------------------------------------------------------*-Function:	Script_OnPlayerKeyReleaseParams:	playerid - The player who released a key.	key - Key they released.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnPlayerKeyRelease(%1,%2) \	forward OnPlayerKeyRelease(%1, %2); \	public OnPlayerKeyRelease(%1, %2)/*----------------------------------------------------------------------------*-Function:	Script_OnDynamicObjectMovedParams:	objectid - Object that moved.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnDynamicObjectMoved(%1) \	forward OnDynamicObjectMoved(%1); \	public OnDynamicObjectMoved(%1)/*----------------------------------------------------------------------------*-Function:	Script_OnGangWarCaptureParams:	zoneid - Zone that's been won.	attacker - Group that won the zone.	defender - Group that lost the zone.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnGangWarCapture(%1,%2,%3) \	forward OnGangWarCapture(%1, %2, %3); \	public OnGangWarCapture(%1, %2, %3)/*----------------------------------------------------------------------------*-Function:	Script_OnGangWarStartParams:	zoneid - Zone that's been fought over.	attacker - Group that's attacking.	defender - Group that's defending.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnGangWarStart(%1,%2,%3) \	forward OnGangWarStart(%1, %2, %3); \	public OnGangWarStart(%1, %2, %3)/*----------------------------------------------------------------------------*-Function:	Script_OnGangWarDefendParams:	zoneid - Zone that's been lost.	attacker - Group that failed to capture.	defender - Group that defended.Return:	-Notes:	Forwards itself as people may not know it's public.-*----------------------------------------------------------------------------*/#define Script_OnGangWarDefend(%1,%2,%3) \	forward OnGangWarEnd(%1, %2, %3); \	public OnGangWarEnd(%1, %2, %3)