Files
dsrc/sku.0/sys.server/compiled/game/script/player/player_sui.script
T
2013-09-10 23:17:15 -07:00

230 lines
5.6 KiB
Plaintext

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