Как редактировать телепорты и добавлять свои.

Все стандартные телепортации и их названия находятся в gameserver/data/npc и непосредственно прикреплены к НПЦ так же как и скилы или дроп и так для примера мы берем Npc Roxxy:

<npc id="30006" name="Roxxy" title="Gatekeeper">
<set name="aggroRange" value="0"/>
<set name="ai_type" value="CharacterAI"/>
<set name="baseAtkRange" value="40"/>
<set name="baseCON" value="43"/>
....................................
<teleportlist> Начало тега телепорта
<sublist id="1">
ID листа который используется в диалоге который мы рассмотрим ниже.
<target loc="-80684 149770 -3040" item_id="57" price="9400" name="Gatekeeper.TheVillageofGludin"/>
<target loc="9744 15645 -4568" item_id="57" price="24000" name="Gatekeeper.DarkElvenVillage"/>
<target loc="115120 -178224 -880" item_id="57" price="46000" name="Gatekeeper.DwarvenVillage"/>
<target loc="46951 51550 -2976" item_id="57" price="23000" name="Gatekeeper.ElvenVillage"/>
<target loc="-45158 -112583 -240" item_id="57" price="35000" name="Gatekeeper.OrcVillage"/>
<target loc="-112367 234703 -3668" item_id="57" price="830" name="Gatekeeper.ElvenRuins"/>
<target loc="-111728 244330 -3448" item_id="57" price="770" name="Gatekeeper.SingingWaterfall"/>
<target loc="-106696 214691 -3424" item_id="57" price="1000" name="Gatekeeper.WesternTerritoryofTalkingIsland"/>
<target loc="-99586 237637 -3568" item_id="57" price="470" name="Gatekeeper.ObeliskofVictory"/>
</sublist>
<sublist id="2"> ID листа который используется в диалоге
<target loc="-87328 142266 -3640" item_id="57" price="1000" name="Gatekeeper.GludinArena"/>
<target loc="73579 142709 -3768" item_id="57" price="1000" name="Gatekeeper.GiranArena"/>
<target loc="49315 248452 -5960" item_id="57" price="1000" name="Gatekeeper.ElvenRuins"/>
<target loc="146440 46723 -3432" item_id="57" price="1000" name="Gatekeeper.Coliseum"/>
</sublist>
<sublist id="3"> ID листа который используется в диалоге
<target loc="-87328 142266 -3640" price="1" item_id="6651" name="Gatekeeper.GludinArena"/>
<target loc="73579 142709 -3768" price="1" item_id="6651" name="Gatekeeper.GiranArena"/>
<target loc="49315 248452 -5960" price="1" item_id="6651" name="Gatekeeper.ElvenRuins"/>
<target loc="146440 46723 -3432" price="1" item_id="6651" name="Gatekeeper.Coliseum"/>
</sublist>
</teleportlist> Конец тега телепортации

Рассматриваем параметры:
<sublist id="1"> - id листа
<target loc="X Y Z точки телепорта" price="Количество предметов" item_id="Id предмета которые будут забраны" name="Gatekeeper.GludinArena - строка которая находиться в data/strings в файлах локализации"/>

Теперь диалог НПЦ Roxxy:
Code:
Gatekeeper Roxxy:
[npc_%objectId%_Chat 2|Спросить про Баншю Слоновой Кости]

[npc_%objectId%_Teleport 1|Телепортироваться] для данного телепорта берется лист из  <sublist id="1"> так же как пример вы можете поставить вывод саб листов с другими id

[npc_%objectId%_Teleport 2| <sublist id="2"> - Имя телепорта]

[npc_%objectId%_Teleport 3|<sublist id="3"> - Имя телепорта]


[npc_%objectId%_multisell 002|Обменять Алмазы Иных Миров]

[scripts_Util:TeleNobless|Телепортироваться (только для Дворян)] для данного телепорта берется лист из <sublist id="2"> и <sublist id="3">

[npc_%objectId%_Quest|Квест]

-----------------------------------------------------------------------------------------------------------------------------

