" + players[i].getName() + " | " + players[i].getTemplate().className + " | " + players[i].getLevel() + " |
");
}
adminReply.replace("%players%", replyMSG.toString());
activeChar.sendPacket(adminReply);
}
private void showCharacterInfo(L2PcInstance activeChar, L2PcInstance player)
{
if (player == null)
{
L2Object target = activeChar.getTarget();
if (target instanceof L2PcInstance)
player = (L2PcInstance)target;
else
return;
}
else
activeChar.setTarget(player);
gatherCharacterInfo(activeChar, player,"charinfo.htm");
}
/**
* @param activeChar
* @param player
*/
private void gatherCharacterInfo(L2PcInstance activeChar, L2PcInstance player, String filename)
{
String ip = "N/A";
String account = "N/A";
try
{
StringTokenizer clientinfo= new StringTokenizer(player.getClient().toString()," ]:-[");
clientinfo.nextToken();
clientinfo.nextToken();
clientinfo.nextToken();
account = clientinfo.nextToken();
clientinfo.nextToken();
ip = clientinfo.nextToken();
}
catch (Exception e) {}
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
adminReply.setFile("data/html/admin/"+filename);
adminReply.replace("%name%", player.getName());
adminReply.replace("%level%", String.valueOf(player.getLevel()));
adminReply.replace("%clan%", String.valueOf(ClanTable.getInstance().getClan(player.getClanId())));
adminReply.replace("%xp%", String.valueOf(player.getExp()));
adminReply.replace("%sp%", String.valueOf(player.getSp()));
adminReply.replace("%class%", player.getTemplate().className);
adminReply.replace("%ordinal%", String.valueOf(player.getClassId().ordinal()));
adminReply.replace("%classid%", String.valueOf(player.getClassId()));
adminReply.replace("%x%", String.valueOf(player.getX()));
adminReply.replace("%y%", String.valueOf(player.getY()));
adminReply.replace("%z%", String.valueOf(player.getZ()));
adminReply.replace("%currenthp%", String.valueOf((int)player.getCurrentHp()));
adminReply.replace("%maxhp%", String.valueOf(player.getMaxHp()));
adminReply.replace("%karma%", String.valueOf(player.getKarma()));
adminReply.replace("%currentmp%", String.valueOf((int)player.getCurrentMp()));
adminReply.replace("%maxmp%", String.valueOf(player.getMaxMp()));
adminReply.replace("%pvpflag%", String.valueOf(player.getPvpFlag()));
adminReply.replace("%currentcp%", String.valueOf((int)player.getCurrentCp()));
adminReply.replace("%maxcp%", String.valueOf(player.getMaxCp()));
adminReply.replace("%pvpkills%", String.valueOf(player.getPvpKills()));
adminReply.replace("%pkkills%", String.valueOf(player.getPkKills()));
adminReply.replace("%currentload%", String.valueOf(player.getCurrentLoad()));
adminReply.replace("%maxload%", String.valueOf(player.getMaxLoad()));
adminReply.replace("%percent%", String.valueOf(Util.roundTo(((float)player.getCurrentLoad()/(float)player.getMaxLoad())*100, 2)));
adminReply.replace("%patk%", String.valueOf(player.getPAtk(null)));
adminReply.replace("%matk%", String.valueOf(player.getMAtk(null,null)));
adminReply.replace("%pdef%", String.valueOf(player.getPDef(null)));
adminReply.replace("%mdef%", String.valueOf(player.getMDef(null, null)));
adminReply.replace("%accuracy%", String.valueOf(player.getAccuracy()));
adminReply.replace("%evasion%", String.valueOf(player.getEvasionRate(null)));
adminReply.replace("%critical%", String.valueOf(player.getCriticalHit(null,null)));
adminReply.replace("%runspeed%", String.valueOf(player.getRunSpeed()));
adminReply.replace("%patkspd%", String.valueOf(player.getPAtkSpd()));
adminReply.replace("%matkspd%", String.valueOf(player.getMAtkSpd()));
adminReply.replace("%access%",String.valueOf(player.getAccessLevel().getLevel()));
adminReply.replace("%account%",account);
adminReply.replace("%ip%",ip);
activeChar.sendPacket(adminReply);
}
private void setTargetKarma(L2PcInstance activeChar, int newKarma) {
// function to change karma of selected char
L2Object target = activeChar.getTarget();
L2PcInstance player = null;
if (target instanceof L2PcInstance)
player = (L2PcInstance)target;
else
return;
if ( newKarma >= 0 )
{
// for display
int oldKarma = player.getKarma();
// update karma
player.setKarma(newKarma);
//Common character information
player.sendPacket( new SystemMessage(SystemMessageId.YOUR_KARMA_HAS_BEEN_CHANGED_TO).addString(String.valueOf(newKarma)));
//Admin information
activeChar.sendMessage("Successfully Changed karma for "+player.getName()+" from (" + oldKarma + ") to (" + newKarma + ").");
if (Config.DEBUG)
_log.fine("[SET KARMA] [GM]"+activeChar.getName()+" Changed karma for "+player.getName()+" from (" + oldKarma + ") to (" + newKarma + ").");
}
else
{
// tell admin of mistake
activeChar.sendMessage("You must enter a value for karma greater than or equal to 0.");
if (Config.DEBUG)
_log.fine("[SET KARMA] ERROR: [GM]"+activeChar.getName()+" entered an incorrect value for new karma: " + newKarma + " for "+player.getName()+".");
}
}
private void adminModifyCharacter(L2PcInstance activeChar, String modifications)
{
L2Object target = activeChar.getTarget();
if (!(target instanceof L2PcInstance))
return;
L2PcInstance player = (L2PcInstance)target;
StringTokenizer st = new StringTokenizer(modifications);
if (st.countTokens() != 6) {
editCharacter(player);
return;
}
String hp = st.nextToken();
String mp = st.nextToken();
String cp = st.nextToken();
String pvpflag = st.nextToken();
String pvpkills = st.nextToken();
String pkkills = st.nextToken();
int hpval = Integer.parseInt(hp);
int mpval = Integer.parseInt(mp);
int cpval = Integer.parseInt(cp);
int pvpflagval = Integer.parseInt(pvpflag);
int pvpkillsval = Integer.parseInt(pvpkills);
int pkkillsval = Integer.parseInt(pkkills);
//Common character information
player.sendMessage("Admin has changed your stats." +
" HP: " + hpval + " MP: " + mpval + " CP: " + cpval +
" PvP Flag: " + pvpflagval + " PvP/PK " + pvpkillsval + "/" + pkkillsval);
player.setCurrentHp(hpval);
player.setCurrentMp(mpval);
player.setCurrentCp(cpval);
player.setPvpFlag(pvpflagval);
player.setPvpKills(pvpkillsval);
player.setPkKills(pkkillsval);
// Save the changed parameters to the database.
player.store();
StatusUpdate su = new StatusUpdate(player.getObjectId());
su.addAttribute(StatusUpdate.CUR_HP, hpval);
su.addAttribute(StatusUpdate.MAX_HP, player.getMaxHp());
su.addAttribute(StatusUpdate.CUR_MP, mpval);
su.addAttribute(StatusUpdate.MAX_MP, player.getMaxMp());
su.addAttribute(StatusUpdate.CUR_CP, cpval);
su.addAttribute(StatusUpdate.MAX_CP, player.getMaxCp());
player.sendPacket(su);
//Admin information
player.sendMessage("Changed stats of " + player.getName() + "." +
" HP: " + hpval + " MP: " + mpval + " CP: " + cpval +
" PvP: " + pvpflagval + " / " + pvpkillsval );
if (Config.DEBUG)
_log.fine("[GM]"+activeChar.getName()+" changed stats of "+player.getName()+". " +
" HP: "+hpval+" MP: "+mpval+" CP: " + cpval +
" PvP: "+pvpflagval+" / "+pvpkillsval);
showCharacterInfo(activeChar, null); //Back to start
player.broadcastPacket(new CharInfo(player));
player.sendPacket(new UserInfo(player));
player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
player.decayMe();
player.spawnMe(activeChar.getX(),activeChar.getY(),activeChar.getZ());
}
private void editCharacter(L2PcInstance activeChar)
{
L2Object target = activeChar.getTarget();
if (!(target instanceof L2PcInstance))
return;
L2PcInstance player = (L2PcInstance)target;
gatherCharacterInfo(activeChar, player,"charedit.htm");
}
/**
* @param activeChar
* @param CharacterToFind
*/
private void findCharacter(L2PcInstance activeChar, String CharacterToFind)
{
int CharactersFound = 0;
String name;
Collection