Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Freya Manager
#1
Всем доброго дня! О великие Гуру l2 помогите. Пилю Инстанс фреи. Выдернул скрипт из аналогичной сборки в котором на этапе спавна Глакиеса
Код:
if (spawnTime > 0 && world.Glaciers < 7) {
            if (!world._setStop) {
                int spawn[] = TerritoryTable.getInstance().getRandomPoint(99911999);
                final L2NpcInstance mob = spawn(Glacier, spawn[0], spawn[1], -11200, 0, world);
                if (world.controler == null) {
                    world.controler = spawn(Controler, 114707, -114797, -11199, 0, world);
                    world.controler.setIsInvul(true);
                    world.controler.setParalyzed(true);
                }

ругается ГС следующими словами TerritoryTable.getRandomPoint: territory 99911999 not found.
я тут же не долго думая прыгаю в TerritoryTable нахожу функцию getRandomPoint
Код:
public int[] getRandomPoint(int terr)
    {
        L2Territory t = _locations.get(terr);
        if(t == null)
        {
            _log.warning("TerritoryTable.getRandomPoint: territory " + terr + " not found.");
            return new int[3];
        }
        return t.getRandomPoint();
Я не программист сразу скажу, но предполагаю что идёт расчёт координат спавна Глакиеса относительно зоны вокруг него. Лезу дальше в L2Territory
Код:
public int[] getRandomPoint()
    {
        int i;
        int[] p = new int[3];

        mainloop: for(i = 0; i < 100; i++)
        {
            p[0] = Rnd.get(_x_min, _x_max);
            p[1] = Rnd.get(_y_min, _y_max);
            p[2] = _z_min + (_z_max - _z_min) / 2;

            /** Для отлова проблемных территорий, вызывающих сильную нагрузку
            if(i == 40)
                _log.warning("Heavy territory: " + this + ", need manual correction"); Клиентам это не нужно*/

            if(poly.contains(p[0], p[1]))
            {
                // Не спаунить в зоны, запрещенные для спауна
                if(ZoneManager.getInstance().checkIfInZone(ZoneType.no_spawn, p[0], p[1]))
                    continue;

                // Не спаунить в колонны, стены и прочее.
                int tempz = GeoEngine.getHeight(p[0], p[1], p[2], 0);
                if(_z_min != _z_max)
                {
                    if(tempz < _z_min || tempz > _z_max || _z_min > _z_max)
                        continue;
                }
                else if(tempz < _z_min - 200 || tempz > _z_min + 200)
                    continue;

                p[2] = tempz;

                int geoX = p[0] - L2World.MAP_MIN_X >> 4;
                int geoY = p[1] - L2World.MAP_MIN_Y >> 4;

                // Если местность подозрительная - пропускаем
                for(int x = geoX - 1; x <= geoX + 1; x++)
                    for(int y = geoY - 1; y <= geoY + 1; y++)
                        if(GeoEngine.NgetNSWE(x, y, p[2], 0) != GeoEngine.NSWE_ALL)
                            continue mainloop;

                return p;
            }
        }
        //_log.warning("Can't make point for " + this); Клиентам это не нужно.
        return p;
    }
И вот теперь вопрос. Чего ему не хватает? Сам то Глакиес спавнится, но ошибка меня нервирует, я параноик Sad
Ответ
#2
TosyBosy Написал:И вот теперь вопрос. Чего ему не хватает? Сам то Глакиес спавнится, но ошибка меня нервирует, я параноик Sad

TosyBosy Написал:TerritoryTable.getRandomPoint: territory 99911999 not found.

я надеюсь не дойдет до того, что вам ссылку на гугл переводчик надо будет скинуть
Ответ
#3
KID Написал:я надеюсь не дойдет до того, что вам ссылку на гугл переводчик надо будет скинуть

В сборке в из которой я дёрнул скрипт я искал в xml файлах в датапаке территорию с таким id и не нашёл, если это вообще id, не понимаю что это за число...

О госпадя я нашёл её!!!
Ответ
#4
TosyBosy Написал:В сборке в из которой я дёрнул скрипт я искал в xml файлах в датапаке территорию с таким id и не нашёл, если это вообще id, не понимаю что это за число...

О госпадя я нашёл её!!!
Где нашли? пригодится кому-нибудь! Smile
Ответ
#5
В базе, таблица location.
Сейчас борюсь с новой бедой. Дальше, после убийства Глакиеса по скрипту должна респаться Фрея без седла.
Код:
public void run() {
                    world.finish = false;
                    world.status = 5;
                    world._setStop = false;
                    startAll(world);
                    spawnKnights(world);
                    spawnGlaciers(world);
                    //batleFailTask(world);
                    world.Npc_Freya = spawn(world.FreyaStand, 114720, -117068, -11078, 16384, world);
                    screenMessage(world.reflection, 1801088, ScreenMessageAlign.TOP_CENTER, true);
где
Код:
world.FreyaStand = hardMode ? 29180 : 29179; // 29180 - Экстрим фрея, без кресла..
.
Но она не появляется, причём если жать nexttarget то можно поймать странное окно
[Изображение: 2yYPWEEv.jpg]
По базе вроде всё впродяке
[Изображение: t0JILHV4.jpg]
С гео тоже всё впорядке, так как по скрипту первая стадия фреи респается точно по тем же координатам и её прекрасно видно. Я вот косо смотрю на поле displayID но не буду же я ему присваивать ID этого же самого моба...


Решение так и не нашёл. есть у кого идеи?
Ответ
#6
АП темку, любые идеи....
Ответ
#7
Две функции.
1 стадия Фреи: Фрея на кресле
Код:
public void run() {
                    world.finish = false;
                    world.Npc_Freya = spawn(world.FreyaOnThrone, 114720, -117068, -11078, 16384, world);
                    world.Npc_Freya.setRunning();
                    startAll(world);
                    screenMessage(world.reflection, 1801086, ScreenMessageAlign.TOP_CENTER, true);
                    spawnKnights(world);
                    spawnGlaciers(world);
работает
3я стадия: Фрея без кресла
Код:
public void run() {
                    world.finish = false;
                    world.status = 5;
                    world._setStop = false;
                    startAll(world);
                    spawnKnights(world);
                    spawnGlaciers(world);
                    //batleFailTask(world);
                    world.Npc_Freya = spawn(world.FreyaStand, 114720, -117068, -11078, 16384, world);
                    screenMessage(world.reflection, 1801088, ScreenMessageAlign.TOP_CENTER, true);
не работает. Почему? Не понимаю. Фреи просто нет.
Ответ
#8
Если вы переносите на другую сборку то значит где-то, что-то упустили...где и что именно я не знаю(
open-team.ru - Freya, HighFive...
Ответ
#9
TosyBosy Написал:Две функции.
1 стадия Фреи: Фрея на кресле
Код:
public void run() {
                    world.finish = false;
                    world.Npc_Freya = spawn(world.FreyaOnThrone, 114720, -117068, -11078, 16384, world);
                    world.Npc_Freya.setRunning();
                    startAll(world);
                    screenMessage(world.reflection, 1801086, ScreenMessageAlign.TOP_CENTER, true);
                    spawnKnights(world);
                    spawnGlaciers(world);
работает
3я стадия: Фрея без кресла
Код:
public void run() {
                    world.finish = false;
                    world.status = 5;
                    world._setStop = false;
                    startAll(world);
                    spawnKnights(world);
                    spawnGlaciers(world);
                    //batleFailTask(world);
                    world.Npc_Freya = spawn(world.FreyaStand, 114720, -117068, -11078, 16384, world);
                    screenMessage(world.reflection, 1801088, ScreenMessageAlign.TOP_CENTER, true);
не работает. Почему? Не понимаю. Фреи просто нет.

Возможно
Код:
                    world.Npc_Freya.setRunning();
Нэ?
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#10
Pointer*Rage Написал:Возможно
Код:
                    world.Npc_Freya.setRunning();
Нэ?

Не то)
Там в АИ включается бег и задается движение)
Он просто упустил, что-то когда переносил.
Фрея там полностью рабочая.
open-team.ru - Freya, HighFive...
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Сборка под Freya... TieLay 37 12,122 05-29-2017, 11:06 AM
Последний пост: ntking
  Ищу сборку Freya PTS для тестов. flopix 10 3,834 11-10-2016, 12:53 PM
Последний пост: DiagoD
  Freya html RaRus 9 5,687 12-26-2015, 08:22 PM
Последний пост: flopix
  Ищу скрипт базы знаний Freya TosyBosy 2 1,671 07-04-2013, 08:37 PM
Последний пост: TosyBosy
  L2J хроник Freya ntking 24 5,600 03-16-2013, 02:34 PM
Последний пост: krisadr
  Multisell Manager Stringfellow 6 2,436 02-23-2013, 09:29 AM
Последний пост: Stringfellow
  Item Mall / Prime Shop L2jServer Freya High Five Part 5 Blackmau5 9 5,757 12-15-2012, 05:22 PM
Последний пост: Blackmau5
  L2J проблема с Symbol Manager mor 4 2,583 08-14-2012, 07:08 PM
Последний пост: Zubastic
  L2j Server Freya By BymerOK BymerOK 9 2,431 08-11-2012, 03:16 AM
Последний пост: tima22
  L2J Freya Community Board BymerOK 12 7,374 07-29-2012, 06:29 AM
Последний пост: BymerOK

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)