mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-13 22:01:04 -04:00
920 lines
42 KiB
Java
Executable File
920 lines
42 KiB
Java
Executable File
package script.test;
|
|
|
|
import script.*;
|
|
import script.library.prose;
|
|
import script.library.sui;
|
|
import script.library.utils;
|
|
|
|
public class mboudreaux_test extends script.base.remote_object_requester
|
|
{
|
|
public mboudreaux_test()
|
|
{
|
|
}
|
|
public static final String FINISH_PLANET = "tatooine";
|
|
public static final float FINISH_X = 3528.0f;
|
|
public static final float FINISH_Z = -4804.0f;
|
|
public static final String PGC_QUEST_CONTROL_DEVICE = "object/intangible/saga_system/sage_intangible_holocron.iff";
|
|
public static final int PQ_TASK_FINISHED = 2;
|
|
public static final int PQ_TASK_INACTIVE = 4;
|
|
public int OnSpeaking(obj_id self, String text) throws InterruptedException
|
|
{
|
|
if (true)
|
|
{
|
|
java.util.StringTokenizer tok = new java.util.StringTokenizer(text);
|
|
if (tok.hasMoreTokens())
|
|
{
|
|
String command = tok.nextToken();
|
|
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();
|
|
String value = tok.nextToken();
|
|
long lValue = Long.parseLong(value);
|
|
obj_id target = getObjIdWithNull(lValue);
|
|
int iterations = 1000;
|
|
if (tok.hasMoreTokens())
|
|
{
|
|
value = tok.nextToken();
|
|
iterations = Integer.parseInt(value);
|
|
}
|
|
for (int j = 0; j < rounds; ++j)
|
|
{
|
|
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", cacheValue);
|
|
for (int i = 0; i < iterations; ++i)
|
|
{
|
|
boolean cache = localDict.getBoolean("cachedCanSee");
|
|
localDict.remove("cachedCanSee");
|
|
localDict.put("cachedCanSee", cache);
|
|
}
|
|
long endTimeLocalCache = queryPerformanceCounter();
|
|
totalCanSee += (float)(endTimeCanSee - startTimeCanSee) / (float)frequency;
|
|
totalCached += (float)(endTimeLocalCache - startTimeLocalCache) / (float)frequency;
|
|
}
|
|
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");
|
|
final 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");
|
|
final 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");
|
|
final 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");
|
|
final obj_id target = getIntendedTarget(self);
|
|
addMissionCriticalObject(self, target);
|
|
}
|
|
else if (command.equalsIgnoreCase("mb_triggerRadius"))
|
|
{
|
|
debugConsoleMsg(self, "Hit mb_triggerRadius");
|
|
final 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;
|
|
}
|
|
public int tableHandler(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
debugConsoleMsg(self, "handler hit. Params = " + params);
|
|
debugConsoleMsg(self, "Visual Index = " + sui.getTableSelectedRow(params) + " Logic Index = " + sui.getTableLogicalIndex(params));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnAttach(obj_id self) throws InterruptedException
|
|
{
|
|
if (!isGod(self) || getGodLevel(self) < 50 || !isPlayer(self)) {
|
|
detachScript(self, "test.mboudreaux_test");
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int startPerform(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int stopPerform(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnCreateSaga(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
debugConsoleMsg(self, "Params = " + params.toString());
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnRatingFinished(obj_id self, int rating) throws InterruptedException
|
|
{
|
|
debugConsoleMsg(self, "OnRatingFinished: Params = " + rating);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnAbandonPlayerQuest(obj_id self, obj_id playerQuest) throws InterruptedException
|
|
{
|
|
debugConsoleMsg(self, "OnAbandonPlayerQuest: Params = " + playerQuest);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|