Модостроение. Спавн и логика
|
|
denis2000 | Дата: Пн, 10.10.2011, 21:20 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Спавн и логика Создание объектов на локации и логика поведения этих объектов Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7
Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML [cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл: 1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R]) 2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx" 3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо) Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#" Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]
[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти? Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда. Для того чтоб найти LOG необходимо зайти вот сюда:
В Win хр лог находится:
C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs
Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.
В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs
Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка: ... $app_data_root$ = true | false| $fs_root$| users\(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx) ... $logs$ = true| false| $app_data_root$| logs\(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи) ... [/cut][cut=Получение более подробной информации о вылете (ХОВАН)] Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...) Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так: Code function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый: Code Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil) Второй: Code Expression : 0 Function : ErrorLog File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp Line : 49 Description : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic' [/cut]
Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы, статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 01.12.2013, 18:29 | Сообщение # 721 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата NIV ( ) Пытался смотреть, как сделан treasure_manager в Чн - там большие отличия от ЗП. Единственными существенными отличиями тайников ЧН и ЗП, то что в ЧН они в контейнерах (treasure_box) и спавн предметов происходит в момент выдачи в ЗП они в рестрикторе тайника и предметы заспавнены с начала игры. Соответственно снятие метки происходит в ЧН после опустошения контейнера с меткой, а в ЗП после поднятия всех предметов из рестриктора тайника.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
makdm | Дата: Вс, 01.12.2013, 19:46 | Сообщение # 722 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| Цитата NIV ( ) Вопрос про автоматическое снятие меток меня тоже интересует Если пересчитывать предметы в тайнике и проверять все ли их забрал ГГ, то, как правильно написал denis2000, нужно использовать treasure_manager.script А вот если всё упростить и снимать метку с тайника, после его юзания ГГ ( не важно взял ГГ предметы или нет. В конце концов это дело игрока нужны они ему или нет), то можно сделать так:
1. В секции рюкзака или ящика прописываем custom_data = scripts\treasure_inventory_box.ltx 2. После спавна рюкзака или ящика ставим на него метку level.map_add_object_spot_ser( id_рюкзака_или_ящика, "treasure", "" ) 3. Открываем файл PH_IDLE.SCRIPT После строчки function action_idle:use_callback(obj, actor) пишем if level.map_has_object_spot(obj:id(), "treasure") ~= 0 then level.map_remove_object_spot(obj:id(), "treasure") end Теперь, как только ГГ откроет рюкзак или ящик - метка пропадёт.
Терпение...... И все получится!
|
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 01.12.2013, 22:52 | Сообщение # 723 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Добрый вечер. Интересует такой момент. Можно ли прописать иммунитет от выброса конкретному скваду с определенным STORY ID. В surge_manager нашел код
[cut=код]local immuned_to_surge_squads = { ["monster_predatory_day"] = true, ["monster_predatory_night"] = true, ["monster_vegetarian"] = true, ["monster_zombied_day"] = true, ["monster_zombied_night"] = true, ["monster_special"] = true, ["monster"] = true, ["zombied"] = true } [/cut] но он, как я понял, действует на всю группировку.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
makdm | Дата: Вс, 01.12.2013, 23:07 | Сообщение # 724 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| sergej5500, наличие story_id - это и есть иммунитет к выбросу. Сталкеры, в sgm моде, потому и не гибнут при выбросе, потому что у них прописан story_id. А гибнут только симуляционные сквады, у которых нет story_id.
Терпение...... И все получится!
Сообщение отредактировал makdm - Вс, 01.12.2013, 23:14 |
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 02.12.2013, 01:01 | Сообщение # 725 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Добрый вечер. Есть пара вопросов. 1. Переделал логику НПС на лесопилке для сталкерской базы.
[cut=Секция][logic@zat_b104_zombied_1_1] active = walker@walker_1_1 suitable = {=target_squad_name(zat_b104)} true prior = 200
[walker@walker_1_1] path_walk = 1_roam_1_walk path_look = 1_roam_1_look def_state_moving = walk def_state_standing = guard_chasovoy snd_on_use = {!dist_to_actor_le(3)} nil use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false[/cut]
НПС не хочет разговаривать с игроком и не рассказывает анекдоты. Как надо подправить логику?
2. Мне предложили идею запустить в патруль вокруг базы 3-х бойцов, так чтобы они шли группой. Если прописать им один путь, то они толкают друг друга. Некрасиво смотрится. Если прописать разные пути, то из-за отличающейся длины маршрута группа распадается. Есть ли возможность написать так, чтобы НПС под работой № 21 следовал за НПС под работой № 20 на дистанции, допустим, 2 метра.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 02.12.2013, 02:54 | Сообщение # 726 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата sergej5500 ( ) НПС не хочет разговаривать с игроком А где же секция meet? Читай КМБ Урок 7. Цитата sergej5500 ( ) не рассказывает анекдоты Для этого логика его должна быть animpoint! Читай КМБ Урок 18
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пн, 02.12.2013, 16:41 | Сообщение # 727 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Добрый день. Возник один вопрос, который меня озадачил.
[cut=Первый вариант логики Эльбруса.][logic] active = move@waiting_actor on_death = death
[death] on_info = {=killed_by_actor -zat_stalker_elbrus_enemy} %+zat_stalker_elbrus_enemy +zat_stalker_elbrus_death%, %+zat_stalker_elbrus_death%
[move@waiting_actor] move_dest_number = 1354156 move_state_when_center = hello_wpn move_state_when_move = walk move_look_subject = actor move_combat_disable = true meet = meet combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_info = {+zat_assault_bandit_base_bandits_lost -zat_assault_bandit_base_elbrus} nil %=release_npc% on_info2 = {+zat_assault_bandit_base_elbrus} move@pursue_actor %=play_s3d_sound(characters_voice\human_01\stalker\alife\attack\attack_begin_1) =zat_stalker_elbrus_spawn2% on_info3 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@pursue_actor] move_pursue_actor = true move_pursue_range = 8|35 move_pursue_formation = back move_combat_disable = true combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_actor_dist_ge_nvis = 35| move@themselves %=play_s2d_sound(characters_voice\human_01\stalker\alife\attack\wait_again_1)% on_info = {+zat_assault_bandit_base_actor_pos} move@themselves on_info2 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info3 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info4 = {+zat_bandit_base_actor_hit} move@assault_base %+zat_assault_bandit_base_choose =zat_b5_bandit_alies_stalker_alies_table_enemies% on_info5 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@themselves] move_dest_number = 1531223 move_state_when_center = hide move_state_when_move = assault move_look_subject = actor move_center_info = zat_assault_bandit_base_on_pos move_send_tip = zat_stalker_elbrus_need_command_title|zat_stalker_elbrus_need_command_text|elbrus|0|6000 move_combat_disable = true combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_signal = on_center|{+zat_assault_bandit_base_on_pos} move@waiting_signal %=autosave_game(save_zat_assault_bandit_base_wait_signal)% on_info = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info2 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info3 = {+zat_bandit_base_actor_hit} move@assault_base %+zat_assault_bandit_base_choose =zat_b5_bandit_alies_stalker_alies_table_enemies% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@waiting_signal] move_dest_number = 1531223 move_look_vertex = 1581785 move_state_when_center = hide move_state_when_move = assault move_combat_disable = true combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_info = {+zat_bandit_base_actor_hit} move@assault_base %+zat_assault_bandit_base_choose =zat_b5_bandit_alies_stalker_alies_table_enemies% on_info2 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info3 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@assault_base] move_dest_number = 1633419 move_state_when_center = guard move_state_when_move = raid on_info = {+zat_assault_bandit_base_bandits_lost} move@after_victory on_info2 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info3 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@after_victory] move_dest_number = 1633419 move_look_vertex = 1640615 move_state_when_center = sit_ass move_state_when_move = walk meet = meet_victory on_info = {+zat_stalker_elbrus_flesh_otdal =dist_to_actor_ge(125)} nil %=release_npc% on_info2 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info3 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[meet] abuse = false use = {+zat_assault_bandit_base_elbrus !actor_enemy} true, {-zat_assault_bandit_base_elbrus =dist_to_actor_le(6) !actor_enemy} self, false allow_break = false meet_on_talking = false trade_enable = false
[meet_victory] abuse = false use = {!actor_enemy} true, false allow_break = true meet_on_talking = false trade_enable = false[/cut]
При такой логике Эльбрус "капризничает". Не хочет говорить с ГГ.
[cut=Второй вариант логики Эльбруса.][logic] active = move@waiting_actor on_death = death
[death] on_info = {=killed_by_actor -zat_stalker_elbrus_enemy} %+zat_stalker_elbrus_enemy +zat_stalker_elbrus_death%, %+zat_stalker_elbrus_death%
[move@waiting_actor] move_dest_number = 1354156 move_state_when_center = hello_wpn move_state_when_move = walk move_look_subject = actor move_combat_disable = true meet = meet combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_info = {+zat_assault_bandit_base_bandits_lost -zat_assault_bandit_base_elbrus} nil %=release_npc% on_info2 = {+zat_assault_bandit_base_elbrus} move@pursue_actor %=play_s3d_sound(characters_voice\human_01\stalker\alife\attack\attack_begin_1) =zat_stalker_elbrus_spawn2% on_info3 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[meet] abuse = false use = {+zat_assault_bandit_base_elbrus !actor_enemy} true, {-zat_assault_bandit_base_elbrus =dist_to_actor_le(6) !actor_enemy} self, false allow_break = false meet_on_talking = false trade_enable = false
[move@pursue_actor] move_pursue_actor = true move_pursue_range = 8|35 move_pursue_formation = back move_combat_disable = true combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_actor_dist_ge_nvis = 35| move@themselves %=play_s2d_sound(characters_voice\human_01\stalker\alife\attack\wait_again_1)% on_info = {+zat_assault_bandit_base_actor_pos} move@themselves on_info2 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info3 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info4 = {+zat_bandit_base_actor_hit} move@assault_base %+zat_assault_bandit_base_choose =zat_b5_bandit_alies_stalker_alies_table_enemies% on_info5 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@themselves] move_dest_number = 1531223 move_state_when_center = hide move_state_when_move = assault move_look_subject = actor move_center_info = zat_assault_bandit_base_on_pos move_send_tip = zat_stalker_elbrus_need_command_title|zat_stalker_elbrus_need_command_text|elbrus|0|6000 move_combat_disable = true combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_signal = on_center|{+zat_assault_bandit_base_on_pos} move@waiting_signal %=autosave_game(save_zat_assault_bandit_base_wait_signal)% on_info = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info2 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info3 = {+zat_bandit_base_actor_hit} move@assault_base %+zat_assault_bandit_base_choose =zat_b5_bandit_alies_stalker_alies_table_enemies% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@waiting_signal] move_dest_number = 1531223 move_look_vertex = 1581785 move_state_when_center = hide move_state_when_move = assault move_combat_disable = true combat_ignore_cond = true combat_ignore_keep_when_attacked = true invulnerable = {!actor_enemy} true, false on_info = {+zat_bandit_base_actor_hit} move@assault_base %+zat_assault_bandit_base_choose =zat_b5_bandit_alies_stalker_alies_table_enemies% on_info2 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info3 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@assault_base] move_dest_number = 1633419 move_state_when_center = guard move_state_when_move = raid on_info = {+zat_assault_bandit_base_bandits_lost} move@after_victory on_info2 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info3 = {=dist_to_actor_ge(130)} nil %+zat_stalker_elbrus_enemy =actor_enemy% on_info4 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[move@after_victory] move_dest_number = 1633419 move_look_vertex = 1640615 move_state_when_center = sit_ass move_state_when_move = walk meet = meet_victory on_info = {+zat_stalker_elbrus_flesh_otdal =dist_to_actor_ge(125)} nil %=release_npc% on_info2 = {+zat_stalker_elbrus_enemy} nil %=actor_enemy% on_info3 = {=actor_enemy} nil %+zat_stalker_elbrus_enemy%
[meet_victory] abuse = false use = {!actor_enemy} true, false allow_break = true meet_on_talking = false trade_enable = false[/cut]
В этом варианте все происходит нормально. При подходе на нужную дистанцию Эльбрус начинает разговор. Почему секция meet не читается, когда она внизу файла? Буду благодарен за любые идеи.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Пн, 02.12.2013, 19:44 | Сообщение # 728 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Вероятно - это особенность парсинга ltx-файлов, я предпочитаю писать секцию (например meet) сразу после ее задействования.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
InvuL | Дата: Вт, 03.12.2013, 19:10 | Сообщение # 729 |
Отмычка
Пользователи
Сообщений: 25
| S.T.A.L.K.E.R Clear Sky 1.5.10 + SGM Я на кордоне пытаюсь создать сквад на свободном смарте, создать пытаюсь через файл по которому идёт подкрепление к военному блок посту:
[cut noguest=esc_support_military_spawn] Код [logic] active = sr_idle
[sr_idle] on_info = {!squad_exist(esc_smart_terrain_3_16_military_2_squad_1)} sr_idle@1pre on_info2 = {!squad_exist(esc_smart_terrain_3_16_military_2_squad_2)} sr_idle@2pre on_info3 = {!squad_exist(esc_smart_terrain_3_16_military_2_squad_3)} sr_idle@3pre on_info4 = {!squad_exist(esc_smart_terrain_3_16_military_2_squad_4)} sr_idle@4pre -->on_info5 = {!squad_exist(esc_stalker_dif_1_squad)} sr_idle@5pre
[sr_idle@1pre] on_game_timer = 120 | sr_idle@1
[sr_idle@1] on_actor_dist_ge_nvis = 80 | {!is_smart_captured(esc_smart_terrain_4_13)} sr_idle %=create_squad(esc_smart_terrain_3_16_military_2_squad_1:esc_smart_terrain_3_16)%
[sr_idle@2pre] on_game_timer = 120 | sr_idle@2
[sr_idle@2] on_actor_dist_ge_nvis = 80 | {!is_smart_captured(esc_smart_terrain_4_13)} sr_idle %=create_squad(esc_smart_terrain_3_16_military_2_squad_2:esc_smart_terrain_3_16)%
[sr_idle@3pre] on_game_timer = 120 | sr_idle@3
[sr_idle@3] on_actor_dist_ge_nvis = 80 | {!is_smart_captured(esc_smart_terrain_2_14)} sr_idle %=create_squad(esc_smart_terrain_3_16_military_2_squad_3:esc_smart_terrain_3_16)%
[sr_idle@4pre] on_game_timer = 120 | sr_idle@4
[sr_idle@4] on_actor_dist_ge_nvis = 80 | {!is_smart_captured(esc_smart_terrain_2_14)} sr_idle %=create_squad(esc_smart_terrain_3_16_military_2_squad_4:esc_smart_terrain_3_16)%
-->[sr_idle@5pre] -->on_actor_dist_ge_nvis = 80 | {!is_smart_captured(esc_smart_terrain_4_9)} sr_idle %=create_squad(esc_stalker_dif_1_squad:esc_smart_terrain_4_9)% [/cut]
Выхожу (первый раз) на кордон с болот, стою, смотрю в КПК, отряд видно, отображается. Но пытаясь к ним подойти (метров 100-150) игра вылетает.
[cut noguest=лог] Код ! Invalid ogg-comment version, file: d:\games\cs\gamedata\sounds\weapons\for_colt1911\colt1911_empty.ogg ! [LUA][ERROR] ERROR: Couldnt find sounds fight\post_combat_wait\relax_ with prefix characters_voice\human_01\stalker FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp [error]Line : 180 [error]Description : <no expression> [error]Arguments : LUA error: d:\games\cs\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil) [/cut]
Сообщение отредактировал InvuL - Вт, 03.12.2013, 19:12 |
|
|
Эти 0 пользователя(ей) поблагодарили InvuL за это полезное сообщение: |
|
|
makdm | Дата: Вт, 03.12.2013, 19:34 | Сообщение # 730 |
Рожденный в СССР
Разработчики
Сообщений: 1294
| InvuL, вот это sr_idle - это не нормальное переключение, хотя, как хотите.
Цитата InvuL ( ) [LUA][ERROR] ERROR: Couldnt find sounds fight\post_combat_wait\relax_ with prefix characters_voice\human_01\stalker А вот это говорит, что не хватает какого-то звука.
Терпение...... И все получится!
Сообщение отредактировал makdm - Вт, 03.12.2013, 19:35 |
|
|
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: |
|
|
InvuL | Дата: Вт, 03.12.2013, 19:41 | Сообщение # 731 |
Отмычка
Пользователи
Сообщений: 25
| А всё, разобрался: [cut=character_desc_unver.ltx] Код <specific_character id="esc_stalker_dif_1_1_1" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_npc_u_neutral_2</icon> <map_icon x="1" y="0"></map_icon> <bio>Бандит новичёк, стреляет как лох</bio> <class>esc_stalker_dif_1_1_1</class> <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>100</rank> <reputation>0</reputation> <visual>actors\stalker_neutral\stalker_neutral_4</visual> <snd_config>characters_voice\human_01\stalker\</snd_config> <supplies> [spawn] \n wpn_pkm \n ammo_pkm_100 = 1 \n wpn_beretta \n ammo_9x19_fmj = 1 \n grenade_rgd5 = 1 \n #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_1.xml" #include "gameplay\character_dialogs.xml" </specific_character> [/cut] Просто в настройке звука, забыл поставить слэш после слова ...\stalker. (до этого его там не было)
Сообщение отредактировал InvuL - Вт, 03.12.2013, 19:42 |
|
|
Эти 0 пользователя(ей) поблагодарили InvuL за это полезное сообщение: |
|
|
Азазель | Дата: Чт, 05.12.2013, 11:33 | Сообщение # 732 |
Новичок
Пользователи
Сообщений: 77
| Всем привет Такой вопрос. Как возможно воспроизводить анимации у объекта ? И через логику ли вообще. У объекта планируется как минимум 4 анимации. И все должны проигрываться при условии. (инфопоршень, куда же без них).
|
|
|
Эти 0 пользователя(ей) поблагодарили Азазель за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 05.12.2013, 12:55 | Сообщение # 733 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Азазель, Если это динамический объект на локации (дверь, лифт, вентилятор) то он может воспроизврдить только одну анимацию в прямом и обратном направлении, а если НПС или мутант, то несколько.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
sergej5500 | Дата: Вс, 08.12.2013, 00:23 | Сообщение # 734 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Добрый вечер. Известно, что после вступления в Долг (Свободу) Бродяга остается желтым (иногда вообще краснеет).
Посмотрел его файлы. [cut=jup_b4_monolit_logic_2] [sr_idle@duty] on_npc_in_zone = jup_b4_monolith_squad_leader_duty_skin |jup_surge_hide_a6 | sr_idle@nill %+jup_b4_monolith_squad_on_base =set_squad_goodwill(jup_b4_squad_duty_leader:1000)%
[sr_idle@freedom] on_npc_in_zone = jup_b4_monolith_squad_leader_freedom_skin |jup_surge_hide_a6 | sr_idle@nill %+jup_b4_monolith_squad_on_base =set_squad_goodwill(jup_b4_squad_freedom_leader:1000)%[/cut]
При замене set_squad_goodwill(jup_b4_squad_freedom_leader:1000) на set_squad_goodwill(jup_b4_squad_freedom_leader:friend) и дальнейшей загрузке сейва он оказывается красным.
Подстановка в конфиг сквада Бродяги-долговца параметра relationship = friend дает аналогичный результат. Бродяга красный. Вопрос, в чем может быть причина? Заранее спасибо за советы.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 08.12.2013, 19:31 | Сообщение # 735 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Повесь указанную функцию на "горячую кнопку" и проверь ее работу, возможно именно функция не срабатывает.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
|