Перейти к содержанию

RazerPTS

Заблокирован
  • Публикаций

    138
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент RazerPTS

  1. Извиняюсь, вообщем реально по ходу при 100 мб канале набрать даже 6-7 тысяч....) Инфа на 99% )
  2. Да не понятно откуда они такие цифры берут или просто от балды посты набивают....
  3. Если без всяких там ддос,всё чуки пуки настроено , Linux и тд.. и тп.. Я думаю 100 мб потянет ну онлайна 200+ Но насколько я знаю ,такой онлайн даже сейчас ,практически, не все собирают....
  4. Мой провайдер топ 1 место в городе по скорости ... Пинг всегда 1 m/s Днём до 95 ,с вечера всегда ровно 100...
  5. Чего ты лечишь то? боже мой... с потолка такие цифры? Было уже для теста ..открывались при таком канале..... тел было в районе 30+ были чуть лаги...да и дсом тупо просто на раз два положили)
  6. Перепутал сорян, ну короче есть у кого ?
  7. Что значит не из патча? А где по вашему лежат икон.utx ? (в system)
  8. RazerPTS

    Щит

    В личные сообщения скинь скайп. Помогу.
  9. RazerPTS

    Щит

    А скилл активный или пасивный? Какие статы должен давать скилл?
  10. Привет всем. Есть ли у кого патч l2 classic ? И второй вопрос, можно ли оттуда выдернуть иконки?
  11. Убираешь скилы просто у нпц через базу или стат хмл.
  12. RazerPTS

    Картинки в UTX

    Привет. Есть мануал на форуме. http://forummaxi.ru/tutorials/article/217-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B2%D0%BE%D0%B5%D0%B3%D0%BE-utx-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0/
  13. "всё-в-одном" (All in One) Вот например для acis... ### Eclipse Workspace Patch 1.0 #P aVa Tester Index: java/net/sf/l2j/gameserver/Olympiad.java =================================================================== --- java/net/sf/l2j/gameserver/model/Olympiad/OlympiadManager.java (revision 9) +++ java/net/sf/l2j/gameserver//model/Olympiad/OlympiadManager.java (working copy) @@ -392,6 +392,12 @@ player.sendPacket(SystemMessageId.THE_OLYMPIAD_GAME_IS_NOT_CURRENTLY_IN_PROGRESS); return false; } + if(player.isAio()) + { + player.sendMessage("AIO players can't register in Olympiad"); + return false; + } if (Olympiad.getInstance().getMillisToCompEnd() < 600000) { Index: java/net/sf/l2j/gameserver/model/AioBuffHandler.java =================================================================== --- java/net/sf/l2j/gameserver/model/AioBuffHandler.java (revision 0) +++ java/net/sf/l2j/gameserver/model/AioBuffHandler.java (revision 0) @@ -0,0 +1,190 @@ + +package net.sf.l2j.gameserver.model; + +import java.util.logging.Logger; + +import net.sf.l2j.gameserver.network.clientpackets.Say2; +import net.sf.l2j.gameserver.datatables.SkillTable; +import net.sf.l2j.gameserver.datatables.SkillTreeTable; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.network.serverpackets.CreatureSay; +import net.sf.l2j.gameserver.util.Broadcast; + +/** + * This class handles AIO buffers + *@author irat + *@editor Zake + */ + +public class AioBuffHandler +{ + private static final Logger _log = Logger.getLogger((AioBuffHandler.class.getName())); + + private final static int SKILL_IDS_LEVELS[][] = + { + {264,1}, + {265,1}, + {266,1}, + {267,1}, + {268,1}, + {269,1} + }; + + public static void setAio(L2PcInstance player , L2PcInstance target) + { + if(player == null || target == null) + return; + + if(target.isAio()) + { + player.sendMessage("Player "+target.getName()+" is already an AIO"); + return; + } + + else if(target.isSubClassActive()) + { + player.sendMessage("Player must be at main class in order to become an AIO"); + return; + } + + else if(target.isTeleporting() || target.isInOlympiadMode() || target.isDead() || target.isAlikeDead()) + { + player.sendMessage("Action failed , nothing happened"); + return; + } + + target.setAio(true); + Broadcast.toAllOnlinePlayers(new CreatureSay(0,15,"Server","Attention: Player "+target.getName()+" has been granted with AIO status.")); + player.sendMessage("Player "+target.getName()+" is now an AIO!"); + target.sendPacket(new CreatureSay(0,Say2.TELL,"Aio System","Dear player, you have AIO status now with special abilities , congratulations.")); + + } + + public static void changeName(String beforeName,L2PcInstance target) + { + if(beforeName == null || beforeName == "" || target == null) + return; + + String currentName = target.getName(); + String newName = beforeName + currentName; + + target.setName(newName); + target.setRecomHave(255); + target.broadcastUserInfo(); + } + + public static void removeCurrentSkills(L2PcInstance player,L2PcInstance target) + { + if(player == null || target == null) + return; + + L2Skill[] playerCurrentSkills = target.getAllSkills(); + + //loop into skills to remove one by one + for(L2Skill skill : playerCurrentSkills) + { + if(skill == null) + { + player.sendMessage("Warning:Error occured in skill "+ skill.getName() +"."); + continue; + } + target.removeSkill(skill); + + } + target.sendSkillList(); + } + + public static void giveAioSkills(L2PcInstance player,L2PcInstance target) + { + for(int[] skillIdLevel : SKILL_IDS_LEVELS) + { + int id = skillIdLevel[0]; + int level = skillIdLevel[1]; + + if(id == 0 || level == 0) + continue; + + L2Skill skillToAdd = SkillTable.getInstance().getInfo(id,level); + + if(skillToAdd == null){ + player.sendMessage("An error occured to give skills to "+target.getName()+",check your skill infos please and try again."); + return; + } + + target.addSkill(skillToAdd, true); + } + target.sendSkillList(); + } + + public static void removeAio(L2PcInstance player,L2PcInstance target) + { + if(target == null || player == null) + return; + + if(!target.isAio()) + { + player.sendMessage("This character is not AIO at the moment!"); + return; + } + + if(target.isTeleporting()) + { + player.sendMessage("An error occured, nothing happened"); + return; + } + + target.setAio(false); + + L2Skill[] aioBuffs = target.getAllSkills(); + + for(L2Skill skill : aioBuffs) + { + if(skill == null) + continue; + + target.removeSkill(skill); + } + + boolean countUnlearnable = true; + int unLearnable = 0; + int skillCounter = 0; + L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(target, target.getClassId()); + while(skills.length > unLearnable) + { + for (L2SkillLearn s : skills) + { + L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel()); + if (sk == null || !sk.getCanLearn(target.getClassId())) + { + if(countUnlearnable) + unLearnable++; + continue; + } + if(target.getSkillLevel(sk.getId()) == -1) + skillCounter++; + target.addSkill(sk, true); + } + countUnlearnable = false; + skills = SkillTreeTable.getInstance().getAvailableSkills(target, target.getClassId()); + } + + String aioName = target.getName(); + String name = null; + + if(aioName.startsWith("[AIO]")) + name = aioName.substring(5); + + + if(name != null) + target.setName(name); + + target.broadcastUserInfo(); + target.sendSkillList(); + target.setRecomHave(0); + target.sendPacket(new CreatureSay(0,Say2.TELL,"Aio System","You are no longer an AIO , you rewarded with your normal skills.")); + player.sendMessage("Player "+target.getName()+" successfully removed from AIO"); + Broadcast.toAllOnlinePlayers(new CreatureSay(0,15,"Server","Attention: Player "+target.getName()+" is no more a server AIO")); + + + } + +} Index: java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- java/net/sf/l2j/gameserver/GameServer.java (revision 9) +++ java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -72,6 +72,7 @@ import net.sf.l2j.gameserver.handler.UserCommandHandler; import net.sf.l2j.gameserver.handler.VoicedCommandHandler; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAdmin; +import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAio; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAnnouncements; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminBBS; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminBan; @@ -516,6 +517,7 @@ _adminCommandHandler = AdminCommandHandler.getInstance(); _adminCommandHandler.registerAdminCommandHandler(new AdminAdmin()); + _adminCommandHandler.registerAdminCommandHandler(new AdminAio()); _adminCommandHandler.registerAdminCommandHandler(new AdminInvul()); _adminCommandHandler.registerAdminCommandHandler(new AdminDelete()); _adminCommandHandler.registerAdminCommandHandler(new AdminKill()); Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 9) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -211,8 +211,8 @@ private static final String ADD_SKILL_SAVE = "INSERT INTO character_skills_save (char_obj_id,skill_id,skill_level,effect_count,effect_cur_time,reuse_delay,restore_type,class_index,buff_index) VALUES (?,?,?,?,?,?,?,?,?)"; private static final String RESTORE_SKILL_SAVE = "SELECT skill_id,skill_level,effect_count,effect_cur_time, reuse_delay FROM character_skills_save WHERE char_obj_id=? AND class_index=? AND restore_type=? ORDER BY buff_index ASC"; private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?"; - private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=- private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=- private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=- private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=? WHERE obj_id=?"; - private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level FROM characters WHERE obj_id=?"; + private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=+ private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=+ private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=+ private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,aio=? WHERE obj_id=?"; + private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,aio FROM characters WHERE obj_id=?"; private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC"; private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)"; private static final String UPDATE_CHAR_SUBCLASS = "UPDATE character_subclasses SET exp=?,sp=?,level=?,class_id=? WHERE char_obj_id=? AND class_index =?"; @@ -314,6 +314,12 @@ @Override public void doCast(L2Skill skill) { + if(isAio() && !isInsideZone(ZONE_PEACE)) + { + sendMessage("An AIO buffer can use his abilities only in PEACE ZONE"); + return; + } + super.doCast(skill); // cancel the recent fake-death protection instantly if the player attacks or casts spells @@ -548,6 +554,9 @@ /** The _noble. */ private boolean _noble = false; + /** Aio system */ + private boolean _aio = false; + /** The _hero. */ private boolean _hero = false; @@ -6864,6 +6873,7 @@ player.setOnlineTime(rset.getLong("onlinetime")); player.setNewbie(rset.getInt("newbie") == 1); 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()) @@ -7412,7 +7422,8 @@ statement.setLong(54, getClanCreateExpiryTime()); statement.setString(55, getName()); statement.setLong(56, getDeathPenaltyBuffLevel()); - statement.setInt(57, getObjectId()); + statement.setInt(57, isAio() ? 1 : 0); + statement.setInt(58, getObjectId()); statement.execute(); statement.close(); @@ -10077,6 +10088,16 @@ return true; } + public void setAio(boolean becomeAio) + { + _aio = becomeAio; + } + + public boolean isAio() + { + return _aio; + } + /** * Checks if is noble. * @return true, if is noble @@ -11099,6 +11120,10 @@ // Force a revalidation revalidateZone(true); + if(isAio() && !isInsideZone(ZONE_PEACE)) + teleToLocation(MapRegionTable.TeleportWhereType.Town); + + if (Config.PLAYER_SPAWN_PROTECTION > 0) { setProtection(true); Index: java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (revision 9) +++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (working copy) @@ -277,6 +277,13 @@ activeChar.removeSkill(FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill()); } + + if (activeChar.isAio()) + { + activeChar.setIsImmobilized(false); + activeChar.setIsParalyzed(false); + activeChar.setIsOverloaded(false); + activeChar.setIsTeleporting(false); + activeChar.setInsideZone(L2Character.ZONE_TOWN, true); + activeChar.teleToLocation(activeChar.getX(), activeChar.getY(), activeChar.getZ()); + + if (!activeChar.isInsideZone(L2Character.ZONE_TOWN)) + { + activeChar.teleToLocation(MapRegionTable.TeleportWhereType.Town); + } if (Config.PLAYER_SPAWN_PROTECTION > 0) activeChar.setProtection(true); Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAio.java =================================================================== --- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAio.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAio.java (revision 0) @@ -0,0 +1,58 @@ + +package net.sf.l2j.gameserver.handler.admincommandhandlers; + +import net.sf.l2j.gameserver.handler.IAdminCommandHandler; +import net.sf.l2j.gameserver.model.AioBuffHandler; +import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; + +/** + *This class handles the admin commands for AIO system + * @author irat + * @editor Zake + */ + +public class AdminAio implements IAdminCommandHandler +{ + + private final String[] AIO_COMMANDS = {"admin_setaio","admin_removeaio"}; + + @Override + public boolean useAdminCommand(String command, L2PcInstance activeChar) + { + L2Object target = activeChar.getTarget(); + L2PcInstance targ = null; + if(target == null) + { + activeChar.sendMessage("Using this command in the air?"); + return false; + } + if(!(target instanceof L2PcInstance)) + { + activeChar.sendMessage("This command can be used only in players."); + return false; + } + targ = (L2PcInstance) target; + + if(command.equalsIgnoreCase("admin_setaio")) + { + AioBuffHandler.setAio(activeChar, targ); + AioBuffHandler.removeCurrentSkills(activeChar, targ); + AioBuffHandler.giveAioSkills(activeChar, targ); + AioBuffHandler.changeName("[AIO]", targ); + } + else if(command.equalsIgnoreCase("admin_removeaio")) + { + AioBuffHandler.removeAio(activeChar, targ); + } + + return true; + } + + + @Override + public String[] getAdminCommandList() + { + return AIO_COMMANDS; + } + +} Index: java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 9) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2VillageMasterInstance.java (working copy) @@ -168,7 +168,14 @@ player.sendPacket(new SystemMessage(SystemMessageId.SUBCLASS_NO_CHANGE_OR_CREATE_WHILE_SKILL_IN_USE)); return; } - + + // Subclasses may not be changed if player is AIO + if(player.isAio()) + { + player.sendMessage("An AIO has not the ability to change or add subclasses"); + return; + } + TextBuilder content = new TextBuilder("<html><body>"); NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); Set<PlayerClass> subsAvailable; Index: java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java =================================================================== --- java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java (revision 9) +++ java/net/sf/l2j/gameserver/model/zone/type/L2TownZone.java (working copy) @@ -18,6 +18,8 @@ package net.sf.l2j.gameserver.model.zone.type; import net.sf.l2j.Config; +import net.sf.l2j.gameserver.ThreadPoolManager; +import net.sf.l2j.gameserver.datatables.MapRegionTable; import net.sf.l2j.gameserver.model.L2Character; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.zone.L2ZoneType; @@ -111,12 +113,36 @@ character.setInsideZone(L2Character.ZONE_PEACE, false); if (character instanceof L2PcInstance) { + if (((L2PcInstance) character).isAio()) + { + ((L2PcInstance) character).sendMessage("Aio characters can't leave towns!"); + ((L2PcInstance) character).teleToLocation(TeleportWhereType.Town); // teleport the aio to the closest town + } Index: sql/characters.sql =================================================================== --- sql/characters.sql (revision +++ sql/characters.sql (working copy) @@ -79,6 +79,7 @@ `clan_join_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0, `clan_create_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0, `death_penalty_level` SMALLINT UNSIGNED NOT NULL DEFAULT 0 + `aio` TINYINT UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (obj_Id), KEY `clanid` (`clanid`) ) ;
  14. В l2jbrasil в такой сборке есть AIO система. Актуально для лоу рейтов. Чар садиться в офф.трейд и продаёт бафы игрокам. Можно вытащить себе.
×
×
  • Создать...