mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-08-01 01:15:59 -04:00
71 lines
2.1 KiB
Plaintext
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 *******************************************************/
|
|
|