BuyHero

Тема в разделе "Scripts / Работа со скриптами", создана пользователем Ms.Derailment, 8 май 2018.

  1. Ms.Derailment

    Ms.Derailment Капля-Доверия
    Админы не рекомендуют.

    Регистрация:
    12 апр 2018
    Сообщения:
    25
    Симпатии:
    2
    Данный сервис позволяет получить геройство.

    Код:
    package services.Hero;
    package services.Hero;
    
    import tenjs.common.ThreadPoolManager;
    import tenjs.config.ConfigValue;
    import tenjs.extensions.multilang.CustomMessage;
    import tenjs.extensions.scripts.Functions;
    import tenjs.extensions.scripts.ScriptFile;
    import tenjs.gameserver.common.DifferentMethods;
    import tenjs.gameserver.model.L2ObjectTasks;
    import tenjs.gameserver.model.L2Player;
    import tenjs.gameserver.model.entity.Hero;
    import tenjs.gameserver.serverpackets.SkillList;
    import tenjs.gameserver.serverpackets.SocialAction;
    import tenjs.gameserver.tables.SkillTable;
    import tenjs.gameserver.templates.StatsSet;
    import tenjs.util.Files;
    import tenjs.util.GArray;
    import tenjs.util.Util;
    
    public class BuyHero extends Functions implements ScriptFile
    {
        public void list()
        {
            L2Player player = (L2Player) getSelf();
            String html;
            if(!player.isHero() && !player.getVarB("HeroPremium"))
            {
                html = Files.read("data/scripts/services/Hero/index.htm", player);
    
                String add = new String();
                for(int i = 0; i < ConfigValue.CBHeroItem.length; i++)
                    add += "<button value=\"" + new CustomMessage("communityboard.cabinet.hero.button", player).addNumber(ConfigValue.CBHeroTime[i]).addString(DifferentMethods.declension(player, ConfigValue.CBHeroTime[i], "Days")) + "\" action=\"bypass -h scripts_services.Hero.BuyHero:get " + i + "\" width=200 height=29 back=\"L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down\" fore=\"L2UI_CT1.OlympiadWnd_DF_HeroConfirm\"><br1>" + new CustomMessage("scripts.services.cost", player).addString(String.valueOf(Util.formatAdena(ConfigValue.CBHeroItemPrice[i]))).addItemName(ConfigValue.CBHeroItem[i]) + "";
    
                html = html.replaceFirst("%toreplace%", add);
            }
            else
            {
                html = Files.read("data/scripts/services/Hero/already.htm", player);
                player.sendMessage(new CustomMessage("scripts.services.Hero.ishero", player));
            }
            show(html, player);
        }
    
        public void get(String[] param)
        {
            L2Player player = (L2Player) getSelf();
    
            int var = Integer.parseInt(param[0]);
    
            if(!player.isHero() && !player.getVarB("HeroPremium"))
            {
                if(DifferentMethods.getPay(player, ConfigValue.CBHeroItem[var], ConfigValue.CBHeroItemPrice[var], true))
                {
                    StatsSet hero = new StatsSet();
                    hero.set("class_id", player.getBaseClassId());
                    hero.set("char_id", player.getObjectId());
                    hero.set("char_name", player.getName());
    
                    /*GArray<StatsSet> heroesToBe = new GArray<StatsSet>();
                    heroesToBe.add(hero);
                    Hero.getInstance().computeNewHeroes(heroesToBe);*/
    
                    player.setHero(true, 2);
                    long CBHeroTime = ConfigValue.CBHeroTime[var];
                    long expire = System.currentTimeMillis() + (1000L * 60 * 60 * 24 * CBHeroTime);
                    player.setVar("HeroPremium", String.valueOf(expire), expire);
                    player.addSkill(SkillTable.getInstance().getInfo(395, 1));
                    player.addSkill(SkillTable.getInstance().getInfo(396, 1));
                    player.addSkill(SkillTable.getInstance().getInfo(1374, 1));
                    player.addSkill(SkillTable.getInstance().getInfo(1375, 1));
                    player.addSkill(SkillTable.getInstance().getInfo(1376, 1));
                    player.sendPacket(new SkillList(player));
                    if(player.isHero())
                        player.broadcastPacket2(new SocialAction(player.getObjectId(), 16));
                    player.broadcastUserInfo(true);
                    player._heroTask = ThreadPoolManager.getInstance().schedule(new L2ObjectTasks.UnsetHero(player, 2), 1000L * 60 * 60 * 24 * CBHeroTime);
                }
            }
        }
    
        public void howtogetcol()
        {
            show("data/scripts/services/howtogetcol.htm", (L2Player) getSelf());
        }
    
        public void onLoad()
        {
            _log.info("Loaded Service: Rate bonus");
        }
    
        public void onReload()
        {}
    
        public void onShutdown()
        {}
    }
    
     
  2. DeadPool

    DeadPool Пляшущий с бубном
    Постоялец

    Регистрация:
    10 ноя 2017
    Сообщения:
    144
    Симпатии:
    79
    Skype:
    poshlya4ok666
    не знаю как у Вас, но в first-team например вот так это реализовано
    Код:
    Hero.addSkills(player);
    
    Вопрос, зачем 5 раз подряд вызывать данный метод?
     
  3. Agressif

    Agressif Участник

    Регистрация:
    9 май 2018
    Сообщения:
    13
    Симпатии:
    3
    по факту всё то делают эти дауны тем или иным образом не писалось ими никак))
    а по факту Hero.addSkills(player); вызовет всё те же вызовы, пять раз одной функции с разными параметрами)
     
    4ydo и DeadPool нравится это.
  4. DeadPool

    DeadPool Пляшущий с бубном
    Постоялец

    Регистрация:
    10 ноя 2017
    Сообщения:
    144
    Симпатии:
    79
    Skype:
    poshlya4ok666
    да, точно, проглядел :)
     
  5. Ms.Derailment

    Ms.Derailment Капля-Доверия
    Админы не рекомендуют.

    Регистрация:
    12 апр 2018
    Сообщения:
    25
    Симпатии:
    2
    кинули шара, так юзайте и дорабатывайте, вам на блюде не кто не даст готового.
     
  6. Agressif

    Agressif Участник

    Регистрация:
    9 май 2018
    Сообщения:
    13
    Симпатии:
    3
    Зачем выдавать за своё то что в шаре овер дохрена времени? И написано так что глаз начинает дёргаться?
     
  7. 4ydo

    4ydo Head Admin Mmore.club
    Команда форума Manager l2-scripts.com Administrator

    Регистрация:
    12 ноя 2017
    Сообщения:
    409
    Симпатии:
    74
    Skype:
    Urchika
    Кидают кости собакам. А тут не кидают, а выкладывают, и стараются свое.
     
    Maiden7 и DeadPool нравится это.

Партнеры