Как делать спаун

Deazer

Head Developer
Staff member
Как делать Спаун и Сохранение точек спауна
Специфика нашего сервера состоит в том что у нас все данные о местоположении NPC находятся в XML формате.

1. Месторасположения данных: gameserver\data\spawn
2. Вам необходимо создать файл к примеру 96_96.xml с следующим содержимым. По сути мы создали пустой файл без спауна.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE list SYSTEM "spawn.dtd">
<list>
</list>


3. Теперь переходим к генерации местоположения НПЦ (spawn).
Для Администратора доступны такие команды как:
3.1. //spawn_pos npc_id - генерирует одиночный спаун. Предназначен к спауну НЕ мобов,а телепортеров и т.д.
После чего нам в логи сервера генерируется вот такие данные
<spawn name="[custom_spawn]">
<npc id="40010" count="1" respawn="60" pos="82520 149192 -3472 57343" />
</spawn>


3.2. //spawn_loc (радиус)300 (npc_id)40010 .
Спаун локации (в основном используется что бы быстро заселить локацию) - т.е. мы строим квадрат за счет длинны ребра.
Так же в 1 квадрат мы можем добавлять множество НПЦ
Мы получаем вот такие данные
<spawn name="[custom_spawn]">
<mesh>
<vertex x="82306" y="149106" minz="-3472" maxz="-3344" />
<vertex x="82606" y="149106" minz="-3472" maxz="-3344" />
<vertex x="82606" y="149406" minz="-3472" maxz="-3344" />
<vertex x="82306" y="149406" minz="-3472" maxz="-3344" />
</mesh>
<npc id="40010" count="1" respawn="60" />
<npc id="40011" count="1" respawn="60" />
<npc id="40012" count="1" respawn="60" />
</spawn>

На выходе мы вставляем данные в наш файл 96_96.xml и в нем мы имеем по факту.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE list SYSTEM "spawn.dtd">
<list>
<spawn name="[custom_spawn]">
<npc id="40010" count="1" respawn="60" pos="82520 149192 -3472 57343" />
</spawn>
<spawn name="[custom_spawn]">
<mesh>
<vertex x="82306" y="149106" minz="-3472" maxz="-3344" />
<vertex x="82606" y="149106" minz="-3472" maxz="-3344" />
<vertex x="82606" y="149406" minz="-3472" maxz="-3344" />
<vertex x="82306" y="149406" minz="-3472" maxz="-3344" />
</mesh>
<npc id="40010" count="1" respawn="60" />
</spawn>
</list>

Теперь переходим к значению строк:
npc id="40010" - ID НПЦ которого мы хотим отспаунить
count="1" - Количество Мобов или НПЦ которых нам нужно заспаунить в данном квадрате.
Очень удобно если нам необходимо быстро заселить целую локацию. Указываем нужное нам количество НПЦ
respawn="60" - Время через которое НПЦ появиться после смерти.
name="" - Вообще все равно, можете указать любой вам удобный. Можете просто пользоваться [custom_spawn]
 
Last edited:
А можно обычным методом спавнить? У меня исчезают монстры после рестарта, которых спавнил командой //spawn id
Если первым способом, то только нпц можно, а вторым только в квадрате, а если прямоугольник надо?
 
А можно обычным методом спавнить? У меня исчезают монстры после рестарта, которых спавнил командой //spawn id
Если первым способом, то только нпц можно, а вторым только в квадрате, а если прямоугольник надо?
2 типа спауна, точечный и локационный. В первом варианте 1 точка, в другом полигональная - т.е. минимум 3 точки
 
