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

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

Что значит

 

[use]

on_info = %+budu_v_

bunkere_spat%

 

 

Для on_info = нужна функция условие on_info = {=имя_функции} если возврашает труе то только потом эфект %+budu_v_

bunkere_spat%

 

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

Может кто подсказать в чём ошибка?

Создал точку респавна

[40000]

; cse_abstract properties

section_name = respawn

name = cit_gulag_1_restavn

position = -21.257427,7.384156,103.735580

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 2840

distance = 7

level_vertex_id = 333765

object_flags = 0xffffff3e

custom_data = <<END

[respawn]

respawn_section = cit_freedom_nauchniy, 4, cit_freedom_general2, 10, esc_ohr_menala_2, 5

max_spawn = 5

idle_spawn = medium

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 1

 

; cse_alife_space_restrictor properties

restrictor_type = 0

 

; se_respawn properties

 

 

и зону его активации-

[40001]

; cse_abstract properties

section_name = space_restrictor

name = cit_gulag_1_restavn_aktiv

position = -21.257427,7.384156,103.735580

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 2840

distance = 0

level_vertex_id = 333765

object_flags = 0xffffff3e

custom_data = <<END

[logic]

active = sr_idle@in

 

[sr_idle@in]

on_actor_inside = %=cit_gulag_1_restavn% sr_idle@out

 

[sr_idle@out]

on_actor_outside = sr_idle@in

 

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 10

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

И получил вот такой лог-

! Missing ogg-comment, file:  e:\games\stalker\gamedata\sounds\meet_phrases\no_meet.ogg
[16-9] get_xml_name for[game_tutorials.xml] returns [game_tutorials.xml]
[16-9] get_xml_name for[ui_credits.xml] returns [ui_credits.xml]
[16-9] get_xml_name for[ui_movies.xml] returns [ui_movies.xml]
Intro start 4408
* MEMORY USAGE: 286828 K
! Cannot find saved game ~~~ object 'gar_tuman_1': pick_section_from_condlist: function 'cit_gulag_1_restavn' is not defined in xr_effects.script
* Log file has been saved successfully!

FATAL ERROR

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: e:\games\stalker\gamedata\scripts\_g.script:1121: bad argument #2 to 'format' (string expected, got no value)


stack trace:

 

Я так понял он не идентифицируется в xr_effects.script, в чём как её исправить?

Изменено пользователем @"StreloK"

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

on_actor_inside = %=cit_gulag_1_restavn% sr_idle@out

 

 

Должна сработать функция с именем %=cit_gulag_1_restavn%

прописаная в xr_effects.script.

 

Она есть?

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

Не обязательно. Если написать on_info = %+budu_v_bunkere_spat% то как только активируется схема, то выдается поршень

Freedom

Ссылка на комментарий
AKKK1 нет. А как она должна выглядеть? Делал по статье, но там ничего про функцию вызова вообще не написано. Изменено пользователем @"StreloK"

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

@"StreloK", ты хочешь, чтобы при входе в рестриктор производился респавн? Может лучше при входе в рестриктор выдать инфопрошень, а уже в секции респавна поставить:

conditions = {+my_infopotrion} 100, 0

З.Ы. Просто предположение, я пока ещё респавном не занимался :)

А это:

on_actor_inside = %=cit_gulag_1_restavn% sr_idle@out

Вызовет не твой респавн, а функцию в xr_effects.

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

Disord

Eсли тебе надо чтоб гг при юзе обьекта доустим диван, матрас, ящик (у меня балон ) засыпал

то рестрикторы и поршни не нужны все проше

 

[logic]

active = ph_idle

 

[ph_idle]

tips = spi_spoki

on_use = %=budu_v_bunkere_spat%

 

добавляеш в string_table_ui.xml

строку типа

<string id="spi_spoki">

<text>ПОСПАТЬ ($$ACTION_USE$$)</text>

</string>

 

В xr_effects

 

function budu_v_bunkere_spat()

sleep_manager.sleep_three_hours() Старт функции сна из файла sleep_manager.script

end

 

 

При подходе к обьекту выскочит Поспать нажмите F

Жмем F и ГГ засыпает .

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

Подскажите, пожалуйста, из-за чего может быть вылет?

 

 

FATAL ERROR

[error]Expression    : vertex || show_restrictions(m_object)
[error]Function      : CPatrolPathManager::select_point
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\patrol_path_manager.cpp
[error]Line          : 155
[error]Description   : any vertex in patrol path [esc_lager_guard_walk4] in inaccessible for object [esc_lager3]

 

Ссылка на комментарий
AKKK1, вызов функции мне не нужен, у меня функция своя, из АМК изменённая. Ну да ладно, попробую. Хотя, вроде, так уже пробовал.
Ссылка на комментарий

Disord а зачем тебе инфопоршень? AKKK1 правильно написал, но если у тебя своя функция, то просто вставь ее примерно так:

function budu_v_bunkere_spat()
        amk.start_timer("sleep_matras",0.1,matras)
