Files
dsrc/sku.0/sys.server/compiled/game/script/event/gcwlaunch/gcwlaunch.script
T

400 lines
10 KiB
Plaintext

include library.utils;
include library.create;
include library.chat;
include library.ai_lib;
include library.locations;
const string SHUTTLE = "object/creature/npc/theme_park/player_shuttle.iff";
const string ESCORT = "wookiee_brawler";
const string CELEB = "trandoshan_slavemaster";
const string STF_FILE = "event/ep3_trando_herald";
const float ONE_HOUR = 60 * 60;
trigger OnInitialize()
{
location here = getLocation(self);
string myRegion = locations.getGuardSpawnerRegionName(here);
if(myRegion == "@naboo_region_names:theed" || myRegion == "@tatooine_region_names:bestine" || myRegion == "@corellia_region_names:coronet" || myRegion == "@tatooine_region_names:anchorhead")
{
removeObjVar(self, "event");
removeObjVar(self, "auto_invasion");
messageTo(self, "repurposeToNewGCWEvents", null, 30, false);
}
return SCRIPT_CONTINUE;
}
messageHandler repurposeToNewGCWEvents()
{
attachScript(self, "event.gcwraids.gcwraid");
messageTo(self, "detachGCWLaunchScript", null, 30, false);
return SCRIPT_CONTINUE;
}
messageHandler detachGCWLaunchScript()
{
detachScript(self, "event.gcwlaunch.gcwlaunch");
return SCRIPT_CONTINUE;
}
/***************** REPURPOSING to new GCW Events **************************
string setting = getConfigSetting("EventTeam", "ep3Herald");
if(setting == null || setting == "" || setting != "true")
return SCRIPT_CONTINUE;
location here = getLocation(self);
string myRegion = locations.getGuardSpawnerRegionName(here);
if(myRegion == "@naboo_region_names:theed" || myRegion == "@tatooine_region_names:bestine" || myRegion == "@corellia_region_names:coronet" )
{
setObjVar(self, "event.gcwlaunch.shuttle_type", 0);
}
if(myRegion == "@corellia_region_names:bela_vistal" || myRegion == "@tatooine_region_names:anchorhead" || myRegion == "@naboo_region_names:moenia")
{
return SCRIPT_CONTINUE;
}
messageTo(self, "shuttleLandingCheck", null, ONE_HOUR, false);
return SCRIPT_CONTINUE;
}
messageHandler shuttleLandingCheck()
{
int chance = rand(1, 3);
if(chance == 1)
{
messageTo(self, "createShuttle", null, 1, false);
}
messageTo(self, "shuttleLandingCheck", null, ONE_HOUR, false);
return SCRIPT_CONTINUE;
}
messageHandler createShuttle()
{
// int shuttleType = getIntObjVar(self, "event.gcwlaunch.shuttle_type");
location here = getLocation(self);
obj_id shuttle = create.object(SHUTTLE, here);
setObjVar(self, "event.gcwlaunch.shuttle", shuttle);
setYaw(shuttle, 179);
detachScript(shuttle, "ai.ai");
detachScript(shuttle, "ai.creature_combat");
detachScript(shuttle, "skeleton.humanoid");
detachScript(shuttle, "systems.combat.combat_actions_creature");
detachScript(shuttle, "systems.combat.credit_for_kills");
stop(shuttle);
setPosture(shuttle, POSTURE_PRONE);
messageTo(self, "landShuttle", null, 6, false);
obj_id[] objPlayers = getPlayerCreaturesInRange(self, 128.0f);
if (objPlayers != null && objPlayers.length>0)
{
for(int i = 0; i < objPlayers.length; i++)
{
sendSystemMessage(objPlayers[i], new string_id(STF_FILE, "areabroadcast") );
}
}
return SCRIPT_CONTINUE;
}
messageHandler landShuttle()
{
obj_id shuttle = getObjIdObjVar(self, "event.gcwlaunch.shuttle");
queueCommand(shuttle, ##"stand", self, "", COMMAND_PRIORITY_FRONT);
setPosture(shuttle, POSTURE_UPRIGHT);
messageTo(self, "spawnEscorts", null, 20, false);
return SCRIPT_CONTINUE;
}
messageHandler spawnEscorts()
{
location here = getLocation(self);
for(int i = 0; i < 8; i++)
{
obj_id escort = create.object(ESCORT, here);
setObjVar(self, "event.gcwlaunch.escort" + i, escort);
setName(escort, getString(new string_id(STF_FILE, "wookiee_slave") ) );
attachScript(escort, "event.ep3_herald_wookiee");
}
messageTo(self, "spawnCeleb", null, 20, false);
return SCRIPT_CONTINUE;
}
messageHandler spawnCeleb()
{
location here = getLocation(self);
obj_id celeb = create.object(CELEB, here);
ai_lib.setDefaultCalmBehavior(celeb, ai_lib.BEHAVIOR_SENTINEL );
stop(celeb);
setInvulnerable(celeb, true);
setObjVar(self, "event.gcwlaunch.celeb", celeb);
obj_id[] objPlayers = getPlayerCreaturesInRange(self, 100.0f);
if (objPlayers != null && objPlayers.length>0)
{
for(int i = 0; i < objPlayers.length; i++)
{
if(shuttleType == 0)
playMusic(objPlayers[i], "sound/music_emperor_theme_stereo.snd");
if(shuttleType == 1)
playMusic(objPlayers[i], "sound/music_leia_theme_stereo.snd");
}
}
messageTo(self, "walkForwardCeleb", null, 3, false);
return SCRIPT_CONTINUE;
}
messageHandler walkForwardCeleb()
{
obj_id celeb = getObjIdObjVar(self, "event.gcwlaunch.celeb");
location there = getLocation(self);
there.z += -25;
ai_lib.aiPathTo(celeb, there);
setMovementRun(celeb);
chat.chat(celeb, chat.CHAT_SAY, chat.MOOD_ANGRY, new string_id(STF_FILE, "trando_warning") );
messageTo(self, "blowTheShuttle", null, 8, false);
return SCRIPT_CONTINUE;
}
messageHandler blowTheShuttle()
{
obj_id shuttle = getObjIdObjVar(self, "event.gcwlaunch.shuttle");
obj_id celeb = getObjIdObjVar(self, "event.gcwlaunch.celeb");
obj_id[] objPlayers = getPlayerCreaturesInRange(self, 32.0f);
if (objPlayers != null && objPlayers.length>0)
{
for(int i = 0; i < objPlayers.length; i++)
{
location myLoc = getLocation(self);
playClientEffectLoc(objPlayers[i], "clienteffect/combat_explosion_lair_large.cef", myLoc, 10f);
myLoc.x += 5.0f;
playClientEffectLoc(objPlayers[i], "clienteffect/combat_explosion_lair_large.cef", myLoc, 10f);
myLoc.z += 5.0f;
playClientEffectLoc(objPlayers[i], "clienteffect/combat_explosion_lair_large.cef", myLoc, 10f);
myLoc.x -= 10.0f;
playClientEffectLoc(objPlayers[i], "clienteffect/combat_explosion_lair_large.cef", myLoc, 10f);
myLoc.z -= 10.0f;
playClientEffectLoc(objPlayers[i], "clienteffect/combat_explosion_lair_large.cef", myLoc, 10f);
}
}
destroyObject(shuttle);
messageTo(self, "startConversing", null, 3, false);
return SCRIPT_CONTINUE;
}
messageHandler startConversing()
{
obj_id celeb = getObjIdObjVar(self, "event.gcwlaunch.celeb");
attachScript(celeb, "conversation.ep3_trando_herald");
messageTo(self, "poofTheTrandoAndDie", null, 1800, false); // 30 MINUTES ON FINAL
return SCRIPT_CONTINUE;
}
messageHandler poofTheTrandoAndDie()
{
obj_id celeb = getObjIdObjVar(self, "event.gcwlaunch.celeb");
destroyObject(celeb);
removeObjVar(self, "event.gcwlaunch.shuttle");
removeObjVar(self, "event.gcwlaunch.celeb");
for(int i = 0; i < 8; i++)
{
removeObjVar(self, "event.gcwlaunch.escort" + i);
}
return SCRIPT_CONTINUE;
}
messageHandler engageInJingoisticRhetoric()
{
obj_id celeb = getObjIdObjVar(self, "event.gcwlaunch.celeb");
int shuttleType = getIntObjVar(self, "event.gcwlaunch.shuttle_type");
int dialogueSet = getIntObjVar(self, "event.gcwlaunch.dialogue_set");
int dialogueStep = utils.getIntScriptVar(self, "event.gcwlaunch.dialogue_step");
if(dialogueStep > 11)
{
messageTo(self, "everyoneWalkBack", null, 10, false);
return SCRIPT_CONTINUE;
}
string_id myLine = new string_id("gcwlaunchevent", "dialogue_" + shuttleType + "_" + dialogueSet + "_" + dialogueStep);
chat.chat(celeb, chat.CHAT_SAY, chat.MOOD_NONE, myLine);
if(dialogueStep == 3 && shuttleType == 0)
doAnimationAction(celeb, "pound_fist_palm" );
if(dialogueStep == 5 && shuttleType == 0)
doAnimationAction(celeb, "force_push" );
if(dialogueStep == 7 && shuttleType == 0)
doAnimationAction(celeb, "force_choke" );
if(dialogueStep == 10 && shuttleType == 0)
doAnimationAction(celeb, "point_forward" );
if(dialogueStep == 3 && shuttleType == 1)
doAnimationAction(celeb, "point_right" );
if(dialogueStep == 5 && shuttleType == 1)
doAnimationAction(celeb, "pound_fist_palm" );
if(dialogueStep == 7 && shuttleType == 1)
doAnimationAction(celeb, "nod_head_once" );
if(dialogueStep == 10 && shuttleType == 1)
doAnimationAction(celeb, "point_forward" );
dialogueStep++;
utils.setScriptVar(self, "event.gcwlaunch.dialogue_step", dialogueStep);
messageTo(self, "engageInJingoisticRhetoric", null, 10, false);
return SCRIPT_CONTINUE;
}
messageHandler everyoneWalkBack()
{
location here = getLocation(self);
obj_id celeb = getObjIdObjVar(self, "event.gcwlaunch.celeb");
ai_lib.aiPathTo(celeb, here);
setMovementRun(celeb);
for(int i = 0; i < 8; i++)
{
obj_id escort = getObjIdObjVar(self, "event.gcwlaunch.escort" + i);
if(isIdValid(escort) )
{
ai_lib.aiPathTo(escort, here);
//ai_lib.run(escort);
}
}
messageTo(self, "endEvent", null, 10, false);
return SCRIPT_CONTINUE;
}
messageHandler endEvent()
{
int shuttleType = getIntObjVar(self, "event.gcwlaunch.shuttle_type");
obj_id shuttle = getObjIdObjVar(self, "event.gcwlaunch.shuttle");
obj_id celeb = getObjIdObjVar(self, "event.gcwlaunch.celeb");
destroyObject(celeb);
for(int i = 0; i < 8; i++)
{
obj_id escort = getObjIdObjVar(self, "event.gcwlaunch.escort" + i);
if(isIdValid(escort) )
{
destroyObject(escort);
}
}
if(shuttleType > 0)
{
queueCommand(shuttle, ##"prone", self, "", COMMAND_PRIORITY_FRONT);
setPosture(shuttle, POSTURE_PRONE);
}
if(shuttleType == 0)
{
queueCommand(shuttle, ##"stand", self, "", COMMAND_PRIORITY_FRONT);
setPosture(shuttle, POSTURE_UPRIGHT);
}
messageTo(self, "cleanupShuttleAndStuff", null, 20, false);
return SCRIPT_CONTINUE;
}
messageHandler cleanupShuttleAndStuff()
{
int shuttleType = getIntObjVar(self, "event.gcwlaunch.shuttle_type");
obj_id shuttle = getObjIdObjVar(self, "event.gcwlaunch.shuttle");
destroyObject(shuttle);
removeObjVar(self, "event.gcwlaunch.celeb");
for(int i = 0; i < 8; i++)
{
removeObjVar(self, "event.gcwlaunch.escort" + i);
}
obj_id[] objPlayers = getPlayerCreaturesInRange(self, 256.0f);
if (objPlayers != null && objPlayers.length>0)
{
for(int i = 0; i < objPlayers.length; i++)
{
sendSystemMessage(objPlayers[i], new string_id("gcwlaunchevent", "closingbroadcast_" + shuttleType));
}
}
return SCRIPT_CONTINUE;
}
trigger OnHearSpeech(obj_id objSpeaker, string strText) // Added for testing
{
if(isGod(objSpeaker))
{
if(strText.equals("forceep3heraldevent") )
{
messageTo(self, "createShuttle", null, 1, false);
}
}
return SCRIPT_CONTINUE;
}
********************** REPURPOSING ***********************/