Run 0 Posted March 4, 2021 (edited) установил сервер https://monche.org/article/934-sozdanie-servera-lineage-2-scions-of-destiny-c4.html не могу разобраться как добавить (1)пет бафера, в нете 5 дней скачивал разные баферов с профилями но не один не смог поставить разбирал и sql, __init__.py, ипорты... то в .sql нехватало строк типа 'LAST_HIT' , то диалоги не менялись. Всё время играл в Interlude, но С4 очень сильно приглянулся, играю для себя хотелось бы реализовать эти возможности (2) вопрос поглубже title color возможно ли в GM shop такое реализовать где копать?) Edited March 4, 2021 by Run Quote Share this post Link to post
Леха 13 Posted March 4, 2021 52 минуты назад, Run сказал: установил сервер https://monche.org/article/934-sozdanie-servera-lineage-2-scions-of-destiny-c4.html не могу разобраться как добавить (1)пет бафера, в нете 5 дней скачивал разные баферов с профилями но не один не смог поставить разбирал и sql, __init__.py, ипорты... то в .sql нехватало строк типа 'LAST_HIT' , то диалоги не менялись. Всё время играл в Interlude, но С4 очень сильно приглянулся, играю для себя хотелось бы реализовать эти возможности (2) вопрос поглубже title color возможно ли в GM shop такое реализовать где копать?) это на питоне и старье у вас 2 вариантов 1)изучить основу питона 2)выпилить все это говно и по заново делать на java Quote Share this post Link to post
Lavs 12 Posted March 5, 2021 package services.NPCBuffer; import tenjs.config.ConfigValue; import tenjs.common.ThreadPoolManager; import tenjs.extensions.multilang.CustomMessage; import tenjs.extensions.scripts.Functions; import tenjs.extensions.scripts.ScriptFile; import tenjs.gameserver.cache.Msg; import tenjs.gameserver.instancemanager.TownManager; import tenjs.gameserver.model.L2Character; import tenjs.gameserver.model.L2Player; import tenjs.gameserver.model.L2Skill; import tenjs.gameserver.model.L2Summon; import tenjs.gameserver.model.entity.residence.Residence; import tenjs.gameserver.model.entity.siege.Siege; import tenjs.gameserver.model.instances.L2NpcInstance; import tenjs.gameserver.serverpackets.MagicSkillLaunched; import tenjs.gameserver.serverpackets.MagicSkillUse; import tenjs.gameserver.tables.SkillTable; import tenjs.util.Files; import tenjs.util.Util; public class Buffer extends Functions implements ScriptFile { /** Количество бафов в группах */ private static int grpCount1, grpCount2, grpCount3, grpCount4, grpCount5; // Количество бафов в 1 и второй группах должно быть одинаковое private static int buffs[][] = { // id, lvl, group // Chants { 1251, 2, 5 }, // Chant of Fury { 1252, 3, 5 }, // Chant of Evasion { 1253, 3, 5 }, // Chant of Rage { 1284, 3, 5 }, // Chant of Revenge { 1308, 3, 5 }, // Chant of Predator { 1309, 3, 5 }, // Chant of Eagle { 1310, 4, 5 }, // Chant of Vampire { 1362, 1, 5 }, // Chant of Spirit { 1363, 1, 5 }, // Chant of Victory { 1390, 3, 5 }, // War Chant { 1391, 3, 5 }, // Earth Chant // Songs { 264, 1, 4 }, // Song of Earth { 265, 1, 4 }, // Song of Life { 266, 1, 4 }, // Song of Water { 267, 1, 4 }, // Song of Warding { 268, 1, 4 }, // Song of Wind { 269, 1, 4 }, // Song of Hunter { 270, 1, 4 }, // Song of Invocation { 304, 1, 4 }, // Song of Vitality { 305, 1, 4 }, // Song of Vengeance { 306, 1, 4 }, // Song of Flame Guard { 308, 1, 4 }, // Song of Storm Guard { 349, 1, 4 }, // Song of Renewal { 363, 1, 4 }, // Song of Meditation { 364, 1, 4 }, // Song of Champion // Dances { 271, 1, 3 }, // Dance of Warrior { 272, 1, 3 }, // Dance of Inspiration { 273, 1, 3 }, // Dance of Mystic { 274, 1, 3 }, // Dance of Fire { 275, 1, 3 }, // Dance of Fury { 276, 1, 3 }, // Dance of Concentration { 277, 1, 3 }, // Dance of Light { 307, 1, 3 }, // Dance of Aqua Guard { 309, 1, 3 }, // Dance of Earth Guard { 310, 1, 3 }, // Dance of Vampire { 311, 1, 3 }, // Dance of Protection { 365, 1, 3 }, // Dance of Siren // Группа для магов 2 { 7059, 1, 2 }, // Wild Magic { 4356, 3, 2 }, // Empower { 4355, 3, 2 }, // Acumen { 4352, 1, 2 }, // Berserker Spirit { 4346, 4, 2 }, // Mental Shield { 4351, 6, 2 }, // Concentration { 4342, 2, 2 }, // Wind Walk { 4347, 6, 2 }, // Bless the Body { 4348, 6, 2 }, // Bless the Soul { 4344, 3, 2 }, // Shield { 7060, 1, 2 }, // Clarity { 4350, 4, 2 }, // Resist Shock // Группа для воинов 1 { 7057, 1, 1 }, // Greater Might { 4345, 3, 1 }, // Might { 4344, 3, 1 }, // Shield { 4349, 2, 1 }, // Magic Barrier { 4342, 2, 1 }, // Wind Walk { 4347, 6, 1 }, // Bless the Body { 4357, 2, 1 }, // Haste { 4359, 3, 1 }, // Focus { 4358, 3, 1 }, // Guidance { 4360, 3, 1 }, // Death Whisper { 4354, 4, 1 }, // Vampiric Rage { 4346, 4, 1 } // Mental Shield }; public void onLoad() { if(ConfigValue.BufferEnabled) _log.info("Loaded Service: NPCBuffer [state: activated]"); else _log.info("Loaded Service: NPCBuffer [state: deactivated]"); for(int buff[] : buffs) switch(buff[2]) { case 1: grpCount1++; break; case 2: grpCount2++; break; case 3: grpCount3++; break; case 4: grpCount4++; break; case 5: grpCount5++; break; } } public void onReload() {} public void onShutdown() {} /** * Бафает группу баффов, снимает плату за бафф, отображает диалог с кнопкой возврата к списку бафов * @param args массив строк, где элемент 0 - id группы бафов */ public void doBuffGroup(String[] args) { L2Player player = (L2Player) getSelf(); L2Summon pet = player.getPet(); L2NpcInstance npc = getNpc(); if(!checkCondition(player, npc)) return; if(player.getAdena() < ConfigValue.BufferPrice * (Integer.valueOf(args[1]) + 2)) { player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA); return; } player.reduceAdena(ConfigValue.BufferPrice * (Integer.valueOf(args[1]) + 2), true); int time = 0; int id_groups = Integer.valueOf(args[0]); int select_id = Integer.valueOf(args[1]); L2Skill skill; for(int buff[] : buffs) if(buff[2] == id_groups) { if(select_id == 0) { skill = SkillTable.getInstance().getInfo(buff[0], buff[1]); time += skill.getHitTime(); ThreadPoolManager.getInstance().schedule(new BeginBuff(getNpc(), skill, player), time); time += 200; } if(select_id == 1) { if(pet == null) return; skill = SkillTable.getInstance().getInfo(buff[0], buff[1]); time += skill.getHitTime(); ThreadPoolManager.getInstance().schedule(new BeginPetBuff(getNpc(), skill, pet), time); time += 200; } } } /** * Бафает один бафф, снимает плату за бафф, отображает диалог с кнопкой возврата к списку бафов * @param args массив строк: элемент 0 - id скида, элемент 1 - уровень скила */ public void doBuff(String[] args) { L2Player player = (L2Player) getSelf(); L2Summon pet = player.getPet(); L2NpcInstance npc = getNpc(); if(!checkCondition(player, npc)) return; if(player.getAdena() < ConfigValue.BufferPrice) { player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA); return; } try { int skill_id = Integer.valueOf(args[0]); int skill_lvl = Integer.valueOf(args[1]); int select_id = Integer.valueOf(args[2]); L2Skill skill = SkillTable.getInstance().getInfo(skill_id, skill_lvl); if(select_id == 0) ThreadPoolManager.getInstance().schedule(new BeginBuff(getNpc(), skill, player), skill.getHitTime()); if(select_id == 1) { if(pet == null) return; ThreadPoolManager.getInstance().schedule(new BeginPetBuff(getNpc(), skill, pet), skill.getHitTime()); } player.reduceAdena(ConfigValue.BufferPrice, true); } catch(Exception e) { player.sendMessage("Invalid skill!"); } show(Files.read("data/scripts/services/NPCBuffer/buffs-tolist.htm", player), player, npc); } /** * Проверяет возможность бафа персонажа.<BR> * В случае невозможности бафа показывает игроку html с ошибкой и возвращает false. * @param player персонаж * @return true, если можно бафать персонажа */ public boolean checkCondition(L2Player player, L2NpcInstance npc) { if(!ConfigValue.BufferEnabled || player == null || npc == null) return false; if(!L2NpcInstance.canBypassCheck(player, npc)) return false; String html; // Проверяем по уровню if(player.getLevel() > ConfigValue.BufferMaxLvl || player.getLevel() < ConfigValue.BufferMinLvl) { html = Files.read("data/scripts/services/NPCBuffer/no-lvl.htm", player); html = html.replace("%min_lvl%", Integer.toString(ConfigValue.BufferMinLvl)); html = html.replace("%max_lvl%", Integer.toString(ConfigValue.BufferMaxLvl)); show(html, player, npc); return false; } //Можно ли юзать бафера во время осады? //if(!Config.SERVICES_BUFFER_SIEGE) //{ // Residence castle = TownManager.getInstance().getClosestTown(getSelf()).getCastle(); // Siege siege = castle.getSiege(); // if(siege == null) // { // show(Files.read("data/scripts/services/NPCBuffer/no-siege.htm", player), player, npc); // return false; // } //} return true; } /* Выбор меню */ public void SelectMenu(String[] args) { int select_menu = Integer.valueOf(args[0]); L2Player player = (L2Player) getSelf(); L2NpcInstance npc = getNpc(); String html = null; if(select_menu == 0) html = Files.read("data/scripts/services/NPCBuffer/buffschar.htm", player); if(select_menu == 1) { if(ConfigValue.BufferPetEnabled != true) return; if(player.getPet() == null) return; html = Files.read("data/scripts/services/NPCBuffer/buffspet.htm", player); } assert html != null; html = html.replace("%grp_price1%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount1 + 2))); html = html.replace("%grp_price2%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount2 + 2))); html = html.replace("%grp_price3%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount3 + 2))); html = html.replace("%grp_price4%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount4 + 2))); html = html.replace("%grp_price5%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount5 + 2))); html = html.replace("%buffs_in_grp1%", Integer.toString(grpCount1)); html = html.replace("%buffs_in_grp2%", Integer.toString(grpCount2)); html = html.replace("%buffs_in_grp3%", Integer.toString(grpCount3)); html = html.replace("%buffs_in_grp4%", Integer.toString(grpCount4)); html = html.replace("%buffs_in_grp5%", Integer.toString(grpCount5)); html = html.replace("%price%", Util.formatAdena(ConfigValue.BufferPrice)); show(html, player, npc); } /* Показывает страницу с выбором кого бафать. */ public void SelectBuffs() { L2Player player = (L2Player) getSelf(); L2NpcInstance lastNpc = player.getLastNpc(); if(!checkCondition(player, lastNpc)) return; show(Files.read("data/scripts/services/NPCBuffer/buffs.htm", player), player, lastNpc); } /** * Генерит ссылку, которая в дальнейшем аппендится эвент менеждерам * @return html код ссылки */ public String OutDia() { if(!ConfigValue.BufferEnabled) return ""; String append = "<br><a action=\"bypass -h scripts_services.NPCBuffer.Buffer:SelectBuffs\">"; append += new CustomMessage("scripts.services.NPCBuffer.Buffer.selectBuffs", getSelf()); append += "</a>"; return append; } // Далее идут аппенды диалогов эвент гейткиперам public String DialogAppend_31212(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31213(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31214(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31215(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31216(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31217(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31218(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31219(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31220(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31221(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31222(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31223(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31224(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31767(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_32048(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31768(Integer val) { if(val != 0) return ""; return OutDia(); } public class BeginBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Player _target; public BeginBuff(L2Character buffer, L2Skill skill, L2Player target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { if(_target.isInOlympiadMode()) return; _buffer.broadcastSkill(new MagicSkillUse(_buffer, _target, _skill.getDisplayId(), _skill.getLevel(), _skill.getHitTime(), 0)); ThreadPoolManager.getInstance().schedule(new EndBuff(_buffer, _skill, _target), _skill.getHitTime()); } } public class EndBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Player _target; public EndBuff(L2Character buffer, L2Skill skill, L2Player target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { _skill.getEffects(_buffer, _target, false, false); _buffer.broadcastSkill(new MagicSkillLaunched(_buffer.getObjectId(), _skill.getId(), _skill.getLevel(), _target, _skill.isOffensive())); } } public class BeginPetBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Summon _target; public BeginPetBuff(L2Character buffer, L2Skill skill, L2Summon target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { _buffer.broadcastSkill(new MagicSkillUse(_buffer, _target, _skill.getDisplayId(), _skill.getLevel(), _skill.getHitTime(), 0)); ThreadPoolManager.getInstance().schedule(new EndPetBuff(_buffer, _skill, _target), _skill.getHitTime()); } } public class EndPetBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Summon _target; public EndPetBuff(L2Character buffer, L2Skill skill, L2Summon target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { _skill.getEffects(_buffer, _target, false, false); _buffer.broadcastSkill(new MagicSkillLaunched(_buffer.getObjectId(), _skill.getId(), _skill.getLevel(), _target, _skill.isOffensive())); } } } Сервис бафера. ХТМЛки сам допилишь. 1 Quote Share this post Link to post
Run 0 Posted March 5, 2021 49 минут назад, Lavs сказал: package services.NPCBuffer; import tenjs.config.ConfigValue; import tenjs.common.ThreadPoolManager; import tenjs.extensions.multilang.CustomMessage; import tenjs.extensions.scripts.Functions; import tenjs.extensions.scripts.ScriptFile; import tenjs.gameserver.cache.Msg; import tenjs.gameserver.instancemanager.TownManager; import tenjs.gameserver.model.L2Character; import tenjs.gameserver.model.L2Player; import tenjs.gameserver.model.L2Skill; import tenjs.gameserver.model.L2Summon; import tenjs.gameserver.model.entity.residence.Residence; import tenjs.gameserver.model.entity.siege.Siege; import tenjs.gameserver.model.instances.L2NpcInstance; import tenjs.gameserver.serverpackets.MagicSkillLaunched; import tenjs.gameserver.serverpackets.MagicSkillUse; import tenjs.gameserver.tables.SkillTable; import tenjs.util.Files; import tenjs.util.Util; public class Buffer extends Functions implements ScriptFile { /** Количество бафов в группах */ private static int grpCount1, grpCount2, grpCount3, grpCount4, grpCount5; // Количество бафов в 1 и второй группах должно быть одинаковое private static int buffs[][] = { // id, lvl, group // Chants { 1251, 2, 5 }, // Chant of Fury { 1252, 3, 5 }, // Chant of Evasion { 1253, 3, 5 }, // Chant of Rage { 1284, 3, 5 }, // Chant of Revenge { 1308, 3, 5 }, // Chant of Predator { 1309, 3, 5 }, // Chant of Eagle { 1310, 4, 5 }, // Chant of Vampire { 1362, 1, 5 }, // Chant of Spirit { 1363, 1, 5 }, // Chant of Victory { 1390, 3, 5 }, // War Chant { 1391, 3, 5 }, // Earth Chant // Songs { 264, 1, 4 }, // Song of Earth { 265, 1, 4 }, // Song of Life { 266, 1, 4 }, // Song of Water { 267, 1, 4 }, // Song of Warding { 268, 1, 4 }, // Song of Wind { 269, 1, 4 }, // Song of Hunter { 270, 1, 4 }, // Song of Invocation { 304, 1, 4 }, // Song of Vitality { 305, 1, 4 }, // Song of Vengeance { 306, 1, 4 }, // Song of Flame Guard { 308, 1, 4 }, // Song of Storm Guard { 349, 1, 4 }, // Song of Renewal { 363, 1, 4 }, // Song of Meditation { 364, 1, 4 }, // Song of Champion // Dances { 271, 1, 3 }, // Dance of Warrior { 272, 1, 3 }, // Dance of Inspiration { 273, 1, 3 }, // Dance of Mystic { 274, 1, 3 }, // Dance of Fire { 275, 1, 3 }, // Dance of Fury { 276, 1, 3 }, // Dance of Concentration { 277, 1, 3 }, // Dance of Light { 307, 1, 3 }, // Dance of Aqua Guard { 309, 1, 3 }, // Dance of Earth Guard { 310, 1, 3 }, // Dance of Vampire { 311, 1, 3 }, // Dance of Protection { 365, 1, 3 }, // Dance of Siren // Группа для магов 2 { 7059, 1, 2 }, // Wild Magic { 4356, 3, 2 }, // Empower { 4355, 3, 2 }, // Acumen { 4352, 1, 2 }, // Berserker Spirit { 4346, 4, 2 }, // Mental Shield { 4351, 6, 2 }, // Concentration { 4342, 2, 2 }, // Wind Walk { 4347, 6, 2 }, // Bless the Body { 4348, 6, 2 }, // Bless the Soul { 4344, 3, 2 }, // Shield { 7060, 1, 2 }, // Clarity { 4350, 4, 2 }, // Resist Shock // Группа для воинов 1 { 7057, 1, 1 }, // Greater Might { 4345, 3, 1 }, // Might { 4344, 3, 1 }, // Shield { 4349, 2, 1 }, // Magic Barrier { 4342, 2, 1 }, // Wind Walk { 4347, 6, 1 }, // Bless the Body { 4357, 2, 1 }, // Haste { 4359, 3, 1 }, // Focus { 4358, 3, 1 }, // Guidance { 4360, 3, 1 }, // Death Whisper { 4354, 4, 1 }, // Vampiric Rage { 4346, 4, 1 } // Mental Shield }; public void onLoad() { if(ConfigValue.BufferEnabled) _log.info("Loaded Service: NPCBuffer [state: activated]"); else _log.info("Loaded Service: NPCBuffer [state: deactivated]"); for(int buff[] : buffs) switch(buff[2]) { case 1: grpCount1++; break; case 2: grpCount2++; break; case 3: grpCount3++; break; case 4: grpCount4++; break; case 5: grpCount5++; break; } } public void onReload() {} public void onShutdown() {} /** * Бафает группу баффов, снимает плату за бафф, отображает диалог с кнопкой возврата к списку бафов * @param args массив строк, где элемент 0 - id группы бафов */ public void doBuffGroup(String[] args) { L2Player player = (L2Player) getSelf(); L2Summon pet = player.getPet(); L2NpcInstance npc = getNpc(); if(!checkCondition(player, npc)) return; if(player.getAdena() < ConfigValue.BufferPrice * (Integer.valueOf(args[1]) + 2)) { player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA); return; } player.reduceAdena(ConfigValue.BufferPrice * (Integer.valueOf(args[1]) + 2), true); int time = 0; int id_groups = Integer.valueOf(args[0]); int select_id = Integer.valueOf(args[1]); L2Skill skill; for(int buff[] : buffs) if(buff[2] == id_groups) { if(select_id == 0) { skill = SkillTable.getInstance().getInfo(buff[0], buff[1]); time += skill.getHitTime(); ThreadPoolManager.getInstance().schedule(new BeginBuff(getNpc(), skill, player), time); time += 200; } if(select_id == 1) { if(pet == null) return; skill = SkillTable.getInstance().getInfo(buff[0], buff[1]); time += skill.getHitTime(); ThreadPoolManager.getInstance().schedule(new BeginPetBuff(getNpc(), skill, pet), time); time += 200; } } } /** * Бафает один бафф, снимает плату за бафф, отображает диалог с кнопкой возврата к списку бафов * @param args массив строк: элемент 0 - id скида, элемент 1 - уровень скила */ public void doBuff(String[] args) { L2Player player = (L2Player) getSelf(); L2Summon pet = player.getPet(); L2NpcInstance npc = getNpc(); if(!checkCondition(player, npc)) return; if(player.getAdena() < ConfigValue.BufferPrice) { player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA); return; } try { int skill_id = Integer.valueOf(args[0]); int skill_lvl = Integer.valueOf(args[1]); int select_id = Integer.valueOf(args[2]); L2Skill skill = SkillTable.getInstance().getInfo(skill_id, skill_lvl); if(select_id == 0) ThreadPoolManager.getInstance().schedule(new BeginBuff(getNpc(), skill, player), skill.getHitTime()); if(select_id == 1) { if(pet == null) return; ThreadPoolManager.getInstance().schedule(new BeginPetBuff(getNpc(), skill, pet), skill.getHitTime()); } player.reduceAdena(ConfigValue.BufferPrice, true); } catch(Exception e) { player.sendMessage("Invalid skill!"); } show(Files.read("data/scripts/services/NPCBuffer/buffs-tolist.htm", player), player, npc); } /** * Проверяет возможность бафа персонажа.<BR> * В случае невозможности бафа показывает игроку html с ошибкой и возвращает false. * @param player персонаж * @return true, если можно бафать персонажа */ public boolean checkCondition(L2Player player, L2NpcInstance npc) { if(!ConfigValue.BufferEnabled || player == null || npc == null) return false; if(!L2NpcInstance.canBypassCheck(player, npc)) return false; String html; // Проверяем по уровню if(player.getLevel() > ConfigValue.BufferMaxLvl || player.getLevel() < ConfigValue.BufferMinLvl) { html = Files.read("data/scripts/services/NPCBuffer/no-lvl.htm", player); html = html.replace("%min_lvl%", Integer.toString(ConfigValue.BufferMinLvl)); html = html.replace("%max_lvl%", Integer.toString(ConfigValue.BufferMaxLvl)); show(html, player, npc); return false; } //Можно ли юзать бафера во время осады? //if(!Config.SERVICES_BUFFER_SIEGE) //{ // Residence castle = TownManager.getInstance().getClosestTown(getSelf()).getCastle(); // Siege siege = castle.getSiege(); // if(siege == null) // { // show(Files.read("data/scripts/services/NPCBuffer/no-siege.htm", player), player, npc); // return false; // } //} return true; } /* Выбор меню */ public void SelectMenu(String[] args) { int select_menu = Integer.valueOf(args[0]); L2Player player = (L2Player) getSelf(); L2NpcInstance npc = getNpc(); String html = null; if(select_menu == 0) html = Files.read("data/scripts/services/NPCBuffer/buffschar.htm", player); if(select_menu == 1) { if(ConfigValue.BufferPetEnabled != true) return; if(player.getPet() == null) return; html = Files.read("data/scripts/services/NPCBuffer/buffspet.htm", player); } assert html != null; html = html.replace("%grp_price1%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount1 + 2))); html = html.replace("%grp_price2%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount2 + 2))); html = html.replace("%grp_price3%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount3 + 2))); html = html.replace("%grp_price4%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount4 + 2))); html = html.replace("%grp_price5%", Util.formatAdena(ConfigValue.BufferPrice * (grpCount5 + 2))); html = html.replace("%buffs_in_grp1%", Integer.toString(grpCount1)); html = html.replace("%buffs_in_grp2%", Integer.toString(grpCount2)); html = html.replace("%buffs_in_grp3%", Integer.toString(grpCount3)); html = html.replace("%buffs_in_grp4%", Integer.toString(grpCount4)); html = html.replace("%buffs_in_grp5%", Integer.toString(grpCount5)); html = html.replace("%price%", Util.formatAdena(ConfigValue.BufferPrice)); show(html, player, npc); } /* Показывает страницу с выбором кого бафать. */ public void SelectBuffs() { L2Player player = (L2Player) getSelf(); L2NpcInstance lastNpc = player.getLastNpc(); if(!checkCondition(player, lastNpc)) return; show(Files.read("data/scripts/services/NPCBuffer/buffs.htm", player), player, lastNpc); } /** * Генерит ссылку, которая в дальнейшем аппендится эвент менеждерам * @return html код ссылки */ public String OutDia() { if(!ConfigValue.BufferEnabled) return ""; String append = "<br><a action=\"bypass -h scripts_services.NPCBuffer.Buffer:SelectBuffs\">"; append += new CustomMessage("scripts.services.NPCBuffer.Buffer.selectBuffs", getSelf()); append += "</a>"; return append; } // Далее идут аппенды диалогов эвент гейткиперам public String DialogAppend_31212(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31213(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31214(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31215(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31216(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31217(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31218(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31219(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31220(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31221(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31222(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31223(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31224(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31767(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_32048(Integer val) { if(val != 0) return ""; return OutDia(); } public String DialogAppend_31768(Integer val) { if(val != 0) return ""; return OutDia(); } public class BeginBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Player _target; public BeginBuff(L2Character buffer, L2Skill skill, L2Player target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { if(_target.isInOlympiadMode()) return; _buffer.broadcastSkill(new MagicSkillUse(_buffer, _target, _skill.getDisplayId(), _skill.getLevel(), _skill.getHitTime(), 0)); ThreadPoolManager.getInstance().schedule(new EndBuff(_buffer, _skill, _target), _skill.getHitTime()); } } public class EndBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Player _target; public EndBuff(L2Character buffer, L2Skill skill, L2Player target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { _skill.getEffects(_buffer, _target, false, false); _buffer.broadcastSkill(new MagicSkillLaunched(_buffer.getObjectId(), _skill.getId(), _skill.getLevel(), _target, _skill.isOffensive())); } } public class BeginPetBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Summon _target; public BeginPetBuff(L2Character buffer, L2Skill skill, L2Summon target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { _buffer.broadcastSkill(new MagicSkillUse(_buffer, _target, _skill.getDisplayId(), _skill.getLevel(), _skill.getHitTime(), 0)); ThreadPoolManager.getInstance().schedule(new EndPetBuff(_buffer, _skill, _target), _skill.getHitTime()); } } public class EndPetBuff extends tenjs.common.RunnableImpl { L2Character _buffer; L2Skill _skill; L2Summon _target; public EndPetBuff(L2Character buffer, L2Skill skill, L2Summon target) { _buffer = buffer; _skill = skill; _target = target; } public void runImpl() { _skill.getEffects(_buffer, _target, false, false); _buffer.broadcastSkill(new MagicSkillLaunched(_buffer.getObjectId(), _skill.getId(), _skill.getLevel(), _target, _skill.isOffensive())); } } } Сервис бафера. ХТМЛки сам допилишь. Благодарю), щас займусь этим Quote Share this post Link to post
Run 0 Posted March 5, 2021 9 часов назад, Lavs сказал: package services.NPCBuffer; SyntaxError: ('invalid syntax', ('__init__.py', 1, 9, 'package services.NPCBuffer;')) Quote Share this post Link to post
Run 0 Posted March 5, 2021 58 минут назад, Run сказал: SyntaxError: ('invalid syntax', ('__init__.py', 1, 9, 'package services.NPCBuffer;')) Сохранил как Buffer.java это кнопки <center><button action="bypass -h scripts_services.NPCBuffer.Buffer:SelectMenu 0" value="Баф игрока" width=174 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></center> <center><button action="bypass -h scripts_services.NPCBuffer.Buffer:SelectMenu 1" value="Баф питомца" width=174 height=21 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></center> Quote Share this post Link to post
Run 0 Posted March 6, 2021 эх лёгких путей не ищем есть: engine.jar как поместить изменённый L2NpcBufferInstance.java в внутрь этого .jar ?? Quote Share this post Link to post
Run 0 Posted March 9, 2021 хм) ок ЛС кому интересно _______________заплачу денег ______________ материально кто может сделать рабочего пет бафера https://monche.org/article/934-sozdanie-servera-lineage-2-scions-of-destiny-c4.html <<<<сюда чтоб я просто бафал волка для играю для себя..... Quote Share this post Link to post
Run 0 Posted March 9, 2021 Только что, Run сказал: хм) ок ЛС кому интересно _______________заплачу денег ______________ материально кто может сделать рабочего пет бафера https://monche.org/article/934-sozdanie-servera-lineage-2-scions-of-destiny-c4.html <<<<сюда чтоб я просто бафал волка для играю для себя..... новичек ничего не понимаю в этом чтоб полснотью описали что куда кидать вкакие папки итд и показали по видио что он рабочий Quote Share this post Link to post
Run 0 Posted March 9, 2021 1 минуту назад, Run сказал: package net.sf.l2j.gameserver.model.actor.instance; import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; import javolution.util.FastList; import javolution.util.FastMap; import net.sf.l2j.Config; import net.sf.l2j.gameserver.datatables.CharSchemesTable; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Effect; import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.L2Summon; import net.sf.l2j.gameserver.serverpackets.ActionFailed; import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.serverpackets.SystemMessage; import net.sf.l2j.gameserver.templates.L2NpcTemplate; public class L2NpcBufferInstance extends L2FolkInstance { public List<Integer> TableId; public L2NpcBufferInstance(int objectId, L2NpcTemplate template) { super(objectId, template); this.TableId = Config.BUFFS_LIST; } public String getHtmlPath(int npcId, int val) { String pom; if (val == 0) { pom = "" + npcId; } else { pom = npcId + "-" + val; } return "data/html/mods/buffer/" + pom + ".htm"; } public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); NpcHtmlMessage html; int level; if (actualCommand.startsWith("Chat")) { String file = "data/html/mods/buffer/50000.htm"; level = Integer.parseInt(command.substring(5, 7).trim()); if (level > 0) { file = "data/html/mods/buffer/50000-" + level + ".htm"; } html = new NpcHtmlMessage(this.getObjectId()); html.setFile(file); this.sendHtmlMessage(player, html); player.sendPacket(new ActionFailed()); } else { NpcHtmlMessage html; if (actualCommand.startsWith("Cancel")) { player.stopAllEffects(); html = new NpcHtmlMessage(this.getObjectId()); html.setFile("data/html/mods/buffer/50000.htm"); this.sendHtmlMessage(player, html); player.sendPacket(new ActionFailed()); } else if (actualCommand.startsWith("Regenerate")) { if (player.getPvpFlag() != 0 || player.isDead()) { player.sendMessage("Баффер не доступен сейчас."); return; } if (player.getInventory().getItemByItemId(Config.HEAL_ITEM_ID) == null) { player.sendPacket(new SystemMessage(351)); player.sendPacket(new ActionFailed()); return; } if (player.getInventory().getItemByItemId(Config.HEAL_ITEM_ID).getCount() < Config.HEAL_ITEM_COUNT) { player.sendPacket(new SystemMessage(351)); player.sendPacket(new ActionFailed()); return; } player.destroyItemByItemId("Buffer", Config.HEAL_ITEM_ID, Config.HEAL_ITEM_COUNT, player, true); player.setCurrentHpMp((double)player.getMaxHp(), (double)player.getMaxMp()); player.setCurrentCp((double)player.getMaxCp()); html = new NpcHtmlMessage(this.getObjectId()); html.setFile("data/html/mods/buffer/50000.htm"); this.sendHtmlMessage(player, html); } else { int cmdChoice; if (actualCommand.startsWith("buff")) { cmdChoice = Integer.parseInt(command.substring(5).trim()); level = SkillTable.getInstance().getMaxLevel(cmdChoice); if (player.getPvpFlag() != 0 || player.isDead()) { player.sendMessage("Баффер не доступен сейчас."); return; } if (player.getInventory().getItemByItemId(Config.BUFF_ITEM_ID) == null) { player.sendPacket(new SystemMessage(351)); player.sendPacket(new ActionFailed()); return; } if (player.getInventory().getItemByItemId(Config.BUFF_ITEM_ID).getCount() < Config.BUFF_ITEM_COUNT) { player.sendPacket(new SystemMessage(351)); player.sendPacket(new ActionFailed()); return; } player.destroyItemByItemId("Buffer", Config.BUFF_ITEM_ID, Config.BUFF_ITEM_COUNT, player, true); player.stopSkillEffects(cmdChoice); SkillTable.getInstance().getInfo(cmdChoice, level).getEffects(this, player); html = new NpcHtmlMessage(this.getObjectId()); html.setFile("data/html/mods/buffer/50000-1.htm"); this.sendHtmlMessage(player, html); } else if (actualCommand.startsWith("dance")) { cmdChoice = Integer.parseInt(command.substring(5).trim()); level = SkillTable.getInstance().getMaxLevel(cmdChoice); if (player.getPvpFlag() != 0 || player.isDead()) { player.sendMessage("Баффер не доступен сейчас."); return; } if (player.getInventory().getItemByItemId(Config.DANCE_ITEM_ID) == null) { player.sendPacket(new SystemMessage(351)); player.sendPacket(new ActionFailed()); return; } if (player.getInventory().getItemByItemId(Config.DANCE_ITEM_ID).getCount() < Config.DANCE_ITEM_COUNT) { player.sendPacket(new SystemMessage(351)); player.sendPacket(new ActionFailed()); return; } player.destroyItemByItemId("Buffer", Config.DANCE_ITEM_ID, Config.DANCE_ITEM_COUNT, player, true); player.stopSkillEffects(cmdChoice); SkillTable.getInstance().getInfo(cmdChoice, level).getEffects(this, player); html = new NpcHtmlMessage(this.getObjectId()); html.setFile("data/html/mods/buffer/50000-2.htm"); this.sendHtmlMessage(player, html); } else if (actualCommand.startsWith("baff")) { cmdChoice = Integer.parseInt(command.substring(5).trim()); level = SkillTable.getInstance().getMaxLevel(cmdChoice); if (player.getPvpFlag() != 0 || player.isDead()) { player.sendMessage("Баффер не доступен сейчас."); return; } if (cmdChoice == 4554) { level = 4; } if (cmdChoice == 4553) { level = 4; } if (player.getInventory().getItemByItemId(Config.PAY_BUFF_ITEM_ID) == null) { player.sendAnnounceMessage("У тебя нет сертификата для премиум баффа."); player.sendPacket(new ActionFailed()); return; } player.stopSkillEffects(cmdChoice); SkillTable.getInstance().getInfo(cmdChoice, level).getEffects(this, player); html = new NpcHtmlMessage(this.getObjectId()); html.setFile("data/html/mods/buffer/50000-3.htm"); this.sendHtmlMessage(player, html); } else if (actualCommand.startsWith("save")) { cmdChoice = Integer.parseInt(command.substring(5, 6).trim()); int flag = 0; html = new NpcHtmlMessage(1); if (cmdChoice > 3) { html.setFile("data/html/mods/buffer/50000-11.htm"); flag = 1; } else { html.setFile("data/html/mods/buffer/50000.htm"); } this.CreateScheme(player, Integer.toString(cmdChoice), flag); this.sendHtmlMessage(player, html); player.sendPacket(new ActionFailed()); } else if (actualCommand.startsWith("give")) { cmdChoice = Integer.parseInt(command.substring(5, 6).trim()); if (cmdChoice < 1 && cmdChoice > 6) { return; } if (player.getPvpFlag() != 0 || player.isDead()) { player.sendMessage("Баффер не доступен сейчас."); return; } if (player.getInventory().getItemByItemId(57) == null) { player.sendPacket(new SystemMessage(351)); player.sendPacket(new ActionFailed()); return; } player.reduceAdena("Buffer", Config.PROFILE_ITEM_COUNT, this, true); String key = "data/html/mods/buffer/50000"; String sKey = Integer.toString(cmdChoice); int flag = false; NpcHtmlMessage html = new NpcHtmlMessage(this.getObjectId()); if (cmdChoice > 3) { flag = true; key = "data/html/mods/buffer/50000-8"; } if (CharSchemesTable.getInstance().getScheme(player.getObjectId(), sKey) == null) { player.sendMessage("Профиль " + sKey + " не найден"); return; } if (!flag) { Iterator i$ = CharSchemesTable.getInstance().getScheme(player.getObjectId(), sKey).iterator(); while(i$.hasNext()) { L2Skill sk = (L2Skill)i$.next(); player.stopSkillEffects(sk.getId()); sk.getEffects(this, player); } } html.setFile(key + ".htm"); this.sendHtmlMessage(player, html); player.sendPacket(new ActionFailed()); } else { super.onBypassFeedback(player, command); } } } } private void sendHtmlMessage(L2PcInstance player, NpcHtmlMessage html) { html.replace("%objectId%", String.valueOf(this.getObjectId())); html.replace("%npcId%", String.valueOf(this.getNpcId())); player.sendPacket(html); } private void CreateScheme(L2PcInstance player, String name, int flag) { if (CharSchemesTable.getInstance().getAllSchemes(player.getObjectId()) != null && CharSchemesTable.getInstance().getAllSchemes(player.getObjectId()).containsKey(name)) { CharSchemesTable.getInstance().getAllSchemes(player.getObjectId()).remove(name); } if (CharSchemesTable.getInstance().getAllSchemes(player.getObjectId()) == null) { CharSchemesTable.getInstance().getSchemesTable().put(player.getObjectId(), new FastMap(6)); } CharSchemesTable.getInstance().setScheme(player.getObjectId(), name.trim(), new FastList(69)); L2Effect[] s; if (flag == 0) { s = player.getAllEffects(); } else { L2Summon pet = player.getPet(); s = pet.getAllEffects(); } Boolean Ok = false; for(int i = 0; i < s.length; ++i) { L2Effect value = s; int Id = value.getSkill().getId(); for(int k = 0; k < this.TableId.size(); ++k) { if (Id == (Integer)this.TableId.get(k)) { Ok = true; break; } } if (Ok) { CharSchemesTable.getInstance().getScheme(player.getObjectId(), name).add(SkillTable.getInstance().getInfo(Id, value.getSkill().getLevel())); } Ok = false; } if (name.equals(Integer.toString(4))) { player.sendMessage("Текущие баффы успешно обновлены"); } else { player.sendMessage("Профиль " + name + " успешно сохранён"); } } } баффер ядра Quote Share this post Link to post
Monche 131 Posted March 10, 2021 В 06.03.2021 в 02:46, Run сказал: эх лёгких путей не ищем есть: engine.jar как поместить изменённый L2NpcBufferInstance.java в внутрь этого .jar ?? .jar - это уже компилированный код. Если у вас нету исходно кода вы не можете править баффера. Quote Share this post Link to post
Run 0 Posted January 1, 2023 Спойлер import sys from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from net.sf.l2j.gameserver.datatables import SkillTable from net.sf.l2j.commons.db import DatabaseFactory from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest qn = "50000_NPCBuffer" NPC = [50000] min_level = 1 max_level = 78 min_prise = 1 prise_ID = 57 QuestId = 50000 QuestName = "NPCBuffer" QuestDesc = "custom" InitialHtml = "50000.htm" buff_prise = 10 Chant_prise = 10 song_prise = 10 Dance_prise = 10 Hero_prise = 10 Noble_prise = 10 Summon_prise = 10 Prophecy_prise = 10 Full_buff_f1_prise = 20000 Full_buff_f2_prise = 40000 Full_buff_f3_prise = 60000 Full_buff_m1_prise = 20000 Full_buff_m2_prise = 40000 Full_buff_m3_prise = 60000 all_song_prise = 10000 all_dance_prise = 10000 print "importing custom: 50000_NPCBuffer OK" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st): htmltext = event count=st.getQuestItemsCount(prise_ID) if count < min_prise : htmltext = "<html><head><body>\u0423 \u0432\u0430\u0441 \u043D\u0435 \u0434\u043E\u0441\u0442\u0430\u0442\u043E\u0447\u043D\u043E \u0434\u0435\u043D\u0435\u0433.</body></html>" if st.getPlayer().getLevel() < min_level : htmltext = "<html><head><body>\u0423 \u0432\u0430\u0441 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C.</body></html>" if st.getPlayer().getLevel() < max_level : htmltext = "<html><head><body>\u0423 \u0432\u0430\u0441 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u044B\u0441\u043E\u043A\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C.</body></html>" else: st.takeItems(prise_ID,0) st.getPlayer().setTarget(st.getPlayer().getPet()) #Full buff fighter 3p if event == "124": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Full_buff_f3_prise) SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1077,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1242,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1043,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1259,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1240,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1087,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1044,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(4700,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "50000-4.htm" st.setState(COMPLETED) #Full buff fighter 2p if event == "125": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Full_buff_f2_prise) SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1077,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1242,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "buff.htm" st.setState(COMPLETED) #Full buff fighter 1p if event == "126": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Full_buff_f1_prise) SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1077,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1242,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "buff.htm" st.setState(COMPLETED) #Full buff mage 3p if event == "120": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Full_buff_m3_prise) SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1259,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1044,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1355,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1191,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1182,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1189,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1354,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(4554,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(4553,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(4703,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "50000-6.htm" st.setState(COMPLETED) #Full buff mage 2p if event == "121": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Full_buff_m2_prise) SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1397,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(4703,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "buff.htm" st.setState(COMPLETED) #Full buff mage 1p if event == "122": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Full_buff_m1_prise) SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1397,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "buff.htm" st.setState(COMPLETED) #All Song if event == "130": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,all_song_prise) SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(270,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(306,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(308,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "all_song.htm" st.setState(COMPLETED) #All dance if event == "131": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,all_dance_prise) SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(277,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(272,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(309,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(311,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(307,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) return "all_song.htm" st.setState(COMPLETED) #Cancel if event == "666": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.getPlayer().getPet().stopAllEffects() return "50000.htm" st.setState(COMPLETED) #Restore if event == "665": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.getPlayer().getPet().setCurrentHpMp(st.getPlayer().getPet().getMaxHp(), st.getPlayer().getPet().getMaxMp()) st.getPlayer().getPet().setCurrentCp(st.getPlayer().getPet().getMaxCp()) return "50000.htm" st.setState(COMPLETED) if event == "2": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1068,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "3": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1040,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "4": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1085,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "5": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1078,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "6": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1073,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "7": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "8": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1077,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "9": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1043,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "10": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1035,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "11": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1191,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "12": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1062,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "13": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1044,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "14": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1243,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "15": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1242,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "16": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1240,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "17": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1032,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "18": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1045,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "19": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1048,6).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "20": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1086,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "21": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1036,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "22": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "buff_attack.htm" st.setState(COMPLETED) if event == "23": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "24": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1392,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "buff_resist.htm" st.setState(COMPLETED) if event == "25": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1182,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "26": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1189,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "27": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1393,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "buff_resist.htm" st.setState(COMPLETED) if event == "28": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1033,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "29": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "30": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Prophecy_prise) SkillTable.getInstance().getInfo(1356,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "31": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1087,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "32": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1257,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "33": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1259,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "34": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1304,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "35": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1397,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "buff_support.htm" st.setState(COMPLETED) if event == "36": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "37": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1354,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "38": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "39": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Prophecy_prise) SkillTable.getInstance().getInfo(1355,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "40": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1059,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "41": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,buff_prise) SkillTable.getInstance().getInfo(1268,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) if event == "42": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Prophecy_prise) SkillTable.getInstance().getInfo(1357,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-4.htm" st.setState(COMPLETED) #CHANTS if event == "43": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1006,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "44": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1009,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "45": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1007,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "47": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1002,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "60": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1252,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "61": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1253,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "62": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1309,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "63": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1251,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "64": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1308,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "65": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1391,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "chant_warcryer2.htm" st.setState(COMPLETED) if event == "66": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1310,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "67": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1390,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "chant_warcryer2.htm" st.setState(COMPLETED) if event == "68": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1284,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "69": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1362,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "70": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Prophecy_prise) SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "71": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Prophecy_prise) SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "chant_warcryer3.htm" st.setState(COMPLETED) #Overlord if event == "48": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1003,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "49": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1005,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "50": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1008,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "51": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1260,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "52": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1004,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "53": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1250,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "54": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1261,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "55": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1249,3).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "56": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1282,2).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "57": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1364,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "58": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Chant_prise) SkillTable.getInstance().getInfo(1365,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-10.htm" st.setState(COMPLETED) if event == "59": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Prophecy_prise) SkillTable.getInstance().getInfo(1414,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "chant_overlord2.htm" st.setState(COMPLETED) #Songs if event == "72": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "73": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(270,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "74": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "75": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "76": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "77": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "78": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "79": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(306,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "80": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "81": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(308,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "82": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "83": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "84": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "85": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,song_prise) SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "86": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "87": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(277,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "88": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(272,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "89": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "90": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "91": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "92": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "93": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(309,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "song_dance2.htm" st.setState(COMPLETED) if event == "94": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(311,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "song_dance2.htm" st.setState(COMPLETED) if event == "95": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(307,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "96": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) if event == "97": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Dance_prise) SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-5.htm" st.setState(COMPLETED) #Noble if event == "98": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Noble_prise) SkillTable.getInstance().getInfo(396,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "song_noble.htm" st.setState(COMPLETED) if event == "99": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Noble_prise) SkillTable.getInstance().getInfo(395,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "song_noble.htm" st.setState(COMPLETED) if event == "101": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Noble_prise) SkillTable.getInstance().getInfo(1325,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "song_noble.htm" st.setState(COMPLETED) if event == "102": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Noble_prise) SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "103": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Summon_prise) SkillTable.getInstance().getInfo(4702,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "104": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Summon_prise) SkillTable.getInstance().getInfo(4703,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "105": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Summon_prise) SkillTable.getInstance().getInfo(4699,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "106": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Summon_prise) SkillTable.getInstance().getInfo(4700,13).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "999": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Summon_prise) SkillTable.getInstance().getInfo(4554,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if event == "998": if st.getPlayer().getPet() == None : return "no_pet.htm" st.setState(COMPLETED) else: st.takeItems(prise_ID,Summon_prise) SkillTable.getInstance().getInfo(4553,4).getEffects(st.getPlayer().getPet(),st.getPlayer().getPet()) return "50000-6.htm" st.setState(COMPLETED) if htmltext != event: st.setState(COMPLETED) st.exitQuest(1) return htmltext QUEST = Quest(50000,qn,"custom") for npcId in NPC: QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId) работает на С4 без исходника) Quote Share this post Link to post