Files
dsrc/sku.0/sys.server/compiled/game/script/systems/battlefield/battlefield_spawner.script
T
2013-09-10 23:17:15 -07:00

71 lines
2.1 KiB
Plaintext

/**********************************************************************
* Copyright (c)2000-2002 Sony Online Entertainment Inc.
* All Rights Reserved
*
* Title: battlefield_spawner
* Description: script that goes on battlefield spawners in PVE battles.
*
* @author $Author:$
* @version $Revision:$
**********************************************************************/
/***** INCLUDES ********************************************************/
include library.battlefield;
/***** CONSTANTS *******************************************************/
const string VAR_NUMBER_SPAWNS = "battlefield.number_spawns";
/***** TRIGGERS ********************************************************/
trigger OnInitialize()
{
// Spawned mobs don't persist, so clear the population and spawn counter.
setObjVar(self, battlefield.VAR_SPAWNER_CURRENT_POPULATION, 0);
setObjVar(self, battlefield.VAR_SPAWNER_CURRENT, 0);
// Restart the spawner
int pulse = getIntObjVar(self, battlefield.VAR_SPAWNER_PULSE);
messageTo(self, "msgBattlefieldSpawn", null, pulse, false);
return SCRIPT_CONTINUE;
}
/***** MESSAGEHANDLERS *************************************************/
messageHandler msgBattlefieldSpawn()
{
LOG("LOG_CHANNEL", "battlefield_spawner::msgBattlefieldSpawn -- " + self);
int num_spawns = 0;
if (hasObjVar(self, VAR_NUMBER_SPAWNS))
{
num_spawns = getIntObjVar(self, VAR_NUMBER_SPAWNS);
}
int max_spawns = getIntObjVar(self, battlefield.VAR_SPAWNER_MAX);
int pulse = getIntObjVar(self, battlefield.VAR_SPAWNER_PULSE);
region bf = battlefield.getBattlefield(self);
if (bf == null)
return SCRIPT_CONTINUE;
obj_id master_object = battlefield.getMasterObjectFromRegion(bf);
// Generate some spawn
battlefield.createRandomSpawn(master_object, self);
num_spawns--;
if (num_spawns < max_spawns)
{
// Send a message for the next spawn.
messageTo(self, "msgBattlefieldSpawn", null, pulse, false);
}
return SCRIPT_CONTINUE;
}
/***** COMMANDHANDLERS *************************************************/
/***** FUNCTIONS *******************************************************/