Полный гайд по инстансам (Kamaloka и что угодно)

Как запретить использовать Свитки телепорта в Гиран, Дион и так далее. При их использование чар телепортируется в параллельный Гиран ну и по аналогии. При использовании обычного свитка все нормально. Кстати также можно и из тюрьмы выбраться, просто заюзав сое в определенный город...
 
Last edited:
Как запретить использовать Свитки телепорта в Гиран, Дион и так далее. При их использование чар телепортируется в параллельный Гиран ну и по аналогии. При использовании обычного свитка все нормально. Кстати также можно и из тюрьмы выбраться, просто заюзав сое в определенный город...
в тюрьме свитки не используются, это вы пишите глупости. По свиткам гирана и т.д. проверю, довольно странно.
 
Еще такая проблема с инстанцами. setUponEntry="True"-данный конфиг не работает. Если мы хотим чтобы отсчет времени отката шел не с момента входа а по завершению инстанса и ставим "false" то отката вообще нет. Тестировал на готовом инстансе [72] Kamaloka, Hall of the Abyss который лежит в сборке. Тупо не отправляет в базу данных время отката. Подскажите как это можно исправить.
 
Last edited:
setUponEntry="False" откат ставиться если ты прошел инстанц
.
 
При setUponEntry="False" рейд или моб на финише должен в методе onDeath брать кюрент рефлекшен и ставить setReenterTime

@Override
protected void onDeath(Creature killer)
{
Reflection r = getReflection();
r.setReenterTime(System.currentTimeMillis());

getMinionList().unspawnMinions();
super.onDeath(killer);
clearReflection();
}
 
Last edited:
Время жизни Камалоки 10 минут,
Захожу в 1 Камалоку, убил всех за 5 минут,
хочу пойти в следующую Камалоку, а там пишет вы еще находитесь в 1 Камалоки и не можете войти.
Как сделать что бы не ждать пока закроется КД от 1 Камалоки и залететь в следующую, без использования скриптов?
Пример
<list>
<instance id="57" name="Kamaloka RB" maxChannels="20" collapseIfEmpty="5" timelimit="10" dispelBuffs="false">
<collapse on-party-dismiss="true" timer="60"/>
<level min="70" max="80"/>
<party min="2" max="6"/>
<return loc="18748 145437 -3132"/>
<teleport loc="-89002 -219433 -7896"/>
<geodata map="25_15"/>
<remove itemId="0" count="0" necessary="false"/>
<give itemId="0" count="0"/>
<quest id="0"/>
<reuse resetReuse="30 * * * *" setUponEntry="true" sharedReuseGroup="1"/> <!-- Instance reuse at 6:30 every day -->
<spawns>
<spawn mobId="25657" type="point">
<coords loc="180375 -88984 -7216"/>
</spawn>
</spawns>
<doors>
</doors>
</instance>
</list>
 
Время жизни Камалоки 10 минут,
Захожу в 1 Камалоку, убил всех за 5 минут,
хочу пойти в следующую Камалоку, а там пишет вы еще находитесь в 1 Камалоки и не можете войти.
Как сделать что бы не ждать пока закроется КД от 1 Камалоки и залететь в следующую, без использования скриптов?
Пример
<list>
<instance id="57" name="Kamaloka RB" maxChannels="20" collapseIfEmpty="5" timelimit="10" dispelBuffs="false">
<collapse on-party-dismiss="true" timer="60"/>
<level min="70" max="80"/>
<party min="2" max="6"/>
<return loc="18748 145437 -3132"/>
<teleport loc="-89002 -219433 -7896"/>
<geodata map="25_15"/>
<remove itemId="0" count="0" necessary="false"/>
<give itemId="0" count="0"/>
<quest id="0"/>
<reuse resetReuse="30 * * * *" setUponEntry="true" sharedReuseGroup="1"/> <!-- Instance reuse at 6:30 every day -->
<spawns>
<spawn mobId="25657" type="point">
<coords loc="180375 -88984 -7216"/>
</spawn>
</spawns>
<doors>
</doors>
</instance>
</list>
вроде получилось как хотел
sharedReuseGroup="0"
 
Можно ли как то сделать что бы телепорт обратно был в ту точку откуда рег?
 
Возможно ли использовать данное, создать к примеру Каму в Валакаса, и чтобы весь сервер мог туда зайти, а не только пати до 9ти человек?
 
Глянул тут instances.dtd и нашел там следующий параметр
Code:
<!ELEMENT group (#PCDATA)>
<!ATTLIST group
    name CDATA #REQUIRED
    spawned CDATA #IMPLIED>
Правильно ли понимаю что это аналог параметра group из xml инстонсов выше хроник (за пример берем Картию из GoD)
Кусок кода инстанса

Code:
<group name="ROOM1_STAGE1_WAVE1" spawnByDefault="false">
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
        </group>


Если это аналог то следующий вопрос:
1)Какое значение принимает Spawned? Как в примере с хроник выше true или false?
2)Если с помощью Group из XML Lucerы можно сделать подобные группы мобов, то как вызывать следующую группу при выполнение условий для скриптового файла?
 
Глянул тут instances.dtd и нашел там следующий параметр
Code:
<!ELEMENT group (#PCDATA)>
<!ATTLIST group
    name CDATA #REQUIRED
    spawned CDATA #IMPLIED>
Правильно ли понимаю что это аналог параметра group из xml инстонсов выше хроник (за пример берем Картию из GoD)
Кусок кода инстанса

Code:
<group name="ROOM1_STAGE1_WAVE1" spawnByDefault="false">
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
        </group>


Если это аналог то следующий вопрос:
1)Какое значение принимает Spawned? Как в примере с хроник выше true или false?
2)Если с помощью Group из XML Lucerы можно сделать подобные группы мобов, то как вызывать следующую группу при выполнение условий для скриптового файла?
групповой спавн в инстах не работает если я не ошибаюсь , нужно каждого НПЦ респ прописывать отдельно.
 
