mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-01-17 00:05:07 -05:00
87 lines
2.8 KiB
Java
Executable File
87 lines
2.8 KiB
Java
Executable File
package script.library;
|
|
|
|
import script.obj_id;
|
|
|
|
import java.util.Vector;
|
|
|
|
public class player_version extends script.base_script
|
|
{
|
|
public player_version()
|
|
{
|
|
}
|
|
public static boolean updateSkills(obj_id player) throws InterruptedException
|
|
{
|
|
return !(!isIdValid(player) || (!isPlayer(player)));
|
|
}
|
|
public static void zeroPlayerSkillData(obj_id player) throws InterruptedException
|
|
{
|
|
if (!isIdValid(player))
|
|
{
|
|
return;
|
|
}
|
|
String[] mods = getSkillStatModListingForPlayer(player);
|
|
if ((mods != null) && (mods.length > 0))
|
|
{
|
|
for (String mod : mods) {
|
|
applySkillStatisticModifier(player, mod, -getSkillStatMod(player, mod));
|
|
}
|
|
}
|
|
String[] cmds = getCommandListingForPlayer(player);
|
|
if ((cmds != null) && (cmds.length > 0))
|
|
{
|
|
for (String cmd : cmds) {
|
|
revokeCommand(player, cmd);
|
|
}
|
|
}
|
|
int[] schematics = getSchematicListingForPlayer(player);
|
|
if ((schematics != null) && (schematics.length > 0))
|
|
{
|
|
for (int schematic : schematics) {
|
|
revokeSchematic(player, schematic);
|
|
}
|
|
}
|
|
}
|
|
public static String[] orderSkillListForRevoke(String[] skillList) throws InterruptedException
|
|
{
|
|
if ((skillList == null) || (skillList.length == 0))
|
|
{
|
|
return null;
|
|
}
|
|
Vector ret = new Vector();
|
|
String[] reqs;
|
|
int idx;
|
|
int pos;
|
|
|
|
for (String skill : skillList) {
|
|
LOG("playerVersion", "ordering skill = " + skill);
|
|
reqs = getSkillPrerequisiteSkills(skill);
|
|
if ((reqs == null) || (reqs.length == 0)) {
|
|
LOG("playerVersion", " reqs = null || length = 0... appending...");
|
|
ret.add(skill);
|
|
} else {
|
|
idx = ret.size();
|
|
for (String req : reqs) {
|
|
LOG("playerVersion", " testing ret for: " + req);
|
|
pos = ret.indexOf(req);
|
|
if (pos > -1) {
|
|
LOG("playerVersion", "** found req(" + req + ") at ret idx = " + pos);
|
|
if (pos < idx) {
|
|
LOG("playerVersion", "** updating insert idx to " + pos);
|
|
idx = pos;
|
|
}
|
|
}
|
|
}
|
|
LOG("playerVersion", " - inserting " + skill + " @ idx = " + idx);
|
|
ret.add(idx, skill);
|
|
}
|
|
}
|
|
if (ret.size() == 0)
|
|
{
|
|
return null;
|
|
}
|
|
String[] retArray = new String[ret.size()];
|
|
ret.toArray(retArray);
|
|
return retArray;
|
|
}
|
|
}
|