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

203 lines
5.4 KiB
Plaintext

include library.factions;
include library.utils;
trigger OnAttach()
{
sendSystemMessageTestingOnly(self, "PvP debug script attached.");
return SCRIPT_CONTINUE;
}
trigger OnSpeaking(string text)
{
if ( text.startsWith("pvp ") )
{
java.util.StringTokenizer st = new java.util.StringTokenizer(toLower(text));
string arg = st.nextToken(); //skip first token
obj_id target = getLookAtTarget(self);
if ( target == null || target == obj_id.NULL_ID)
{
sendSystemMessageTestingOnly(self, "PVP_STATUS: no target designated. assuming target = self");
target = self;
}
/*
if ( !isPlayer(target) )
{
sendSystemMessageTestingOnly(self, "PVP_STATUS: target (" + target + " - " + getName(target) + ") is not a player. aborting...");
return SCRIPT_CONTINUE;
}
*/
if ( st.hasMoreTokens() )
{
do
{
arg = st.nextToken();
if ( arg.equals("status") )
{
int type = pvpGetType(target);
int faction = pvpGetAlignedFaction(target);
string sType = "neutral";
string sFaction = "mercenary";
switch (type)
{
case PVPTYPE_NEUTRAL:
break;
case PVPTYPE_COVERT:
sType = "covert";
break;
case PVPTYPE_DECLARED:
sType = "declared";
break;
default:
sType = "type_other";
break;
}
switch (faction)
{
case 0:
sFaction = "mercenary";
break;
case ##"rebel":
sFaction = "rebel";
break;
case ##"imperial":
sFaction = "imperial";
break;
default:
sFaction = "faction_other";
break;
}
/*if ( (sType.equals("hosed")) || (sFaction.equals("hosed")) )
{
sendSystemMessageTestingOnly(self, "pvp type/faction hosed for obj_id " + target);
}
else if ( type == PVPTYPE_NEUTRAL )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + ") is pvp neutral.");
}
else
{*/
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + ") is a " + sType + " " + sFaction);
/*}*/
displayEnemyFlags(self, target);
}
else if ( arg.equals("enemyTo") )
{
displayEnemyFlags(self, target);
}
else if ( arg.equals("unalign") || arg.equals("mercenary") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): faction set UNALIGNED");
pvpSetAlignedFaction(target, 0);
}
else if ( arg.equals("rebel") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): faction set REBEL");
pvpSetAlignedFaction(target, ##"rebel");
}
else if ( arg.equals("imperial") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): faction set IMPERIAL");
pvpSetAlignedFaction(target, ##"imperial");
}
else if ( arg.equals("neutral") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): type set NEUTRAL");
pvpMakeNeutral(target);
}
else if ( arg.equals("covert") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): type set COVERT");
pvpMakeCovert(target);
}
else if ( arg.equals("declared") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): type set DECLARED");
pvpMakeDeclared(target);
}
else if ( arg.equals("clear") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): clearing temp enemy flags");
pvpRemoveAllTempEnemyFlags(target);
}
else if ( arg.equals("faction") )
{
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): " + factions.getFaction(target));
}
else if ( arg.equals("nonaggressive") )
{
pvpMakeNeutral(target);
pvpSetAlignedFaction(target, ##"nonaggressive");
pvpMakeDeclared(target);
sendSystemMessageTestingOnly(self, getName(target) + "(" + target + "): " + factions.getFaction(target));
}
} while (st.hasMoreTokens());
}
}
return SCRIPT_CONTINUE;
}
boolean displayEnemyFlags(obj_id player, obj_id target)
{
if (!isIdValid(target))
return false;
String[] enemies = pvpGetEnemyFlags(target);
if (enemies != null)
{
for (int i = 0; i < enemies.length; ++i)
{
java.util.StringTokenizer st = new java.util.StringTokenizer(enemies[i]);
string sTarget = st.nextToken();
string sTargetName = getPlayerName(utils.stringToObjId(sTarget));
string sTefFac = st.nextToken();
int iTefFac = utils.stringToInt(sTefFac);
string sTefFacName = "<unknown>";
if (iTefFac == ##"battlefield")
sTefFacName = "battlefield";
else if (iTefFac == ##"duel")
sTefFacName = "duel";
else if (iTefFac == ##"bountyduel")
sTefFacName = "bountyduel";
else if (iTefFac == ##"nonaggressive")
sTefFacName = "nonaggressive";
else if (iTefFac == ##"unattackable")
sTefFacName = "unattackable";
else if (iTefFac == ##"bountytarget")
sTefFacName = "bountytarget";
else if (iTefFac == ##"guildwarcooldownperiod")
sTefFacName = "guildwarcooldownperiod";
else if (iTefFac == ##"imperial")
sTefFacName = "imperial";
else if (iTefFac == ##"rebel")
sTefFacName = "rebel";
else if (iTefFac == ##"bubblecombat")
sTefFacName = "bubblecombat";
string sExpiration = st.nextToken();
sendSystemMessageTestingOnly(player, "(" + player + " " + getName(player) + ") Enemy Flag: [" + sTarget + " (" + sTargetName + "), " + sTefFac + " (" + sTefFacName + "), " + sExpiration + "ms" + "]");
}
}
return true;
}