Мануал npcpos.txt - формат и описание параметров

Kazna

Знающий
Местный
#1
Хотелось бы разобрать этот файлик. Если общими усилиями расчехлим, попросим кика подредачить и перекинуть в мануалы :-).
Для начала возьмём это -
territory_begin [giran03_2221_p47]
87184;106572;-3320;-2820};{
89336;104996;-3320;-2820};{
90676;106520;-3320;-2820};{
90500;108316;-3320;-2820};{
90132;108840;-3320;-2820};{
87716;108484;-3320;-2820}} territory_end
npcmaker_ex_begin [giran03_2221_p47] name=[giran03_2221_p47m1] ai=[default_maker] maximum_npc=44
npc_ex_begin [gem_dragon] pos={88932;107336;-3104;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos={89764;105740;-3216;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos={88784;105920;-3136;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos={88016;106512;-3160;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos={89832;107584;-3068;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos={88144;108304;-3056;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos={89008;108336;-3024;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos={90208;108160;-3036;0} total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos=anywhere total=1 respawn=120sec respawn_rand=20sec Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] is_chase_pc=2500 npc_ex_end
npc_ex_begin [gem_dragon] pos=anywhere total=2 respawn=120sec respawn_rand=20sec is_chase_pc=2500 npc_ex_end
npc_ex_begin [dust_dragon_searcher] pos=anywhere total=1 respawn=120sec respawn_rand=20sec ai_parameters={[SuperPointName]=[2221_47]} npc_ex_end
npcmaker_ex_end
territory_begin [giran03_2221_p47]
territory_end - тут вроде как без сложностей, указан полигон и квадрат карты, в котором он создаётся.

npc_ex_begin - собственно NPC, который будет спавниться в заданном полигоне. В данном случае - [gem_dragon] pos={88932;107336;-3104;0} - указаны точные координаты, либо pos=anywhere - спавнится в любой точке, заданного полигона.

maximum_npc=44 - хотелось бы узнать, что это и для чего.

total=1 - кол-во NPC

respawn=120sec respawn_rand=20sec - время респавна.

Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec] - Миньоны NPC, но проблема (лично у меня) как знать есть ли они у него и сколько. Именно у NPC в примере их вроде как бы и нет, а если верить этим записям, то вроде как и есть :-). И что обозначает эти записи (ясно что это миньоны, но хочется поконкретнее)- gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec.

is_chase_pc=2500 хотелось бы узнать, что это и для чего.

ai_parameters={[SuperPointName]=[2221_47]} - координаты какого суперпоинта будет подхватывать NPC.
Пока вроде как всё, но думаю будут ещё вопросы. Ну и сильно там не увлекайтесь закидыванием :poop: :-D.
 

Zubastic

Знающий
Проверенный
#2
is_chase_pc=2500 хотелось бы узнать, что это и для чего.
Макс радиус, после которого NPC идет к себе в территорию.
Privates=[nurse_ant:nurse_ant:2:10sec;nurse_ant:nurse_ant:2:10sec;nurse_ant:nurse_ant:2:10sec;royal_guard_ant:royal_guard_ant:2:6min;royal_guard_ant:royal_guard_ant:2:6min;royal_guard_ant:royal_guard_ant:2:6min;royal_guard_ant:royal_guard_ant:2:6min]
npcid,ai,count,respawn time, через ; указываются типы.
 

Diagod

Пляшущий с бубном
Местный
#4
Privates=[gem_dragon:gem_dragon:1:0sec;gem_dragon:gem_dragon:1:0sec]
Это не просто миньены, нужно смотреть АИ конкретных НПС и как эти миньены там используются...Они могут спаунится вместе с хозяином, а могут и раз в N времени или по какому-то событию, к примеру атаке "сопартийца мобов" и т.д.
 

malike

Участник
Пользователь
#5
Скажите что означает тут [gem_dragon] pos={88932;107336;-3104;0} последний 0???? Побегал по файлу npcpos везде разные значения стоят.
 

*Immortal Pony*

Бывалый
Проверенный
#6
Направление куда смотрит НПЦ
 

malike

Участник
Пользователь
#7
Направление куда смотрит НПЦ
Код:
territory_begin    [Giran_NPC]    {{83533;147809;-3400;-708};{81599;147809;-3464;-708};{81599;149422;-2708;-708};{83611;149422;-3464;-708}}    territory_end       
npcmaker_begin    [Giran_NPC]    initial_spawn=all    maximum_npc=2         
npc_begin    [test_server_helper]    pos = {83470;147897;-3400;0}    total = 1    respawn = 1min    npc_end
npc_begin    [test_server_helper]    pos = {81924;148304;-3464;0}    total = 1    respawn = 1min    npc_end
npcmaker_end
Еще вопрос что такое 4й координат (-708) в квадрате территории? {{83533;147809;-3400;-708} и почему -708 везде одинаков.
Также вопрос чтобы не морочится и не рисовать квадраты под каждого NPC в каждом городе, я могу сделать один большой квадрат на всю карту? и поставить в нем нужных NPC, чем это черевато?

Кстати и как определить направление в какую сторону смотрит NPC? мин и макс значения что брать за 0? север юг и тд? 360 в теории, но числа в npcpos встречаются 16к+ не пойму объясните плиз

Кстати и как определить направление в какую сторону смотрит NPC? мин и макс значения что брать за 0? север юг и тд? 360 в теории, но числа в npcpos встречаются 16к+ не пойму объясните плиз
Отвечу сам себе, если взять часы то 12 дня это 0(Восток), 3 часа это 16000 6 часов 32000 9 часов 48000 соотвествено) может кому поможет, вопрос с -708 еще остался

Опять сам себе, вот отличная программа, в которой можно вкурить что к чему :-) NpcPosMaker
 
Последнее редактирование модератором:

*Immortal Pony*

Бывалый
Проверенный
#8
Только хотел ответить: это же изи (как я люблю это писать, но не всегда у самого это *изи* проходит)))

Находим что за нпц и понимаем почему у этого нпц такие координаты...
п.с. как написал один чел (точно не помню кто из форумчан): Корейцы не епались в момент создания территорий и все остального, пилил десятки сотен кода под один шаблон (при надежде что когда то это поправят, но видать все же не стали делать таких эпик действий), так что можно встретить еще много чего *под копирку*, и опять же начать задавать вопросы: *А почему так??*...

ПТС девелоперы запилите уже достойное описание (хоть чего то) из ПТС, хотя опять увижу эпик ответ от зуба или еще кого то....
 
Последнее редактирование модератором:

KanuToIIIKa

Пляшущий с бубном
Местный
#9
Код:
territory_begin    [Giran_NPC]    {{83533;147809;-3400;-708};{81599;147809;-3464;-708};{81599;149422;-2708;-708};{83611;149422;-3464;-708}}    territory_end      
npcmaker_begin    [Giran_NPC]    initial_spawn=all    maximum_npc=2        
npc_begin    [test_server_helper]    pos = {83470;147897;-3400;0}    total = 1    respawn = 1min    npc_end
npc_begin    [test_server_helper]    pos = {81924;148304;-3464;0}    total = 1    respawn = 1min    npc_end
npcmaker_end
Еще вопрос что такое 4й координат (-708) в квадрате территории? {{83533;147809;-3400;-708} и почему -708 везде одинаков.
Также вопрос чтобы не морочится и не рисовать квадраты под каждого NPC в каждом городе, я могу сделать один большой квадрат на всю карту? и поставить в нем нужных NPC, чем это черевато?
x y zmin zmax
 

kick

Магистр Йода
Administrator
#10
Только хотел ответить: это же изи (как я люблю это писать, но не всегда у самого это *изи* проходит)))

