Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Старые добрые С5
#21
bigbastard;381232 Написал:А на каких то еще сборках это реализовано, Более полноценно ?
P.S.
Нельзя ли просто взять спавн от PTS, вырезать оттуда все, и прикрутить к яве ?
Линк на репо - удачи Wink
Ответ
#22
Цитата:В оверах спавн максимально приближен к оффу.
И рядом не стоял он с офомSmile


Donatte Написал:Я вам говорил, что:



Всё что вы предоставили это статический спавн с рэнжем (псевдо территориальный). На практике моб спавнится в определённой окружности от указанной ему точки. Как правило Range = 100-200.

По оффу моб должен спавниться внутри территории вцелом. Т.е. если вы качаетесь в катах, то имеется такой эффект когда подбирая мобов с одной стороны комнаты они рано или поздно заспавняться все в противоположном углу комнаты. На лыжах этого нет!

Территория - это не точка и описанная вокруг неё окружность, а полноценный полигон (не всегда правильной формы) в котором рандомно спавнится моб.

Вы для начала посмотрите, что там у лыжи естьSmile

SpawnTable.java
Код:
    spawnDat = new L2Spawn(NpcData.getInstance().getTemplate(spawnInfo.getInt("npcTemplateid")));
            spawnDat.setAmount(spawnInfo.getInt("count", 1));
            spawnDat.setX(spawnInfo.getInt("x", 0));
            spawnDat.setY(spawnInfo.getInt("y", 0));
            spawnDat.setZ(spawnInfo.getInt("z", 0));
            spawnDat.setHeading(spawnInfo.getInt("heading", -1));
            spawnDat.setRespawnDelay(spawnInfo.getInt("respawnDelay", 0), spawnInfo.getInt("respawnRandom", 0));
            spawnDat.setLocationId(spawnInfo.getInt("locId", 0));

L2Spawn.java
Код:
if (isTerritoryBased())
        {
            int[] p = _spawnTerritory.getRandomPoint();
            newlocx = p[0];
            newlocy = p[1];
            newlocz = p[2];
        }
        // Old method (for backward compatibility)
        else if ((getX() == 0) && (getY() == 0))
        {
            if (getLocationId() == 0)
            {
                return mob;
            }
            
            // Calculate the random position in the location area
            final Location location = TerritoryTable.getInstance().getRandomPoint(getLocationId());
            
            // Set the calculated position of the L2NpcInstance
            if (location != null)
            {
                newlocx = location.getX();
                newlocy = location.getY();
                newlocz = location.getZ();
            }
        }
        else
        {
            // The L2NpcInstance is spawned at the exact position (Lox, Locy, Locz)
            newlocx = getX();
            newlocy = getY();
            newlocz = getZ();
        }

Вот и наш территориальный спаун, в базе указываем X=0, Y=0, задаем locId и имеем Рандомный спаун внутри полигонаSmile
open-team.ru - Freya, HighFive...
Ответ
#23
DiagoD Написал:И рядом не стоял он с офомSmile

Вот и наш территориальный спаун, в базе указываем X=0, Y=0, задаем locId и имеем Рандомный спаун внутри полигонаSmile

Оу. Я даже этого не заметил у них. Думал что это как-то связано с территориальными войнами. :redlol:

Хех... Там обычный кубоид. Примитив. У оверов лучше реализовано. Если сравнивать с офф полигонами, то у оверов более правильнее чем у лыжи. Smile

Меня когда то интересовало это и я один полигон нарисовал аденой под деревней Говорящего острова. Так он был неправильной формы. Smile
Родился, живу и когда-нибудь умру.
Ответ
#24
Donatte Написал:Оу. Я даже этого не заметил у них. Думал что это как-то связано с территориальными войнами. :redlol:

Хех... Там обычный кубоид. Примитив. У оверов лучше реализовано. Если сравнивать с офф полигонами, то у оверов более правильнее чем у лыжи. Smile

Меня когда то интересовало это и я один полигон нарисовал аденой под деревней Говорящего острова. Так он был неправильной формы. Smile

Не совсем понял, что имеется виду под кубоидомSmile
То, что Z не измена или то, что по 4 координатам только?)
open-team.ru - Freya, HighFive...
Ответ
#25
DiagoD Написал:Не совсем понял, что имеется виду под кубоидомSmile
То, что Z не измена или то, что по 4 координатам только?)

Стороны полигона параллельно осям координат. Smile На ПТС все полигоны как ласкутки.

Всё не проверял, но бегло увидет одинаковые координаты в разных точка по одной оси.
Родился, живу и когда-нибудь умру.
Ответ


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


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