AzogConqueror 13 Опубликовано 19 марта, 2015 На одном иностранном сервере наткнулся на интересную вещь,люди садят своего бафера и он в режиме офлайн как трейдер продает баф за указаную им цену.Не у кого нет такой вещи? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MinakoMino 57 Опубликовано 19 марта, 2015 АОЕ система что то похожее Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
AzogConqueror 13 Опубликовано 20 марта, 2015 Вопрос остается актуальный,ничего подобного не смог найти Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RazerPTS 17 Опубликовано 20 марта, 2015 (изменено) В l2jbrasil в такой сборке есть AIO система. Актуально для лоу рейтов. Чар садиться в офф.трейд и продаёт бафы игрокам. Можно вытащить себе. Изменено 20 марта, 2015 пользователем RazerPTS Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 20 марта, 2015 (изменено) В l2jbrasil в такой сборке есть AIO система. Актуально для лоу рейтов. Чар садиться в офф.трейд и продаёт бафы игрокам. Можно вытащить себе. Подскажы где в коде ее искать я пробовал ненашол. еще в роде на свс ласт рева еще с хз каких времен. есть ли исходник в котором 100% есть ето чудо?? кто дасть сылочку от меня + в реп. нащет АИО системы ето вродебы бафер со скиламы всех професий, а ето бафсторе или бафтрейд) Изменено 20 марта, 2015 пользователем chiton Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
RazerPTS 17 Опубликовано 20 марта, 2015 (изменено) Подскажы где в коде ее искать я пробовал ненашол. еще в роде на свс ласт рева еще с хз каких времен. есть ли исходник в котором 100% есть ето чудо?? кто дасть сылочку от меня + в реп. нащет АИО системы ето вродебы бафер со скиламы всех професий, а ето бафсторе или бафтрейд) "всё-в-одном" (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`) ) ; Изменено 20 марта, 2015 пользователем RazerPTS 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 20 марта, 2015 ахх ето всеравно не тот код))Из кода видно что он создает АИО персовприсваивает персонажу статус Аио, а также дает набор скилов который настраивается в конфиге.дать персу АИО Стату можно командой //setaio 'name' 'days' убрать //removeaio 'name'а вот реализации самой продажи бафа я тут не увидел. видимо етот код разрабы держат под замком (хоть он и довольно старый), на одном из иностранных форумов встречал такой код за 90 евро. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Influence 3 Опубликовано 20 марта, 2015 http://www.maxcheaters.com/topic/137427-sell-buff-system-190-interlude/ 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 20 марта, 2015 (изменено) Influence, on 20 Mar 2015 - 12:46 PM, said: http://www.maxcheaters.com/topic/137427-sell-buff-system-190-interlude/ чтото похоже на True щас будем пробовтаь ставить по окончанию отпишусь Изменено 20 марта, 2015 пользователем chiton Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 20 марта, 2015 чтото там не подходит совсем чуток) [javac] E:\site\Java\l2server\trunk\gameserver\head-src\com\l2jfrozen\gameserver\network\L2GameClient.java:998: error: cannot find symbol [javac] player.setOffline(true); [javac] ^ [javac] symbol: method setOffline(boolean) [javac] location: variable player of type L2PcInstance [javac] E:\site\Java\l2server\trunk\gameserver\head-src\com\l2jfrozen\gameserver\custom\SellBuffMsg.java:449: error: cannot find symbol [javac] if(!seller.isOffline()){ [javac] ^ [javac] symbol: method isOffline() [javac] location: variable seller of type L2PcInstance [javac] E:\site\Java\l2server\trunk\gameserver\head-src\com\l2jfrozen\gameserver\custom\SellBuffMsg.java:511: error: cannot find symbol [javac] if(!seller.isOffline()){ [javac] ^ [javac] symbol: method isOffline() [javac] location: variable seller of type L2PcInstance [javac] 3 errors [javac] 100 warnings BUILD FAILED E:\site\Java\l2server\trunk\gameserver\build.xml:65: Compile failed; see the compiler error output for details. Total time: 13 seconds Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nha 22 Опубликовано 20 марта, 2015 Может вместо !seller.isOffline() использовать seller.isOnline() == 1 А на счет player.setOffline(true); Тут имеется ввиду скорее всего player.setOnlineStatus(false); 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 20 марта, 2015 BUILD SUCCESSFUL Total time: 26 seconds что тут сказать))) сразу видно руку мастера) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Influence 3 Опубликовано 20 марта, 2015 BUILD SUCCESSFUL Total time: 26 seconds что тут сказать))) сразу видно руку мастера) работает то? скрины выложи, если не тяжело Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
chiton 12 Опубликовано 21 марта, 2015 работает то? скрины выложи, если не тяжело Да все работает. скринить не стал. под фрозен залил в серверные дополнения http://forummaxi.ru/files/file/1099-%D0%B1%D0%B0%D1%84%D1%88%D0%BE%D0%BF-%D0%B7%D0%B0-%D0%B0%D0%B4%D0%B5%D0%BD%D1%83-%D0%BE%D1%84%D0%BB%D0%B0%D0%B9%D0%BD-%D0%B1%D0%B0%D1%84/ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты