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

[CoP] Ковыряемся в файлах


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

iDreD, имелось ввиду - где-нибудь можно отрегулировать, чтобы, например, НПС одевали фонари раньше/все время их носили и включали позже? Название файла логики в общем интересует...

Antnigm, можно. Если я не ошибаюсь, то в файле sr_light.script найди вот эти строки:

if not forced then

--' Проверка по времени суток (ночью всегда включено)

local htime = level.get_time_hours()

if htime <= 4 or htime >= 22 then

light = true

end

 

Думаю, далее ты и сам разберешься, что править.

Изменено пользователем PavelSnork
Жду ли я Сталкер 2? Хм...
Ссылка на комментарий
PavelSnork, это как раз и есть файл с настройками логики для того самого рестриктора. К НПС находящимся в симуляции это не имеет никакого отношения.
Ссылка на комментарий

iDreD, это как? Да, в том скрипте есть одна маленькая проверка на зоны выключения фонарика, но я писал о проверке на время суток, что и просил подсказать Antnigm. Я только что сам все протестировал (поменял время включения фонарика):

477202.jpg

 

Жду ли я Сталкер 2? Хм...
Ссылка на комментарий
PavelSnork, странное дело. Просто [sr_light] это секция настроек для рестриктора, юзающаяся в его же логике. Не знал, что этот скрипт применим к сталкерам.
Ссылка на комментарий

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

Например, есть два смарт терейна pred1 и pred2. Что надо писать им в логику? Нужно ли создавать пути для передвижения монстров?

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

karavan, если ты имеешь ввиду передвижение сквадов монстров, то в описании сквада нужно делать так:

target_smart = pred1:pred2

Если хочешь чтобы они зацикленно ходили между смартами то так:

target_smart = pred1:pred2:loop

Можно добавлять условия стандартые из xr_condition:

target_smart = {+info} pred1, {=is_rain} pred2, pred3

- т.е. при наличии инфопоршня идут в первый смарт, если нет, но идет дождь то во второй, если не то не то, то в третий...ну и так далее.

Еще можно такую интересную схему:

target_smart = pred1:nil

- сквад идет в смарт pred1 а потом становится свободным, т.е. уходит в симуляцию.

 

 

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

Clayman

 

А если скажем три смарта, то по такой схеме target_smart = pred1:pred2:pred3:loop они будут передвигатся из pred1 в pred2 и потом в pred3 и наконец вернутся в pred1? Или же передвижение будет случайным выбором?

 

 

Ссылка на комментарий
karavan, да, именно так и будут передвигаться, по порядку. Если нужно случайность, то бишь симуляция, то вообще target_smart не указывай, но у смарт-террейнов должен стоять параметр sim_avail = true, чтобы он мог "принимать" сквады.
Ссылка на комментарий

Кто может подсказать как создать скользящую дверь как на Свалке?

Дело в том, что заселяю Предбанник от АМК, там есть две скользяшие двери и при прописывании им логики для дверей, причём любой, получаю вылет:

[error]Expression : assertion failed

[error]Function : doors::door::door

[error]File : D:\prog_repository\sources\trunk\xrGame\doors_door.cpp

[error]Line : 36

[error]Description : m_object.get_door_vectors( m_closed_vector, m_open_vector )

 

 

 

 

Логика вот:

 

[logic]

active = ph_door@close

 

[ph_door@close]

locked = false

closed = true

snd_open_start = trader_door_open_start

snd_close_start = trader_door_close_start

snd_close_stop = trader_door_close_stop

on_use = ph_door@open

 

[ph_door@open]

locked = false

closed = false

snd_open_start = trader_door_open_start

snd_close_start = trader_door_close_start

snd_close_stop = trader_door_close_stop

on_use = ph_door@close

 

 

 

Может быть у кого есть рабочая логика? Или способ создания полноценных дверей?

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

Кубанец, это тема "Ковыряемся в файлах ЗП".

 

Вот такое заметил: допустим пошел дождь на уровне, все нормально, шум дождя...перехожу в это время на другую локу - дождь продолжает идти, но звук дождя пропадает. Или та-же ситуация с сохранением: дождь идет, F5-F9, дождь идет, но звука нету... Это баги оригинальной игры или что-то еще?

Сразу говорю, погодные конфиги не трогал, погада везде на локах dynamic_default...

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

Clayman Спасибо за совет по поводу передвижения НПС между смартами, все работает.

------------------------------------

Вот возник вопрос. Что нужно прописывать в логику смарта и возможно в логику эксклюзива для того что бы сталкер патрулировал по путям?

Пытался писать эксклюзив с путями для НПС, но что-то ничего не происходило. Этого самого эксклюзива даже не появлялось.

И еще нжно ли в путях писать например, wp00|a=sprint, что бы бежал и т.п.?

 

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

karavan, наздоровье:)

А насчет работ и путей столько уже всего писалось и на сталкер-вики куча статей по логике и путям-работам, и описанием как и что в вей-поинтах писать, что честное слово, лень повторять.

Насчет эксклюзивов, ту надо понимать, что когда ты пишешь в конфиге смарт-террейна:

[exclusive]

что_то_там = папка_уровня\файл.ltx,

то ты даешь ссылку на логику эксклюзивной работы для этого смарта.

 

Далее в файл.ltx ты пишешь секцию логики этой работы:

[logic@что_то_там]

а в этой секции нужно взять под эту логику нужного нпс:

suitable = {=check_npc_name(твой_нпс)}

или:

suitable = {=target_squad_name(нужный_сквад)}

 

Естественно, нужный нпс - сквад должен присутствовать в смарте. Если нужно конкретного непися, то конечно нужно создавать его профиль и все такое, а если напишешь к примеру такое:

suitable = {=is_monster_dog} true,

то под эту логику возьмется первая попавшая собачка в смарте.

 

Т.е. как я понимаю все это, дается ссылка на эксклюзивную работу (с логикой) для смарта, а в логике ты определяешь, кого под эту работу взять.

 

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

И еще, выжный момент, о который спотыкаются многие начинающие (и я не исключение) и о котором я нигде не видел упоминания в туторах:

Когда создаешь вей-поинты для своего эксклюзива, называешь их с именем смарта вначале, например:

zat_a1_supersniper_walk

zat_a1_supersniper_look,

то потом в логике обязательно опускаешь имя смарт-террейна:

[camper@zat_a1_supersniper]

path_walk = supersniper_walk

path_look = supersniper_look

 

И вообще советую внимательно изучать пысовские файлы настроек и логики, находишь много нового :)

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

Товарищи нужна помощь.

Добавил новую групировку "csky". При попытке поговорить с НПС этой группировки получаю вылет:

[error]Expression : !phrase_dialog->m_PhraseVector.empty()

[error]Function : CPhraseDialog::SayPhrase

[error]File : D:\prog_repository\sources\trunk\xrGame\PhraseDialog.cpp

[error]Line : 146

[error]Description : No available phrase to say, dialog[hello_dialog]

 

 

Регистрировал группировку в файлах game_relations.ltx, death_manager.script, death_items_by_communities.ltx

Подумал что не зарегестрировал где-то начал смотреть в dialog_manager.script дописал в функцию

function uni_dialog_precond(first_speaker, second_speaker)

local npc = dialogs.who_is_npc(first_speaker, second_speaker)

return character_community(npc) == "stalker" or

character_community(npc) == "bandit" or

character_community(npc) == "freedom" or

character_community(npc) == "dolg" or

 

character_community(npc) == "csky"

end

 

 

 

 

Вылет при попытке поговорить всеравно происходит. :(

 

-------------------------------------------

 

И еще подскажите пожалуйста функцию для проверки через диалог "Если НПС ранен..."? Не могу найти в ЗП подходящий пример.

Ссылка на комментарий
karavan, возможно это не в группировке дело, а в самом неписе: в его секции должен быть прописан #include "gameplay\character_dialogs.xml" или <start_dialog>hello_dialog</start_dialog>
EuShikari.png
Ссылка на комментарий

Po-meceniy Да всё это есть. Я вот и не могу понять в чем проблема, если новый НПС со старой группировкой то все в порядке, если новая группировка то вылет.

 

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

Товарищи, подскажите пожалуйста, нужна функция для диалога (прекондишн) с провркой если НПС, с которым разговариваеш раненый?

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

Ох и много же вопросов накопилось! :)

1) Можно ли сделать постоянно респаунищиеся мины? Чтобы после взрыва, спустя несколько секунд, мина появлялась на том же месте?

2) Захотел сделать аномалию (эта :russian_ru:, которая летает, fireball_acidic), но не понял, как задать ей логику... И причём в этой аномалии *anm?

3) Начал ковырять смарты, накопилась пара вопросов:

[smart_terrain]
squad_id = 34                                             -- ???
max_population = 3                    --понятно
respawn_only_smart = true                --понятно
respawn_params = respawn@pri_sim_12            --понятно
arrive_dist = 100                    --понятно
def_restr = pri_a16_sr_noweap                --понятно
safe_restr = pri_surge_hide_a16; pri_a16_sr_light    --???
smart_control = smart_control                --понятно
spawn_point = zat_sim_16_spawn_point             --???
respawn_radius = 150                    --понятно
respawn_sector = default                --????
до 1. Рабочих примеров нет. Работоспособность сомнительна
mutant_lair =                        --не работает.
no_mutant =                        --не работает.
forbidden_point =                    --не работает.

[respawn@pri_sim_12]                    --понятно
sim_tushkano

[sim_tushkano]
spawn_squads = simulation_tushkano            --понятно
spawn_num = {+pri_a18_use_idol_done}2, 0        --понятно

