mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-29 23:15:55 -04:00
469 lines
9.8 KiB
Plaintext
469 lines
9.8 KiB
Plaintext
|
|
// ======================================================================
|
|
|
|
include library.ai_lib;
|
|
include library.create;
|
|
include library.groundquests;
|
|
include library.pclib;
|
|
include library.skill;
|
|
include library.space_quest;
|
|
include library.space_utils;
|
|
include library.static_item;
|
|
include library.utils;
|
|
include library.weapons;
|
|
include library.chat;
|
|
include library.npe;
|
|
include library.xp;
|
|
include library.dump;
|
|
include library.buff;
|
|
|
|
inherits base.remote_object_requester;
|
|
|
|
// ======================================================================
|
|
const string FINISH_PLANET = "tatooine";
|
|
const float FINISH_X = 3528.0f;
|
|
const float FINISH_Z = -4804.0f;
|
|
|
|
|
|
const String MINIGAME_PARAM_RESULT = "result";
|
|
|
|
const String MINIGAME_VARNAME_GAME = "game";
|
|
const String MINIGAME_VARNAME_SCORE = "score";
|
|
const String MINIGAME_VARNAME_TABLE = "table";
|
|
const String MINIGAME_VARNAME_PLAYER = "player";
|
|
|
|
const String MINIGAME_GAMENAME_MAHJONG = "mahjong";
|
|
|
|
const String MINIGAME_VARNAME_MAHJONG_LAYOUT = "layout";
|
|
|
|
|
|
// ======================================================================
|
|
|
|
const string [] COMMAND_LIST =
|
|
{"sw_remove_mods",
|
|
"sw_kill",
|
|
"sw_buff_apply",
|
|
"sw_buff_remove",
|
|
"sw_buff_list",
|
|
"sw_scriptvar_set",
|
|
"sw_scriptvar_list",
|
|
"sw_scriptvar_remove",
|
|
"sw_garbage_collect",
|
|
"sw_objid_isvalid",
|
|
"sw_mahjong"};
|
|
|
|
// Hello World
|
|
|
|
trigger OnSpeaking(String text)
|
|
{
|
|
if (true) //isGod(self))
|
|
{
|
|
debugConsoleMsg( self, "swyckoff_test OnSpeaking: " + text );
|
|
|
|
java.util.StringTokenizer tok = new java.util.StringTokenizer (text);
|
|
|
|
if (tok.hasMoreTokens ())
|
|
{
|
|
String command = tok.nextToken ();
|
|
|
|
//debugConsoleMsg( self, "command is: " + command);
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
|
|
if(command.equalsIgnoreCase ("sw_list_commands"))
|
|
{
|
|
String outstring = "commands possible:";
|
|
for(int i = 0; i <COMMAND_LIST.length; i++)
|
|
{
|
|
outstring += " " + COMMAND_LIST[i];
|
|
}
|
|
|
|
debugConsoleMsg(self, outstring);
|
|
}
|
|
|
|
if (command.equalsIgnoreCase ("sw_remove_mods"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_remove_mods");
|
|
|
|
obj_id oid = self;
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
oid = utils.stringToObjId(tok.nextToken());
|
|
}
|
|
|
|
removeAllAttributeAndSkillmodMods(oid);
|
|
|
|
debugConsoleMsg(self, "removing mods from OID " + oid);
|
|
debugConsoleMsg(oid, "mods removed by " + self);
|
|
|
|
} //sw_remove_buffs
|
|
|
|
|
|
if ( command.equalsIgnoreCase ("sw_kill"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_kill");
|
|
|
|
obj_id oid = self;
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
oid = utils.stringToObjId(tok.nextToken());
|
|
}
|
|
|
|
kill(oid);
|
|
|
|
debugConsoleMsg(self, "killing OID " + oid);
|
|
debugConsoleMsg(oid, "killed by " + self);
|
|
|
|
} //sw_kill
|
|
|
|
|
|
if ( command.equalsIgnoreCase ("sw_buff_apply"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_buff_apply");
|
|
|
|
obj_id oid = self;
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
String buffname = tok.nextToken();
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
oid = utils.stringToObjId(tok.nextToken());
|
|
}
|
|
|
|
if(buff.applyBuff(oid,buffname))
|
|
{
|
|
debugConsoleMsg(self, "buff " + buffname + " applied to " + oid);
|
|
debugConsoleMsg(oid, "buff " + buffname + " applied by " + self);
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "failed to apply buff " + buffname + " to " + oid);
|
|
}
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "usage: sw_buff_apply <buffname> [target oid]");
|
|
}
|
|
} //sw_buff_apply
|
|
|
|
|
|
if ( command.equalsIgnoreCase ("sw_buff_remove"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_buff_remove");
|
|
|
|
obj_id oid = self;
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
String buffname = tok.nextToken();
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
oid = utils.stringToObjId(tok.nextToken());
|
|
}
|
|
|
|
if(buff.removeBuff(oid,buffname))
|
|
{
|
|
debugConsoleMsg(self, "buff " + buffname + " removed from " + oid);
|
|
debugConsoleMsg(oid, "buff " + buffname + " removed by " + self);
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "failed to remove buff " + buffname + " to " + oid);
|
|
}
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "usage: sw_buff_remove <buffname> [target oid]");
|
|
}
|
|
} //sw_buff_remove
|
|
|
|
|
|
if ( command.equalsIgnoreCase ("sw_buff_list"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_buff_list");
|
|
|
|
obj_id oid = self;
|
|
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
oid = utils.stringToObjId(tok.nextToken());
|
|
}
|
|
|
|
int[] buffcrcs = buff.getAllBuffs(oid);
|
|
|
|
String outstring = "Buffs on " + oid;
|
|
|
|
for(int i = 0; i < buffcrcs.length; i++)
|
|
{
|
|
outstring += " " + buff.getBuffNameFromCrc(buffcrcs[i]);
|
|
}
|
|
|
|
debugConsoleMsg(self, outstring);
|
|
|
|
} //sw_buff_list
|
|
|
|
|
|
if ( command.equalsIgnoreCase ("sw_scriptvar_set"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_scriptvar_set");
|
|
|
|
obj_id oid = self;
|
|
String scriptvarname = "test.swyckoff";
|
|
int value = 1;
|
|
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
oid = utils.stringToObjId(tok.nextToken());
|
|
}
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
scriptvarname = tok.nextToken();
|
|
}
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
value = utils.stringToInt(tok.nextToken());
|
|
}
|
|
|
|
utils.setScriptVar(oid, scriptvarname, value);
|
|
|
|
} //sw_scriptvar_set
|
|
|
|
if ( command.equalsIgnoreCase ("sw_scriptvar_list"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_scriptvar_list");
|
|
|
|
obj_id oid = self;
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
oid = utils.stringToObjId(tok.nextToken());
|
|
}
|
|
|
|
debugConsoleMsg(self, "showScriptVars: target = " + oid);
|
|
|
|
deltadictionary delta = oid.getScriptVars();
|
|
if ( delta == null )
|
|
{
|
|
debugConsoleMsg(self, "NONE!");
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "dd = " + delta.toString());
|
|
}
|
|
|
|
|
|
} //sw_scriptvar_list
|
|
|
|
if ( command.equalsIgnoreCase ("sw_scriptvar_remove"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_test_scriptvar_remove");
|
|
|
|
obj_id oid = self;
|
|
String scriptvarname = "test.swyckoff";
|
|
int value = 1;
|
|
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
scriptvarname = tok.nextToken();
|
|
}
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
value = utils.stringToInt(tok.nextToken());
|
|
}
|
|
|
|
utils.removeScriptVar(oid, scriptvarname);
|
|
|
|
} //sw_test_scriptvar_remove
|
|
|
|
|
|
if ( command.equalsIgnoreCase ("sw_garbage_collect"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_garbage_collect");
|
|
|
|
System.gc();
|
|
|
|
} //sw_garbage_collect
|
|
|
|
if ( command.equalsIgnoreCase ("sw_objid_isvalid"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_objid_isvalid");
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
obj_id oid = utils.stringToObjId(tok.nextToken());
|
|
if(isIdValid(oid))
|
|
{
|
|
debugConsoleMsg(self, "the obj_id " + oid + " is valid.");
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "the obj_id " + oid + " is NOT valid.");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "requires an id to verify");
|
|
}
|
|
|
|
} //sw_objid_isvalid
|
|
|
|
|
|
if ( command.equalsIgnoreCase ("sw_mahjong"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_mahjong");
|
|
|
|
dictionary data = new dictionary();
|
|
data.put(MINIGAME_VARNAME_GAME, MINIGAME_GAMENAME_MAHJONG);
|
|
data.put(MINIGAME_VARNAME_TABLE, obj_id.NULL_ID);
|
|
|
|
|
|
|
|
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
String actionType = tok.nextToken();
|
|
|
|
obj_id player = self;
|
|
|
|
if(tok.hasMoreTokens())
|
|
{
|
|
player = utils.stringToObjId(tok.nextToken());
|
|
|
|
if(isIdValid(player))
|
|
{
|
|
obj_id owneroid = null;
|
|
if(tok.hasMoreTokens ())
|
|
{
|
|
owneroid = utils.stringToObjId(tok.nextToken());
|
|
data.put(MINIGAME_VARNAME_TABLE, owneroid);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "target is not valid");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(clientMinigameOpen(self, data))
|
|
{
|
|
debugConsoleMsg(self, "no target, opened minigame on self");
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "no target, failed to open minigame on self");
|
|
}
|
|
}
|
|
|
|
if(isIdValid(player))
|
|
{
|
|
if(actionType.equalsIgnoreCase("open"))
|
|
{
|
|
if(clientMinigameOpen(player, data))
|
|
{
|
|
debugConsoleMsg(self, "opened minigame on " + player);
|
|
}
|
|
else
|
|
{
|
|
debugConsoleMsg(self, "failed to open minigame on " + player);
|
|
}
|
|
}
|
|
|
|
else if(actionType.equalsIgnoreCase("close"))
|
|
{
|
|
clientMinigameClose(player, data);
|
|
}
|
|
}
|
|
}
|
|
|
|
} //sw_mahjong
|
|
|
|
|
|
/*
|
|
if ( command.equalsIgnoreCase ("sw_debug_objid"))
|
|
{
|
|
debugConsoleMsg(self, "hit sw_debug_objid");
|
|
|
|
boolean on = false;
|
|
|
|
if( tok.hasMoreTokens())
|
|
{
|
|
int val = utils.stringToInt(tok.nextToken());
|
|
on = val != 0;
|
|
}
|
|
|
|
obj_id.DEBUG = on;
|
|
|
|
} //sw_debug_objid
|
|
*/
|
|
|
|
}
|
|
}
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
trigger OnAttach()
|
|
{
|
|
debugConsoleMsg(self, "attached swyckoff_test");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
|
|
|
|
messageHandler startPerform()
|
|
{
|
|
//LOG("QUEST_DEBUG", "startPerform");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler stopPerform()
|
|
{
|
|
//LOG("QUEST_DEBUG", "stopPerform");
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
messageHandler clientMinigameResult()
|
|
{
|
|
debugConsoleMsg(self, "minigame params: " + params.toString());
|
|
|
|
dictionary data = params.getDictionary(MINIGAME_PARAM_RESULT);
|
|
|
|
int score = data.getInt(MINIGAME_VARNAME_SCORE);
|
|
obj_id player = data.getObjId(MINIGAME_VARNAME_PLAYER);
|
|
String layout = data.getString(MINIGAME_VARNAME_MAHJONG_LAYOUT);
|
|
int dummy = data.getInt("missing");
|
|
|
|
debugConsoleMsg(self, "minigame result: " + player + " score " + score + " layout " + layout);
|
|
|
|
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
// ----------------------------------------------------------------------
|
|
|