[SoC] Ковыряемся в файлах - Страница 1275 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

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

ПС. Вроде нашел причину в ремарк не прописано проигрывание анимации. Прописал нпсы стали реагировать на ГГ

Скрытый текст
[logic] 
active = remark
danger = danger_ignore 

[danger_ignore] 
ignore_distance = 15 

[remark]
anim = guard
no_move = false
target = actor
on_info = {+enemy} remark@re %=actor_enemy% 

[remark@re]
on_info = {-enemy +propusk} nil %=actor_neutral%

 

 

Ребята а можно как то в логике задать дистанцию для реагирования нпс на актора. Чтоб нпс агрились на актора например когда он находится за 20 метров. Логику обновил моем посте выше. Все хорошо но когда ГГ проходит мимо базы военных они агрятся на ГГ хотелось бы сократить это расстояние. И еще после того как военные заагрились скрипт перестает работать. Т.е нпс-ы не становятся нейтральными к актору, логика работает только если нпс не заагрились.

6 часов назад, Купер сказал:

Вообще, опять 

 

Так баян немой))) 

@Stalkersof , последствия и "подводные камни" всё равно ж знать желательно :).
Вопрос тоже по логике:

Записи приписки NPC в all.spawn к смарт-террайну идентичны?

[smart_terrains]
esc_stalker_camp = {-agroprom_military_case_done}
none = {+agroprom_military_case_done} 

и

[smart_terrains]
esc_stalker_camp = {-agroprom_military_case_done}

@Stalkersof 

В секции логики:

combat_ignore_cond = {=dist_to_actor_ge(20)} ; игнор, если актор на данном расстоянии и больше, а наоборот dist_to_actor_le.

 

@Купер 

Не, в первом случае после +флаг, нпс не сможет занимать смарты, а во втором пойдёт в подходящий.

  • Полезно 2
3 часа назад, h0N0r сказал:

@Stalkersof 

В секции логики:

combat_ignore_cond = {=dist_to_actor_ge(20)} ; игнор, если актор на данном расстоянии и больше, а наоборот dist_to_actor_le.

 

Да я вчера пробовал так, в ремарке почему то у меня не работает. Да еще после  того как заагрились логика не работает такая. Скачал шпаргалку по логике в пдф формате. Буду перезаселять базу военных используя кампер с точками и валкер патруль. Там по моему как я понял после данжера они в схему исходную возвращаются. Логика для меня новое в модострое но вроде что то понимание приходит.

@Stalkersof 

А можешь пояснить, чего ты хочешь добиться при помощи такой залихватской логики? 

И поясни - зачем во второй секции remark у тебя вставлена проверка отсутствия поршня enemy, если непись переходит в неë при наличии этого поршня? 

Про активный ремарк лучше умолчу)) 

Блин... 

@_Val_

Так не моя логика. Я Щас работаю над стареньким модом ну что то типа ремейка вот и устраняю косяки. Я уже все переделал на валк и кампер. Там квест типа говоришь с торговцем диалог у торговца появляется по поршню enemy. Типа пропуска торговец дает и военные становятся нетралами.  Может он и не нужен но все работает. Перезаселил базу военных каждому персу своя логика с точками. Все работает как надо.

Скрытый текст

[remark@2]
target = actor
anim = punch
meet = no_meet
on_signal = anim_end | walker@4

 

[walker@4]
path_walk = esc_vovan_slejka_look
path_look = esc_vovan_slejka_walk
meet = meet@pogo

 

[meet@pogo]
use = self
use_wpn = self
meet_dialog = esc_pogo_duran2

После того как ГГ получает удар в морду НПС не юзает его для диалога, а произносит "не буду с тобой говорить", нужен сейв-лоад и лишь тогда НПС начнёт разговор.

В чём дело?

Полная логика на всякий:
 

Скрытый текст

[logic]
active = walker

 

[walker]
path_walk = esc_pogo_walk
path_look = esc_pogo_look
on_info = {+esc_pogo_slejka_start} walker@2

 

[walker@2]
path_walk = esc_pogoreluy_slejka_walk
path_look = esc_pogoreluy_slejka_look
meet = no_meet
def_state_standing = checkpda
on_info = {+esc_pogo_slejka_vovan} remark

 

