// ====================================================================== 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; // ====================================================================== // Hello World 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; } // ----------------------------------------------------------------------