end

Строгое предупреждение от модератора Куфзук
2.3. Красным цветом имеют право писать только модераторы и авторы в шапке темы.
Изменено пользователем Куфзук
Ссылка на комментарий

Хантер

 

Eсть много вариантов толкованния вылета данного типа

Вот лично мое мнение

 

Он происходит

1. при попытке отправить обьект в твоем случае object [esc_lager3]

за пределы ограничивающего рестриктора в загрузке работ гулага esc_lager

--' Лагерь новичков на Escape
    if type == "esc_lager" then
        -- охранники
        t = { section = "logic@esc_lager_zoneguard1",
            idle = 0,
            prior = 9, state = {0, 1},
            in_rest = "", out_rest = "esc_lager_guard_kill_zone",}

Мне кажется что ты попытался отправить обитателя лагеря за его пределы или я ошибаюсь?

если да, то просто удали у всех работ гулага esc_lager - esc_lager_guard_kill_zone, должно быть так, для всех работ :

--' Лагерь новичков на Escape
    if type == "esc_lager" then
        -- охранники
        t = { section = "logic@esc_lager_zoneguard1",
            idle = 0,
            prior = 9, state = {0, 1},
            [b] in_rest = "", out_rest = "",}

Изменено пользователем Куфзук
Ссылка на комментарий
AKKK1, а в каком файле это всё делать? Изменено пользователем Хантер
Ссылка на комментарий

Хантер

 

gulag_escape.script

 

--' Лагерь новичков на Escape

if type == "esc_lager" then

-- охранники