2)Если с помощью Group из XML Lucerы можно сделать подобные группы мобов, то как вызывать следующую группу при выполнение условий для скриптового файла?
у тебя в твоем скрипте должно быть написано, при убийстве, например моба с ид 99999, спавнится моб с ид 7777
перечитай 1 пост там все написано и не додумывай лишнего
 
у тебя в твоем скрипте должно быть написано, при убийстве, например моба с ид 99999, спавнится моб с ид 7777
перечитай 1 пост там все написано и не додумывай лишнего
Глянул тут instances.dtd и нашел там следующий параметр
Code:
<!ELEMENT group (#PCDATA)>
<!ATTLIST group
    name CDATA #REQUIRED
    spawned CDATA #IMPLIED>
Правильно ли понимаю что это аналог параметра group из xml инстонсов выше хроник (за пример берем Картию из GoD)
Кусок кода инстанса

Code:
<group name="ROOM1_STAGE1_WAVE1" spawnByDefault="false">
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
            <npc id="19229" x="-111642" y="21462" z="-10576" heading="33120" /> <!-- Kartia Guard -->
        </group>


Если это аналог то следующий вопрос:
1)Какое значение принимает Spawned? Как в примере с хроник выше true или false?
2)Если с помощью Group из XML Lucerы можно сделать подобные группы мобов, то как вызывать следующую группу при выполнение условий для скриптового файла?
Скрипт не нужен ибо есть АИшка.

XML:
    <ai_params>
      <set name="transformChance" value="10"/>
      <set name="transformOnDead" value="21378"/>
      <set name="transformSpawnAmount" value="5"/>
      <set name="transformSpawnRndRadius" value="120"/>
    </ai_params>
 
Я скорее всего задолбаю всех своими нубскими вопросами, но не могли бы вы помочь мне и ткнуть меня в место где я ошибся:

Сделал свою XML с Зоной (копипаста с шаблонной Камалоки, изменил ID, место спавна, и моба)

Code:
<!DOCTYPE list SYSTEM "instances.dtd">
<list>
    <instance id="228" name="Kartia" maxChannels="10" collapseIfEmpty="5" timelimit="30" dispelBuffs="true">
        <collapse on-party-dismiss="true" timer="60"/>
        <level min="70" max="80"/>
        <party min="1" max="1"/>
        <return loc="43928 -49144 -792"/>
        <teleport loc="-107634 22041 -10952"/>
        <geodata map="16_18"/>
        <remove itemId="0" count="0" necessary="false"/>
        <give itemId="0" count="0"/>
        <quest id="0"/>
        <reuse resetReuse="30 6 * * *" setUponEntry="true" sharedReuseGroup="1"/> <!-- Instance reuse at 6:30 every day -->
        <spawns>
            <spawn mobId="40034" type="point">
                <coords loc="-108121 22028 -10952"/>
            </spawn>
        </spawns>
        <doors>
            <door id="16180031" opened="false"/>
        </doors>
    </instance>
</list>

Добавил в Doors свою дверь. Если прилететь руками по координатам то дверь выделяется, реагирует на команды //open //close

Взял пример исхода Java из первого поста

Code:
package npc.model;

import l2.gameserver.instancemanager.ReflectionManager;
import l2.gameserver.model.Creature;
import l2.gameserver.model.instances.DoorInstance;
import l2.gameserver.model.instances.MonsterInstance;
import l2.gameserver.templates.npc.NpcTemplate;

public class EventReflectionMobInstance extends MonsterInstance
{
    public EventReflectionMobInstance(int objectId, NpcTemplate template)
    {
        super(objectId, template);
    }

    @Override
    protected void onDeath(Creature killer)
    {
        super.onDeath(killer);
        if(getReflection() == killer.getReflection() && getReflection() != ReflectionManager.DEFAULT)
        {
            switch(getNpcId())
            {
                case 40034:
                {
                    DoorInstance door = getReflection().getDoor(16180031);
                    if(door != null)
                    {
                        door.openMe();
                    }
                }
                break;
            }
        }
    }
}

По мануалу в видосе сделал Kartia.ext.jar (Картинку с настройками подцепил). Запускаю сервак, захожу в инсту, убиваю первого моба командой //kill но дверь не открывается, думал проблема может быть в кастомной двери. Сделал копию Камалоки, оставил лишь строку в спавне с моим мобом, поменял ID двери на 25150002 (В XML и Jar файле + пересобрал его), но результата не дало
 

Attachments

  • Безымянный.png
    Безымянный.png
    44.1 KB · Views: 28
case 40034: - id нпц при убийстве которого открывает дверь getDoor(16180031) id двери.
Что-то делаешь не так, пересмотри ролик, пересмотри код. Убивай не через //kill
Когда что-то тестишь, тести как игрок, не юзай админ фичи
 
Ну
Сделал копию Камалоки, оставил лишь строку в спавне с моим мобом, поменял ID двери на 25150002 (В XML и Jar файле + пересобрал его), но результата не дало
конечно не даст у тебя другие id мобов скорее всего


Не получается , вернись к 1му посту, перечитай, сделай заново, ищи свой косяк

Все инсты великолепно работают
 
Скрипт не нужен ибо есть АИшка.

XML:
    <ai_params>
      <set name="transformChance" value="10"/>
      <set name="transformOnDead" value="21378"/>
      <set name="transformSpawnAmount" value="5"/>
      <set name="transformSpawnRndRadius" value="120"/>
    </ai_params>


Кстати спасибо искал )
 
Back
Top