/***** INCLUDES ********************************************************/ include library.player_structure; include library.sui; include library.utils; /***** LOGGING *********************************************************/ const string TERMINAL_LOGGING = "special_sign"; const boolean LOGGING_ON = true; messageHandler handleCloseSui() { if ( params == null || params.isEmpty() ) return SCRIPT_CONTINUE; int pid = params.getInt("pid"); if ( pid > -1 ) forceCloseSUIPage(pid); return SCRIPT_CONTINUE; } messageHandler handleSetSuiAssociate() { //debugSpeakMsg(self, "handleSetSuiAssociate: entered..."); if ( params == null || params.isEmpty() ) return SCRIPT_CONTINUE; int pid = params.getInt("pid"); if ( pid < 0 ) return SCRIPT_CONTINUE; obj_id associate = params.getObjId("associate"); if ( !isIdValid(associate) ) return SCRIPT_CONTINUE; float range = params.getFloat("range"); if ( range < 0f ) return SCRIPT_CONTINUE; //debugSpeakMsg(self, "handleSetSuiAssociate: set pid = " + pid + " associate = " + associate + " range = " + range); setSUIAssociatedObject(pid, associate); setSUIMaxRangeToObject(pid, range); return SCRIPT_CONTINUE; } messageHandler handleDecorTypeSelect() { if(params == null || params.isEmpty()) return SCRIPT_CONTINUE; blog("handleDecorTypeSelect: init"); // Grab params. int idx = sui.getListboxSelectedRow(params); if(idx < 0) idx = 0; obj_id player = sui.getPlayerId(params); if(!isValidId(player) || !exists(player)) { removeDecorVars(player); return SCRIPT_CONTINUE; } int btn = sui.getIntButtonPressed(params); if(btn == sui.BP_CANCEL) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorTypeSelect: initial validation done"); string[] decorMenu = utils.getStringArrayScriptVar(player, /*player_structure.SVAR_DECOR_PREFIX + */".decorMenu"); if(decorMenu == null || decorMenu.length <= 0) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorTypeSelect: decorMenu received"); string[] slotName = utils.getStringArrayScriptVar(player, /*player_structure.SVAR_DECOR_PREFIX + */".slotName"); if(slotName == null || slotName.length <= 0) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorTypeSelect: slotName received"); string menuSelection = decorMenu[idx]; if(menuSelection == null || menuSelection.equals("")) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorTypeSelect: menuSelection: "+menuSelection); string slotSelection = slotName[idx]; if(slotSelection == null || slotSelection.equals("")) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorTypeSelect: slotSelection: "+slotSelection); string template = utils.getStringScriptVar(player, /*player_structure.SVAR_DECOR_PREFIX + */".structureTemplate"); if(template == null || template.equals("")) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorTypeSelect: template: "+template); obj_id structure = utils.getObjIdScriptVar(player, /*player_structure.SVAR_DECOR_PREFIX + */".structure"); if(!isValidId(structure)|| !exists(structure)) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorTypeSelect: structure: "+structure); blog("handleDecorTypeSelect: finished, sendign data"); //player_structure.placeExteriorDecorObject(player, structure, template, menuSelection, slotSelection); removeDecorVars(player); return SCRIPT_CONTINUE; } messageHandler handleDecorSlotRemovalSelect() { if(params == null || params.isEmpty()) return SCRIPT_CONTINUE; blog("handleDecorSlotRemovalSelect: init"); // Grab params. int idx = sui.getListboxSelectedRow(params); if(idx < 0) idx = 0; obj_id player = sui.getPlayerId(params); if(!isValidId(player) || !exists(player)) { removeDecorVars(player); return SCRIPT_CONTINUE; } int btn = sui.getIntButtonPressed(params); if(btn == sui.BP_CANCEL) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorSlotRemovalSelect: initial validation done"); string[] occupiedSlots = utils.getStringArrayScriptVar(player, /*player_structure.SVAR_DECOR_PREFIX + */".occupiedSlots"); if(occupiedSlots == null || occupiedSlots.length <= 0) { removeDecorVars(player); return SCRIPT_CONTINUE; } string menuSelection = occupiedSlots[idx]; if(menuSelection == null || menuSelection.equals("")) { removeDecorVars(player); return SCRIPT_CONTINUE; } obj_id structure = utils.getObjIdScriptVar(player, /*player_structure.SVAR_DECOR_PREFIX + */".structure"); if(!isValidId(structure) || !exists(structure)) { removeDecorVars(player); return SCRIPT_CONTINUE; } blog("handleDecorSlotRemovalSelect: menuSelection: "+menuSelection); //obj_id decorObjId = player_structure.getOidOfDecorInSlot(structure, menuSelection); //if(!isValidId(decorObjId) || !exists(decorObjId)) //{ // removeDecorVars(player); // return SCRIPT_CONTINUE; //} //customerServiceLog here //first remove the slot from array //if(!player_structure.removeDecorSlotFromArray(structure, slot)) //{ // //customerServiceLog here // return SCRIPT_CONTINUE; //} //reimburse SkillMod here //if all is success, destroy the object //destroyObject(decorObjId); //sendSystemMessage(player, player_structure.SID_DECOR_ITEM_REMOVED); return SCRIPT_CONTINUE; } boolean removeDecorVars(obj_id player) { if(!isValidId(player) || !exists(player)) return false; //utils.removeScriptVar(player, player_structure.SVAR_DECOR_PREFIX); //sui.removePid(player, player_structure.PID_DECOR_SELECTION); return true; } boolean blog(string msg) { if(msg == null || msg.equals("")) return false; if(LOGGING_ON) LOG(TERMINAL_LOGGING, msg); return true; }