From 92da2e416cfbc8e850ac03bbda5711e17ebb5b76 Mon Sep 17 00:00:00 2001 From: Cekis Date: Thu, 31 Mar 2016 04:23:06 +0100 Subject: [PATCH] Added some efficiencies to the city scripts. --- .../game/script/city/bestine_wander.java | 60 ++++----- .../compiled/game/script/city/city_convo.java | 116 ++++++---------- .../game/script/city/city_mob_death_msg.java | 9 +- .../game/script/city/city_pathing.java | 16 +-- .../game/script/city/city_pathing_npc.java | 50 +++---- .../game/script/city/city_spawner.java | 13 +- .../game/script/city/city_wander.java | 127 +++--------------- .../game/script/city/droid_spawner.java | 71 ++++------ .../game/script/city/droid_wander.java | 68 +++++----- .../game/script/city/guard_spawner.java | 18 +-- .../game/script/city/guard_wander.java | 44 +++--- 11 files changed, 192 insertions(+), 400 deletions(-) mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/bestine_wander.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/city_convo.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/city_mob_death_msg.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/city_pathing.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/city_pathing_npc.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/city_spawner.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/city_wander.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/droid_spawner.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/droid_wander.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/guard_spawner.java mode change 100644 => 100755 sku.0/sys.server/compiled/game/script/city/guard_wander.java diff --git a/sku.0/sys.server/compiled/game/script/city/bestine_wander.java b/sku.0/sys.server/compiled/game/script/city/bestine_wander.java old mode 100644 new mode 100755 index 67bd6e478..6c4dd1515 --- a/sku.0/sys.server/compiled/game/script/city/bestine_wander.java +++ b/sku.0/sys.server/compiled/game/script/city/bestine_wander.java @@ -1,12 +1,7 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; +import script.dictionary; +import script.obj_id; public class bestine_wander extends script.base_script { @@ -40,45 +35,44 @@ public class bestine_wander extends script.base_script public String pickDestination() throws InterruptedException { String waypoint = "exit"; - int whichWay = rand(1, 12); - switch (whichWay) + switch (rand(1, 12)) { case 1: - waypoint = "square"; - break; + waypoint = "square"; + break; case 2: - waypoint = "cafe1"; - break; + waypoint = "cafe1"; + break; case 3: - waypoint = "cafe2"; - break; + waypoint = "cafe2"; + break; case 4: - waypoint = "cafe3"; - break; + waypoint = "cafe3"; + break; case 5: - waypoint = "cafe4"; - break; + waypoint = "cafe4"; + break; case 6: - waypoint = "hotel"; - break; + waypoint = "hotel"; + break; case 7: - waypoint = "capitol"; - break; + waypoint = "capitol"; + break; case 8: - waypoint = "mission1"; - break; + waypoint = "mission1"; + break; case 9: - waypoint = "mission2"; - break; + waypoint = "mission2"; + break; case 10: - waypoint = "installation"; - break; + waypoint = "installation"; + break; case 11: - waypoint = "exit"; - break; + waypoint = "exit"; + break; case 12: - waypoint = "gate1"; - break; + waypoint = "gate1"; + break; } return waypoint; } diff --git a/sku.0/sys.server/compiled/game/script/city/city_convo.java b/sku.0/sys.server/compiled/game/script/city/city_convo.java old mode 100644 new mode 100755 index 9c36cab8b..d86db2d5f --- a/sku.0/sys.server/compiled/game/script/city/city_convo.java +++ b/sku.0/sys.server/compiled/game/script/city/city_convo.java @@ -1,18 +1,13 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; - -import script.library.ai_lib; +import script.dictionary; import script.library.create; +import script.obj_id; public class city_convo extends script.base_script { + private final float[][] offsets = new float[][]{{1.1f, 0},{1.1f, 1.1f},{0f,1.1f},{0f,0f}}; + public city_convo() { } @@ -51,82 +46,53 @@ public class city_convo extends script.base_script setAnimationMood(guy4, "conversation"); return SCRIPT_CONTINUE; } - public int handleGuyOneKilled(obj_id self, dictionary params) throws InterruptedException + public int handleGuyKilled(obj_id self, dictionary params) throws InterruptedException { - spawnGuyOne(self); + spawnGuy(self, getStringObjVar(self, "name")); return SCRIPT_CONTINUE; } - public int handleGuyTwoKilled(obj_id self, dictionary params) throws InterruptedException + public void spawnGuy(obj_id baseObject, String name) throws InterruptedException { - spawnGuyTwo(self); - return SCRIPT_CONTINUE; - } - public int handleGuyThreeKilled(obj_id self, dictionary params) throws InterruptedException - { - spawnGuyThree(self); - return SCRIPT_CONTINUE; - } - public int handleGuyFourKilled(obj_id self, dictionary params) throws InterruptedException - { - spawnGuyFour(self); - return SCRIPT_CONTINUE; - } - public void spawnGuyOne(obj_id baseObject) throws InterruptedException - { - obj_id guy1 = create.themeParkObject(getRandomGuy(), 1.3f, 0, "handleGuyOneKilled", 0); - setObjVar(baseObject, "guy1", guy1); - setCreatureStatic(guy1, true); - } - public void spawnGuyTwo(obj_id baseObject) throws InterruptedException - { - obj_id guy2 = create.themeParkObject(getRandomGuy(), 1.3f, 1.3f, "handleGuyTwoKilled", 0); - setObjVar(baseObject, "guy2", guy2); - setCreatureStatic(guy2, true); - } - public void spawnGuyThree(obj_id baseObject) throws InterruptedException - { - obj_id guy3 = create.themeParkObject(getRandomGuy(), 0, 1.3f, "handleGuyThreeKilled", 0); - setObjVar(baseObject, "guy3", guy3); - setCreatureStatic(guy3, true); - } - public void spawnGuyFour(obj_id baseObject) throws InterruptedException - { - obj_id guy4 = create.themeParkObject(getRandomGuy(), 0, 0, "handleGuyFourKilled", 0); - setObjVar(baseObject, "guy4", guy4); - setCreatureStatic(guy4, true); + obj_id guy = null; + switch(name){ + case "guy1": + guy = create.themeParkObject(getRandomGuy(), offsets[0][0], offsets[0][1], "handleGuyKilled", 0); + break; + case "guy2": + guy = create.themeParkObject(getRandomGuy(), offsets[1][0], offsets[1][1], "handleGuyKilled", 0); + break; + case "guy3": + guy = create.themeParkObject(getRandomGuy(), offsets[2][0], offsets[2][1], "handleGuyKilled", 0); + break; + case "guy4": + guy = create.themeParkObject(getRandomGuy(), offsets[3][0], offsets[3][1], "handleGuyKilled", 0); + break; + } + if(guy != null) { + setObjVar(baseObject, name, guy); + setCreatureStatic(guy, true); + } } public String getRandomGuy() throws InterruptedException { - location here = getLocation(getSelf()); - String planet = here.area; - String[] npcList = dataTableGetStringColumnNoDefaults(npcTable, planet); - int npcNum = rand(0, npcList.length - 1); - String npc = npcList[npcNum]; - return npc; + String[] npcList = dataTableGetStringColumnNoDefaults(npcTable, getLocation(getSelf()).area); + return npcList[rand(0, npcList.length - 1)]; } public void beginSpawning(obj_id self) throws InterruptedException { - int num = rand(1, 10); - if (num < 5) - { - spawnGuyOne(self); - spawnGuyTwo(self); - return; - } - if (num < 8) - { - spawnGuyOne(self); - spawnGuyTwo(self); - spawnGuyThree(self); - return; - } - else - { - spawnGuyOne(self); - spawnGuyTwo(self); - spawnGuyThree(self); - spawnGuyFour(self); - return; + if(!getBooleanObjVar(self, "spawned") || !getBooleanObjVar(self, "spawnInProgress")) { + setObjVar(self, "spawnInProgress", true); + int num = rand(1, 10); + spawnGuy(self, "guy1"); + spawnGuy(self, "guy2"); + if (num >= 5) { + spawnGuy(self, "guy3"); + } + if (num >= 8) { + spawnGuy(self, "guy4"); + } + setObjVar(self, "spawnInProgress", false); + setObjVar(self, "spawned", true); } } public int checkForScripts(obj_id self, dictionary params) throws InterruptedException diff --git a/sku.0/sys.server/compiled/game/script/city/city_mob_death_msg.java b/sku.0/sys.server/compiled/game/script/city/city_mob_death_msg.java old mode 100644 new mode 100755 index 42cfc7b63..a2b676e3e --- a/sku.0/sys.server/compiled/game/script/city/city_mob_death_msg.java +++ b/sku.0/sys.server/compiled/game/script/city/city_mob_death_msg.java @@ -1,12 +1,7 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; +import script.dictionary; +import script.obj_id; public class city_mob_death_msg extends script.base_script { diff --git a/sku.0/sys.server/compiled/game/script/city/city_pathing.java b/sku.0/sys.server/compiled/game/script/city/city_pathing.java old mode 100644 new mode 100755 index ee2620d76..d37a5626b --- a/sku.0/sys.server/compiled/game/script/city/city_pathing.java +++ b/sku.0/sys.server/compiled/game/script/city/city_pathing.java @@ -1,15 +1,9 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; - -import script.library.utils; +import script.dictionary; import script.library.create; +import script.library.utils; +import script.obj_id; public class city_pathing extends script.base_script { @@ -23,9 +17,7 @@ public class city_pathing extends script.base_script } public int handleNpcRespawn(obj_id self, dictionary params) throws InterruptedException { - obj_id messageFrom = params.getObjId("object"); - obj_id lastSpawned = getObjIdObjVar(self, "pathing.lastSpawned"); - if (messageFrom != lastSpawned) + if (params.getObjId("object") != getObjIdObjVar(self, "pathing.lastSpawned")) { return SCRIPT_CONTINUE; } diff --git a/sku.0/sys.server/compiled/game/script/city/city_pathing_npc.java b/sku.0/sys.server/compiled/game/script/city/city_pathing_npc.java old mode 100644 new mode 100755 index 393880c38..2ad1ec69e --- a/sku.0/sys.server/compiled/game/script/city/city_pathing_npc.java +++ b/sku.0/sys.server/compiled/game/script/city/city_pathing_npc.java @@ -1,14 +1,8 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; - +import script.dictionary; import script.library.utils; +import script.obj_id; public class city_pathing_npc extends script.base_script { @@ -54,22 +48,22 @@ public class city_pathing_npc extends script.base_script switch (lastAction) { case NEXT_ACTION_NONE: - pathTo(npc, getHomeLocation(npc)); - obj_id homeStop = utils.getObjIdScriptVar(npc, "pathing.homeStop"); - utils.setScriptVar(npc, "pathing.currentStop", homeStop); - return; - case NEXT_ACTION_FACETO: - if (hasObjVar(currentStop, "faceto")) - { - doFacingAction(npc, currentStop); + pathTo(npc, getHomeLocation(npc)); + obj_id homeStop = utils.getObjIdScriptVar(npc, "pathing.homeStop"); + utils.setScriptVar(npc, "pathing.currentStop", homeStop); return; - } + case NEXT_ACTION_FACETO: + if (hasObjVar(currentStop, "faceto")) + { + doFacingAction(npc, currentStop); + return; + } case NEXT_ACTION_DOANIM: - executeAnimation(npc, currentStop); - return; + executeAnimation(npc, currentStop); + return; case NEXT_ACTION_PATHTONEXT: - pathToNext(npc, currentStop); - return; + pathToNext(npc, currentStop); + return; } lastAction++; if (lastAction > LAST_POSSIBLE_ACTION) @@ -86,8 +80,7 @@ public class city_pathing_npc extends script.base_script } public void doFacingAction(obj_id npc, obj_id currentStop) throws InterruptedException { - int intThingToFace = getIntObjVar(currentStop, "faceto"); - obj_id objThingToFace = utils.stringToObjId("" + intThingToFace); + obj_id objThingToFace = utils.stringToObjId("" + getIntObjVar(currentStop, "faceto")); if (isIdValid(objThingToFace)) { faceTo(npc, objThingToFace); @@ -116,8 +109,7 @@ public class city_pathing_npc extends script.base_script { if (hasObjVar(currentStop, "destination")) { - int destination = getIntObjVar(currentStop, "destination"); - obj_id dest = utils.stringToObjId("" + destination); + obj_id dest = utils.stringToObjId("" + getIntObjVar(currentStop, "destination")); utils.setScriptVar(npc, "pathing.currentStop", dest); pathTo(npc, getLocation(dest)); } @@ -128,16 +120,12 @@ public class city_pathing_npc extends script.base_script } public void checkForFeetGluedToFloor(obj_id self) throws InterruptedException { - location here = getLocation(self); - setObjVar(self, "mightBeStuck", here); + setObjVar(self, "mightBeStuck", getLocation(self)); messageTo(self, "amIStuck", null, 300, false); - return; } public int amIStuck(obj_id self, dictionary params) throws InterruptedException { - location now = getLocation(self); - location here = getLocationObjVar(self, "mightBeStuck"); - if (now.equals(here)) + if (getLocation(self).equals(getLocationObjVar(self, "mightBeStuck"))) { destroyObject(self); } diff --git a/sku.0/sys.server/compiled/game/script/city/city_spawner.java b/sku.0/sys.server/compiled/game/script/city/city_spawner.java old mode 100644 new mode 100755 index 6aa9559f7..0a4552a03 --- a/sku.0/sys.server/compiled/game/script/city/city_spawner.java +++ b/sku.0/sys.server/compiled/game/script/city/city_spawner.java @@ -1,17 +1,6 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; - -import script.library.create; -import script.library.utils; -import script.library.locations; -import script.library.factions; +import script.obj_id; public class city_spawner extends script.base_script { diff --git a/sku.0/sys.server/compiled/game/script/city/city_wander.java b/sku.0/sys.server/compiled/game/script/city/city_wander.java old mode 100644 new mode 100755 index 1cd7a1278..7af5467e3 --- a/sku.0/sys.server/compiled/game/script/city/city_wander.java +++ b/sku.0/sys.server/compiled/game/script/city/city_wander.java @@ -1,123 +1,28 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; +import script.dictionary; +import script.obj_id; -import script.library.ai_lib; - -public class city_wander extends script.base_script +public class city_wander extends script.city.base.base_wander { + public String[] patrolPoints = + { + "city1", + "city2", + "city3", + "city4", + "city5", + "city6" + }; + public city_wander() { - } - public static final String[] patrolPoints = - { - "city1", - "city2", - "city3", - "city4", - "city5", - "city6" - }; - public int OnAttach(obj_id self) throws InterruptedException - { - ai_lib.setDefaultCalmBehavior(self, ai_lib.BEHAVIOR_SENTINEL); - messageTo(self, "pathRandom", null, 1, false); - return SCRIPT_CONTINUE; - } - public int OnInitialize(obj_id self) throws InterruptedException - { - messageTo(self, "pathRandom", null, 1, false); - return SCRIPT_CONTINUE; - } - public int pathRandom(obj_id self, dictionary params) throws InterruptedException - { - ai_lib.setPatrolRandomNamedPath(self, patrolPoints); - return SCRIPT_CONTINUE; - } - public int OnLoiterMoving(obj_id self) throws InterruptedException - { - stop(self); - messageTo(self, "pathRandom", null, 2, false); - return SCRIPT_OVERRIDE; - } - public int OnMovePathComplete(obj_id self) throws InterruptedException - { - messageTo(self, "pathRandom", null, rand(30, 60), false); - return SCRIPT_CONTINUE; - } - public int OnMovePathNotFound(obj_id self) throws InterruptedException - { - if (hasObjVar(self, "checkingFeet")) - { - int checked = getIntObjVar(self, "checkingFeet"); - if (checked > 10) - { - return SCRIPT_CONTINUE; - } - } - messageTo(self, "pathRandom", null, rand(30, 60), false); - checkForFeetGluedToFloor(self); - return SCRIPT_CONTINUE; - } - public void checkForFeetGluedToFloor(obj_id self) throws InterruptedException - { - if (!hasObjVar(self, "checkingFeet")) - { - setObjVar(self, "checkingFeet", 1); - location here = getLocation(self); - setObjVar(self, "mightBeStuck", here); - messageTo(self, "amIStuck", null, 180, false); - return; - } - else - { - int checked = getIntObjVar(self, "checkingFeet"); - checked = checked + 1; - setObjVar(self, "checkingFeet", checked); - if (checked > 10) - { - return; - } - location here = getLocation(self); - setObjVar(self, "mightBeStuck", here); - messageTo(self, "amIStuck", null, 180, false); - return; - } - } - public int amIStuck(obj_id self, dictionary params) throws InterruptedException - { - location now = getLocation(self); - location here = getLocationObjVar(self, "mightBeStuck"); - if (now == null || now.equals(here)) - { - messageTo(self, "killIt", null, 3, false); - } - else - { - messageTo(self, "cleanUpChecks", null, 10, false); - } - return SCRIPT_CONTINUE; + super.patrolPoints = patrolPoints; } public int killIt(obj_id self, dictionary params) throws InterruptedException { LOG("NPC_Cleanup", "NPC: " + self + " at " + getLocation(self) + " has cleaned itself up because it couldn't find anyplace to go, according to the City_Wander script."); - destroyObject(self); - return SCRIPT_CONTINUE; - } - public int cleanUpChecks(obj_id self, dictionary params) throws InterruptedException - { - int checks = getIntObjVar(self, "checkingFeet"); - if (checks > 0) - { - checks = checks - 1; - setObjVar(self, "checkingFeet", checks); - } - return SCRIPT_CONTINUE; + return super.killIt(self, params); } + } diff --git a/sku.0/sys.server/compiled/game/script/city/droid_spawner.java b/sku.0/sys.server/compiled/game/script/city/droid_spawner.java old mode 100644 new mode 100755 index c38bd327e..a1ae88b00 --- a/sku.0/sys.server/compiled/game/script/city/droid_spawner.java +++ b/sku.0/sys.server/compiled/game/script/city/droid_spawner.java @@ -1,16 +1,9 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; - +import script.dictionary; import script.library.create; import script.library.utils; -import script.library.locations; +import script.obj_id; public class droid_spawner extends script.base_script { @@ -41,12 +34,9 @@ public class droid_spawner extends script.base_script { return SCRIPT_OVERRIDE; } - int stringCheck = text.indexOf("max"); - String population = text.substring(text.indexOf(" ") + 1, text.length()); - int maxPop = utils.stringToInt(population); - if (stringCheck > -1) + if (text.contains("max")) { - setObjVar(self, "pop", maxPop); + setObjVar(self, "pop", utils.stringToInt(text.substring(text.indexOf(" ") + 1, text.length()))); } if (text.equals("killall")) { @@ -74,8 +64,6 @@ public class droid_spawner extends script.base_script } public int startSpawning(obj_id self, dictionary params) throws InterruptedException { - obj_id spawner = getSelf(); - int maxPop = getIntObjVar(self, "pop"); if (!hasObjVar(self, "current")) { setObjVar(self, "current", 1); @@ -83,39 +71,32 @@ public class droid_spawner extends script.base_script } else { - int currentPop = getIntObjVar(self, "current"); - if (currentPop <= maxPop) + if (getIntObjVar(self, "current") <= getIntObjVar(self, "pop")) { doSpawn(self); } - else - { - return SCRIPT_OVERRIDE; - } } return SCRIPT_CONTINUE; } public void doSpawn(obj_id self) throws InterruptedException { int currentPop = getIntObjVar(self, "current"); - int maxPop = getIntObjVar(self, "pop"); - location me = getLocation(self); String spawn = npcToSpawn(); - obj_id npc = create.object(spawn, me); + obj_id npc = create.object(spawn, getLocation(self)); + attachScript(npc, "city.droid_wander"); setInvulnerable(npc, true); + setObjVar(self, "spawn." + currentPop, npc); setObjVar(npc, "spawnNum", "spawn." + currentPop); - currentPop = currentPop + 1; - setObjVar(self, "current", currentPop); + setObjVar(self, "current", ++currentPop); + messageTo(self, "startSpawning", null, 10, true); - return; } public void killAll(obj_id self) throws InterruptedException { int increment = 1; - int totalBodies = getIntObjVar(self, "pop"); - while (increment <= totalBodies) + while (increment <= getIntObjVar(self, "pop")) { obj_id npcToKill = getObjIdObjVar(self, "spawn." + increment); if (npcToKill != null) @@ -123,36 +104,34 @@ public class droid_spawner extends script.base_script destroyObject(npcToKill); removeObjVar(self, "spawn." + increment); } - increment = increment + 1; + increment++; } removeObjVar(self, "current"); removeObjVar(self, "spawn"); - return; } public String npcToSpawn() throws InterruptedException { - int choice = rand(1, 6); String spawn = "commoner"; - switch (choice) + switch (rand(1, 6)) { case 1: - spawn = "cll8_binary_load_lifter"; - break; + spawn = "cll8_binary_load_lifter"; + break; case 2: - spawn = "eg6_power_droid"; - break; + spawn = "eg6_power_droid"; + break; case 3: - spawn = "r2"; - break; + spawn = "r2"; + break; case 4: - spawn = "r3"; - break; + spawn = "r3"; + break; case 5: - spawn = "r4"; - break; + spawn = "r4"; + break; case 6: - spawn = "r5"; - break; + spawn = "r5"; + break; } return spawn; } diff --git a/sku.0/sys.server/compiled/game/script/city/droid_wander.java b/sku.0/sys.server/compiled/game/script/city/droid_wander.java old mode 100644 new mode 100755 index b4af96548..180832f44 --- a/sku.0/sys.server/compiled/game/script/city/droid_wander.java +++ b/sku.0/sys.server/compiled/game/script/city/droid_wander.java @@ -1,22 +1,18 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; - +import script.dictionary; import script.library.ai_lib; import script.library.utils; +import script.location; +import script.obj_id; -public class droid_wander extends script.base_script +public class droid_wander extends script.city.base.base_wander { public droid_wander() { + super.patrolPoints = patrolPoints; } - public static final String[] patrolPoints = + public final String[] patrolPoints = { "droid1", "droid2", @@ -29,31 +25,26 @@ public class droid_wander extends script.base_script public static final int PATH_FAILURES_MAXIMUM = 5; public int OnAttach(obj_id self) throws InterruptedException { - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnAttach enter"); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.OnAttach enter"); utils.setScriptVar(self, "path.timeCompleted", getGameTime()); utils.setScriptVar(self, "path.pathFailures", 0); - ai_lib.setDefaultCalmBehavior(self, ai_lib.BEHAVIOR_SENTINEL); - messageTo(self, "pathRandom", null, 1, false); - return SCRIPT_CONTINUE; + return super.OnAttach(self); } public int OnInitialize(obj_id self) throws InterruptedException { - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnInitialize enter name: " + getName(self)); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.OnInitialize enter name: " + getName(self)); utils.setScriptVar(self, "path.timeCompleted", getGameTime()); utils.setScriptVar(self, "path.pathFailures", 0); - messageTo(self, "pathRandom", null, 1, false); - return SCRIPT_CONTINUE; + return super.OnAttach(self); } public int OnLoiterMoving(obj_id self) throws InterruptedException { - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnLoiterMoving enter name: " + getName(self)); - stop(self); - messageTo(self, "pathRandom", null, 2, false); - return SCRIPT_OVERRIDE; + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.OnLoiterMoving enter name: " + getName(self)); + return super.OnLoiterMoving(self); } public int pathRandom(obj_id self, dictionary params) throws InterruptedException { - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.pathRandom enter name: " + getName(self)); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.pathRandom enter name: " + getName(self)); params = new dictionary(); params.put("pathVerifyTime", getGameTime()); messageTo(self, "pathVerify", params, PATH_VERIFICATION_TIME - 1, false); @@ -63,7 +54,7 @@ public class droid_wander extends script.base_script } else { - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.pathRandom setting patrol points"); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.pathRandom setting patrol points"); ai_lib.setPatrolRandomNamedPath(self, patrolPoints); } return SCRIPT_CONTINUE; @@ -77,38 +68,46 @@ public class droid_wander extends script.base_script int timeCompleted = utils.getIntScriptVar(self, "path.timeCompleted"); int lastVerify = utils.getIntScriptVar(self, "path.pathVerifyTime"); int pathFailures = utils.getIntScriptVar(self, "path.pathFailures"); + location lastPathLocation = utils.getLocationScriptVar(self, "path.lastLocation"); + int gameTime = getGameTime(); int pathVerifyTime = params.getInt("pathVerifyTime"); - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.pathVerify enter name: " + getName(self)); + String name = getName(self); + + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.pathVerify enter - name: " + name); if (lastVerify > pathVerifyTime) { return SCRIPT_CONTINUE; } utils.setScriptVar(self, "path.pathVerifyTime", pathVerifyTime); + params = new dictionary(); + params.put("pathVerifyTime", gameTime); + if (timeCompleted + PATH_VERIFICATION_TIME > gameTime) { messageTo(self, "pathVerify", params, PATH_VERIFICATION_TIME - 1, false); return SCRIPT_CONTINUE; } + float distance = utils.getDistance2D(getLocation(self), lastPathLocation); + utils.setScriptVar(self, "path.lastLocation", getLocation(self)); + if (distance > 1.0f) { - utils.setScriptVar(self, "path.timeCompleted", getGameTime()); - utils.setScriptVar(self, "path.pathFailures", 0); - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.pathVerify() found the distance between now and last check to be " + distance + " meters. name: " + getName(self)); + utils.setScriptVar(self, "path.timeCompleted", gameTime); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.pathVerify() found the distance between now and last check to be " + distance + " meters. name: " + name); messageTo(self, "pathVerify", params, PATH_VERIFICATION_TIME - 1, false); return SCRIPT_CONTINUE; } if (pathFailures > PATH_FAILURES_MAXIMUM) { - LOG("guard_wander", "Patrol pathfinding failures exceeded (5). Stopping self: " + self + " getName: " + getName(self) + " at " + getLocation(self)); + LOG("droid_wander", "Patrol pathfinding failures exceeded (5). Stopping self: " + self + " getName: " + name + " at " + getLocation(self)); stop(self); utils.setScriptVar(self, "path.timeCompleted", getGameTime()); - utils.setScriptVar(self, "path.pathFailures", 0); messageTo(self, "pathRandom", params, 600, false); return SCRIPT_CONTINUE; } @@ -117,23 +116,22 @@ public class droid_wander extends script.base_script ai_lib.resumeFormationFollowing(self); return SCRIPT_CONTINUE; } - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.pathVerify() messaging pathRandom() for " + getName(self) + " pathFailures: " + pathFailures); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.pathVerify() messaging pathRandom() for " + name + " pathFailures: " + pathFailures); pathFailures++; utils.setScriptVar(self, "path.pathFailures", pathFailures); messageTo(self, "pathRandom", params, 3, false); + return SCRIPT_CONTINUE; } public int OnMovePathComplete(obj_id self) throws InterruptedException { - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnMovePathComplete enter name: " + getName(self)); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.OnMovePathComplete enter name: " + getName(self)); utils.setScriptVar(self, "path.timeCompleted", getGameTime()); - utils.setScriptVar(self, "path.pathFailures", 0); - messageTo(self, "pathRandom", null, rand(30, 60), false); - return SCRIPT_CONTINUE; + return super.OnMovePathComplete(self); } public int OnMovePathNotFound(obj_id self) throws InterruptedException { - LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnMovePathNotFound enter name: " + getName(self)); + LOGC(aiLoggingEnabled(self), "debug_ai", "droid_wander.OnMovePathNotFound enter name: " + getName(self)); messageTo(self, "pathRandom", null, rand(30, 60), false); return SCRIPT_CONTINUE; } diff --git a/sku.0/sys.server/compiled/game/script/city/guard_spawner.java b/sku.0/sys.server/compiled/game/script/city/guard_spawner.java old mode 100644 new mode 100755 index d4e94b5d1..27fd9c15a --- a/sku.0/sys.server/compiled/game/script/city/guard_spawner.java +++ b/sku.0/sys.server/compiled/game/script/city/guard_spawner.java @@ -1,18 +1,11 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; +import script.dictionary; +import script.library.*; +import script.location; +import script.obj_id; -import script.library.ai_lib; -import script.library.create; -import script.library.utils; -import script.library.locations; -import script.library.gcw; +import java.util.Vector; public class guard_spawner extends script.base_script { @@ -318,6 +311,7 @@ public class guard_spawner extends script.base_script } } } + float imp_r = gcw.getImperialPercentileByRegion(self); float reb_r = gcw.getRebelPercentileByRegion(self); if (imp_r >= reb_r) diff --git a/sku.0/sys.server/compiled/game/script/city/guard_wander.java b/sku.0/sys.server/compiled/game/script/city/guard_wander.java old mode 100644 new mode 100755 index d6d8f598b..452dfbc19 --- a/sku.0/sys.server/compiled/game/script/city/guard_wander.java +++ b/sku.0/sys.server/compiled/game/script/city/guard_wander.java @@ -1,30 +1,27 @@ package script.city; -import script.*; -import script.base_class.*; -import script.combat_engine.*; -import java.util.Arrays; -import java.util.Hashtable; -import java.util.Vector; -import script.base_script; - +import script.dictionary; import script.library.ai_lib; import script.library.utils; +import script.location; +import script.obj_id; -public class guard_wander extends script.base_script +public class guard_wander extends script.city.base.base_wander { + public static final String[] patrolPoints = + { + "patrol1", + "patrol2", + "patrol3", + "patrol4", + "patrol5", + "patrol6" + }; public guard_wander() { + super.patrolPoints = patrolPoints; } - public static final String[] patrolPoints = - { - "patrol1", - "patrol2", - "patrol3", - "patrol4", - "patrol5", - "patrol6" - }; + public static final int PATH_VERIFICATION_TIME = 30; public static final int PATH_FAILURES_MAXIMUM = 5; public int OnAttach(obj_id self) throws InterruptedException @@ -32,25 +29,20 @@ public class guard_wander extends script.base_script LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnAttach enter"); utils.setScriptVar(self, "path.timeCompleted", getGameTime()); utils.setScriptVar(self, "path.pathFailures", 0); - ai_lib.setDefaultCalmBehavior(self, ai_lib.BEHAVIOR_SENTINEL); - messageTo(self, "pathRandom", null, 1, false); removeObjVar(self, "combat.intCombatXP"); - return SCRIPT_CONTINUE; + return super.OnAttach(self); } public int OnInitialize(obj_id self) throws InterruptedException { LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnInitialize enter name: " + getName(self)); utils.setScriptVar(self, "path.timeCompleted", getGameTime()); utils.setScriptVar(self, "path.pathFailures", 0); - messageTo(self, "pathRandom", null, 1, false); - return SCRIPT_CONTINUE; + return super.OnInitialize(self); } public int OnLoiterMoving(obj_id self) throws InterruptedException { LOGC(aiLoggingEnabled(self), "debug_ai", "guard_wander.OnLoiterMoving enter name: " + getName(self)); - stop(self); - messageTo(self, "pathRandom", null, 2, false); - return SCRIPT_OVERRIDE; + return super.OnLoiterMoving(self); } public int pathRandom(obj_id self, dictionary params) throws InterruptedException {