[remark]
target = esc_pogoreluy_slejka_look,0
snd = yan_pogoreluy_slejka
meet = no_meet
on_signal = sound_end | walker@3

 

[walker@3]
path_walk = esc_vovan_slejka_look
path_look = esc_vovan_slejka_walk
meet = no_meet
on_info = {+esc_pogo_slejka_fail} remark@2

 

[remark@2]
target = actor
anim = punch
meet = no_meet
on_signal = anim_end | walker@4

 

[walker@4]
path_walk = esc_vovan_slejka_look
path_look = esc_vovan_slejka_walk
meet = meet@pogo

 

[meet@pogo]
use = self
use_wpn = self
meet_dialog = esc_pogo_duran2

 

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

@imcrazyhoudini 

Работает, если в скрипте state_mgr_animation_list для блока punch:

"norm_facer_0_0", {f=xr_effects.actor_punch}, "norm_facer_0_1", {f=xr_effects.clearAbuse}

 

Можно вызвать =clearAbuse (как и =actor_punch) в логике, и желательно переделать xr_effects.actor_punch на манер ЧН, чтобы сперва кам-эффекты, а потом проверка на активные слоты.

@imcrazyhoudini 

Ох уж эти скриптеры, всё бы им переделать)) Логика в принципе правильная и должна работать. Ну это так, на первый взгляд. А логикой я занимался уже так давно, что у меня новорожденный внук с тех пор в школу пошёл))

Вообще - причин, по которым персонаж не хочет делать то, чего от него хочет автор логики несколько. Неправильная логика, нпс находится не в той секции(в которой вроде бы как должен находиться), неправильно прописаны эффекты, вызываемые из логики(анимки, звуки, диалоги и т.д). 

Хотел сказать ещё предыдущему оратору , но вот наконец сподобился. Если занимаетесь сложной логикой, ставьте себе дебаггер. Нужно обязательно отслеживать выдаваемые поршни и секции логики персонажей. И желательно секцию - при наведении курсора. 

По твоей логике. Чтобы переходы из секции в секцию происходили чётко и без глюков - нужно добавлять выдачу поршней из предыдущей секции при переходе в следующую с проверкой наличия этого поршня. И удалять использованные для переходов поршни, если они больше не нужны для квестов или чего-то подобного. 

 

 

Блин... 

@h0N0r имеешь ввиду так?:
 

Скрытый текст

[remark@2]
target = actor
anim = punch
meet = no_meet
on_signal = anim_end | walker@4 %=clearAbuse%

 

[walker@4]
path_walk = esc_vovan_slejka_look
path_look = esc_vovan_slejka_walk
meet = meet@pogo

Скрипт:
 

Скрытый текст

function actor_punch(npc)
    if db.actor:position():distance_to_sqr(npc:position()) > 4 then
        return
    end

    set_inactivate_input_time(30)
    local snd_obj = xr_sound.get_safe_sound_object([[affects\hit_fist]])
    snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)

    level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")

    local active_slot = db.actor:active_slot()
    local active_item = db.actor:active_item()
    if active_item and (active_slot == 1 or active_slot == 2) then
        db.actor:drop_item(active_item)
    end
end

        punch        = {    prop    = { maxidle = 5,
                                    sumidle = 2,
                                    rnd = 100 },
                        into    = {    [0]    = {    "norm_facer_0_0", {f=xr_effects.actor_punch}, "norm_facer_0_1", {f=xr_effects.clearAbuse}},
                                    [1]    = {    "norm_facer_1_0", {f=xr_effects.actor_punch}, "norm_facer_1_1", {f=xr_effects.clearAbuse}},
                                    [2]    = {    "norm_facer_2_0", {f=xr_effects.actor_punch}, "norm_facer_2_1", {f=xr_effects.clearAbuse}},
                                    [3]    = {    "norm_facer_3_0", {f=xr_effects.actor_punch}, "norm_facer_3_1", {f=xr_effects.clearAbuse}},
                                    [4]    = {    "norm_facer_4_0", {f=xr_effects.actor_punch}, "norm_facer_4_1", {f=xr_effects.clearAbuse}},
                                    [8]    = {    "norm_facer_8_0", {f=xr_effects.actor_punch}, "norm_facer_8_1", {f=xr_effects.clearAbuse}},
                                    [9]    = {    "norm_facer_9_0", {f=xr_effects.actor_punch}, "norm_facer_9_1", {f=xr_effects.clearAbuse}},
                                    [10]= {    "norm_facer_10_0", {f=xr_effects.actor_punch}, "norm_facer_10_1", {f=xr_effects.clearAbuse}}},
                        out        = nil,
                        idle    = nil,
                        rnd        = nil},

Если правильно понял конечно тебя, но в целом итог тот же.

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

22 минуты назад, imcrazyhoudini сказал:

имеешь ввиду так?:

Посмотри как в ЗП при ограблении на Земснаряде, чёт у тебя логика вообще нищая.

 

 

Скрытый текст

[remark@punch] ;Удар по морде и еще словесный плевок в морду
target = story | actor
anim = punch
on_timer = 1000 | {-zat_b14_robbery_punch_play_sound} walker@fight %=actor_punch =hit_npc_from_actor(zat_b14_stalker_1) =play_sound(zat_b14_robbery_punch) +zat_b14_robbery_punch_play_sound%
meet = no_meet
wounded = wounded
combat_ignore_cond = {!actor_enemy} true
danger = danger_condition@go

[remark@ready] ;Поймали игрока
anim = wait_na
target = story | actor
meet = meet@story
on_info = {+zat_b14_dialog_done +zat_b14_give_item_stalker} walker@item %+zat_b14_stalkers_bandits_free%
on_info2 = {+zat_b14_not_give_item_stalker -zat_b14_robbery_not_give_artefact} animpoint@offence %=play_sound(zat_b14_scene_1_stalker_offended)%
on_info3 = {+zat_b14_dialog_done +zat_b14_not_give_item_stalker +zat_b14_robbery_not_give_artefact} %=set_squad_enemy_to_actor(zat_b14_stalkers)%
in_restr = zat_b14_not_give_item_zone
combat_ignore_cond = {!actor_enemy} true
wounded = wounded
danger = danger_condition@go

[meet@story] ;Диалог - дай артефакт!
close_anim = nil
close_snd_hello = nil
close_snd_bye = nil
close_victim = actor
use = {!actor_enemy} self
trade_enable = false
allow_break = false
meet_dialog = zat_b14_stalker_start

 

Скрытый текст

[logic@b14_stalker_1]
suitable = {=check_npc_name(zat_b14_stalker_1)} true
prior = 200
active = walker@go
on_hit = hit
on_death = death
post_combat_time = 0, 0

 

[death]
on_info = {!killed_by_actor} %+zat_b14_stalker_death =stop_sound%, {=killed_by_actor =squad_exist(zat_b14_stalkers)} %+zat_b14_stalker_killed_by_actor =set_squad_enemy_to_actor(zat_b14_stalkers) =stop_sound%, %=stop_sound% 

 

[hit] ;Если игрок имеет артефакт, кричим, чтобы отдал
on_info = {=hit_by_actor =actor_has_item(af_quest_b14_twisted) =is_alive} %=play_sound(zat_b14_robbery_kill_actor_snd) +zat_b14_actor_enemy%

 

[walker@go] ;Ждем игрока
path_walk = zat_b14_stalker_1_walk_1
path_look = zat_b14_stalker_1_look_1
on_actor_dist_le_nvis = 5 | {!actor_in_zone(zat_b14_not_give_item_zone)} remark@ready
def_state_moving = run
def_state_standing = wait_na
show_spot = {!actor_enemy} false, true
combat_igrore_cond = true
danger = danger_condition@go
meet = no_meet
wounded = wounded
;group = 14

 

[danger_condition@go]
ignore_distance = 0
ignore_distance_grenade = 0
ignore_distance_corpse = 0
ignore_distance_hit = 0
ignore_distance_sound = 0

 