Находим что за нпц и понимаем почему у этого нпц такие координаты...
п.с. как написал один чел (точно не помню кто из форумчан): Корейцы не епались в момент создания территорий и все остального, пилил десятки сотен кода под один шаблон (при надежде что когда то это поправят, но видать все же не стали делать таких эпик действий), так что можно встретить еще много чего *под копирку*, и опять же начать задавать вопросы: *А почему так??*...

ПТС девелоперы запилите уже достойное описание (хоть чего то) из ПТС, хотя опять увижу эпик ответ от зуба или еще кого то....
И так описано многое
 

*Immortal Pony*

Бывалый
Проверенный
#11
Оффтоп:
Печалит что все долбят только Хф и ниже, подпольщики только ГОД+++ срипты мучает, вот по тому и половина народа *ахуе*** когда берет в руки подобное и начинает *что то там понимать*
 

Bagoc

Пляшущий с бубном
Пользователь
#12
раз пнули с темы спрошу здесь - если у меня стоит respawn=168hour respawn_rand=48hour, то респ будет через 168 +-48 часов т.е. 120-216 часов?
 

*Immortal Pony*

Бывалый
Проверенный
#13
Посмотрите формулу вычисления respawn(в ПТС или яве - что у вас) и прикиньте
respawn=168hour respawn_rand=48hour - а это уже описано, рандомно и тут вы не угадаете 120\128\130 вовсе (да и все зависит от того как у вас это реализовано)
 

