sashablr 0 Опубликовано 22 Декабря 2010 (изменено) В ЗП на подключёной локации создал смарт для сквада [smart_terrain];mar_squad_terrain squad_id = 1 respawn_params = respawn@mar_stalker_base_smart max_population = 2 arrive_dist = 25 [respawn@mar_stalker_base_smart] spawn_nebo@novice [spawn_nebo@novice] spawn_squads = nebo_sim_squad_novice spawn_num = 2, 0 [exclusive] ;;mar_guarder_one = marsh\mar_squad_logic.ltx Если раскоментировать последнюю строчку(работу), вылет без лога!(Если поставить уже существующую работу допустим из zat_stalker_base_smart, всё равно вылет без лога!) Это моя работа для заселяющего смарт сквада ;Guards [logic@mar_guarder_one] active = walker@guarder_one suitable = true prior = 120 [walker@guarder_one] path_walk = mar_squad_one_walk path_look = mar_squad_one_look combat_ignore_cond = false use_camp = false gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false Пожалуйста, подскажите как в обсолютно новом смарте(в смысле его логике) написать работу, которую будут выбирать с нуля созданные сквады?!!!(В туторе "смарттерейны и гулаги" из stalker inside написано что можно выдать работу тремя способами! Буду рад узнать их всех) На всём форуме находил примеры спавна сквада либо в уже существующий смарт, либо знаменитый esc_1(по моему так его звали) в котором ни малейшего намёка не было на существование в нём ссылок для работы. Если кто-нибудь знает где норм. тутор, тыкните пожалуйста!(На сталкер инсайд тутор "смарттерейны и гулаги" уже десять раз перечитал, и там нет способа решения проблеммы) Зарание огромное СПС!!! Изменено 22 Декабря 2010 пользователем sashablr Поделиться этим сообщением Ссылка на сообщение
sashablr 0 Опубликовано 23 Декабря 2010 (изменено) Полтергейст, _Призрак_, большое человеческое спс, заработало, но пошёл к way поинту только глава сквада, 2й непись побежал сидеть на корточках в комноту к лебедеву. Получается для каждого непися из сквада нужно писать работу, или можно работу выдать сразу всему скваду??? А как + в репу ставить? Изменено 23 Декабря 2010 пользователем sashablr Поделиться этим сообщением Ссылка на сообщение
sashablr 0 Опубликовано 23 Декабря 2010 (изменено) Вот пишу логику сквадам, и возникли вопросы: 1 У меня в скваде если один непись тупанул, остальные не ждут, и сквад ходит в разнобой, можно ли в логике прописать чтоб ждали друг друга? 2 А если у меня в смарте два дефолтовых сквада по три человека, и шесть работ, т.к. работа выдаётся случайная, может ли быть, что они перемешаются, и в одну точку будут ходить командиры и непись, а остальные в другую, и если да, то можно ли этого избежать, или для каждого сквада нужен отдельный смарт? 3 И последнее, есть ли возможность отправить каждого из сквада в один смарткавер, а после простоя энного количества времени, на другой(смарткавер), и т.д, если конечно можно их расставить вокруг его, сделать его сферой, и запретить входить в его? (это с целью экономии времени на way поинтах, чтоб не писать одному 174.0.282, второму по иксу левее, а трейтему по игрику, да ещё и копировать, перейменовывать, лучше пусть вокруг кавера тусят) P.S. Если кто-нибудь знает как проще с way-ями для сквадов, отзовитесь плиз, и если не затруднит, скажите какие виды логики лучше для сквадов с работами от простого патрульного, до снайпера, и чем они отличаются! Премного благодарен! Изменено 23 Декабря 2010 пользователем sashablr Поделиться этим сообщением Ссылка на сообщение
sashablr 0 Опубликовано 24 Декабря 2010 (изменено) Не подскажете как заставить сквад ходить вместе, и ждать друг друга? Вот три работы из смарта: [logic@mar_a2_guarder_1] active = walker@guarder_1 suitable = {=check_npc_name(mar_intro_oxrannik_smart) !surge_started} true - если mar_intro_oxrannik_smart, принимаем на работу и делаем лидером свада. Я прав? prior = 120 [walker@guarder_1] path_walk = mar_squad_one_walk path_look = mar_squad_one_look on_info = {!actor_enemy =see_actor =actor_has_weapon =dist_to_actor_le(35)} remark@guarder_1 combat_ignore_cond = {=npc_in_zone(zat_a2_sr_light)} true, {=check_enemy_name(bandit)} true, false ;;out_restr = zat_a2_sr_noweap ;;in_restr = zat_a2_sr_light use_camp = false gather_items_enabled = false help_wounded_enabled = false corpse_detection_enabled = false [remark@guarder_1] anim = threat target = story | actor ;;on_info = {-zat_a2_base_guard} %+zat_a2_base_guard =play_sound(zat_a2_base_guard)% on_game_timer = 75 | walker@guarder_1 ;;combat_ignore_cond = {=npc_in_zone(zat_a2_sr_light)} true, {=check_enemy_name(bandit)} true, false ;;out_restr = zat_a2_sr_noweap ;;in_restr = zat_a2_sr_light [logic@mar_a2_guarder_2] active = walker@guarder_2 suitable = true prior = 100 [walker@guarder_2]:walker@guarder_1 path_walk = mar_squad_one_walk2 path_look = mar_squad_one_look2 on_info = {!actor_enemy =see_actor =actor_has_weapon =dist_to_actor_le(35)} remark@guarder_2 [remark@guarder_2]:remark@guarder_1 anim = threat target = story | actor on_game_timer = 75 | walker@guarder_2 [logic@mar_a2_guarder_3] active = walker@guarder_3 suitable = true prior = 100 [walker@guarder_3]:walker@guarder_1 path_walk = mar_squad_one_walk3 path_look = mar_squad_one_look3 on_info = {!actor_enemy =see_actor =actor_has_weapon =dist_to_actor_le(35)} remark@guarder_3 [remark@guarder_3]:remark@guarder_1 anim = threat target = story | actor on_game_timer = 75 | walker@guarder_3 Глава сквада на актора реагирует, и ждёт разговора, а два остальных, выполняют свою логику (walker), и без разницы им, что в логике прописанна реакция на актора, после чего глава всегда отстаёт :ny_sad: [walker@guarder_3]:walker@guarder_1 [remark@guarder_3]:remark@guarder_1 - ссылки на логику главного(я так понимаю все недописанные секции берутся от туда, поправте если ошибаюсь) P.S. если бы вернуть follower! team = XXX - не синхронизирует Зареагировали все, но всё равно не подходит для сквада, т.к. для каждого НПЦ дистанция своя, и если актор попадает в сферу одного. осталые всё равно идут по схеме! Изменено 25 Декабря 2010 пользователем sashablr Поделиться этим сообщением Ссылка на сообщение
sashablr 0 Опубликовано 25 Декабря 2010 (изменено) Вопрос для магистров гулагов (ЗП) --'------------------------------------------------------------------------ --' GUARD --'------------------------------------------------------------------------ -- Проверяем наличие часовых в лагере. local stalker_guard = {_prior = 25, jobs = {}} it = 1 while level.patrol_path_exists(gname.."_guard_"..it.."_walk") do -- Необходимо вычитать количество работ из названия точки пути. local way_name = gname.."_guard_"..it.."_walk" --local guard_timeout = tostring(math.random(180,300))*1000 local guard_timeout = tostring(math.random(20,21))*1000 -- добавляем должность t = { _prior = 25, job_id = { section = "logic@"..way_name, job_type = "path_job" }, _precondition_params = { }, _precondition_function = function(se_obj, smart, precond_params) if smart.smart_alarm_time == nil then return true end if smart.safe_restr == nil then return true end if precond_params.is_safe_job == nil then precond_params.is_safe_job = xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) end return precond_params.is_safe_job ~= false end} table.insert(stalker_guard.jobs, t) -- добавляем описание должности в лтх. local job_ltx = "[logic@"..way_name.."]\n".. "active = walker@"..way_name.."\n".. "[walker@"..way_name.."]\n".. "meet = meet@generic_lager\n".. "path_walk = guard_"..it.."_walk\n".. "path_look = guard_"..it.."_look\n" if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then job_ltx = job_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" end if smart.def_restr ~= nil then job_ltx = job_ltx .."out_restr = "..smart.def_restr.."\n" end local job1_ltx ="[walker1@"..way_name.."]\n".. "meet = meet@generic_lager\n".. "path_walk = guard_"..it.."_walk\n".. "path_look = guard_"..it.."_look\n".. "def_state_standing = wait_na\n".. "on_info = {!is_obj_on_job(logic@follower_"..way_name..":3)} walker@"..way_name.."\n".. "on_info2 = {=distance_to_obj_on_job_le(logic@follower_"..way_name..":3)} remark@"..way_name.."\n" if smart.safe_restr ~= nil and xr_gulag.job_in_restrictor(smart, smart.safe_restr, way_name) then job1_ltx = job1_ltx .. "invulnerable = {=npc_in_zone(smart.safe_restr)} true\n" end if smart.def_restr ~= nil then job1_ltx = job1_ltx .."out_restr = "..smart.def_restr.."\n" end job1_ltx = job1_ltx .. "[remark@"..way_name.."]\n".. "anim = wait_na\n".. "target = logic@follower_"..way_name.."\n" if smart.def_restr ~= nil then job1_ltx = job1_ltx .."out_restr = "..smart.def_restr.."\n" end --' настройки фоловера для каждого гварда!!!!!!!!!!!!!!!!! - можно ли на основе этой схемы создать уникального followera? t = { _prior = 24, job_id = { section = "logic@follower_"..way_name, job_type = "path_job" }, _precondition_params = { changing_job = "logic@"..way_name }, _precondition_function = function(se_obj, smart, precond_params, npc_info) return npc_info.need_job == precond_params.changing_job end } table.insert(stalker_guard.jobs, t) local follower_ltx = "[logic@follower_"..way_name.."]\n".. "active = walker@follow_"..way_name.."\n".. "[walker@follow_"..way_name.."]\n".. "meet = meet@generic_lager\n".. "path_walk = guard_"..it.."_walk\n".. "path_look = guard_"..it.."_look\n".. "on_info = {=distance_to_obj_on_job_le(logic@"..way_name..":3)} remark@follower_"..way_name.."\n" if smart.def_restr ~= nil then follower_ltx = follower_ltx .."out_restr = "..smart.def_restr.."\n" end follower_ltx = follower_ltx .. "[remark@follower_"..way_name.."]\n".. "anim = wait_na\n".. "target = logic@"..way_name.."\n".. "on_timer = 2000 | %=switch_to_desired_job%\n" if smart.def_restr ~= nil then follower_ltx = follower_ltx .."out_restr = "..smart.def_restr.."\n" end ltx = ltx..job_ltx..job1_ltx..follower_ltx it = it + 1 end if it > 1 then table.insert(stalker_jobs.jobs, stalker_guard) end Не подскажете как правильно вырвать кусок, и создать отдельную схему followera? И ещё, кто-нибудь знает как в зп сделать подключённые болота всегда без дождя! Зарание СПС Изменено 26 Декабря 2010 пользователем sashablr Поделиться этим сообщением Ссылка на сообщение
sashablr 0 Опубликовано 26 Декабря 2010 Помогите!!! Дайте тутор как перенести анимпоинты посиделок у костра из ЧН в ЗП, а то у меня все сидят на воздухе!! В теме Перенос и создание карт nuklia заливал анимки на файлообменник, но их уже удалили. Огромное СПС, и с НАСТУПАЮЩИМ ВСЕХ! Поделиться этим сообщением Ссылка на сообщение