Jump to content
Run

C4

Recommended Posts

установил сервер 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 by Run

Share this post


Link to post
Реклама

Відключіть AdBlock

та перезавантажте цю сторінку, Дякую!
Або станьте спонсором щоб відключити рекламу назавжди:

1. Зареєструватися на сайті.

2. Увійти в свій аккаунт на сайті.

3. Стати спонсором сайту monche.org (Рівень немає значення)

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

Share this post


Link to post
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

Share this post


Link to post
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()));
        }
    }
}

Сервис бафера. ХТМЛки сам допилишь.

Благодарю), щас займусь этим

Share this post


Link to post
9 часов назад, Lavs сказал:

package services.NPCBuffer;


SyntaxError: ('invalid syntax', ('__init__.py', 1, 9, 'package services.NPCBuffer;'))

Share this post


Link to post
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>

Share this post


Link to post

эх лёгких путей не ищем есть: engine.jar

как поместить изменённый L2NpcBufferInstance.java в внутрь этого .jar

??

Share this post


Link to post
Только что, Run сказал:

хм) ок ЛС кому интересно _______________заплачу денег ______________ материально кто может сделать рабочего пет бафера https://monche.org/article/934-sozdanie-servera-lineage-2-scions-of-destiny-c4.html <<<<сюда чтоб я просто бафал волка для играю для себя.....

новичек ничего не понимаю в этом чтоб полснотью описали что куда кидать вкакие папки итд и показали по видио что он рабочий

Share this post


Link to post
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 + " успешно сохранён");
      }

   }
}

 

баффер ядра

Share this post


Link to post
В 06.03.2021 в 02:46, Run сказал:

эх лёгких путей не ищем есть: engine.jar

как поместить изменённый L2NpcBufferInstance.java в внутрь этого .jar

??

.jar - это уже компилированный код.

Если у вас нету исходно кода вы не можете править баффера.

Share this post


Link to post
Спойлер

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 без исходника)

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...