Для использования кастомных телепортов без редактирования НПЦ вы можете их добавлять прямо в HTML:
1. Просто телепорт без снятия предметов
[scripts_Util:Gatekeeper X Y Z Heading| Имя точки телепорта]
[scripts_Util:Gatekeeper -61288 -57736 -1600 0|Move to Top of the Clock Tower.]
2. Телепорт с снятием предметов
[scripts_Util:QuestGatekeeper X Y Z ItemCount ItemID|Имя точки телепорта]
[scripts_Util:QuestGatekeeper -80684 149770 -3040 1 1658|Teleport using Gatekeeper's Amulet.]
 
можно ли сделать телепорты бесплатными до 50 уровня?
что тут нужно добавить?
[scripts_Util:QuestGatekeeper -80684 149770 -3040 1 1658|Teleport using Gatekeeper's Amulet.]
 
Last edited:
можно ли сделать телепорты бесплатными до 50 уровня?
что тут нужно добавить?
[scripts_Util:QuestGatekeeper -80684 149770 -3040 1 1658|Teleport using Gatekeeper's Amulet.]
в altsettings.properties
# Уровень до которого (включительно) гейткиперы бесплатны (оффлайк 40)
GkFree = 40
 
у меня не стандартное тп.
телепорт выглядит так <button value="Gludio" action="bypass -h scripts_Util:QuestGatekeeper -12672 122776 -3116 50000 57"
т.е. 50000 аден оплаты за тп, не важно какого ты уровня
 
подскажите как редактировать это окошко?

View attachment 846
Такая же проблема, начал делать тп в Логово Зла (Den of Evil), при телепорте вылазиет окошко "Вы перемещаетесь в локацию (Логово Зла (81ур)) продолжить?"
полез в NPCString-ru.dat
Захотелось поменять что локация для 81 ур на 40, нашел id , импортировал файл и ничего не произошло.
Подскажите , что делаю не так?
 
Last edited:
И всё таки как реализовать телепорт за счет проверки наличия предмета в инвентаре, но без его изьятия.
В случае с [scripts_Util:QuestGatekeeper -80684 149770 -3040 0 9604|Teleport using Gatekeeper's Amulet.] персонажа телепортирует даже при отсутствии предмета в инвентаре.
 
И всё таки как реализовать телепорт за счет проверки наличия предмета в инвентаре, но без его изьятия.
В случае с [scripts_Util:QuestGatekeeper -80684 149770 -3040 0 9604|Teleport using Gatekeeper's Amulet.] персонажа телепортирует даже при отсутствии предмета в инвентаре.
ок добавлю работу с параметром 0
Закинь тикет, у меня сейчас много других задач, в течении пары дней сделаю
 
Во всплывающих окнах (например при достижении лвла выскакивает окно с информацией) телепорт вышеописанными методами не работает, как исправить?
 
Создал туториал (всплывающее окно) при достижении лвл, добавил в окно описания кнопку для телепорта, но при нажатии ничего не происходит. В чем может быть ошибка
<a action="bypass -h scripts_Util:Gatekeeper 10468 -24569 -3650 0">Отправиться</a>
 
Создал туториал (всплывающее окно) при достижении лвл, добавил в окно описания кнопку для телепорта, но при нажатии ничего не происходит. В чем может быть ошибка
<a action="bypass -h scripts_Util:Gatekeeper 10468 -24569 -3650 0">Отправиться</a>
попробуй без -h
 
Создал туториал (всплывающее окно) при достижении лвл, добавил в окно описания кнопку для телепорта
Есть гайд про это или где почитать? Кроме лвл на что-то можно ещё привязать?
 
что можно реализовать?
многое, что ты хочешь что бы я ответил?))) я ж написал конкретно этот скрипт можно сделать на любой listener коих на сервере море.
через ext можно пилить почти все что душе угодно
 
попробуй без -h
не получилось. Прикладываю весь код файла,может что не так прописал
<html><head><body>
<title>Обучение</title>
<br>
<center><font color="LEVEL">Послание Капитана Батиса</font></center><br>Поздравляю Вас с достижением 18-го уровня!<br>Меня зовут <font color="LEVEL">Батис</font>, и я являюсь <font color="LEVEL">Капитаном Стражи Деревни Замка Глудио</font>.<br>Много слышал о Ваших подвигах: Вы хороший путешественник. Я отправляю это послание, потому что пришло время Вам узнать о <font color="LEVEL">Камалоке</font> и <font color="LEVEL">мутации Канеуса</font>. Если Вы исполнены решительности и смелости, то немедленно приходите ко мне: я буду Вас ждать!<br>
<br><a action="bypass scripts_Util:Gatekeeper 10468 -24569 -3650 0">Отправиться</a>
</body></html>
 
не получилось. Прикладываю весь код файла,может что не так прописал
<html><head><body>
<title>Обучение</title>
<br>
<center><font color="LEVEL">Послание Капитана Батиса</font></center><br>Поздравляю Вас с достижением 18-го уровня!<br>Меня зовут <font color="LEVEL">Батис</font>, и я являюсь <font color="LEVEL">Капитаном Стражи Деревни Замка Глудио</font>.<br>Много слышал о Ваших подвигах: Вы хороший путешественник. Я отправляю это послание, потому что пришло время Вам узнать о <font color="LEVEL">Камалоке</font> и <font color="LEVEL">мутации Канеуса</font>. Если Вы исполнены решительности и смелости, то немедленно приходите ко мне: я буду Вас ждать!<br>
<br><a action="bypass scripts_Util:Gatekeeper 10468 -24569 -3650 0">Отправиться</a>
</body></html>
ага там проверка как бы, предлагаю тебе замутить свой экстеншен. Сейчас накидаю пример - закомпиль и юзай, потому что это ядерная дичь.

Java:
import l2.gameserver.cache.Msg;
import l2.gameserver.model.Player;
import l2.gameserver.scripts.Functions;
import l2.gameserver.utils.Location;

public class MyTeleportOlolo extends Functions
{

  public void Gatekeeper(String[] param)
  {
    if(param.length < 3)
      throw new IllegalArgumentException();

    Player player = getSelf();
    if(player == null)
      return;

    long price = Long.parseLong(param[param.length - 1]);

    if(price > 0 && player.getAdena() < price)
    {
      player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
      return;
    }

    if(player.getMountType() == 2)
    {
      show("scripts/wyvern-no.htm", player);
      return;
    }

    int x = Integer.parseInt(param[0]);
    int y = Integer.parseInt(param[1]);
    int z = Integer.parseInt(param[2]);

    Location pos;
    pos = new Location(x, y, z).correctGeoZ();

    if(price > 0)
      player.reduceAdena(price, true);
    player.teleToLocation(pos);
  }
}
Байпасс
[scripts_MyTeleportOlolo:Gatekeeper 18748 145437 -3132|Telerport to Some Position]

Проверки и так далее можешь сам себе придумать.
 
Back
Top