Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Проход через ворота стрелками (https://forum.zone-game.info/showthread.php?t=15717)

Abrom 29.08.2011 10:49

Проход через ворота стрелками
 
Как запретить стрелками(или если бежать в упор) проходить через ворота? Например в колизее.

PaInKiLlEr 29.08.2011 10:55

Re: Проход через ворота стрелками
 
Abrom
1) поставить геодату
2) если геодата стоит то редактировать стены в геодате

VISTALL 29.08.2011 11:07

Re: Проход через ворота стрелками
 
Цитата:

Сообщение от Abrom (Сообщение 137318)
Как запретить стрелками(или если бежать в упор) проходить через ворота? Например в колизее.

если проходят в инстансе, то нужно поправлять ядро

Akumu 29.08.2011 12:16

Re: Проход через ворота стрелками
 
Цитата:

Сообщение от PaInKiLlEr (Сообщение 137319)
2) если геодата стоит то редактировать стены в геодате

Бред говорите. Ибо, как сказал ТС, проблема в дверях. Возможность прохода через них рассчитывается либо математически, либо созданием непроходимых блоков геодаты самим геодвижком сборки.

Ro_0TT 29.08.2011 12:27

Re: Проход через ворота стрелками
 
Если сборка фениксов - в таблице doors выставляем на двери в колонке 'geodata' - true, ну, а вообще как сказал VISTALL, если дверь в инсте (аля стадионы в ХФ) - необходимо в ядре делать подгрузку геодаты в инстанс.

ANZO 29.08.2011 12:29

Re: Проход через ворота стрелками
 
Самое простое решение, если геодиг выключен - запретить передвижение стрелками в радиусе, допустим 100, возле дверей. Проверка в л2ж подобных сборках осуществляется следующим методом:

Код:

    @Override
    public Location moveCheck(int x, int y, int z, int tx, int ty, int tz, int instanceId)
    {
        Location startpoint = new Location(x, y, z);
        if (DoorTable.getInstance().checkIfDoorsBetween(x, y, z, tx, ty, tz, instanceId))
            return startpoint;

        Location destiny = new Location(tx, ty, tz);
        return moveCheck(startpoint, destiny, (x - L2World.MAP_MIN_X) >> 4, (y - L2World.MAP_MIN_Y) >> 4, z, (tx - L2World.MAP_MIN_X) >> 4, (ty - L2World.MAP_MIN_Y) >> 4, tz);
    }


Ro_0TT 29.08.2011 12:31

Re: Проход через ворота стрелками
 
Цитата:

Сообщение от ANZO (Сообщение 137324)
Самое простое решение, если геодиг выключен - запретить передвижение стрелками в радиусе, допустим 100, возле дверей. Проверка в л2ж подобных сборках осуществляется следующим методом:

Код:

    @Override
    public Location moveCheck(int x, int y, int z, int tx, int ty, int tz, int instanceId)
    {
        Location startpoint = new Location(x, y, z);
        if (DoorTable.getInstance().checkIfDoorsBetween(x, y, z, tx, ty, tz, instanceId))
            return startpoint;

        Location destiny = new Location(tx, ty, tz);
        return moveCheck(startpoint, destiny, (x - L2World.MAP_MIN_X) >> 4, (y - L2World.MAP_MIN_Y) >> 4, z, (tx - L2World.MAP_MIN_X) >> 4, (ty - L2World.MAP_MIN_Y) >> 4, tz);
    }


Прикольный способ :negodue:.


Текущее время: 19:35. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot