mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-31 00:15:54 -04:00
150 lines
3.7 KiB
Plaintext
150 lines
3.7 KiB
Plaintext
/**********************************************************************
|
|
* Copyright (c)2000-2002 Sony Online Entertainment Inc.
|
|
* All Rights Reserved
|
|
*
|
|
* Title: magic_item.scriptlib
|
|
* Description: magic item reference
|
|
* @author $Author:$
|
|
* @version $Revision:$
|
|
**********************************************************************/
|
|
|
|
/***** INCLUDES ********************************************************/
|
|
|
|
include library.utils;
|
|
include java.util.Arrays;
|
|
include java.util.Vector;
|
|
|
|
/***** CONSTANTS *******************************************************/
|
|
|
|
/***** FUNCTIONS **************************************************/
|
|
/***** GENERAL FUNCTION ************************************/
|
|
/************************************************************
|
|
* @brief attempts to register a planetary map location
|
|
*
|
|
* @param obj_id self
|
|
*
|
|
* @return boolean; false on error
|
|
************************************************************/
|
|
boolean updateSkills(obj_id player)
|
|
{
|
|
if ( !isIdValid(player) || (!isPlayer(player)) )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
/*
|
|
LOG("playerVersion","* updateSkills: player = " + player + " now = " + getGameTime());
|
|
|
|
string[] skillList = getSkillListingForPlayer(player);
|
|
skillList = orderSkillListForRevoke(skillList);
|
|
|
|
if ( (skillList != null) && (skillList.length > 0) )
|
|
{
|
|
for ( int x = 0; x < skillList.length; x++ )
|
|
{
|
|
//LOG("playerVersion"," attempting to revoke skill: " + skillList[x]);
|
|
CustomerServiceLog("Skill","player_version.updateSkills(): ("+self+") "+getName(self)+" has revoked skill '"+params+"' from ("+target+") "+utils.getStringName(target));
|
|
revokeSkill(player, skillList[x]);
|
|
}
|
|
|
|
zeroPlayerSkillData(player);
|
|
|
|
for ( int z = skillList.length - 1; z >= 0; z-- )
|
|
{
|
|
//LOG("playerVersion"," attempting to regrant skill: " + skillList[z]);
|
|
grantSkill(player, skillList[z]);
|
|
}
|
|
}
|
|
*/
|
|
|
|
return true;
|
|
}
|
|
|
|
void zeroPlayerSkillData(obj_id player)
|
|
{
|
|
if ( !isIdValid(player) )
|
|
{
|
|
return;
|
|
}
|
|
|
|
string[] mods = getSkillStatModListingForPlayer(player);
|
|
if ( (mods != null) && (mods.length > 0) )
|
|
{
|
|
for ( int i = 0; i < mods.length; i++ )
|
|
{
|
|
int val = getSkillStatMod(player, mods[i]);
|
|
applySkillStatisticModifier(player, mods[i], -val);
|
|
}
|
|
}
|
|
|
|
string[] cmds = getCommandListingForPlayer(player);
|
|
if ( (cmds != null) && (cmds.length > 0) )
|
|
{
|
|
for ( int i = 0; i < cmds.length; i++ )
|
|
{
|
|
revokeCommand(player, cmds[i]);
|
|
}
|
|
}
|
|
|
|
int[] schematics = getSchematicListingForPlayer(player);
|
|
if ( (schematics != null) && (schematics.length > 0) )
|
|
{
|
|
for ( int i = 0; i < schematics.length; i++ )
|
|
{
|
|
revokeSchematic(player, schematics[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
string[] orderSkillListForRevoke(string[] skillList)
|
|
{
|
|
if ( (skillList == null) || (skillList.length == 0) )
|
|
{
|
|
return null;
|
|
}
|
|
|
|
Vector ret = new Vector();
|
|
|
|
for ( int i = 0; i < skillList.length; i++ )
|
|
{
|
|
LOG("playerVersion","ordering skill = " + skillList[i]);
|
|
string[] reqs = getSkillPrerequisiteSkills(skillList[i]);
|
|
if ( (reqs == null) || (reqs.length == 0) )
|
|
{
|
|
LOG("playerVersion"," reqs = null || length = 0... appending...");
|
|
ret.add(skillList[i]);
|
|
}
|
|
else
|
|
{
|
|
int idx = ret.size();
|
|
for ( int n = 0; n < reqs.length; n++ )
|
|
{
|
|
LOG("playerVersion"," testing ret for: " + reqs[n]);
|
|
int pos = ret.indexOf(reqs[n]);
|
|
if ( pos > -1 )
|
|
{
|
|
LOG("playerVersion","** found req(" + reqs[n] + ") at ret idx = " + pos);
|
|
if ( pos < idx )
|
|
{
|
|
LOG("playerVersion","** updating insert idx to " + pos);
|
|
idx = pos;
|
|
}
|
|
}
|
|
}
|
|
|
|
LOG("playerVersion"," - inserting " + skillList[i] + " @ idx = " + idx);
|
|
ret.add(idx, skillList[i]);
|
|
}
|
|
}
|
|
|
|
if ( (ret == null) || (ret.size() == 0) )
|
|
{
|
|
return null;
|
|
}
|
|
|
|
string[] retArray = new string[ret.size()];
|
|
ret.toArray(retArray);
|
|
|
|
return retArray;
|
|
}
|