[smart_control]
noweap_zone = pri_a16_sr_noweap                --понятно
ignore_zone = pri_surge_hide_a16; pri_a16_sr_light    --????
combat_ignore_keep_when_attacked = true
alarm_start_sound = {-pri_b305_fifth_cam_end} pri_a16_base_alarm, nil    --понятно
alarm_stop_sound = {-pri_b305_fifth_cam_end} pri_a16_base_relax, nil    --понятно

[exclusive]
pri_b35_envoy_after = pripyat\pri_b35_envoy_logic.ltx            --понятно

 

 

Причём удалив некоторые вещи, игра вылетела с error is handler evonkled! Что вообще можно трогать и с чем связан вылет?

 

4)Заспаунил НПС через скрипт, получил вылет.

Вот так прописал:

чертердескл11припять
<?xml version='1.0' encoding="windows-1251"?>

<xml>

<specific_character id="l11_pripyat_trader" team_default = "1"> 
<name>Олег "Демон" Гусаров</name> 
<icon>ui_inGame2_neutral_2_mask</icon> 
<map_icon x="1" y="0"></map_icon> 
<bio>Опытный сталкер. Детальная информация отсутствует.</bio> 

<class>my_stalker</class> 
<community>stalker</community> 
<terrain_sect>stalker_terrain</terrain_sect> 
<snd_config>characters_voice\human_03\stalker\</snd_config> 

<rank>65</rank> 
<reputation>0</reputation> 

<visual>actors\stalker_neutral\stalker_neutral_2_mask</visual> 
<supplies> 
[spawn]
wpn_beretta = 1 \n 
ammo_9x19_fmj = 1 \n 
grenade_rgd5 = 1 \n 
#include "gameplay\character_items.xml" 
#include "gameplay\character_food.xml" 
#include "gameplay\character_drugs.xml" 
</supplies> 

#include "gameplay\character_criticals_4.xml" 
<actor_dialog>actor_break_dialog</actor_dialog> 
</specific_character> 



</xml>



нпцпрофиль
<character id="l11_pripyat_trader"> 
<class>l11_pripyat_trader</class> 
</character>




спаунсекшонсл11припять
[l11_pripyat_trader]:stalker 
$spawn = "respawn\l11_pripyat_trader" 
character_profile = l11_pripyat_trader 
spec_rank = master 
community = stalker 
custom_data = scripts\l11_pripyat\Oleg_Gusarov_logic.ltx 



логика
[logic] 
active = remark1 
danger = danger_ignore 

[danger_ignore] 
ignore_distance = 5 

[remark1] 
no_move = true 



л11_олег_гусаров (ИНГЛИШ)
function start_add_spawn()--\\ 
--\\ 
-- 
spawn_l11_oleg_gusarov() 
end 

function spawn_l11_oleg_gusarov_one() 
local x= -109.224472
local y= -2.230958 
local z= 6.826965
local level_vertex= 11884 
local game_vertex_id= 1323
alife():create("l11_pripyat_trader",vector():set(x,y,z),level_vertex,game_vertex_id) 
end 

function save_variable(variable_name, value) 
xr_logic.pstor_store(db.actor, variable_name, value) 
end 
function load_variable(variable_name, value_if_not_found) 
return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) 
end 




бинд_сталкирь
function actor_binder:update(delta)
    object_binder.update(self, delta)

    if string.find(command_line(), "-designer") then
        return
    end

    if self.already_jumped==false and jump_level.need_jump==true and (device().frame > self.spawn_frame+2000) then
        jump_level.try_to_jump()
        self.already_jumped = true
        return
    end
if l11_oleg_gusarov.load_variable("spawn_l11_oleg_gusarov",false)==false then 
l11_oleg_gusarov.start_add_spawn() 
l11_oleg_gusarov.save_variable("spawn_l11_oleg_gusarov",true) 
end

 

 

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

SibireaStalker, летающие аномалии летают по путям, а не с помощью логики, причем имеют особый класс - zone_torrid. Для того там в конфиге и anm.

А по смарт-террейнам есть же статья на вики.

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

Есть ряд вопросов:

1) Каким образом можно убрать спавн бандитов на складовске? Утром, сталкеры и бандиты дружно выбегают из люка складовска и отбежав некоторое расстояние, начинают также дружно друг по другу стрелять...

 

2) Как убрать аларм при стрельбе по бандитам поблизости складовска? Стрельнув с палубы по какому-нибудь бандиту, включается аларм "складовск атакован, мы задраиваем люки". И все кому не лень начинают по мне стрелять.

 

3) Где подкрутить логику (думаю, дело в ней) у нпц, чтобы при стрельбе по ним с расстояния, они не игнорировали?

Пример: идет отряд бандитов, а по ним издалека стреляют сталкеры. Бандиты игнорируют попадания и идут дальше, пока их не перестреляют.

 

Правила форума, 3.6. Предупреждение.

ЛС закрыта.

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

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

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

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

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

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

Войти

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

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

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...