/***** 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; }