Catacomb Entrance/Exit NPC L2jMobius

  • Автор темы Автор темы booogz
  • Дата начала Дата начала

booogz

Путник
Участник
Сообщения
53
Розыгрыши
0
Репутация
33
Реакции
28
Баллы
83
Хроники
  1. Chaotic Throne: High Five
Сборка
L2jMobius
Всем привет.


Столкнулся с проблемой geodata в катакомбах — при спуске и подъёме всё работает криво. Решить эту проблему корректно у меня не получилось, поэтому я придумал альтернативный вариант.


Сделал кастомных NPC, которые телепортируют игроков внутрь катакомб и обратно наружу, полностью минуя участок с плаванием. В итоге играть становится проще и удобнее.


Все NPC имеют диалоги на двух языках — English / Russian, чтобы игрокам было комфортно независимо от локализации.


Пока реализованы только Catacombs, но в планах добавить и Necropolis.
Если кому-то пригодится — забирайте, возможно у вас появятся идеи, как улучшить реализацию или доработать диалоги.


GitHub:



Установка максимально простая — просто скопируйте файлы. Думаю, вы и сами знаете, куда что класть 🙂

fcG0zMB.md.webp
fcGcO5G.md.webp
fcGx8k7.md.webp
fcGfJJn.md.webp
 
Ну с таким же успехом можно сразу в каты тпшить, для чего лишний непись непонятно

Я не хочу в Каты телепортировать сразу.
Доберитесь до кат по классике, а далее как я уже и писал это решение обхода пути по воде.
 
Всем привет.


Столкнулся с проблемой geodata в катакомбах — при спуске и подъёме всё работает криво. Решить эту проблему корректно у меня не получилось, поэтому я придумал альтернативный вариант.


Сделал кастомных NPC, которые телепортируют игроков внутрь катакомб и обратно наружу, полностью минуя участок с плаванием. В итоге играть становится проще и удобнее.


Все NPC имеют диалоги на двух языках — English / Russian, чтобы игрокам было комфортно независимо от локализации.


Пока реализованы только Catacombs, но в планах добавить и Necropolis.
Если кому-то пригодится — забирайте, возможно у вас появятся идеи, как улучшить реализацию или доработать диалоги.


GitHub:



Установка максимально простая — просто скопируйте файлы. Думаю, вы и сами знаете, куда что класть 🙂




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

<zone name="19_18_water3" type="WaterZone" shape="Cuboid" minZ="-5568" maxZ="-3208">
<node X="-23224" Y="13128" />
<node X="-22472" Y="13880" />
</zone>
 
попробуй поставить только вертикальную ватер волюме без боковой

<zone name="19_18_water3" type="WaterZone" shape="Cuboid" minZ="-5568" maxZ="-3208">
<node X="-23224" Y="13128" />
<node X="-22472" Y="13880" />
</zone>
Да не, дело не в геодате, я чекнул на нормальной гео, этот довн на мобиусе лазил в гео движке, и сломал его нахер.
На старых сборках все работало нормально)
Там вообще беда с поиском пути теперь, теперь даже не может забежать на второй этаж или спуститься на первый, нет проверки на многослойность геодаты.

Там проблема если выплыть пытаешься.
Попробуй каты дарк омен
Ага, тупо на дно колодца плывет и все. Забавно он гео поправил :loltt0:
 
Последнее редактирование:
Да не, дело не в геодате, я чекнул на нормальной гео, этот довн на мобиусе лазил в гео движке, и сломал его нахер.
На старых сборках все работало нормально)
Там вообще беда с поиском пути теперь, теперь даже не может забежать на второй этаж или спуститься на первый, нет проверки на многослойность геодаты.
там однозначно проблема в геодвижке при переходе из одного ватер волюме в другой, поэтому надо один убрать и оставить один тогда пускало нормально
 
Ну буду решать проблему, а пак NPC я в любом случае доделаю, как по мне он очень атмосферный.
Даже если проблему с гео решим, моя задумка мне нравится)
 
Ну буду решать проблему, а пак NPC я в любом случае доделаю, как по мне он очень атмосферный.
Даже если проблему с гео решим, моя задумка мне нравится)
ставим ступеньки!
 
Ну с таким же успехом можно сразу в каты тпшить, для чего лишний непись непонятно

та он у астериоса подглядел, там ровно тоже самое, все ныли - поставили нпц, вместо того что бы с такими бюджетами - починить.
 
