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 ***********************/