Zubastic

Знающий
Проверенный
#14
Посмотрите формулу вычисления respawn(в ПТС или яве - что у вас) и прикиньте
respawn=168hour respawn_rand=48hour - а это уже описано, рандомно и тут вы не угадаете 120\128\130 вовсе (да и все зависит от того как у вас это реализовано)
Раздел птс сервера, что тут "угадывать"?
Крч формула такая:
168-48 = 120. Макс респ 9 часов (меньше 9 можно, больше - нет), т.е. 120-129 получается респаун.
 

gattsu

Свой человек
Open Source
Contributor
#15
...

рандом - диапазон случайного распределение. Как он реализован, надо проверять экспериментальным путем
Есть по сути два варианта:
Первый
respawn_time = respawn + random(0, respawn_rand)
тут просто +
respawn_time = respawn + random(-respawn_rand, respawn_rand)
тут +-
random(min, max)

Первое можно сделать так чтобы respawn_rand был больше чем respawn, вылетит ли ошибка при загрузке...
Второе сдлелать спавн, где respawn=20sec respawn_rand=20sec, убивать мобов считать время, появится ли моб раньше чем за 20 секунд, тогда второй вариант.

Я склоняюсь больше к первому варианту. Нет смысла делать +-, скоре respawn минимальное, допустимое, время перед респавном, а там + [0, respawn_rand]
 

Bagoc

Пляшущий с бубном
Пользователь
#16
Раздел птс сервера, что тут "угадывать"?
Крч формула такая:
168-48 = 120. Макс респ 9 часов (меньше 9 можно, больше - нет), т.е. 120-129 получается респаун.
спасибо. а подскажите тогда еще пожалуйста где найти этот "Максимальный респ"?
 

Zubastic

Знающий
Проверенный
#17
...

рандом - диапазон случайного распределение. Как он реализован, надо проверять экспериментальным путем
Есть по сути два варианта:
Первый
respawn_time = respawn + random(0, respawn_rand)
тут просто +
respawn_time = respawn + random(-respawn_rand, respawn_rand)
тут +-
random(min, max)

Первое можно сделать так чтобы respawn_rand был больше чем respawn, вылетит ли ошибка при загрузке...
Второе сдлелать спавн, где respawn=20sec respawn_rand=20sec, убивать мобов считать время, появится ли моб раньше чем за 20 секунд, тогда второй вариант.

Я склоняюсь больше к первому варианту. Нет смысла делать +-, скоре respawn минимальное, допустимое, время перед респавном, а там + [0, respawn_rand]
Нет гайка, не так. Можешь сам убедиться :-)
Формула именно такая, какую я описал. Кстати она зависит от типа мейкера и для некоторых респ отличается.
 

kick

Магистр Йода
Administrator
#18
Нет гайка, не так. Можешь сам убедиться :-)
Формула именно такая, какую я описал. Кстати она зависит от типа мейкера и для некоторых респ отличается.
Только это не гайка
 

Xeonc

Интересующийся
VIP
#20
спасибо. а подскажите тогда еще пожалуйста где найти этот "Максимальный респ"?
Нигде, сугубо технически - это баг сервера. После 9 часов и 6 минут идет "переполнение". Фиксить мы это не стали, т.к. за много лет все давно уже привыкли к тем респам, которые есть сейчас, а что задумывали корейцы в действительности - известно только им
 
Сверху Снизу