mirror of
https://bitbucket.org/seefoe/dsrc.git
synced 2026-07-31 01:15:55 -04:00
1055 lines
28 KiB
Plaintext
1055 lines
28 KiB
Plaintext
// ======================================================================
|
|
|
|
include library.ai_lib;
|
|
include library.create;
|
|
include library.groundquests;
|
|
include library.locations;
|
|
include library.pclib;
|
|
include library.skill;
|
|
include library.space_quest;
|
|
include library.space_utils;
|
|
include library.static_item;
|
|
include library.utils;
|
|
include library.weapons;
|
|
include library.chat;
|
|
include library.npe;
|
|
include library.xp;
|
|
include library.dump;
|
|
include library.combat;
|
|
include library.sui;
|
|
include library.regions;
|
|
include library.prose;
|
|
|
|
inherits base.remote_object_requester;
|
|
|
|
// ======================================================================
|
|
const string FINISH_PLANET = "tatooine";
|
|
const float FINISH_X = 3528.0f;
|
|
const float FINISH_Z = -4804.0f;
|
|
const string PGC_QUEST_CONTROL_DEVICE = "object/intangible/saga_system/sage_intangible_holocron.iff";
|
|
const int PQ_TASK_FINISHED = 2; // This is value comes from the comments in base_class.java
|
|
const int PQ_TASK_INACTIVE = 4;
|
|
// ======================================================================
|
|
|
|
trigger OnSpeaking(String text)
|
|
{
|
|
if (true) //isGod(self))
|
|
{
|
|
//debugConsoleMsg( self, "mboudreaux_test OnSpeaking: " + text );
|
|
|
|
java.util.StringTokenizer tok = new java.util.StringTokenizer (text);
|
|
|
|
if (tok.hasMoreTokens ())
|
|
{
|
|
String command = tok.nextToken ();
|
|
|
|
//debugConsoleMsg( self, "command is: " + command);
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
if(command.equalsIgnoreCase ("mb_performance"))
|
|
{
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
int rounds = 50;
|
|
float totalCanSee = 0;
|
|
float totalCached = 0;
|
|
|
|
long frequency = queryPerformanceCounterFrequency();
|
|
|
|
if(frequency == 0L)
|
|
frequency = 1L;
|
|
|
|
dictionary localDict = new dictionary();
|
|
//for(int i = 0; i < 500; ++i)
|
|
// localDict.put("cachedCanSeeDummy" + i, true);
|
|
|
|
//int randAdd = rand(0, 100);
|
|
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
obj_id target = getObjIdWithNull(lValue);
|
|
int iterations = 1000;
|
|
// Optional Iterations param
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
value = tok.nextToken();
|
|
iterations = Integer.parseInt(value);
|
|
}
|
|
|
|
|
|
for(int j = 0; j < rounds; ++j)
|
|
{
|
|
// Target
|
|
|
|
long startTimeCanSee = queryPerformanceCounter();
|
|
for(int i = 0; i < iterations; ++i)
|
|
{
|
|
boolean ret = canSee(self, target);
|
|
}
|
|
long endTimeCanSee = queryPerformanceCounter();
|
|
|
|
|
|
long startTimeLocalCache = queryPerformanceCounter();
|
|
|
|
boolean cacheValue = canSee(self, target);
|
|
|
|
localDict.put("cachedCanSee"/* + randAdd*/, cacheValue);
|
|
|
|
for(int i = 0; i < iterations; ++i)
|
|
{
|
|
boolean cache = localDict.getBoolean("cachedCanSee"/*+ randAdd*/);
|
|
localDict.remove("cachedCanSee"/*+ randAdd*/);
|
|
localDict.put("cachedCanSee"/*+ randAdd*/, cache);
|
|
|
|
}
|
|
long endTimeLocalCache = queryPerformanceCounter();
|
|
|
|
totalCanSee += (float)(endTimeCanSee - startTimeCanSee) / (float)frequency;
|
|
totalCached += (float)(endTimeLocalCache - startTimeLocalCache) / (float)frequency;
|
|
}
|
|
|
|
//debugConsoleMsg(self, "Iterations = " + iterations + " canSee Time: " + (endTimeCanSee - startTimeCanSee) + " cached Time:" + (endTimeLocalCache - startTimeLocalCache));
|
|
debugConsoleMsg(self, "Average Times for " + rounds + " of " + iterations + " iterations each were: canSee (" + totalCanSee + "), Java Cache ("+ totalCached + ")");
|
|
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
|
|
}
|
|
|
|
if(command.equalsIgnoreCase("mb_addObjectEffect"))
|
|
{
|
|
vector vec = new vector(0.0f, 0.0f, 0.0f);
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
string object = tok.nextToken();
|
|
string filename = tok.nextToken();
|
|
string scale = tok.nextToken();
|
|
string label = tok.nextToken();
|
|
|
|
float scaleFloat = Float.parseFloat(scale);
|
|
long object_id = Long.parseLong(object);
|
|
|
|
addObjectEffect(getObjIdWithNull(object_id), filename, "head", vec, scaleFloat, label);
|
|
}
|
|
else
|
|
{
|
|
addObjectEffect(self, "appearance/pt_green_fire_base.prt", "head", vec, 0.25f, "TestGreenFire");
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
if(command.equalsIgnoreCase("mb_removeObjectEffect"))
|
|
{
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
string object = tok.nextToken();
|
|
string label = tok.nextToken();
|
|
|
|
long object_id = Long.parseLong(object);
|
|
|
|
removeObjectEffect(getObjIdWithNull(object_id), label);
|
|
}
|
|
else
|
|
{
|
|
removeObjectEffect(self, "TestGreenFire");
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
|
|
}
|
|
|
|
if(command.equalsIgnoreCase("mb_hasObjectEffect"))
|
|
{
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
string object = tok.nextToken();
|
|
string label = tok.nextToken();
|
|
|
|
long object_id = Long.parseLong(object);
|
|
|
|
debugConsoleMsg(self, "Has Effect = " + hasObjectEffect(getObjIdWithNull(object_id), label));
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "Has Effect = " + hasObjectEffect(self, "TestGreenFire"));
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
|
|
}
|
|
|
|
if (command.equalsIgnoreCase ("mb_stand"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_stand");
|
|
|
|
setPosture(self, POSTURE_UPRIGHT);
|
|
|
|
}
|
|
|
|
if ( command.equalsIgnoreCase ("mb_warp"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_warp");
|
|
|
|
warpPlayer(self, FINISH_PLANET, FINISH_X, 0, FINISH_Z, null, 0.0f, 0.0f, 0.0f, null, false);
|
|
}
|
|
|
|
if ( command.equalsIgnoreCase ("mb_goodloc"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_goodloc");
|
|
|
|
location locLowerLeft = new location();
|
|
locLowerLeft.x = 200+20;
|
|
locLowerLeft.z = 200+20;
|
|
|
|
location locUpperRight = new location();
|
|
locUpperRight.x = 200+40;
|
|
locUpperRight.z = 200+40;
|
|
|
|
location goodLoc = getGoodLocationAvoidCollidables(15.0f, 15.0f, locLowerLeft, locUpperRight, false, false, 5.0f);
|
|
|
|
if(goodLoc == null)
|
|
{
|
|
debugConsoleMsg(self, "did NOT find goodLocation");
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "did find goodlocation");
|
|
}
|
|
|
|
}
|
|
if ( command.equalsIgnoreCase ("mb_acklay"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_acklay");
|
|
|
|
debugConsoleMsg(self, "It's morphing time!");
|
|
|
|
setObjectAppearance(self, "object/mobile/shared_mutant_acklay.iff");
|
|
}
|
|
if ( command.equalsIgnoreCase ("mb_rancor"))
|
|
{
|
|
|
|
debugConsoleMsg(self, "hit mb_rancor");
|
|
|
|
debugConsoleMsg(self, "It's morphing time!");
|
|
|
|
setObjectAppearance(self, "object/mobile/shared_mutant_rancor.iff");
|
|
}
|
|
if ( command.equalsIgnoreCase ("mb_boba"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_boba");
|
|
|
|
debugConsoleMsg(self, "It's morphing time!");
|
|
|
|
setObjectAppearance(self, "object/mobile/shared_boba_fett.iff");
|
|
}
|
|
if( command.equalsIgnoreCase ("mb_revert"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_revert");
|
|
|
|
revertObjectAppearance(self);
|
|
}
|
|
if( command.equalsIgnoreCase ("mb_states"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_states");
|
|
|
|
debugConsoleMsg(self, "Disguised State: " + getState(self, 35));
|
|
|
|
debugConsoleMsg(self, "Acid Burned State: " + getState(self, 38));
|
|
|
|
debugConsoleMsg(self, "Energy Burned State: " + getState(self, 39));
|
|
}
|
|
if( command.equalsIgnoreCase ("mb_acidBurned"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_acidBurned");
|
|
|
|
int active = getState(self, 38);
|
|
if(active == 0)
|
|
{
|
|
setState(self, 38, true);
|
|
}
|
|
else
|
|
{
|
|
setState(self, 38, false);
|
|
}
|
|
}
|
|
if( command.equalsIgnoreCase ("mb_energyBurned"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_energyBurned");
|
|
|
|
int active = getState(self, 39);
|
|
if(active == 0)
|
|
{
|
|
setState(self, 39, true);
|
|
}
|
|
else
|
|
{
|
|
setState(self, 39, false);
|
|
}
|
|
}
|
|
if( command.equalsIgnoreCase ("mb_helmetbackpack"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_helmetbackpack");
|
|
|
|
debugConsoleMsg(self, "Helmet: " + isPlayerHelmetHidden(self));
|
|
|
|
debugConsoleMsg(self, "Backpack: " + isPlayerBackpackHidden(self));
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_ticket"))
|
|
{
|
|
enterClientTicketPurchaseMode(self, "tatooine", "Starport", false);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_clientProjectileObjToObj"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_clientProjectileObjToObj");
|
|
const obj_id target = getIntendedTarget(self);
|
|
|
|
if (isValidId(target))
|
|
{
|
|
createClientProjectileObjectToObject(self, "object/weapon/ranged/pistol/shared_pistol_dl44.iff", self, "hold_r", target, "hold_l", 30.0f, 4.0f, true, 255, 0, 0, 255);
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_clientProjectileLocToObj"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_clientProjectileLocToObj");
|
|
const obj_id target = getIntendedTarget(self);
|
|
|
|
if (isValidId(target))
|
|
{
|
|
createClientProjectileLocationToObject(self, "object/weapon/ranged/pistol/shared_pistol_dl44.iff", getLocation(self), target, "hold_l", 30.0f, 4.0f, true, 255, 0, 0, 255);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_clientProjectileObjToLoc"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_clientProjectileObjToLoc");
|
|
const obj_id target = getIntendedTarget(self);
|
|
|
|
if (isValidId(target))
|
|
{
|
|
createClientProjectileObjectToLocation(self, "object/weapon/ranged/pistol/shared_pistol_dl44.iff", self, "hold_r", getLocation(target), 30.0f, 4.0f, true, 255, 0, 0, 255);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_override"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_override");
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String action = tok.nextToken();
|
|
|
|
overrideDefaultAttack(self, action);
|
|
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_clearoverride"))
|
|
{
|
|
debugConsoleMsg(self, "hit mb_clearoverride");
|
|
|
|
removeDefaultAttackOverride(self);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_getoverride"))
|
|
{
|
|
debugConsoleMsg(self, "Current override: " + getDefaultAttackOverrideActionName(self) );
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_setMC"))
|
|
{
|
|
debugConsoleMsg(self, "Hit mb_setMC");
|
|
|
|
const obj_id target = getIntendedTarget(self);
|
|
addMissionCriticalObject(self, target);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_triggerRadius"))
|
|
{
|
|
debugConsoleMsg(self, "Hit mb_triggerRadius");
|
|
|
|
const obj_id target = getIntendedTarget(self);
|
|
|
|
updateNetworkTriggerVolume(target, 512.0f);
|
|
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_hologram"))
|
|
{
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
int intValue = Integer.parseInt(value);
|
|
|
|
obj_id target = getIntendedTarget(self);
|
|
|
|
setHologramType(target, intValue);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_isContainedByPA"))
|
|
{
|
|
obj_id target = null;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
target = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(!isIdValid(target))
|
|
return SCRIPT_CONTINUE;
|
|
|
|
debugConsoleMsg(self, "isContainedByPlayerAppearanceInv: " + isContainedByPlayerAppearanceInventory(self, target));
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_getAllPAItems"))
|
|
{
|
|
obj_id [] allItems = getAllItemsFromAppearanceInventory(self);
|
|
|
|
debugConsoleMsg(self, "Found " + allItems.length + " total items.");
|
|
|
|
for(int i = 0; i < allItems.length; ++i)
|
|
{
|
|
debugConsoleMsg(self, "Item [" + i + "] " + allItems[i]);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_animate"))
|
|
{
|
|
obj_id target = getIntendedTarget(self);
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
doAnimationAction(target, value);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_custom"))
|
|
{
|
|
obj_id target = null;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
target = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
custom_var[] allVars = getAllCustomVars(target);
|
|
|
|
debugConsoleMsg(self, "Var length = " + allVars.length );
|
|
|
|
if(allVars.length == 1)
|
|
openCustomizationWindow(self, target, allVars[0].getVarName(), -1, -1, "", -1, -1, "", -1, -1, "", -1, -1);
|
|
else if (allVars.length == 2)
|
|
openCustomizationWindow(self, target, allVars[0].getVarName(), 0, 10, allVars[1].getVarName(), -1, -1, "", -1, -1, "", -1, -1);
|
|
else if (allVars.length == 3)
|
|
openCustomizationWindow(self, target, allVars[0].getVarName(), -1, -1, allVars[1].getVarName(), -1, -1, allVars[2].getVarName(), -1, -1, "", -1, -1);
|
|
else if (allVars.length == 4)
|
|
openCustomizationWindow(self, target, allVars[0].getVarName(), -1, -1, allVars[1].getVarName(), -1, -1, allVars[2].getVarName(), -1, -1, allVars[3].getVarName(), -1, -1);
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_table"))
|
|
{
|
|
String type = "";
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
type = tok.nextToken();
|
|
}
|
|
|
|
if(type.equalsIgnoreCase("column"))
|
|
{
|
|
string title = "My Guild";
|
|
string prompt = "This is my prompt. Text is going in here!";
|
|
string[] colTitles = {"Name", "Guild Rank", "PvP Kills", "Last Login Date"};
|
|
string[] colTypes = {"text", "text", "integer", "text"};
|
|
string[][] data = {{"PlayerA", "PlayerB", "PlayerC", "PlayerD", "PlayerE"},
|
|
{"Awesome Dude", "Great Dude", "Okay Dude", "Meh Dude", "Poor Dude"},
|
|
{"200", "150", "100", "50", "0"},
|
|
{"01/04/2009", "01/03/2009", "01/02/2009", "01/01/2009", "01/05/2009"}};
|
|
int id = sui.table(self, self, sui.OK_CANCEL, title, "tableHandler", prompt, colTitles, colTypes, data, false, true);
|
|
debugConsoleMsg(self, "Table PID is " + id);
|
|
}
|
|
else if (type.equalsIgnoreCase("row"))
|
|
{
|
|
string title = "My Table";
|
|
string [] colTitles = {"Name", "Weight", "BMI", "BMI"};
|
|
string [] colTypes = {"text", "integer", "percent", "text"};
|
|
string [][] data = {{"John", "180", "12", "12"},
|
|
{"Steve","190", "20", "12"},
|
|
{"Andy", "230", "40", "12"}};
|
|
|
|
int id = sui.table(self, self, sui.OK_CANCEL, title, "tableHandler", null, colTitles, colTypes, data, true, false);
|
|
debugConsoleMsg(self, "Table PID is " + id);
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_holiday"))
|
|
{
|
|
obj_id target = getIntendedTarget(self);
|
|
|
|
if(isIdValid(target))
|
|
setCondition(target, CONDITION_HOLIDAY_INTERESTING);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_addAccess"))
|
|
{
|
|
obj_id target = getIntendedTarget(self);
|
|
|
|
obj_id user = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
user = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(isIdValid(target))
|
|
addUserToAccessList(target, user);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_addGuildAccess"))
|
|
{
|
|
debugConsoleMsg(self, "Hit mb_addGuildAccess");
|
|
obj_id target = getIntendedTarget(self);
|
|
|
|
int lValue = 0;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
lValue = Integer.parseInt(value);
|
|
|
|
debugConsoleMsg(self, "Parsed out guild value of " + lValue);
|
|
}
|
|
|
|
if(isIdValid(target))
|
|
{
|
|
debugConsoleMsg(self, "Adding Guild " + lValue + " to object " + target);
|
|
addGuildToAccessList(target, lValue);
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_removeAccess"))
|
|
{
|
|
obj_id target = getIntendedTarget(self);
|
|
|
|
obj_id user = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
user = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(isIdValid(target))
|
|
removeUserFromAccessList(target, user);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_clearAccess"))
|
|
{
|
|
obj_id target = getIntendedTarget(self);
|
|
|
|
if(isIdValid(target))
|
|
clearUserAccessList(target);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_getUserAccess"))
|
|
{
|
|
obj_id [] items = getUserAccessList(getIntendedTarget(self));
|
|
if(items != null && items.length > 0)
|
|
{
|
|
for(int i = 0; i < items.length; ++i)
|
|
debugConsoleMsg(self, "User: " + items[i]);
|
|
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_getGuildAccess"))
|
|
{
|
|
int [] items = getGuildAccessList(getIntendedTarget(self));
|
|
if(items != null && items.length > 0)
|
|
{
|
|
for(int i = 0; i < items.length; ++i)
|
|
debugConsoleMsg(self, "Guild: " + items[i]);
|
|
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_getObjects"))
|
|
{
|
|
obj_id [] items = getObjectsInRange(self, 64.0f);
|
|
if(items != null && items.length > 0)
|
|
{
|
|
for(int i = 0; i < items.length; ++i)
|
|
debugConsoleMsg(self, "Object in range: " + items[i]);
|
|
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_getCreatureObjects"))
|
|
{
|
|
obj_id [] items = getCreaturesInRange(self, 64.0f);
|
|
if(items != null && items.length > 0)
|
|
{
|
|
for(int i = 0; i < items.length; ++i)
|
|
debugConsoleMsg(self, "Creature Object in range: " + items[i]);
|
|
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_loc"))
|
|
{
|
|
obj_id user = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
user = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
location myLoc = getLocation(user);
|
|
|
|
debugConsoleMsg(self, "Location Info: " + myLoc);
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_dynamic"))
|
|
{
|
|
location myLoc = getLocation(self);
|
|
|
|
debugConsoleMsg(self, "Attempting to create dynamic spawn at " + myLoc);
|
|
|
|
obj_id newRegion = createCircleRegionWithSpawn(myLoc, 50.0f, "mboudreaux2", 0, 0, 0, 0, 10, 20, 1, 0, true, false, "datatables/dynamic_region_spawns/banthatest.iff", 3);
|
|
|
|
debugConsoleMsg(self, "New Region = " + newRegion);
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_removedynamic"))
|
|
{
|
|
region[] regionsHere = getRegionsAtPoint(getLocation(self));
|
|
if ( regionsHere != null && regionsHere.length > 0 )
|
|
{
|
|
for ( int i = 0; i < regionsHere.length; i++ )
|
|
{
|
|
region currentRegion = regionsHere[i];
|
|
string regionName = currentRegion.getName();
|
|
|
|
if(regionName.equals("mboudreaux2"))
|
|
{
|
|
debugConsoleMsg(self, "Found region, removing it");
|
|
deleteRegion(currentRegion);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_pq"))
|
|
{
|
|
obj_id entry = createPlayerQuestObjectInInventory(self);
|
|
if(isIdValid(entry))
|
|
{
|
|
setPlayerQuestTitle(entry, "Matt's Super Kill Extravaganza");
|
|
setPlayerQuestDescription(entry, "Kill lots of stuff. For fun!");
|
|
setPlayerQuestDifficulty(entry, 90);
|
|
}
|
|
debugConsoleMsg(self, "PQ OID: " + entry);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_addTask"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
boolean returnVal = false;
|
|
if(tok.hasMoreTokens())
|
|
returnVal = addPlayerQuestTask(pq, "Matt's Kill Task", "I hate kreetles! Go kill 10 of them!", 10, getLocation(self));
|
|
else
|
|
returnVal = addPlayerQuestTask(pq, "Matt's Kill Task", "I hate kreetles! Go kill 10 of them!", 10, null);
|
|
|
|
debugConsoleMsg(self, "Added task = " + returnVal);
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_getTasks"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
String[] tasks = getPlayerQuestTasks(pq);
|
|
if(tasks != null && tasks.length > 0)
|
|
{
|
|
for(int i = 0; i < tasks.length; ++i)
|
|
debugConsoleMsg(self, "Task " + i + ":" + tasks[i]);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_taskStatus"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
int iValue = Integer.parseInt(value);
|
|
|
|
debugConsoleMsg(self, "Status for Index " + iValue + " is " + getPlayerQuestTaskStatus(pq, iValue));
|
|
|
|
}
|
|
else
|
|
{
|
|
int[] status = getAllPlayerQuestTaskStatus(pq);
|
|
if(status != null && status.length > 0)
|
|
{
|
|
for(int i = 0; i < status.length; ++i)
|
|
debugConsoleMsg(self, "Task " + i + " status = " + status[i]);
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_pqLevel"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
int iValue = Integer.parseInt(value);
|
|
|
|
|
|
setPlayerQuestDifficulty(pq, iValue);
|
|
debugConsoleMsg(self, "Level for PQ " + pq + " is now " + iValue);
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_pqActivate"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
else
|
|
return SCRIPT_CONTINUE;
|
|
|
|
obj_id datapad = utils.getPlayerDatapad(self);
|
|
if(isIdValid(datapad))
|
|
{
|
|
obj_id controlDevice = createObject(PGC_QUEST_CONTROL_DEVICE, datapad, "");
|
|
if(isIdValid(controlDevice))
|
|
{
|
|
putIn(pq, controlDevice, self);
|
|
debugConsoleMsg(self, "PQ Activated");
|
|
|
|
}
|
|
else
|
|
debugConsoleMsg(self, "Failed to create PQ control device.");
|
|
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_pqCounter"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
int index = Integer.parseInt(value);
|
|
|
|
value = tok.nextToken();
|
|
int iValue = Integer.parseInt(value);
|
|
|
|
|
|
setPlayerQuestTaskCounter(pq, index, iValue);
|
|
debugConsoleMsg(self, "Level for PQ " + pq + " is now " + iValue);
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_pqWaypoint"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
int index = Integer.parseInt(value);
|
|
|
|
debugConsoleMsg(self, "Waypoint for index " + index + " is " + getPlayerQuestWaypoint(pq, index));
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_pqComplete"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
int index = Integer.parseInt(value);
|
|
|
|
debugConsoleMsg(self, "Marking PQ Task " + index + " as completed.");
|
|
setPlayerQuestTaskStatus(pq, index, PQ_TASK_FINISHED);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_pqInactive"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
int index = Integer.parseInt(value);
|
|
|
|
debugConsoleMsg(self, "Marking PQ Task " + index + " as inactive.");
|
|
setPlayerQuestTaskStatus(pq, index, PQ_TASK_INACTIVE);
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_rating"))
|
|
{
|
|
openRatingWindow(self, "Some Title", "Some Description!");
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_recipe"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
else
|
|
return SCRIPT_CONTINUE;
|
|
|
|
setPlayerQuestRecipe(pq, true);
|
|
|
|
debugConsoleMsg(self, "PQ Recipe set.");
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_addRecipeData"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
}
|
|
else
|
|
return SCRIPT_CONTINUE;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String data = tok.nextToken();
|
|
|
|
addPlayerQuestTaskRecipeData(pq, data);
|
|
|
|
debugConsoleMsg(self, "Recipe data added.");
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_filter"))
|
|
{
|
|
debugConsoleMsg(self, filterText(text));
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_editRecipe"))
|
|
{
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
|
|
openPlayerQuestRecipe(self, pq);
|
|
|
|
}
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_resetRecipe"))
|
|
{
|
|
|
|
obj_id pq = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
|
|
pq = getObjIdWithNull(lValue);
|
|
|
|
resetAllPlayerQuestData(pq);
|
|
|
|
setPlayerQuestTitle(pq, "Matt's Super Kill Extravaganza");
|
|
setPlayerQuestDescription(pq, "Kill lots of stuff. For fun!");
|
|
setPlayerQuestDifficulty(pq, 90);
|
|
addPlayerQuestTask(pq, "Matt's Kill Task", "I hate kreetles! Go kill 10 of them!", 10, null);
|
|
setPlayerQuestCreator(pq, self);
|
|
|
|
}
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_commTest"))
|
|
{
|
|
string message_string = "\\#FF0000Hi %NT also known as %TT";
|
|
|
|
prose_package pp = new prose_package ();
|
|
string_id message_base = new string_id ("saga_system","holocron_string_message");
|
|
pp = prose.getPackage(message_base, self, self);
|
|
prose.setTO(pp, message_string);
|
|
prose.setTT(pp, self);
|
|
|
|
string appearance = "object/mobile/boba_fett.iff";
|
|
|
|
commPlayerQuest(self, self, pp, appearance);
|
|
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_gots"))
|
|
{
|
|
debugConsoleMsg(self, "GOT_chronicles_relic = " + GOT_chronicles_relic);
|
|
debugConsoleMsg(self, "GOT_chronicles_chronicle = " + GOT_chronicles_chronicle);
|
|
debugConsoleMsg(self, "GOT_chronicles_quest_holocron = " + GOT_chronicles_quest_holocron);
|
|
debugConsoleMsg(self, "GOT_chornicles_quest_holocron_recipe = " + GOT_chronicles_quest_holocron_recipe);
|
|
debugConsoleMsg(self, "GOT_chronicles_relic_fragment = " + GOT_chronicles_relic_fragment);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler tableHandler()
|
|
{
|
|
debugConsoleMsg(self, "handler hit. Params = " + params);
|
|
|
|
debugConsoleMsg(self, "Visual Index = " + sui.getTableSelectedRow(params) + " Logic Index = " + sui.getTableLogicalIndex(params));
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
|
|
trigger OnAttach()
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
|
|
|
|
messageHandler startPerform()
|
|
{
|
|
//LOG("QUEST_DEBUG", "startPerform");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler stopPerform()
|
|
{
|
|
//LOG("QUEST_DEBUG", "stopPerform");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler OnCreateSaga()
|
|
{
|
|
debugConsoleMsg(self, "Params = " + params.toString());
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnRatingFinished(int rating)
|
|
{
|
|
debugConsoleMsg(self, "OnRatingFinished: Params = " + rating);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
|
|
trigger OnAbandonPlayerQuest(obj_id playerQuest)
|
|
{
|
|
debugConsoleMsg(self, "OnAbandonPlayerQuest: Params = " + playerQuest);
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
// ----------------------------------------------------------------------
|
|
|