[remark@ready] ;Поймали игрока
anim = wait_na
target = story | actor
meet = meet@story
on_info = {+zat_b14_dialog_done +zat_b14_give_item_stalker} walker@item %+zat_b14_stalkers_bandits_free%
on_info2 = {+zat_b14_not_give_item_stalker -zat_b14_robbery_not_give_artefact} animpoint@offence %=play_sound(zat_b14_scene_1_stalker_offended)%
on_info3 = {+zat_b14_dialog_done +zat_b14_not_give_item_stalker +zat_b14_robbery_not_give_artefact} %=set_squad_enemy_to_actor(zat_b14_stalkers)%
in_restr = zat_b14_not_give_item_zone
combat_ignore_cond = {!actor_enemy} true
wounded = wounded
danger = danger_condition@go

 

[meet@story] ;Диалог - дай артефакт!
close_anim = nil
close_snd_hello = nil
close_snd_bye = nil
close_victim = actor
use = {!actor_enemy} self
trade_enable = false
allow_break = false
meet_dialog = zat_b14_stalker_start

;Дали артефакт

 

[walker@item] ;Отдали артефакт
path_walk = zat_b14_stalker_1_sprint_1
def_state_moving1 = run
on_game_timer = 30 | walker@item_sprint_1
combat_ignore_cond = true
wounded = wounded
meet = no_meet

 

[walker@item_sprint_1]
path_walk = zat_b14_stalker_1_sprint_1
def_state_moving1 = sprint
on_signal = path_end | walker@item_sprint_2
combat_ignore_cond = true
wounded = wounded
meet = no_meet

 

[walker@item_sprint_2]
path_walk = zat_b14_stalker_1_sprint_2
def_state_moving1 = sprint
on_signal = path_end | walker@item_sprint_3
combat_ignore_cond = true
wounded = wounded
meet = no_meet

 

[walker@item_sprint_3]
path_walk = zat_b14_stalker_1_sprint_3
def_state_moving1 = sprint
on_signal = path_end | walker@item_2
combat_ignore_cond = true
wounded = wounded
meet = no_meet

 

[walker@item_2] ;Отдали артефакт
path_walk = zat_b14_stalker_1_walk_3
path_look = zat_b14_stalker_1_look_3
def_state_moving1 = sprint
on_info = {=npc_in_zone(zat_a2_sr_noweap) =check_smart_alarm_status(zat_stalker_base_smart:normal)} walker@item_3
on_info2 = {=npc_in_zone(zat_a2_sr_noweap) =actor_in_zone(zat_a2_sr_noweap) =actor_enemy !check_smart_alarm_status(zat_stalker_base_smart:normal)} walker@fight_2
combat_ignore_cond = true
wounded = wounded
meet = no_meet
out_restr = zat_a2_sr_noweap

 

[walker@item_3] ; Заходим в корабль
path_walk = zat_b14_stalker_1_walk_4
path_look = zat_b14_stalker_1_look_4
def_state_moving1 = run
on_info = {!npc_in_zone(zat_surge_hide_a2) !check_smart_alarm_status(zat_stalker_base_smart:normal)} walker@item_2
on_info2 ={=npc_in_zone(zat_surge_hide_a2)} walker@item_4 
on_info3 = {=npc_in_zone(zat_a2_sr_noweap) !npc_in_zone(zat_surge_hide_a2) =actor_in_zone(zat_a2_sr_noweap) =actor_enemy !check_smart_alarm_status(zat_stalker_base_smart:normal)} walker@fight_2
combat_ignore_cond = true
wounded = wounded
meet = no_meet
out_restr = zat_a2_sr_noweap

 

[walker@item_4] ; Подходим к стойке
path_walk = zat_b14_stalker_1_walk_4
path_look = zat_b14_stalker_1_look_4
combat_ignore_cond = true
def_state_moving1 = walk
on_info ={=npc_in_zone(zat_b14_bar_zone)} %+zat_b14_stalker_change_smart%
meet = no_meet
out_restr = zat_a2_sr_noweap

;Не дали артефакт

 

