Зарегистрируйтесь сейчас чтобы найти еще больше друзей, и получить полноценный доступ ко всем функциям сайта!
Для просмотра Вам необходимо авторизоваться Если Вы еще не зарегистрированы, перейдите по ссылке:Зарегистрироваться
x
- Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 4443)
- +++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
- @@ -289,7 +289,7 @@
- // Character Character SQL String Definitions:
- private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,newbie,nobless,power_grade,createTime) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
- private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,language=? WHERE charId=?";
- - private static final String RESTORE_CHARACTER = "SELECT account_name, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language FROM characters WHERE charId=?";
- + private static final String RESTORE_CHARACTER = "SELECT account_name, aio, charId, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, fame, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, title_color, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, newbie, nobless, power_grade, subpledge, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,bookmarkslot,vitality_points,createTime,language FROM characters WHERE charId=?";
- // Character Teleport Bookmark:
- private static final String INSERT_TP_BOOKMARK = "INSERT INTO character_tpbookmark (charId,Id,x,y,z,icon,tag,name) values (?,?,?,?,?,?,?,?)";
- @@ -7163,6 +7163,7 @@
- player.setOnlineTime(rset.getLong("onlinetime"));
- player.setNewbie(rset.getInt("newbie"));
- player.setNoble(rset.getInt("nobless")==1);
- + player.setAIO(rset.getInt("aio") == 1);
- player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
- if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
- @@ -15095,4 +15096,16 @@
- // Maintain = 1
- return 0;
- }
- +
- + private boolean _AOIBuffer = false;
- +
- + public void setAIO(boolean aio)
- + {
- + _AOIBuffer = aio;
- + }
- +
- + public boolean isAIO()
- + {
- + return _AOIBuffer;
- + }
- }
- Index: data/scripts/handlers/MasterHandler.java
- ===================================================================
- --- data/scripts/handlers/MasterHandler.java (revision 7689)
- +++ data/scripts/handlers/MasterHandler.java (working copy)
- @@ -30,6 +30,7 @@
- import handlers.actionhandlers.L2SummonAction;
- import handlers.actionhandlers.L2SummonActionShift;
- import handlers.actionhandlers.L2TrapAction;
- +import handlers.admincommandhandlers.AdminAIO;
- import handlers.admincommandhandlers.AdminAdmin;
- import handlers.admincommandhandlers.AdminAnnouncements;
- import handlers.admincommandhandlers.AdminBBS;
- @@ -297,6 +298,7 @@
- private static void loadAdminHandlers()
- {
- + AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminAIO());
- AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminAdmin());
- AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminAnnouncements());
- AdminCommandHandler.getInstance().registerAdminCommandHandler(new AdminBan());
- Index: data/scripts/handlers/admincommandhandlers/AdminAIO.java
- ===================================================================
- --- data/scripts/handlers/admincommandhandlers/AdminAIO.java (revision 0)
- +++ data/scripts/handlers/admincommandhandlers/AdminAIO.java (revision 0)
- @@ -0,0 +1,266 @@
- +/*
- + * This program is free software: you can redistribute it and/or modify it under
- + * the terms of the GNU General Public License as published by the Free Software
- + * Foundation, either version 3 of the License, or (at your option) any later
- + * version.
- + *
- + * This program is distributed in the hope that it will be useful, but WITHOUT
- + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- + * details.
- + *
- + * You should have received a copy of the GNU General Public License along with
- + * this program. If not, see <http://www.gnu.org/licenses/>.
- + */
- +package handlers.admincommandhandlers;
- +
- +import java.sql.Connection;
- +import java.sql.PreparedStatement;
- +import java.util.logging.Level;
- +import java.util.logging.Logger;
- +
- +import com.l2jserver.L2DatabaseFactory;
- +import com.l2jserver.gameserver.datatables.SkillTable;
- +import com.l2jserver.gameserver.handler.IAdminCommandHandler;
- +import com.l2jserver.gameserver.model.L2Object;
- +import com.l2jserver.gameserver.model.L2Skill;
- +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- +
- +public class AdminAIO implements IAdminCommandHandler
- +{
- + private static Logger _log = Logger.getLogger(AdminAIO.class.getName());
- +
- + private static final String[] ADMIN_COMMANDS = { "admin_addaio", "admin_removeaio" };
- +
- + public boolean useAdminCommand(String command, L2PcInstance activeChar)
- + {
- + if (command.startsWith("admin_addaio"))
- + {
- + L2Object target = activeChar.getTarget();
- + L2PcInstance player = null;
- + if (target == null)
- + {
- + return false;
- + }
- +
- + if (target instanceof L2PcInstance)
- + {
- + player = (L2PcInstance) target;
- + }
- + else
- + {
- + return false;
- + }
- +
- + if (!player.isAIO())
- + {
- + player.setAIO(true);
- + System.out.println(player.getObjectId());
- + handleAIOadd(player);
- + activeChar.sendMessage("You gave AIO Status to: " + target.getName());
- + player.sendMessage("You are an AIO now, Congratulations!");
- + _log.fine("[GM]" + activeChar.getName() + " gave AIO Status to " + player.getName() + "( " + player.getObjectId() + " ).");
- + Connection con = null;
- + try
- + {
- + con = L2DatabaseFactory.getInstance().getConnection();
- +
- + PreparedStatement statement = con.prepareStatement("UPDATE characters SET aio = 1 WHERE charId = ?");
- + statement.setInt(1, player.getObjectId());
- + statement.execute();
- + statement.close();
- + }
- + catch (Exception e)
- + {
- + _log.log(Level.WARNING, "Could not set AIO stats of char:", e);
- + }
- + finally
- + {
- + L2DatabaseFactory.close(con);
- + }
- + }
- + else
- + {
- + activeChar.sendMessage(target.getName() + ": Already have AIO Stats.");
- + }
- + }
- + else if (command.startsWith("admin_removeaio"))
- + {
- + L2Object target = activeChar.getTarget();
- + L2PcInstance player = null;
- +
- + if (target == null)
- + {
- + return false;
- + }
- +
- + if (target instanceof L2PcInstance)
- + {
- + player = (L2PcInstance) target;
- + }
- + else
- + {
- + return false;
- + }
- +
- + if (player.isAIO())
- + {
- + player.setAIO(false);
- + handleAIOremove(player);
- + activeChar.sendMessage(target.getName() + " has lost the AIO Status.");
- + player.sendMessage("You are no longer an AIO.");
- + _log.fine("[GM]" + activeChar.getName() + " removed AIO Status from " + player.getName() + "( " + player.getObjectId() + " ).");
- +
- + Connection con = null;
- + try
- + {
- + con = L2DatabaseFactory.getInstance().getConnection();
- +
- + PreparedStatement statement = con.prepareStatement("UPDATE characters SET aio = 0 WHERE charId = ?");
- + statement.setInt(1, player.getObjectId());
- + statement.execute();
- + statement.close();
- + }
- + catch (Exception e)
- + {
- + _log.log(Level.WARNING, "Could not set AIO status on char:", e);
- + }
- + finally
- + {
- + L2DatabaseFactory.close(con);
- + }
- + }
- + else
- + {
- + activeChar.sendMessage(target.getName() + ": Doesn't have AIO Status.");
- + }
- + }
- + return true;
- + }
- +
- + public void handleAIOadd(L2PcInstance player)
- + {
- + player.addSkill(SkillTable.getInstance().getInfo(5491, 1), true); //Decrease Bow/Crossbow Atk. Spd.
- + player.addSkill(SkillTable.getInstance().getInfo(58, 55), true);//Elemental Heal
- + player.addSkill(SkillTable.getInstance().getInfo(141, 3), true);//Weapon Mastery
- + player.addSkill(SkillTable.getInstance().getInfo(142, 5), true);//Armor Mastery
- + player.addSkill(SkillTable.getInstance().getInfo(163, 1), true);//Spellcraft
- + player.addSkill(SkillTable.getInstance().getInfo(164, 3), true);//Quick Recycle
- + player.addSkill(SkillTable.getInstance().getInfo(213, 8), true);//Boost Mana
- + player.addSkill(SkillTable.getInstance().getInfo(214, 1), true);//Mana Recovery
- + player.addSkill(SkillTable.getInstance().getInfo(228, 3), true);//Fast Spell Casting
- + player.addSkill(SkillTable.getInstance().getInfo(229, 7), true);//Fast Mana Recovery
- + player.addSkill(SkillTable.getInstance().getInfo(234, 41), true);//Robe Mastery
- + player.addSkill(SkillTable.getInstance().getInfo(235, 41), true);//Robe Mastery
- + player.addSkill(SkillTable.getInstance().getInfo(244, 3), true);//Armor Mastery
- + player.addSkill(SkillTable.getInstance().getInfo(249, 42), true);//Weapon Mastery
- + player.addSkill(SkillTable.getInstance().getInfo(264, 1), true);//Song of Earth
- + player.addSkill(SkillTable.getInstance().getInfo(265, 1), true);//Song of Life
- + player.addSkill(SkillTable.getInstance().getInfo(266, 1), true);//Song of Water
- + player.addSkill(SkillTable.getInstance().getInfo(267, 1), true);//Song of Warding
- + player.addSkill(SkillTable.getInstance().getInfo(268, 1), true);//Song of Wind
- + player.addSkill(SkillTable.getInstance().getInfo(269, 1), true);//Song of Hunter
- + player.addSkill(SkillTable.getInstance().getInfo(270, 1), true);//Song of Invocation
- + player.addSkill(SkillTable.getInstance().getInfo(271, 1), true);//Dance of the Warrior
- + player.addSkill(SkillTable.getInstance().getInfo(272, 1), true);//Dance of Inspiration
- + player.addSkill(SkillTable.getInstance().getInfo(273, 1), true);//Dance of the Mystic
- + player.addSkill(SkillTable.getInstance().getInfo(274, 1), true);//Dance of Fire
- + player.addSkill(SkillTable.getInstance().getInfo(275, 1), true);//Dance of Fury
- + player.addSkill(SkillTable.getInstance().getInfo(276, 1), true);//Dance of Concentration
- + player.addSkill(SkillTable.getInstance().getInfo(277, 1), true);//Dance of Light
- + player.addSkill(SkillTable.getInstance().getInfo(285, 27), true);//Higher Mana Gain
- + player.addSkill(SkillTable.getInstance().getInfo(304, 1), true);//Song of Vitality
- + player.addSkill(SkillTable.getInstance().getInfo(305, 1), true);//Song of Vengeance
- + player.addSkill(SkillTable.getInstance().getInfo(306, 1), true);//Song of Flame Guard
- + player.addSkill(SkillTable.getInstance().getInfo(307, 1), true);//Dance of Aqua Guard
- + player.addSkill(SkillTable.getInstance().getInfo(308, 1), true);//Song of Storm Guard
- + player.addSkill(SkillTable.getInstance().getInfo(309, 1), true);//Dance of Earth Guard
- + player.addSkill(SkillTable.getInstance().getInfo(310, 1), true);//Dance of the Vampire
- + player.addSkill(SkillTable.getInstance().getInfo(311, 1), true);//Dance of Protection
- + player.addSkill(SkillTable.getInstance().getInfo(329, 1), true);//Health
- + player.addSkill(SkillTable.getInstance().getInfo(331, 1), true);//Skill Mastery
- + player.addSkill(SkillTable.getInstance().getInfo(349, 1), true);//Song of Renewal
- + player.addSkill(SkillTable.getInstance().getInfo(363, 1), true);//Song of Meditation
- + player.addSkill(SkillTable.getInstance().getInfo(364, 1), true);//Song of Champion
- + player.addSkill(SkillTable.getInstance().getInfo(365, 1), true);//Siren's Dance
- + player.addSkill(SkillTable.getInstance().getInfo(366, 1), true);//Dance of Shadows
- + player.addSkill(SkillTable.getInstance().getInfo(367, 1), true);//Dance of Medusa
- + player.addSkill(SkillTable.getInstance().getInfo(437, 1), true);//Song of Silence
- + player.addSkill(SkillTable.getInstance().getInfo(1011, 18), true);//Heal
- + player.addSkill(SkillTable.getInstance().getInfo(1013, 32), true);//Recharge
- + player.addSkill(SkillTable.getInstance().getInfo(1016, 9), true);//Resurrection
- + player.addSkill(SkillTable.getInstance().getInfo(1027, 15), true);//Group Heal
- + player.addSkill(SkillTable.getInstance().getInfo(1032, 3), true);//Invigor
- + player.addSkill(SkillTable.getInstance().getInfo(1035, 4), true);//Mental Shield
- + player.addSkill(SkillTable.getInstance().getInfo(1036, 2), true);//Magic Barrier
- + player.addSkill(SkillTable.getInstance().getInfo(1040, 3), true);//Shield
- + player.addSkill(SkillTable.getInstance().getInfo(1044, 3), true);//Regeneration
- + player.addSkill(SkillTable.getInstance().getInfo(1045, 6), true);//Blessed Body
- + player.addSkill(SkillTable.getInstance().getInfo(1047, 4), true);//Mana Regeneration
- + player.addSkill(SkillTable.getInstance().getInfo(1048, 6), true);//Blessed Soul
- + player.addSkill(SkillTable.getInstance().getInfo(1059, 3), true);//Empower
- + player.addSkill(SkillTable.getInstance().getInfo(1062, 2), true);//Berserker Spirit
- + player.addSkill(SkillTable.getInstance().getInfo(1068, 3), true);//Might
- + player.addSkill(SkillTable.getInstance().getInfo(1069, 42), true);//Sleep
- + player.addSkill(SkillTable.getInstance().getInfo(1077, 3), true);//Focus
- + player.addSkill(SkillTable.getInstance().getInfo(1078, 6), true);//Concentration
- + player.addSkill(SkillTable.getInstance().getInfo(1085, 3), true);//Acumen
- + player.addSkill(SkillTable.getInstance().getInfo(1086, 2), true);//Haste
- + player.addSkill(SkillTable.getInstance().getInfo(1087, 3), true);//Agility
- + player.addSkill(SkillTable.getInstance().getInfo(1126, 6), true);//Servitor Recharge
- + player.addSkill(SkillTable.getInstance().getInfo(1127, 12), true);//Servitor Heal
- + player.addSkill(SkillTable.getInstance().getInfo(1204, 2), true);//Wind Walk
- + player.addSkill(SkillTable.getInstance().getInfo(1217, 33), true);//Greater Heal
- + player.addSkill(SkillTable.getInstance().getInfo(1218, 33), true);//Greater Battle Heal
- + player.addSkill(SkillTable.getInstance().getInfo(1219, 33), true);//Greater Group Heal
- + player.addSkill(SkillTable.getInstance().getInfo(1240, 3), true);//Guidance
- + player.addSkill(SkillTable.getInstance().getInfo(1242, 3), true);//Death Whisper
- + player.addSkill(SkillTable.getInstance().getInfo(1243, 6), true);//Bless Shield
- + player.addSkill(SkillTable.getInstance().getInfo(1254, 6), true);//Mass Resurrection
- + player.addSkill(SkillTable.getInstance().getInfo(1257, 3), true);//Decrease Weight
- + player.addSkill(SkillTable.getInstance().getInfo(1258, 4), true);//Restore Life
- + player.addSkill(SkillTable.getInstance().getInfo(1259, 4), true);//Resist Shock
- + player.addSkill(SkillTable.getInstance().getInfo(1268, 4), true);//Vampiric Rage
- + player.addSkill(SkillTable.getInstance().getInfo(1303, 2), true);//Wild Magic
- + player.addSkill(SkillTable.getInstance().getInfo(1304, 3), true);//Advanced Block
- + player.addSkill(SkillTable.getInstance().getInfo(1311, 6), true);//Body of Avatar
- + player.addSkill(SkillTable.getInstance().getInfo(1323, 1), true);//Noblesse Blessing
- + player.addSkill(SkillTable.getInstance().getInfo(1355, 1), true);//Prophecy of Water
- + player.addSkill(SkillTable.getInstance().getInfo(1356, 1), true);//Prophecy of Fire
- + player.addSkill(SkillTable.getInstance().getInfo(1357, 1), true);//Prophecy of Wind
- + player.addSkill(SkillTable.getInstance().getInfo(1363, 1), true);//Chant of Victory
- + player.addSkill(SkillTable.getInstance().getInfo(1388, 3), true);//Greater Might
- + player.addSkill(SkillTable.getInstance().getInfo(1389, 3), true);//Greater Shield
- + player.addSkill(SkillTable.getInstance().getInfo(1425, 1), true);//Purification Field
- + player.addSkill(SkillTable.getInstance().getInfo(4699, 12), true);//Blessing of Queen
- + player.addSkill(SkillTable.getInstance().getInfo(4703, 12), true);//Gift of Seraphim
- + player.addSkill(SkillTable.getInstance().getInfo(1476, 3), true);//Appetite for Destruction
- + player.addSkill(SkillTable.getInstance().getInfo(1479, 3), true);//Magic Impulse
- + player.addSkill(SkillTable.getInstance().getInfo(1478, 3), true);//Protection Instinct
- + player.sendSkillList();
- + player.broadcastUserInfo();
- + }
- +
- + public void handleAIOremove(L2PcInstance player)
- + {
- + //What if the player is buffer and we remove one of it's own skills?
- + //Let's remove all skills and give it all the skills up to it's level
- + for (L2Skill skill : player.getAllSkills())
- + {
- + player.removeSkill(skill);
- + }
- + player.giveAvailableSkills();
- + player.sendSkillList();
- + player.broadcastUserInfo();
- + }
- +
- + public String[] getAdminCommandList()
- + {
- + return ADMIN_COMMANDS;
- + }
- +}
-
-
- the enxt code are for the aio buffers can not paricipate for olympiad macth:
- - if (noble.getKarma() > 0)
- - {
- - noble.sendMessage("You can't participate to Olympiad with karma.");
- - return false;
- - }
- +
- + if (noble.isgold())
- + {
- + noble.sendMessage("You can't paricipaate because you are AIO Buffer");
- + }
Скопировать код код enxt предназначен для буферов aio, которые не могут участвовать в олимпиаде macth:
- if (noble.getKarma() > 0)
- - {
- - noble.sendMessage("You can't participate to Olympiad with karma.");
- - return false;
- - }
- +
- + if (noble.isgold())
- + {
- + noble.sendMessage("You can't paricipaate because you are AIO Buffer");
- + }
Скопировать код
вот sql для обновления, mysql такой же, как и код....
если вы знаете, как добавить больше полей в таблицы, вам не нужен этот sql..
- ALTER TABLE `characters` ADD `aio` TINYINT NOT NULL DEFAULT '0' AFTER `account_name`;
- INSERT INTO `l2jdb`.`admin_command_access_rights` (`adminCommand`,`accessLevels`,`confirmDlg`)
- VALUES
- ('admin_addaio', '1', 'false'),
- ('admin_removeaio', '1', 'false');
Скопировать код
|