t = { section = "logic@esc_lager_zoneguard1",

idle = 0,

prior = 9, state = {0, 1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

}

table.insert(sj, t)

t = { section = "logic@esc_lager_zoneguard2",

idle = 0,

prior = 9, state = {0, 1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

}

table.insert(sj, t)

t = { section = "logic@esc_lager_walker3",

idle = 0,

prior = 8, state = {0, 1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_walker4",

idle = 0,

prior = 8, state = {0, 1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

-- у костра днём

t = { section = "logic@esc_lager_kamp1",

idle = 0,

prior = 6, state = {0},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_kamp1",

idle = 0,

prior = 6, state = {0},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_kamp1",

idle = 0,

prior = 6, state = {0},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

-- Волк, собственной персоной.

t = { section = "logic@esc_lager_volk",

idle = 0,

prior = 16, state = {0,1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

predicate = function(obj_info)

return obj_info.profile_name == "esc_wolf"

end

}

table.insert(sj, t)

-- Шустрый

t = { section = "logic@esc_lager_shustryi",

idle = 0,

prior = 16, state = {0,1},

online = true,

in_rest = "", out_rest = "",

predicate = function(obj_info)

return obj_info.profile_name == "esc_shustryi"

end

}

table.insert(sj, t)

t = { section = "logic@esc_lager_kamp1",

idle = 0,

prior = 16, state = {2},

online = true,

in_rest = "", out_rest = "",

predicate = function(obj_info)

return obj_info.profile_name == "esc_shustryi"

end

}

table.insert(sj, t)

 

-- Фанат

t = { section = "logic@esc_lager_fanat",

idle = 0,

prior = 16, state = {0,1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

predicate = function(obj_info)

return obj_info.profile_name == "esc_fanat"

end

}

table.insert(sj, t)

 

-- спящие ночью

t = { section = "logic@esc_lager_sleeper1",

idle = 0,

prior = 3, state = {1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_sleeper2",

idle = 0,

prior = 3, state = {1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_kamp1",

idle = 0,

prior = 3, state = {1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

-- спящие ночью и днёи

t = { section = "logic@esc_lager_sleeper5",

idle = 0,

prior = 5, state = {0,1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_kamp1",

idle = 0,

prior = 0, state = {0,1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_sleeper7",

idle = 0,

prior = 0, state = {0,1},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

 

t = { section = "logic@esc_lager_defend1",

idle = 0,

prior = 15, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend2",

idle = 0,

prior = 14, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend3",

idle = 0,

prior = 13, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend4",

idle = 0,

prior = 12, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend5",

idle = 0,

prior = 11, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend6",

idle = 0,

prior = 10, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend7",

idle = 0,

prior = 9, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend8",

idle = 0,

prior = 8, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend9",

idle = 0,

prior = 16, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

predicate = function(obj_info)

return obj_info.name == "esc_novice_attacker1"

end

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend10",

idle = 0,

prior = 16, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

predicate = function(obj_info)

return obj_info.name == "esc_vagon_wounded"

end

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend11",

idle = 0,

prior = 5, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone"

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend12",

idle = 0,

prior = 20, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

predicate = function(obj_info)

return obj_info.profile_name == "esc_fanat"

end

}

table.insert(sj, t)

t = { section = "logic@esc_lager_defend13",

idle = 0,

prior = 20, state = {2},

in_rest = "", out_rest = "esc_lager_guard_kill_zone",

predicate = function(obj_info)

return obj_info.profile_name == "esc_wolf" and not (has_alife_info("agroprom_military_case_have") and has_alife_info("esc_fanat_spawn"))

end

}

table.insert(sj, t)

end

 

 

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

2 конфликт с схемой обхода аномалий (аномалия в принципе тот же рестриктор)

если точка пути обьекта попадет в аномалию (зону рестриктора) вылет .

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

Люди может кто подсказать пример логики для мутанта (зомби-гражданский) чтобы днём он находился под mob_fake_death, а ночью переходил в mob_home?

 

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

У меня вопрос. Создал гулаг в СДК на 10 человек. Прописал им всем в custom_date... все сделал правильно, но тут возникла проблема. Они воспринимают логику только если будет написано [logic], если же я пишу [logic@bla_bla_bla] то НПЦ этого не понимают. Для меня это очень важно т.к получается что гулаги я не смогу создавать, может это из-за винды? у меня win7 стоит если что.

 

 

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

@"StreloK", вот полностью рабочая логика для гражданского зомбаря:

[smart_terrains]

none = true

 

[logic]

active = mob_fake_death

 

[mob_fake_death]

;on_info = {!is_day} mob_home

on_info = {=is_day =dist_to_enemy_le(8)} mob_home, {!is_day} mob_home

 

[mob_home]

path_home = sleep_zombie_home

home_min_radius = 20

home_max_radius = 25

;on_info = {=is_day} mob_fake_death

on_info = {=is_day =dist_to_enemy_ge(8)} mob_fake_death

 

on_signal = sig_attacked | mob_combat

[mob_combat]

on_timer = 10000 | mob_home

Здесь днём зомби будет загорать в травке на солнышке, пока к нему не приблизится враг (игрок) на расстояние, менее 8 метров. В этом случае он подскочит, и очень сильно постарается замочить того, кто мешает ему отдыхать. Но если отойти от потревоженного зомби более, чем на 8 метров, он снова мирно уляжется баю-бай :)... Ночью зомби будет активен (по умолчанию в xr_conditions.script - от 21 вечера до 6 часов утра). Если нужно, чтобы зомби валялся днём, ни на кого не реагируя, просто зарэмь "длинные схемы" и раскомментируй "короткие".

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

=VENOM= спасибо, правда я уже сам разобрался, но у тебя она по другому немного, надо попробовать.

 

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

У меня зомби перед сном на своё место возвращаются, в квартиры, ото раньше спать ложились где попало как бомжи какие то =) (дело происходит в мёртвом городе).

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

Видимо, у тебя на схеме mob_walker или на mob_camp логика построена, а меня на mob_home. Mob_home тем и выгоден, что неписи автоматически подыскивают для себя каверы, а не ходят тупо по путям, определённым разработчиками. Конечно, не всегда это удобно - в частности, не подходит для скриптовых сцен. А вот для симуляции "free alife" самое то ;)...

Кстати, правильнее будет ещё ввести задержку по времени, чтобы зомбарь не падал, как подкошенный, как только отойти от него на условленное расстояние. Тогда мертвяк ещё немного побродит, поругается, а потом свалится отдыхать ;)...

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

=VENOM= я вот так сделал -

custom_data = <<END

[logic]

active = mob_home@zite1

 

[mob_home@zite1]

path_home = kv_21

home_min_radius = 10

home_max_radius = 30

on_info = {=is_day}mob_walker@ttyyda

 

[mob_walker@ttyyda]

path_walk = kv_21

path_look = kv_21_luk

on_signal = kapez | mob_fake_death

 

[mob_fake_death@zitel]

on_actor_dist_le = 5 | nil

on_info = {!is_day}mob_home@zite1

END

 

и

 

[kv_21]

points = p0

p0:name = wp00

p0:flags = 0x1

p0:position = -125.097282409668,2.88700437545776,129.930755615234

p0:game_vertex_id = 2819

p0:level_vertex_id = 213940

 

 

[kv_21_luk]

points = p0

p0:name = wp00|sig=kapez

p0:flags = 0x1

p0:position = 31.2718868255615,15.6263113021851,30.4473152160645

p0:game_vertex_id = 2854

p0:level_vertex_id = 390089

 

 

Так что и симуляция "free alife" и на места свои возвращяются.

ПС-не подскажиш как задержку по времени, чтобы зомбарь не падал, как подкошенный сделать?

 

=VENOM= о спасибо за совет надо поправить, правда этих зомбаков - 40 штук =( .

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

Prefiero morir de pie, que vivir siempre arrodillado.
 

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

Присоединиться к обсуждению

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

Гость
К сожалению, ваш пост содержит слова, запрещенные в нашем сообществе. Пожалуйста, измените ваш текст так, чтобы в нем не оставалось слов, указанных ниже. Помните, что публикация вами даже видоизмененного запрещенного слова может нарушать законодательство РФ и Правила форума.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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