[walker@no_item] ;Игрок не дал артефакт, обиделись
path_walk = zat_b14_stalker_1_walk_2
path_look = zat_b14_stalker_1_look_2
on_signal = zat_b14_stalker_sit | animpoint@offence
on_info = {=actor_in_zone(zat_b14_robbery_start)} walker@prerobbery %+zat_b14_stalker_robbery%
in_restr = zat_b14_not_give_item_zone
danger = danger_condition@go
combat_ignore_cond = {!actor_enemy} true
wounded = wounded
meet = no_meet

 

[animpoint@offence]
cover_name = zat_b14_stalker_1_anim
avail_animations = zat_b14_stay_wall
use_camp = false
on_info = {+zat_b14_give_item_stalker} walker@item %+zat_b14_stalkers_bandits_free%
on_info2 = {=actor_in_zone(zat_b14_robbery_start)} walker@prerobbery %+zat_b14_stalker_robbery%
in_restr = zat_b14_not_give_item_zone
danger = danger_condition@go
combat_ignore_cond = {!actor_enemy} true
wounded = wounded
meet = meet@stand

 

[meet@stand] ;Последний шанс игрока отдать артефакт
close_distance  = 1
far_distance    = 1
close_anim = nil
far_anim = nil
meet_dialog = {-zat_b14_dialog_last_chance_done} zat_b14_stalker_start_last_chance, zat_b14_stalker_start_last_chance_end
use = true
trade_enable = false

 

;Грабим игрока

[walker@prerobbery] ;Ограбление
path_walk = zat_b14_stalker_1_walk_1
path_look = zat_b14_stalker_1_look_1_1
on_signal = end | remark@robbery
in_restr = zat_b14_not_give_item_zone
combat_ignore_cond = {!actor_enemy} true
danger = danger_condition@go
wounded = wounded
meet = no_meet

 

[remark@robbery] ;Ограбление
target = story | actor
anim = threat_na
snd_anim_sync = true
on_info = {+zat_b14_robbery_nowpn_actor +zat_b14_stalker_robbery_cutscene_start} companion@robbery
in_restr = zat_b14_not_give_item_zone
combat_ignore_cond = {!actor_enemy} true
danger = danger_condition@go
wounded = wounded
meet = no_meet

 

[companion@robbery] ;Бежим грабить
on_actor_dist_le_nvis = 2 | remark@robbery_artefact
meet = no_meet
in_restr = zat_b14_not_give_item_zone
wounded = wounded
combat_ignore_cond = {!actor_enemy} true
danger = danger_condition@go

 

[remark@robbery_artefact] ;Диалог ограбления
target = story | actor
anim = threat_na
snd_anim_sync = true
meet = meet@robbery
on_info = {+zat_b14_robbery_give_artefact} walker@item
on_info2 = {+zat_b14_robbery_not_give_artefact} remark@punch
in_restr = zat_b14_not_give_item_zone
wounded = wounded
combat_ignore_cond = {!actor_enemy} true
danger = danger_condition@go

 

[remark@punch] ;Удар по морде и еще словесный плевок в морду
target = story | actor
anim = punch
on_timer = 1000 | {-zat_b14_robbery_punch_play_sound} walker@fight %=actor_punch =hit_npc_from_actor(zat_b14_stalker_1) =play_sound(zat_b14_robbery_punch) +zat_b14_robbery_punch_play_sound%
meet = no_meet
wounded = wounded
combat_ignore_cond = {!actor_enemy} true
danger = danger_condition@go

 

[meet@robbery]
close_distance = 2
close_anim = threat_na
close_victim = actor
use = {!actor_enemy} self
trade_enable = false
allow_break = false
meet_dialog = zat_b14_stalker_robbery

 

[wounded] ;Не должен быть раненым
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

 

;Бой

[walker@fight] ;В бой!
path_walk = zat_b14_stalker_1_walk_2
path_look = zat_b14_stalker_1_look_2
in_restr = zat_b14_not_give_item_zone
wounded = wounded
meet = no_meet

 

[walker@fight_2] ;В бой!
path_walk = zat_b14_stalker_1_walk_3
path_look = zat_b14_stalker_1_look_3
wounded = wounded
meet = no_meet

 

