Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
Labadal 68 Опубликовано 14 Ноября 2021 Поделиться Опубликовано 14 Ноября 2021 (изменено) upd: 2. Функция on_actor_pay(). (та, что выше, рассчитана для оружия, в котором всего один патрон, эта - подойдет для любого) function on_actor_pay() local curr_ammo_yes = db.actor:active_item():get_ammo_in_magazine() =============================================--свой код писать только ниже этой полоски -- тут код того, что вы хотите сделать при выстреле =============================================--свой код писать только выше этой полоски if curr_ammo_yes== 0 then start_timer() end end Изменено 14 Ноября 2021 пользователем Labadal God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1402220
Капрал Хикс 561 Опубликовано 18 Ноября 2021 Поделиться Опубликовано 18 Ноября 2021 Всем привет. Решил тут прикрутить-таки звуки приветствия и прощания Сахарову для ТЧ, на манер ЧН... Скрытый текст --дописано yan_professor_hello = {min_snd = 1, max_snd = 1, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}, yan_professor_goodbye = {min_snd = 1, max_snd = 1, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}}, Скрытый текст --дописано [yan_professor_hello_rnd] yan_general_ecolog = 0,scenario\yantar\yan_sakharov_meet_ [yan_professor_goodbye_rnd] yan_general_ecolog = 0,scenario\yantar\yan_sakharov_meet_bye_ Соотв. звуки добавлены в нужную папку. А вот с файлом логики Сахарова у меня непонятки. Скрытый текст [logic] active = walker@yan_start actor_dialogs = actor_dialogs combat_ignore = combat_ignore trade = misc\trade_ecolog.ltx inv_max_weight = 10000 [walker@yan_start] path_walk = yan_ucheniy_walk_talk path_look = yan_ucheniy_look_talk combat_ignore_cond = always on_info = {-yantar_kruglov_phrase_2 +yantar_scientists_talk} remark@yan_professor_talk_1 on_info2 = {+yantar_kruglov_phrase_2} walker@yan_1 danger = danger_condition@yan_ecolog def_state_standing = yan_professor_wait def_state_moving1 = yan_professor_walk def_state_moving2 = yan_professor_walk def_state_moving3 = yan_professor_walk meet = no_meet [remark@yan_professor_talk_1] snd = yantar_professor_to_kruglov_1 anim = yan_professor_wait target = logic@scientist_out_rest, yan_scientist on_timer = 5000 | %+yantar_kruglov_phrase_1% on_info = {+yantar_professor_phrase_2} remark@yan_professor_talk_2 combat_ignore_cond = always danger = danger_condition@yan_ecolog meet = no_meet [remark@yan_professor_talk_2] snd = yantar_professor_to_kruglov_2 anim = yan_professor_wait target = logic@scientist_out_rest, yan_scientist on_timer = 5000 | walker@yan_1 %+yantar_kruglov_phrase_2% combat_ignore_cond = always danger = danger_condition@yan_ecolog meet = no_meet [walker@yan_1] path_walk = yan_ucheniy_walk path_look = yan_ucheniy_look combat_ignore_cond = always on_info = {+yan_actor_talk_ucheniy} walker@yan_2 on_info2 = {+yan_find_scientist_done} walker@scientist_quest_good danger = danger_condition@yan_ecolog def_state_standing = yan_professor_wait def_state_moving1 = yan_professor_walk def_state_moving2 = yan_professor_walk def_state_moving3 = yan_professor_walk meet = meet@yan_general_scientist_1 ;Дописано on_actor_dist_le = 2 | remark@yan_professor_hello on_actor_dist_ge = 4 | remark@yan_professor_goodbye [walker@scientist_quest_good] path_walk = yan_ucheniy_walk_talk path_look = yan_ucheniy_look_talk combat_ignore_cond = always on_info = {+yantar_scientist_talk_helmet} remark@talk_about_helmet danger = danger_condition@yan_ecolog def_state_standing = yan_professor_wait def_state_moving1 = yan_professor_walk def_state_moving2 = yan_professor_walk def_state_moving3 = yan_professor_walk meet = meet@yan_general_scientist_1 ;Дописано on_actor_dist_le = 2 | remark3@yan_professor_hello on_actor_dist_ge = 4 | remark3@yan_professor_goodbye [remark@talk_about_helmet] snd = yantar_professor_radiation_quest_2 anim = yan_professor_wait target = logic@scientist_out_rest, yan_scientist meet = no_meet combat_ignore_cond = always on_signal = sound_end | walker@go_to_room %-yantar_scientist_talk_helmet% danger = danger_condition@yan_ecolog [walker@go_to_room] path_walk = yan_general_scientist_room_walk path_look = yan_general_scientist_room_look on_signal = make_helmet | remark@make_helmet combat_ignore_cond = always danger = danger_condition@yan_ecolog meet = no_meet def_state_standing = yan_professor_wait def_state_moving1 = yan_professor_walk def_state_moving2 = yan_professor_walk def_state_moving3 = yan_professor_walk [remark@make_helmet] anim = mode_shlem target = 920 combat_ignore_cond = always on_signal = action_end | walker@go_to_actor danger = danger_condition@yan_ecolog meet = no_meet [walker@go_to_actor] path_walk = yan_ucheniy_walk_talk path_look = yan_ucheniy_look_talk combat_ignore_cond = always on_info = {+yan_kill_brain_task_start} walker@yan_2 danger = danger_condition@yan_ecolog def_state_standing = yan_professor_wait def_state_moving1 = yan_professor_walk def_state_moving2 = yan_professor_walk def_state_moving3 = yan_professor_walk meet = meet@yan_general_scientist_1 ;Дописано on_actor_dist_le = 2 | remark3@yan_professor_hello on_actor_dist_ge = 4 | remark3@yan_professor_goodbye [walker@yan_2] path_walk = yan_ucheniy_walk_talk path_look = yan_ucheniy_look_talk combat_ignore_cond = always on_info = {-yan_actor_talk_ucheniy} walker@yan_1 on_info2 = {+yantar_scientist_talk_helmet} remark@talk_about_helmet meet = meet@yan_general_scientist_1 danger = danger_condition@yan_ecolog def_state_standing = yan_professor_wait def_state_moving1 = yan_professor_walk def_state_moving2 = yan_professor_walk def_state_moving3 = yan_professor_walk [meet@yan_general_scientist] meet_state = 2 | yan_professor_wait@yantar_professor_talk_1 meet_state_wpn = 2 | yan_professor_wait@yantar_professor_talk_1 victim = 2 | actor victim_wpn = nil use = true use_wpn = false [meet@yan_general_scientist_1] meet_state = 1 | yan_professor_wait@yantar_professor_talk_1 meet_state_wpn = 1 | yan_professor_wait@yantar_professor_talk_1 victim = 1 | actor victim_wpn = nil use = true use_wpn = false abuse = false precond = usability [meet@no_talk] meet_state = 1 | yan_professor_wait@yantar_professor_talk_1 meet_state_wpn = 1 | yan_professor_wait@yantar_professor_talk_1 victim = 1 | actor victim_wpn = nil use = false use_wpn = false abuse = false [danger_condition@yan_ecolog] ignore_distance = 0 [actor_dialogs] id = yantar_general_ucheniy_talk_start,yantar_general_ucheniy_talk_end [combat_ignore] combat_ignore_cond = always ;Дописано [remark@yan_professor_hello] anim = yan_professor_wait snd = yan_professor_hello on_signal = sound_end | walker@yan_1 [remark@yan_professor_goodbye] anim = yan_professor_wait snd = yan_professor_goodbye on_signal = sound_end | walker@yan_1 [remark2@yan_professor_hello] anim = yan_professor_wait snd = yan_professor_hello on_signal = sound_end | walker@yan_2 [remark2@yan_professor_goodbye] anim = yan_professor_wait snd = yan_professor_goodbye on_signal = sound_end | walker@yan_2 [remark3@yan_professor_hello] anim = yan_professor_wait snd = yan_professor_hello on_signal = sound_end | walker@scientist_quest_good [remark3@yan_professor_goodbye] anim = yan_professor_wait snd = yan_professor_goodbye on_signal = sound_end | walker@scientist_quest_good В общем, при приближении ближе 2 метров по идее должен здороваться, при удалении более чем на 4 метра прощаться. Но работает только прощание изредка и то при этом, Сахарова можно поймать при подходе к столу так, что будет звучать только рандомное прощание. Где я с логикой накосячил? 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1402772
Colder 12 Опубликовано 28 Ноября 2021 Поделиться Опубликовано 28 Ноября 2021 Всем привет. Возможно ли в рексисторе проверить нахождение в нем мутантов? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404028
naxac 2 594 Опубликовано 29 Ноября 2021 Поделиться Опубликовано 29 Ноября 2021 (изменено) @Colder , что-то вроде такого (если вызывать из логики) function some_monster_inside(actor, rest) local obj for k,v in pairs(db.storage) do obj = level.object_by_id(k) if obj and alife():object(k) and IsMonster(obj) then if rest:inside(obj:position()) then return true end end end return false end Изменено 29 Ноября 2021 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404041
Colder 12 Опубликовано 29 Ноября 2021 Поделиться Опубликовано 29 Ноября 2021 Подскажите откуда можно вытащить скрипт отлова мини-карты? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404095
Rod_K 1 Опубликовано 30 Ноября 2021 Поделиться Опубликовано 30 Ноября 2021 (изменено) Подскажите, пожалуйста, есть ли способ вывести систему репутации на худ и представить её в виде шкалы, где плохая репутация окрашивается в красный, хорошая в зеленый соответственно? Возможно что-то подобное уже было реализовано, если да, то прошу оповестить. Платформа ТЧ. https://infamous.fandom.com/wiki/Karma?file=Meter.jpg P.S. В скриншотах показываю как в идеале должно это выглядить. Игра на скрине, если что, игра Infamous. Изменено 30 Ноября 2021 пользователем Rod_K Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404104
Colder 12 Опубликовано 30 Ноября 2021 Поделиться Опубликовано 30 Ноября 2021 Создал фриплейный старт игры https://yadi.sk/i/ya2rFPr8BFbS-A Пытаюсь заспавнить предметы в инвентарь так: Скрытый текст Сама кнопка function ui_main_menu_new:novice_on_start() local console = get_console() console:execute("g_game_difficulty gd_novice") self:StartGame() start_game_novice() end Функция function start_game_novice() local spawn_items = { "wpn_pm", "medkit", "conserva", "zvezda_2", "bandage" } for i = 1,2 do table.insert(spawn_items, "ammo_9x18_fmj") end local k,v = 0,0 for k,v in pairs(spawn_items) do alife():create(v, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end Может кто подсказать как все таки заспавнить предметы. Скрытый текст function start_game_novice() local ini = ini_file("misc\\items_link.ltx") if not ini then ini=system_ini() end if ini:section_exist("generic_list") then local n = ini:line_count("generic_list") local key = math.random(0,n-1) local result, item, num = ini:r_line("generic_list",key,"","") return item, num end end в ltx [generic_list] wpn_pm = 0.7 Тоже не выходит Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404105
I am Dead 918 Опубликовано 30 Ноября 2021 Поделиться Опубликовано 30 Ноября 2021 (изменено) 7 часов назад, Colder сказал: скрипт отлова мини-карты? Скрытый текст function init_minimap() local wnd = get_main_window() minimap_static = wnd:GetStatic( "minimap" ) back_static = wnd:GetStatic( "minimap:background" ) frame_static = wnd:GetStatic( "minimap:level_frame" ) compass_static = wnd:GetStatic( "minimap:compass" ) end P.S Можешь посмотреть тут еще https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/dsh/dsh_ui_minimap.script#L94 Изменено 30 Ноября 2021 пользователем I am Dead 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404107
Rod_K 1 Опубликовано 2 Декабря 2021 Поделиться Опубликовано 2 Декабря 2021 Здравствуйте, не могу разобраться как работает модуль m_netpk от Artos'a, хочу попробовать как в примере переместить вентилятор из бункера на тумбочку в лагере новичков, но не чего не происходит. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404302
Капрал Хикс 561 Опубликовано 4 Декабря 2021 Поделиться Опубликовано 4 Декабря 2021 И всё-таки что за ерунда с вылетом вида: stack trace: 0023:05175AF0 xrGame.dll [error][ 87] : Параметр задан неверно. Делаем квиксейв клавишей F6, при попытке загрузиться с него клавишей F7 (или другой назначенной) - вылет выше, при попытке загрузиться с него из меню - всё грузится нормально... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404459
_g.script 3 669 Опубликовано 5 Декабря 2021 Поделиться Опубликовано 5 Декабря 2021 1 час назад, Капрал Хикс сказал: Параметр задан неверно Ну вот очень знакомые слова. Значит где-то встречал. Здесь видел или себя, но у себя я всегда назначаю клавиши F5/F8. Если такой вылет и был у меня, то либо вначале игры на базовых настойках, либо он возможен на моих тоже... Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404463
Капрал Хикс 561 Опубликовано 5 Декабря 2021 Поделиться Опубликовано 5 Декабря 2021 7 часов назад, mole venomous сказал: Ну вот очень знакомые слова. Страница 556 этой темы, я уже сталкивался с подобным и мне помогли, а тут опять эта ерунда вылезла. Клавиша быстрой загрузки роли не играет, пробовал назначить F9 - та же петрушка с вылетом. Из меню грузится нормально. Ерунда какая-то... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404483
Капрал Хикс 561 Опубликовано 8 Декабря 2021 Поделиться Опубликовано 8 Декабря 2021 Может такое быть, что вылет вида: stack trace: 0023:05175AF0 xrGame.dll [error][ 87] : Параметр задан неверно. вызван тем, что какой-то из скриптов сохранён в формате UTF-8, а не ANSI? Я просто не знаю, на что подумать ещё. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404875
Rod_K 1 Опубликовано 8 Декабря 2021 Поделиться Опубликовано 8 Декабря 2021 Приветствую всех! Созрело несколько вопросов, на которые (хотя бы на некоторые) хотелось бы получить ответ, либо же дельный совет. 1. Подскажите как в главном меню можно изменить разрешение видео с 1024х768 на 1920х1080 без правок двига? 2. Как можно сменить имя и иконку гг по ходу игры? 3. Есть ли способ вывести на худ переработанную карму (репутацию) гг и представить ее в числовом виде (то есть, допустим, при обыске персонажа карма уменьшается, на худ приходит уведомление + число на худе уменьшается на 5 показателей)? 4. Как можно вывести иконку гг на худ и сделать ее динамической (то есть настроить сменяемость картинок таким образом, чтобы получилась анимация (примерно как в 1 думе)). 5. Есть ли способ вывода любого изображения на сам худ инвентаря? (Допустим, на место где указано имя и иконка гг) 6. Также интересует момент с выводом абсолютно рандомной динамической картинки на карту пда, чтобы, допустим, закрасить недоступные локации, а потом эти картинки убрать. 7. Существует ли на чистом тч нормальный пак с анимациями применения предметов из инвентаря. Интересует именно в высоком разрешении анимации, допустим, как от LADS, но на чистой ТЧ. 8. Прошу скинуть скрипты на тч, которые не дают игроку открыть пда, инвентарь и диалоговое окно. Платформа разработки, соответственно, ТЧ. Заранее спасибо! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404914
Norman Eisenherz 354 Опубликовано 9 Декабря 2021 Поделиться Опубликовано 9 Декабря 2021 Новые окна в интерфейсе: 1. Позади существующих окон или в свободной области, авто-скрытие вместе с HUD: get_hud():Add/RemoveCustomStatic(имя), где имя – ссылка на XML-описание окна или хотя бы пустышки в [config\ui\ui_custom_msgs.xml]. 2. Поверх существующих окон, скрывать вручную (в катсценах по инфо-поршням или привязкой к [scripts\xr_effects.script] disable_ui, при использовании оптики через апдейт и т. д.): get_hud():Add/RemoveDialogToRender(cuiw), где cuiw – окно класса CUIWindow или любого из дочерних классов со скриптовым описанием. Вариант: level.add/remove_dialog_to_render(cuiw). Обязательно сохранять такие окна в переменные и чистить их в actor_binder:net_destroy(), если окна могут быть открытыми при перезагрузке (включая смерть при открытом инвентаре). 3. Привязкой к движковым окнам – например, к инвентарю: инфо-поршень ui_inventory + inv = level.main_input_receiver(), затем inv:AttachChild(cuiw). При перезагрузке хотя бы закрывать дочерние окна, а лучше удалять при каждом выходе из инвентаря. Варианты анимации текстур: 1. Цикл с запуском от случайного кадра: текстовый файл с именем текстуры, расширением SEQ и описанием "кадров/с имя имя …" Образец – анимированный указатель мыши. Можно ставить несколько одинаковых кадров для вывода дольше секунды или с долями, вроде "2 кадра в секунду + 3 копии = 1,5 секунды на кадр". 2. Анимация с набором кадров в общей текстуре: XML-описание под заголовком <a_static> (не везде работает) или скриптовый вызов InitAnimStatic(окно, родитель). Образец – анимированные кольца и кубики в заголовках "Энциклопедии". 3. Теги анимации light_anim и xform_anim в XML-описании – мигание с циклом 1 или 2 секунды, поворот на месте, масштаб ±. Список доступных вариантов – [gamedata\lanims.xr]. 4. Скриптовая замена текстуры окна по таймеру с привязкой к time_global() через апдейт. Способ запретить диалог или инвентарь, ЕМНИП, в чистом ТЧ только один: отследить любое окно через апдейт level.main_input_receiver() ~= nil или отдельно по инфо-поршням ui_trade / ui_inventory / ui_talk / ui_pda, после чего закрыть окно wnd = level.main_input_receiver() через level.start_stop_menu(wnd) или wnd:GetHolder():start_stop_menu(wnd). Скрипт реагирует на событие вывода окна, так что долю секунды будет и само окно, и взаимодействие с ним. Для закрашивания области карты с учетом перемещения можно, разве что, создать метку level.map_add_object_spot(id, имя, "") с непрозрачной текстурой, но это еще надо сослаться на id какого-то объекта – можно на id рестриктора, если область с логикой, вроде аномалии, тайника или зоны "убрать оружие". 2 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1404916
AndreySol 215 Опубликовано 10 Декабря 2021 Поделиться Опубликовано 10 Декабря 2021 @Rod_K Практически все ваши хотелки - только под правку движка, некоторые частично можно реализовать скриптовыми кривыми костылями(уже примерно написал NE). Если вы надеетесь на чудо, что кто-то вам щас вынет зайчика из шляпы - забудьте. 1 4 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1405110
I am Dead 918 Опубликовано 13 Декабря 2021 Поделиться Опубликовано 13 Декабря 2021 @Rod_K Половину списка можно сделать и без правок движка( мб и больше ),ноо,в исходя из данных вопросов, ПОКА ЧТО не в твоём случае 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1405703
Colder 12 Опубликовано 16 Декабря 2021 Поделиться Опубликовано 16 Декабря 2021 (изменено) Прошу помощи! Не срабатывает проверка: Скрытый текст function generic_object_binder:use_callback(obj, who) if self.use_flag == nil and self.object:section()~="m_trader" then self.object:set_nonscript_usable(false) self.use_flag = true end if self.object:alive() or self.used then return end local knife = who:item_in_slot(0) if who:id() ~= db.actor:id() or (knife~=nil and who:active_slot() == 0) then local wnd = mutant_lut.MutaNTlut(obj,who) level.start_stop_menu(wnd, true) wnd.owner = self self.used = true else news_manager.send_tip(db.actor,"1 есть!") if db.actor:item_in_slot(0):condition() <= 0.20 then news_manager.send_tip(db.actor,"2 есть!") end return end end Изменено 16 Декабря 2021 пользователем Colder Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1406064
Sla-Sla 43 Опубликовано 24 Декабря 2021 Поделиться Опубликовано 24 Декабря 2021 Всем привет, пилил озвучку ГГ во время убийства мутантов на ЗП, все ок, звуки запускаются, но обрываются спустя 2 секунды. С файлами звуков все окей, вне игры воспроизводятся полностью. С чем это может быть связано? Код в bind_monster.script, в функции death_callback: local snd_ppc = { [clsid.bloodsucker_s] = {'ppc\\kill\\humanoid_1','ppc\\kill\\monster_1'} } if snd_ppc[victim:clsid()] then sound_object(snd_ppc[victim:clsid()][math.random(#snd_ppc[victim:clsid()])]):play(db.actor,0,sound_object.s2d) end Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1406798
dsh 3 824 Опубликовано 24 Декабря 2021 Поделиться Опубликовано 24 Декабря 2021 Скорее всего, твой sound_object удаляет уборщик мусора, вот звук и выключается. Сохраняй его где-нибудь. Или play_no_feedback используй, должно помочь. 1 1 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/582/#findComment-1406815
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти