Перейти к контенту

Рекомендуемые сообщения

Добрый вечер!

У меня проблема с моими неписями, Спавн НПС проимходит через smart_terrain, они не работают по логике что я им пишу, а тупо сидят на карточках периодически вставая (при этом странно подергиваясь) и потом снова садятся.

Когда спавнил через all.spawn все работало.

[smart_terrains]

none = true

 

[logic]

active = remark1

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[remark1]

no_move = true

 

 

Может в конфигах у меня ошибка, посмотрите пожалуйста.

Вот конфиг одного из нпс:

[escape_187]

; cse_abstract properties

section_name = smart_terrain

name = esc_blokpost_soldier1_smart

position = -131.503113,-30.139643,-382.223450

direction = -0.991485774517059,0,-0.130215004086494

 

; cse_alife_object properties

game_vertex_id = 951

distance = 9.80000019073486

level_vertex_id = 123660

object_flags = 0xffffff3e

custom_data = <<END

[smart_terrain]

cfg = scripts\escape\smart\esc_blokpost_soldier1.ltx -----Здесь же файл с логикой непися нужно прописать?

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 5

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

 

[esc_blokpost_soldier1]:stalker

$spawn = "respawn\esc_blokpost_soldier1"

character_profile = esc_blokpost_soldier1

spec_rank = regular

community = army

story_id = esc_blokpost_soldier1

custom_data = scripts\escape\smart\esc_blokpost_soldier1.ltx -----Позже, мне подсказали и вписал сюда. Все ровно не работает

 

 

[esc_blokpost_soldier1_squad]:online_offline_group

faction = stalker

npc = esc_blokpost_soldier1

target_smart = esc_blokpost_soldier1_smart

story_id = esc_blokpost_soldier1_squad

 

 

 

И еще вот вопрос, для ЗП будет работать такое? С этим я пока еще не очень дружу, но попробывал написать, получилось вот это :blush: (Проверить просто не получается, т.к. неписи не слушается, сидят только на корточках .):

 

Пример:

[esc_blokpost_sniper1]
points = p0,p1
p0:name = wp00 
p0:flags = 0x1      
p0:position = -169.194595,-25.436274,-353.493927
p0:game_vertex_id = 1021
p0:level_vertex_id = 79995
p0:links = p1(1) 

p1:name = wp01 
p1:flags = 0x2            
p1:position = -166.526138,-25.435808,-355.219055
p1:game_vertex_id = 1021
p1:level_vertex_id = 83334
p1:links = p0(1)

 

Логика НПС:

[logic] 
active = walker 

[walker] 
path_walk = esc_blokpost_sniper1

 

 

Не соответствует правилам.

Ссылка на комментарий

NaslednikTutti

Так ты все таки для ЗП или ТЧ делаешь???

 

Если непись под гулагом, это одно, если он со своей логикой, то необходимо в файле с логикой дописать:

[smart_terrains]
none = true; что бы не брался смартом
[logic] 
active = walker 

[walker] 
path_walk = esc_blokpost_sniper1; путь НПС

Относительно путей в all.spawn, это зачем у тебя? На что они стоят???

p0:flags = 0x1

p1:flags = 0x2

Ты полем look пользуешься, исходя из представленной логики нет, тогда к чему флаги, на что они указывают?

 

 

А вообще поскольку НПС через all.spawn рожден, то и логику можно там же и прописать, прямо в секции НПС тобою созданного!

Изменено пользователем losiara

Жизнь следует измерять поступками, а не временем...

Ссылка на комментарий

Просто на заметку, заметил в ЧН (а может он и не только там) не очень приятный баг с инвенторём монстров. Если заспавнить напрямую что то в инвентаре монстра через alife() (в моём случае это происходит в момент смерти монстра), то после Save\Load эти вещи пропадают. С НПС такого не замечено.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий
*Shoker* А может просто эту вещь в исключения в death_generic добавить надо?А что ты спавнил?
Ссылка на комментарий

death_generic не используется для монстров. Пропадает любая вещь, пришлось сперва спавнить её на земле а потом в инвентарь переносить, тогда уже нормально.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

С какой частотой вызывается update для серверных классов(se_)?

И как узнать под какой схемой находится в данный момент НПС?

Изменено пользователем Real Wolf
Ссылка на комментарий

Доброго времени суток!

Работаю на Зов Припяти 1.6.02.

Хочу сделать снайпера часового (я в этом полным нуб), вот, начеркал для него базовую схему walker.

* phase time: 16935 ms

* phase cmem: 350251 K

* phase time: 27 ms

* phase cmem: 350251 K

* [win32]: free[1918640 K], reserved[188516 K], committed[2087084 K]

* [ D3D ]: textures[1149492 K]

* [x-ray]: crt heap[350251 K], process heap[13906 K], game lua[36780 K], render[114 K]

* [x-ray]: economy: strings[25402 K], smem[10192 K]

compiling shader model_env_lq

compiling shader model_env_lq_2

compiling shader model_distort4glass_2

compiling shader model_def_lplanes_0

compiling shader model_def_lplanes_1

compiling shader deffer_model_bump_d-hq_1

! Unknown command: dump_infos

! Cannot find saved game ~abort-raw:there is no patrol path %s

* Log file has been saved successfully!

! Cannot find saved game ~abort:there is no patrol path esc_blokpost_sniper1_smart_escape_blokpost_chasovoy_walk

* Log file has been saved successfully!

stack trace:

 

0023:0844E8B3 xrGame.dll, CDialogHolder::CDialogHolder()

0023:0844FB45 xrGame.dll, CDialogHolder::CDialogHolder()

0023:055F2EA3 lua.JIT.1.1.4.dll, luaopen_io()

 

[error][ 183] : Невозможно создать файл, так как он уже существует.

 

 

 

Вот конфиги схемы.

[escape_blokpost_chasovoy_look]
points = p0,p1
p0:name = name00|a=guard_chasovoy
p0:flags = 0x2
p0:position = -158.486877,-30.824171,-286.253876
p0:game_vertex_id = 1091
p0:level_vertex_id = 92831

p1:name = name01|a=guard_chasovoy
p1:flags = 0x1
p1:position = -149.406265,-29.899168,-363.256896
p1:game_vertex_id = 1026
p1:level_vertex_id = 103521


[escape_blokpost_chasovoy_walk]
points = p0,p1
p0:name = name00
p0:flags = 0x1
p0:position = -168.318710,-25.436260,-353.395844
p0:game_vertex_id = 1021
p0:level_vertex_id = 80829
p0:links = p1(1)

p1:name = name01
p1:flags = 0x2
p1:position = -166.309357,-25.436119,-354.571533
p1:game_vertex_id = 1021
p1:level_vertex_id = 83334
p1:links = p0(1)

 

 

 

[smart_terrains]
none = true

[logic@esc_blokpost_sniper1]
active = walker1
danger = danger_ignore 

[danger_ignore] 
ignore_distance = 5 

[walker1] 
path_walk = escape_blokpost_chasovoy_walk
path_look = escape_blokpost_chasovoy_look
team = escape_blocpost

 

 

 

Посмотрите пожалуйста, что тут не так? Что нужно добавить, изменить. Два дня мучаюсь с этим :(

 

 

[esc_blokpost_sniper1]:stalker

$spawn = "respawn\esc_blokpost_sniper1"

character_profile = esc_blokpost_sniper1

spec_rank = regular

community = army

story_id = esc_blokpost_sniper1

 

 

<specific_character id="esc_blokpost_sniper1" team_default = "1">

<name>Солдат</name>

<icon>ui_inGame2_Soldier_2</icon>

<map_icon x="1" y="0"></map_icon>

<bio>Рядовой. Детальная информация отсутствует.</bio>

 

<class>Sniper</class>

<community>army</community>

<terrain_sect>stalker_terrain</terrain_sect>

<snd_config>characters_voice\human_01\military\</snd_config>

 

<rank>40</rank>

<reputation>0</reputation>

 

<visual>actors\stalker_soldier\stalker_soldier_2</visual>

<supplies>

 

[spawn] \n

wpn_svd \n

ammo_7.62x54_7h1 = 2 \n

wpn_pm \n

ammo_9x18_fmj = 1 \n

grenade_rgd5 = 2 \n

 

#include "gameplay\character_items_2.xml"

#include "gameplay\character_food.xml"

#include "gameplay\character_drugs_2.xml"

</supplies>

#include "gameplay\character_criticals_4.xml"

#include "gameplay\character_dialogs.xml"

</specific_character>

 

 

<character id="esc_blokpost_sniper1">

<class>Sniper</class>

</character>

 

 

[start_position_escape]

esc_blokpost_sniper1_squad = esc_blokpost_sniper1_smart

 

 

[esc_blokpost_sniper1_squad]:default_squad

sim_avail = false

 

 

[esc_blokpost_sniper1_squad]:online_offline_group

faction = stalker

npc = esc_blokpost_sniper1

target_smart = esc_blokpost_sniper1_smart

story_id = esc_blokpost_sniper1_squad

 

 

[smart_terrain];esc_blokpost_sniper1

squad_id = 1

max_population = 1

 

[exclusive]

esc_blokpost_sniper1 = escape\esc_blokpost_sniper1_logic.ltx

 

 

 

 

Не соответствует правилам.

Ссылка на комментарий

Тебе же написано:

! Cannot find saved game ~abort:there is no patrol path esc_blokpost_sniper1_smart_escape_blokpost_chasovoy_walk

Признайся, сувал под гулаг непися? Если да то пути должны называться так: имя_смарта_имя_пути

Изменено пользователем ColR_iT

Freedom

Ссылка на комментарий

Чаще всего - прилетел game_object туда, где ждали что-нибудь другое. Как правило - строку или number.

 

Ссылка на комментарий

> ! Unknown command:

Обозначает что введенеа неверная консольная команда (у тебя ж в лог выводится, вот игра и воспринимает каждый текст как команду коносли, ничего страшного)

 

> nil говорит о том, что сообщение, которое ты выводил в консоль = nil, тоесть его попросту нету.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Нет в консоль ничего не вводилось

 

Добавлено через 1 мин.:

Из-за этого могут биться сейвы?

Создаю глобальный мод с новыми локациямЭ

Ссылка на комментарий

Real Wolf

как узнать под какой схемой находится в данный момент НПС?

Попробуй

db.storage[npc:id()].active_scheme

Изменено пользователем Andrey07071977
Ссылка на комментарий

strelok200,

1. если ты пользуешься логовыми функциями, то первое, что они делают - это выводят твой текст-лог в консоль, а двиг читает любую введенную консольную строку как команду... Посему и пишет Unknown command, а nil - это ты видимо пытаешься выдать в консоль команду nil

2. на платформах ЗП/ЧН: в отличии от ТЧ, на этих двух платформах(как я заметил) если просто выводить текст-лог в консоль, то в консоли тоже пишется Unknown command: твоя строка, но такое возможно от силы 2 раза, в последствии чего происходит фатальная ошибка, после чего лог не выводиться в консоль вообще, да и сама игра/скрипты начинают дико тупить, потому обычно перед своей строкой для вывода в лог приписывают такое: "load ~~~ " -- Заметка на будущее если что)

Изменено пользователем Viнt@rь
Ссылка на комментарий

Скажите прописать story_id предметам это реально?

(для квеста нужно чтоб, предмет был отмечен в ПДА)

 

Интересно, что ты ожидаешь увидеть в ответ? Например, Andrey07071977 тебе ответил более чем исчерпывающе, исходя из твоего вопроса.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Реально

 

В следующий раз, попрошу воздержаться от сарказма. Да, я согласен - каков вопрос - таков ответ, но не нужно провоцировать кого-либо на разговор каким-либо образом отличающиеся от смысла темы данного топика.

Спасибо за понимание.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Я и рассчитывал на такой ответ просто хотел узнать возможно или нет, а на счет темы вроде попал, вопрос та мой вроде относится к скриптам. Если не прав прошу прощения.

 

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

P.S. Про разговор "не в ту тему", я обращался к Andrey07071977, потому как его ответ мог вызвать не нужный флуд.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Wik

Ты не обозначил какой объект (сталкер, НПС, рестриктор, ящик и т. д.)

Вот пример из оригинала в all.spawn

[649]

; cse_abstract properties

section_name = inventory_box ; название секции

name = level_prefix_inventory_box_0018 ; твое произвольное название

position = -140.973648071289,-29.689302444458,-354.325927734375 ; координаты

direction = 0,1.60919880867004,0 ; как будет повернут

 

; cse_alife_object properties

game_vertex_id = 0

distance = 0

level_vertex_id = 594270

object_flags = 0xffffff3f ; флаг объекта

custom_data = <<END ; кастом дата

[logic]

cfg = scripts\treasure_inventory_box.ltx ; ссылка на файл с логикой если таковой имеется

END

story_id = 5014 ; то что тебе нужно числовой идентификатор

 

; cse_visual properties

visual_name = physics\equipment_cache\equipment_box_02_case ; визуал

 

После этого регестрируешь в файле gamedata\config\game_story_ids

по типу: 5014 = "esc_secret_0014"

 

 

Извините если это уже флуд, не успел за модератором... :)

Изменено пользователем losiara

Жизнь следует измерять поступками, а не временем...

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

AMK-Team.ru

×
×
  • Создать...