Такой вопрос, в папке spawn есть файлы разделенные на квадраты со спавном мобов, например 2415 кетра. через шифт клик смотрю маркер мобов которых хочу убрать, нахожу в файле, удаляю например.
Code:
<spawn name="[godard12_2415_02]">
        <mesh>    <!-- [godard12_2415_02]    {{136676;-88396;-4492;-3492};{139764;-88056;-4492;-3492};{140164;-86940;-4492;-3492};{139372;-86212;-4492;-3492};{135484;-85736;-4492;-3492};{135576;-87860;-4492;-3492}} -->
            <vertex x="136676" y="-88396" minz="-4492" maxz="-3492" />
            <vertex x="139764" y="-88056" minz="-4492" maxz="-3492" />
            <vertex x="140164" y="-86940" minz="-4492" maxz="-3492" />
            <vertex x="139372" y="-86212" minz="-4492" maxz="-3492" />
            <vertex x="135484" y="-85736" minz="-4492" maxz="-3492" />
            <vertex x="135576" y="-87860" minz="-4492" maxz="-3492" />
        </mesh>
        <npc id="21324" count="8" respawn="120" respawn_rand="80" />    <!-- [ketra_orc_footman]    pos=anywhere    total=8    respawn=120sec    respawn_rand=80sec -->
        <npc id="21325" count="8" respawn="120" respawn_rand="80" />    <!-- [ketra_war_hound]    pos=anywhere    total=8    respawn=120sec    respawn_rand=80sec -->
        <npc id="21326" count="8" respawn="120" respawn_rand="80" />    <!-- [grazing_kukaburo]    pos=anywhere    total=8    respawn=120sec    respawn_rand=80sec -->
        <npc id="21343" count="2" respawn="100" respawn_rand="30" />    <!-- [ketra_orc_legatus]    pos=anywhere    total=2    respawn=100sec    respawn_rand=30sec    Privates=[ketra_elite_guard:ketra_elite_guard:1:0sec;ketra_elite_guard:ketra_elite_guard:1:0sec] -->
    </spawn>

потом делаю ребут сервера, захожу, а мобы на месте... как их убрать?
 
Такой вопрос, в папке spawn есть файлы разделенные на квадраты со спавном мобов, например 2415 кетра. через шифт клик смотрю маркер мобов которых хочу убрать, нахожу в файле, удаляю например.
Code:
<spawn name="[godard12_2415_02]">
        <mesh>    <!-- [godard12_2415_02]    {{136676;-88396;-4492;-3492};{139764;-88056;-4492;-3492};{140164;-86940;-4492;-3492};{139372;-86212;-4492;-3492};{135484;-85736;-4492;-3492};{135576;-87860;-4492;-3492}} -->
            <vertex x="136676" y="-88396" minz="-4492" maxz="-3492" />
            <vertex x="139764" y="-88056" minz="-4492" maxz="-3492" />
            <vertex x="140164" y="-86940" minz="-4492" maxz="-3492" />
            <vertex x="139372" y="-86212" minz="-4492" maxz="-3492" />
            <vertex x="135484" y="-85736" minz="-4492" maxz="-3492" />
            <vertex x="135576" y="-87860" minz="-4492" maxz="-3492" />
        </mesh>
        <npc id="21324" count="8" respawn="120" respawn_rand="80" />    <!-- [ketra_orc_footman]    pos=anywhere    total=8    respawn=120sec    respawn_rand=80sec -->
        <npc id="21325" count="8" respawn="120" respawn_rand="80" />    <!-- [ketra_war_hound]    pos=anywhere    total=8    respawn=120sec    respawn_rand=80sec -->
        <npc id="21326" count="8" respawn="120" respawn_rand="80" />    <!-- [grazing_kukaburo]    pos=anywhere    total=8    respawn=120sec    respawn_rand=80sec -->
        <npc id="21343" count="2" respawn="100" respawn_rand="30" />    <!-- [ketra_orc_legatus]    pos=anywhere    total=2    respawn=100sec    respawn_rand=30sec    Privates=[ketra_elite_guard:ketra_elite_guard:1:0sec;ketra_elite_guard:ketra_elite_guard:1:0sec] -->
    </spawn>

потом делаю ребут сервера, захожу, а мобы на месте... как их убрать?
хм, помог shutdown, рестарта ему не хватало...
 
Back
Top