L2J_CE

Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
L2J_CE

L2J_CE Server


+5
fifa05
Naik
[ADM]Legion
ArtiShok
TIESTO
Участников: 9

    Сэйлрен и Тиры

    TIESTO
    TIESTO


    Сообщения : 98
    Дата регистрации : 2010-03-17
    Возраст : 36
    Откуда : Киев, Украина

    Сэйлрен и Тиры Empty Сэйлрен и Тиры

    Сообщение  TIESTO Ср Мар 17, 2010 9:59 pm

    Ух елы палы, только что прилетаю к Рб на дино - Сэйлрен, со мной еще 10-15 игроков и тут у всех видео как появляется тиранозавр с пещерки, да все бы хорошо, только их появилось штук 80-100, а потом еще и еще. кароч немеряно боссов и немеряно тиров. Я подозреваю, что это баг)

    Сэйлрен и Тиры Ddf59088afef

    Сэйлрен и Тиры D203a87d6818
    ArtiShok
    ArtiShok


    Сообщения : 1144
    Дата регистрации : 2010-03-10

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  ArtiShok Ср Мар 17, 2010 11:18 pm

    Извините, может нублю, но где берется квест на саилрена?
    кстати исправьте у тиров респавн стоит 100 минут а должен быть 30 минут
    avatar
    [ADM]Legion


    Сообщения : 5
    Дата регистрации : 2010-03-16

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  [ADM]Legion Ср Мар 17, 2010 11:25 pm

    да дела надобы у себя на сервере посомтреть пока народ непопер то вдруг такаежа тема будет !)
    Naik
    Naik


    Сообщения : 307
    Дата регистрации : 2010-03-06

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  Naik Чт Мар 18, 2010 12:37 am

    Как игроки ТПшелись к РБ? Возможно связано с тем, что спаун РБ происходит при каждом заходе игрока, тоесть сколько человек войдет, столько РБ и появиться. Тут уж ток админ может поправить.
    TIESTO
    TIESTO


    Сообщения : 98
    Дата регистрации : 2010-03-17
    Возраст : 36
    Откуда : Киев, Украина

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  TIESTO Чт Мар 18, 2010 12:53 am

    Да-да, сначало я тп с кучкой игроков и рб появилась пачка ( но намного больше количества игроков). А потом я убрал тп и сам админом туда полетел, но как только я ступлюпару шагов, сразу мувик появления тира и так до бесконечности) Мне для пвп серва не оч важно. я то перенес боса в 2ю зону. Но факт остается фактом)
    ArtiShok
    ArtiShok


    Сообщения : 1144
    Дата регистрации : 2010-03-10

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  ArtiShok Чт Мар 18, 2010 2:12 am

    В 275 и 356 сборках неты нпса для квеста, это ладно поставил... нету нормальных хтмлок...нашел залил...нооо пройдя квест тпшнуться нельзя...
    Так же, убивая одного сайлрена, спавнится ч-з минуту 4...убивая 4 спавнится 16 и так до бесконечности...квест зависает похоже...
    Скачал уже 3 сборки во всех одинаковые квесты...но что то каждую устанавливать влом...кому не трудно посмотрите на других сборках этот квест!! ИД нпса 32109 Wink
    Naik
    Naik


    Сообщения : 307
    Дата регистрации : 2010-03-06

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  Naik Чт Мар 18, 2010 3:49 am

    На самом деле, кому не очень важно соответствие оффу, просто заспауните РБ в той местности и добавте ТП (за квест итем) к квест НПСу в эту местность, а окончание квеста сделайте на том моменте как получает итем.
    fifa05
    fifa05


    Сообщения : 174
    Дата регистрации : 2010-02-26
    Откуда : Одесса

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  fifa05 Чт Мар 18, 2010 5:25 am

    Оо надо бы у себя проверить..
    ArtiShok
    ArtiShok


    Сообщения : 1144
    Дата регистрации : 2010-03-10

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  ArtiShok Чт Мар 18, 2010 4:44 pm

    это проблема не в квесте, а в Sailren.java
    Код:
    gameserver\data\scripts\ai\individual
    STi
    STi


    Сообщения : 97
    Дата регистрации : 2010-03-14
    Возраст : 33
    Откуда : Омск

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  STi Чт Мар 18, 2010 4:49 pm

    Если не ошибаюсь, если отключить квест в скриптах, то проблема остается.
    ArtiShok
    ArtiShok


    Сообщения : 1144
    Дата регистрации : 2010-03-10

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  ArtiShok Чт Мар 18, 2010 5:00 pm

    STi пишет:Если не ошибаюсь, если отключить квест в скриптах, то проблема остается.
    читай то что я выше сказал..это просто прописано так чтоб когда появлялся саёлрен то спавнились тира птеро и еще мобы...убери их и они не будут спавнится...другой вопрос как убрать чтоб он не спавнился несколько раз Wink
    TIESTO
    TIESTO


    Сообщения : 98
    Дата регистрации : 2010-03-17
    Возраст : 36
    Откуда : Киев, Украина

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  TIESTO Ср Мар 24, 2010 5:55 pm

    кака была така есть.

    Не пофиксили.
    avatar
    SubZero


    Сообщения : 124
    Дата регистрации : 2010-03-20

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  SubZero Пт Апр 02, 2010 7:57 pm

    Ап, важный рб (особенно не для ПВП сервов) хотелось бы чтобы пофиксили если можно.
    avatar
    SubZero


    Сообщения : 124
    Дата регистрации : 2010-03-20

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  SubZero Вт Сен 07, 2010 12:44 am

    У кого нибудь есть рабочий Sailren? Поделитесь скриптом плз
    Naik
    Naik


    Сообщения : 307
    Дата регистрации : 2010-03-06

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  Naik Ср Сен 08, 2010 3:31 am

    Вот попробуй.



    Код:
    package ai.individual.raidboss;

    import java.util.List;

    import javolution.util.FastList;
    import ai.group_template.L2AttackableAIScript;

    import net.sf.l2j.gameserver.ai.CtrlIntention;
    import net.sf.l2j.gameserver.instancemanager.ZoneManager;
    import net.sf.l2j.gameserver.model.L2Party;
    import net.sf.l2j.gameserver.model.actor.L2Npc;
    import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
    import net.sf.l2j.gameserver.model.quest.QuestState;
    import net.sf.l2j.gameserver.model.quest.State;
    import net.sf.l2j.gameserver.model.zone.type.L2BossZone;
    import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
    import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
    import net.sf.l2j.gameserver.network.serverpackets.SpecialCamera;
    import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
    import net.sf.l2j.gameserver.util.Util;
    import net.sf.l2j.util.Rnd;

    public class Sailren extends L2AttackableAIScript
    {
       private static final String qn = "Sailren";
       private static final String iv = "instpen-Sailren";
       
       private L2BossZone _nest = null;
       
       private static final int SAILREN = 29065;
       private static final int VELO = 22223;
       private static final int PTERO = 22199;
       private static final int TREX = 22217;
       
       private static final int STATUE = 32109;
       private static final int DUMMY = 32110;
       private static final int CUBIC = 32107;
       
       private static final int sailrenX = 27333;
       private static final int sailrenY = -6835;
       private static final int sailrenZ = -1970;
       
       private static final int ZONEID = 12201;
       
       private static final int[] TELEIN = { 27333, -6835, -1970 };
       private static final int[] TELEOUT = { 10468, -24569, -3645 };
       
       private boolean entryLocked = false;
       
       private List<L2PcInstance> _raiders = new FastList<L2PcInstance>();
       private List<L2Npc> _mobs = new FastList<L2Npc>();
       private static long _lastAction;
       private static final long _checkInterval = 540000;
       private static final long _spawnInterval = 86400000;
       
       public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
       {
          if (event.equalsIgnoreCase("Started"))
          {
             _mobs.clear();
             _lastAction = 0;
             int x, y;
             L2Npc temp;
             for (int i = 0; i < 3; i++)
             {
                x = 26955 + Rnd.get(100);
                y = -7324 + Rnd.get(100);
                temp = this.addSpawn(VELO, x, y, -1983, 44902, false, 0);
                temp.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
                temp.setRunning();
                _mobs.add(temp);
             }
             this.startQuestTimer("despawn", _checkInterval, null, null, true);
          }
          if (event.equalsIgnoreCase("spawn"))
          {
             L2Npc temp = this.addSpawn(DUMMY, sailrenX, sailrenY, sailrenZ, 0, false, 0);
             this.startQuestTimer("camera", 0, temp, player);
             this.startQuestTimer("sailren", 1000, temp, null);
          }
          if (event.equalsIgnoreCase("sailren"))
          {
             L2Npc temp = this.addSpawn(SAILREN, sailrenX, sailrenY, sailrenZ, 27306, false, 0, false, 0, 0);
             _mobs.add(temp);
             _nest.broadcastPacket(new MagicSkillUse(npc, npc, 5090, 1, 2500, 0));
             this.startQuestTimer("skill", 2500, npc, null, true);
             this.startQuestTimer("delete_dummy", 9000, npc, null);
          }
          if (event.equalsIgnoreCase("skill"))
          {
             _nest.broadcastPacket(new MagicSkillUse(npc, npc, 5090, 1, 2500, 0));
          }
          if (event.equalsIgnoreCase("camera"))
          {
             _nest.broadcastPacket(new SpecialCamera(npc.getObjectId(), 600, -75, 3, -150, 10000, 0, 0, 1, 0));
          }
          if (event.equalsIgnoreCase("delete_dummy"))
          {
             npc.deleteMe();
             this.cancelQuestTimers("skill");
             _nest.broadcastPacket(new MagicSkillUse(npc, npc, 5091, 1, 2500, 0));
          }
          if (event.equalsIgnoreCase("despawn"))
          {
             long time = System.currentTimeMillis() - _lastAction;
             if (time >= _checkInterval)
             {
                if (_mobs == null)
                   return "";
                if (npc != null)
                   npc.deleteMe();
                long time2 = 0;
                if (!_mobs.isEmpty())
                   for (L2Npc mob : _mobs)
                      mob.deleteMe();
                else
                   time2 = _spawnInterval;
                _mobs.clear();
                _mobs = null;
                _nest.oustAllPlayers();
                this.startQuestTimer("unlock", time2, null, null);
             }
          }
          if (event.equalsIgnoreCase("unlock"))
             entryLocked = false;
          return "";
       }
       
       public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
       {
          QuestState st = killer.getQuestState(qn);
          int npcId = npc.getNpcId();
          if (!_nest.getAllowedPlayers().contains(killer.getObjectId()) || _mobs == null)
          {
             
             if (st == null)
                return super.onKill(npc, killer, isPet);
             else
                return "";
          }
          if (npcId == VELO && st.getState() == State.STARTED)
          {
             _mobs.remove(npc);
             L2PcInstance target = (L2PcInstance) npc.getTarget();
             npc.deleteMe();
             if (_mobs.isEmpty())
             {
                L2Npc temp = this.addSpawn(PTERO, 26955, -7324, -1983, 45564, false, 0);
                temp.setTarget(target);
                temp.setRunning();
                temp.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
                _mobs.add(temp);
             }
          }
          if (npcId == PTERO && st.getState() == State.STARTED)
          {
             L2PcInstance target = (L2PcInstance) npc.getTarget();
             _mobs.remove(npc);
             npc.deleteMe();
             L2Npc temp = this.addSpawn(TREX, 26955, -7324, -1983, 45564, false, 0);
             temp.broadcastPacket(new CreatureSay(temp.getObjectId(), 0, temp.getName(), "?"));
             temp.setTarget(target);
             temp.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
             temp.setRunning();
             _mobs.add(temp);
          }
          if (npcId == TREX && st.getState() == State.STARTED)
          {
             _mobs.remove(npc);
             npc.deleteMe();
             this.startQuestTimer("spawn", 300000, npc, killer); // 5min wait for Sailren. Confirmed.
          }
          if (npcId == SAILREN && st.getState() == State.STARTED)
          {
             _mobs.remove(npc);
             L2Npc temp = this.addSpawn(CUBIC, npc.getX(), npc.getY(), npc.getZ(), 0, false, 0);
             this.cancelQuestTimers("despawn");
             this.startQuestTimer("despawn", _checkInterval, temp, null, true);
             for (L2PcInstance p : _raiders)
             {
                //QuestState st = p.getQuestState(qn);
                if (st == null)
                   st = newQuestState(p);
                else
                {
                   QuestState st2 = p.getQuestState(qn);
                   st2.unset("cond");
                   st2.setState(State.COMPLETED);
                   st.saveGlobalQuestVar(iv, String.valueOf(((System.currentTimeMillis() / 1000 + _spawnInterval))));
                }
             }
          }
          return "";
       }
       
       public String onAttack(String event, L2Npc npc, L2PcInstance attacker, int damage, boolean isPet)
       {
          int npcId = npc.getNpcId();
          if (_nest == null || !_nest.getAllowedPlayers().contains(attacker.getObjectId()) || _mobs == null)
          {
             return "";
          }
          if (npcId == VELO || npcId == PTERO || npcId == TREX || npcId == SAILREN)
          {
             _lastAction = System.currentTimeMillis();
          }
          return "";
       }
       
       public String onTalk(L2Npc npc, L2PcInstance player)
       {
          int npcId = npc.getNpcId();
          String htmltext = "";
          if (npcId == STATUE)
          {
             QuestState st = player.getQuestState(qn);
             if (!entryLocked)
             {
                _raiders.clear();
                L2Party party = player.getParty();
                if (party == null)
                   return "data/html/default/" + "32109-4.htm";
                if (party.getLeader() != player)
                   return "data/html/default/" + "32109-5.htm";
                for (L2PcInstance ptMember : party.getPartyMembers())
                {
                   if (!Util.checkIfInRange(1000, player, ptMember, true))
                   {
                      SystemMessage sm = new SystemMessage(2096);
                      sm.addPcName(ptMember);
                      party.broadcastToPartyMembers(sm);
                      return "";
                   }
                   QuestState str = ptMember.getQuestState(qn);
                   if (str == null)
                      str = this.newQuestState(ptMember);
                   String reentertime = st.getGlobalQuestVar(iv);
                   if (!reentertime.equalsIgnoreCase(""))
                   {
                      long time = System.currentTimeMillis() / 1000;
                      if (Long.parseLong(reentertime) > time)
                      {
                         SystemMessage sm = new SystemMessage(2100);
                         sm.addPcName(ptMember);
                         party.broadcastToPartyMembers(sm);
                         return "";
                      }
                   }
                }
                if (st.getQuestItemsCount(8784) > 0)
                {
                   st.takeItems(8784, 1);
                   int x, y;
                   for (L2PcInstance ptMember : party.getPartyMembers())
                   {
                      if (_nest != null)
                         _nest.allowPlayerEntry(ptMember, 30);
                      x = TELEIN[0] + Rnd.get(250);
                      y = TELEIN[1] + Rnd.get(300);
                      ptMember.teleToLocation(x, y, TELEIN[2]);
                      _raiders.add(ptMember);
                      if (ptMember.getPet() != null)
                         ptMember.getPet().teleToLocation(x, y, TELEIN[2]);
                      QuestState st2 = ptMember.getQuestState(qn);
                      st2.setState(State.STARTED);
                      st2.set("cond", "1");
                   }
                   entryLocked = true;
                   startQuestTimer("Started", 60000, npc, player);
                }
                else
                   htmltext = "data/html/default/" + "32109-6.htm";
             }
             else
                htmltext = "data/html/default/" + "32109-7.htm";
          }
          else if (npcId == CUBIC) // Teleportation Cubic
          {
             player.teleToLocation(TELEOUT[0], TELEOUT[1], TELEOUT[2]);
             if (player.getPet() != null)
                player.getPet().teleToLocation(TELEOUT[0], TELEOUT[1], TELEOUT[2]);
          }
          return htmltext;
       }
       
       public Sailren(int id, String name, String descr)
       {
          super(id, name, descr);
          int[] mobs = { VELO, PTERO, TREX, SAILREN };
          registerMobs(mobs, true, true, false, false, false, false, false);
          
          addStartNpc(STATUE);
          addTalkId(STATUE);
          addTalkId(CUBIC);
          
          _nest = (L2BossZone) ZoneManager.getInstance().getZoneById(ZONEID);
       }
       
       public static void main(String[] args)
       {
          new Sailren(-1, qn, "ai");
       }
    }
    avatar
    dashuk


    Сообщения : 63
    Дата регистрации : 2010-03-04

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  dashuk Ср Сен 08, 2010 6:20 pm

    Спасибо большое!
    avatar
    SubZero


    Сообщения : 124
    Дата регистрации : 2010-03-20

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  SubZero Чт Сен 09, 2010 3:08 pm

    Тут ещё как бы прикол в том в что у сказки к саилрену вообще нельзя тпкнуться у него нет в data/html/default/ htm вообще к нему. И нету нпц статуи на дино. Ну это то ладно, нпц я поставил, в дефаулт htm докинул, но строчки с тп вообще не нет, тогда я вытянул пару строчек из другой сборки к статуе, но особо не помогло. Жму тп к нему но ничего не происходит, хотя ошибок в ГС нету и всё в принципе нормально там.
    Получается дело не в html у квестов а в чём то другом. Кто подскажет?
    Naik
    Naik


    Сообщения : 307
    Дата регистрации : 2010-03-06

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  Naik Чт Сен 09, 2010 3:21 pm

    Скинь ИД нпса, искать времени нету.
    avatar
    SubZero


    Сообщения : 124
    Дата регистрации : 2010-03-20

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  SubZero Чт Сен 09, 2010 4:58 pm

    Я счас в универе с мобилы но по памяти на ум только 32109 приходит. А вообще имя нпц Shilien's .... statue. Чиркани в альт+г одно из слов если 32109 не подойдёт.
    avatar
    SubZero


    Сообщения : 124
    Дата регистрации : 2010-03-20

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  SubZero Чт Сен 09, 2010 9:39 pm

    Да ID нпц 32109 - Shilen's Stone Statue.
    thegreat
    thegreat


    Сообщения : 4
    Дата регистрации : 2010-08-26
    Возраст : 48
    Откуда : Санкт-Петербург

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  thegreat Пт Сен 10, 2010 1:00 am

    SubZero пишет:Да ID нпц 32109 - Shilen's Stone Statue.

    ну так там не строка с тп должна быть, а строка с вызовом квеста. глянь как сделано у пианиста.
    Naik
    Naik


    Сообщения : 307
    Дата регистрации : 2010-03-06

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  Naik Пт Сен 10, 2010 1:04 am

    Напиши строчки которые с другой сборки у тебя.
    avatar
    SubZero


    Сообщения : 124
    Дата регистрации : 2010-03-20

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  SubZero Пт Сен 10, 2010 4:02 am

    thegreat пишет:
    SubZero пишет:Да ID нпц 32109 - Shilen's Stone Statue.

    ну так там не строка с тп должна быть, а строка с вызовом квеста. глянь как сделано у пианиста.

    Быть может будет проще если вы просто выложите правильный скрипт?
    И кто такой пианист? оО


    Последний раз редактировалось: SubZero (Пт Сен 10, 2010 4:08 am), всего редактировалось 1 раз(а)
    avatar
    SubZero


    Сообщения : 124
    Дата регистрации : 2010-03-20

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  SubZero Пт Сен 10, 2010 4:07 am

    Naik пишет:Напиши строчки которые с другой сборки у тебя.

    Пересмотрел сейчас ещё раз скрипты - то что вставлял с другой сборки уже убрано (так как занимался этим неделю назад где то).
    Поэтому единственное пока, что я изменил так это добавил в дефаулт htm от 641 квеста. Когда проходишь квест и нажимаешь тп к саилрену окошко с нпсом просто закрывается и ничего не происходит.
    Naik
    Naik


    Сообщения : 307
    Дата регистрации : 2010-03-06

    Сэйлрен и Тиры Empty Re: Сэйлрен и Тиры

    Сообщение  Naik Пт Сен 10, 2010 11:18 am

    Вот скинь строчку, которая за ТП отвечает.

      Текущее время Пт Окт 04, 2024 3:20 am