Для начала проверь что on_signal = anim_end | walker@4  вообще работает, повесь он_гей_таймер = 100 |  вместо него например. Если заработает, on_signal = anim_end можешь выкидывать или сверить с ЗП и сделать похожим образом. Да, я понимаю что здесь ТЧ, но там по моему по морде сюжетно не бьют. Вероятно твоя анимация не содержит флаг для параметра on_signal. Если нужны ЧН и ЗП конфиги со скриптами, залью.

 

 

Изменено пользователем Last_Dawn
4 часа назад, Last_Dawn сказал:

чёт у тебя логика вообще нищая.

Человек учится писать логику. Да - не всё сразу получается, но он пишет. 

А предъявлять в качестве богатой логики копипасту навороченной логики из ЗП, это такое себе...Склизковато.

Особенно учитывая вещи, которых в ТЧ нет от слова ВООБЩЕ.

@imcrazyhoudini 

А вот насчет таймера товарисч прав. При любых непонятках в ремарке ставь таймер, это беспроигрышный вариант.

В твоём случае on_timer = 760...Проверено на живых неписях))

Блин... 

2 часа назад, _Val_ сказал:

Человек учится писать логику. Да - не всё сразу получается, но он пишет. 

Согласен, быканул. 

 

2 часа назад, _Val_ сказал:

А предъявлять в качестве богатой логики копипасту навороченной логики из ЗП

В любом случае она касается его случая как раз. Но вообще я клонил к тому что всегда нужны дополнительные проверки в будущем на действия игрока и игры, возможность предусмотреть наибольшее число форс-мажоров (у нас всё-таки симуляция и тут возникают вопросы из серии "а что, если"), ЗП здесь не как положительный пример выступает, там скорее слишком усложнённая логика по причине профнепригодности тогдашних разработчиков. Ну и я работаю только по ЗП, поэтому только такой опыт могу предоставить, забрёл можно сказать случайно, другую тему искал.

Изменено пользователем Last_Dawn
  • Согласен 1

@_Val_ да я 10 лет моды делаю, в смысле учится только)))

Такой фикс по итогу, в xr_meet.script:
 

Скрытый текст

    if t == "true" then
        self.npc:enable_talk()
    elseif t == "false" then
        self.npc:disable_talk()
        if is_talking then
            self.npc:stop_talk()
        end
    elseif t == "self" then
        if not is_talking then
            db.actor:run_talk_dialog(self.npc)
        end
    end

вставить self.npc:enable_talk() пред db.actor:run_talk_dialog(self.npc)

И всё работает...

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

54 минуты назад, Last_Dawn сказал:

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

Абсолютно в дырочку. Я кстати об этом выше писал. 

@imcrazyhoudini 

Снимаю шляпу. Десять лет, это здорово. Только вот тогда и я скажу:

active=walker  в достаточно сложной логике с несколькими волкерами и ремарками, это слабовато и не продумано. 

 

 

Блин... 

@_Val_ почему?

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

@imcrazyhoudini 

Повторяюсь))

21.10.2025 в 15:04, Last_Dawn сказал:

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

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

on_game_timer = 22 | walker@3 %+info%

Ну а сам актив пишется где-то так:

active = {+info_1 -info_3}walker@2, {+info_3 -info_1}walker@3, walker@1 

И еще про действия игрока. Мы не вправе требовать от игрока, чтобы он действовал так, как нам видится или хочется)) 

Вот допустим твоя схема ограбления. 

Ну - диалог после удара прикладом в морду на твоей совести. Индийское кино, так индийское кино)). Обычно люди после такого тихо ползут в сторону реанимации если в сознании остаются, но это лирика... 

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

Блин... 

12 часов назад, _Val_ сказал:

active = {+info_1 -info_3}walker@2, {+info_3 -info_1}walker@3, walker@1 

Знаю о такой проблеме, но у меня фикс стоит от dsh, логика активная та, что последняя указана.

 

12 часов назад, _Val_ сказал:

можно вполне из ремарка в ремарк переходить

Верно конечно, но там как раз таки "кино")

12 часов назад, _Val_ сказал:

Предусмотрено это твоей логикой?

Убежать не выйдет, предусмотрел.

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

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

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

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

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

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

Войти

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

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

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