та он у астериоса подглядел, там ровно тоже самое, все ныли - поставили нпц, вместо того что бы с такими бюджетами - починить.
С чего ты взял что я это у астериоса подсмотрел.
Я таких нпс еще в 2015 году делал.
Или если ты у кого0то увидел, теперь у кого-то подсмотрели?
 
С чего ты взял что я это у астериоса подсмотрел.
Я таких нпс еще в 2015 году делал.
Или если ты у кого0то увидел, теперь у кого-то подсмотрели?
Это был сарказм, к тому что очень крупный проект ровно так же сделал...
(пс раньше твоего 2015 года)
если ты всё равно ничего не понял, то суть в том что это камень в огород Астериоса, а ты молодец.
 
Оверпостинг
Это был сарказм, к тому что очень крупный проект ровно так же сделал...
(пс раньше твоего 2015 года)
если ты всё равно ничего не понял, то суть в том что это камень в огород Астериоса, а ты молодец.
Аааа, ладно, я просто агрессивный))))

Кстати, а чего вы так на Mobius наезжаете?
Я написал ему об ошибке, он мне скинул фикс, все прекрасно отработало.
Как по мне l2jmobius достойная сборка, мне нравится, особенно то что он отвечает и помогает.
Проблему решил с гео, а npc доделаю, в целом идея прикольная.
 
Последнее редактирование модератором:
Кстати, а чего вы так на Mobius наезжаете?
Я написал ему об ошибке, он мне скинул фикс, все прекрасно отработало.
Как по мне l2jmobius достойная сборка, мне нравится, особенно то что он отвечает и помогает.
Проблему решил с гео, а npc доделаю, в целом идея прикольная.
Ага, вот его фикс на вход и выход из зоны.
Screenshot_2.webp
Screenshot_1.webp

Смотрим на старую версию:
Screenshot_3.webp

Ох уж эти чудо фиксы от мобиуса. Действительно, че на него все наезжают. :pandaredlol:

Тем временем код l2jserver
Java:
/*
 * Copyright © 2004-2025 L2J Server
 *
 * This file is part of L2J Server.
 *
 * L2J Server is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * L2J Server is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package com.l2jserver.gameserver.model.zone.type;

import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.zone.L2ZoneType;
import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
import com.l2jserver.gameserver.network.serverpackets.ServerObjectInfo;

public class L2WaterZone extends L2ZoneType {
    public L2WaterZone(int id) {
        super(id);
    }
    
    @Override
    protected void onEnter(L2Character character) {
        character.setInsideZone(ZoneId.WATER, true);
        
        // TODO: update to only send speed status when that packet is known
        if (character.isPlayer()) {
            L2PcInstance player = character.getActingPlayer();
            if (player.isTransformed() && !player.getTransformation().canSwim()) {
                character.stopTransformation(true);
            } else {
                player.broadcastUserInfo();
            }
        } else if (character.isNpc()) {
            for (L2PcInstance player : character.getKnownList().getKnownPlayers().values()) {
                if (character.getRunSpeed() == 0) {
                    player.sendPacket(new ServerObjectInfo((L2Npc) character, player));
                } else {
                    player.sendPacket(new AbstractNpcInfo.NpcInfo((L2Npc) character, player));
                }
            }
        }
    }
    
    @Override
    protected void onExit(L2Character character) {
        character.setInsideZone(ZoneId.WATER, false);
        
        // TODO: update to only send speed status when that packet is known
        if (character.isPlayer()) {
            character.getActingPlayer().broadcastUserInfo();
        } else if (character.isNpc()) {
            for (L2PcInstance player : character.getKnownList().getKnownPlayers().values()) {
                if (character.getRunSpeed() == 0) {
                    player.sendPacket(new ServerObjectInfo((L2Npc) character, player));
                } else {
                    player.sendPacket(new AbstractNpcInfo.NpcInfo((L2Npc) character, player));
                }
            }
        }
    }
    
    public int getWaterZ() {
        return getZone().getHighZ();
    }
}
 
Последнее редактирование:
"мы поставим вам нпц телепортера у телепортера, что бы телепортировать к телепортеру..."
ну вот зачем? зачем эти костыли к костылям?
нцсофт и так наставил телепортеров как костыль к нереализованным механикам, а тут из-за недописанного геодвига добавляют ещё...
p.s. "подгорело"
 
Ну чего вы гоните на Мобиуса, вы обновление формул видели.
Ну т.е. фикс геодвига был в 2024,
А формулы еще до этого и после этого - хз сколько Вам еще нужно времени что бы вы увидели эти фиксы.
 
Назад
Сверху Снизу