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/
I am Dead 918 Опубликовано 26 Апреля 2021 Поделиться Опубликовано 26 Апреля 2021 @Biblia Блин, я сейчас не у компьютера поэтому не могу наизусть пример написать. Тем более в интернета полно уроков на эту тему. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381821
Biblia 4 Опубликовано 26 Апреля 2021 Поделиться Опубликовано 26 Апреля 2021 @I am Dead я гугли, но везде, увы, только проверки на наличие предмета и тому подобное, что мне сейчас не надо ( В ютубе пока не смотрел, ибо нет возможности. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381822
I am Dead 918 Опубликовано 26 Апреля 2021 Поделиться Опубликовано 26 Апреля 2021 @Biblia Пример можешь поглядеть в новом арсенале 6, там есть скрипт на озвучивание подбираемого предмета по его классу( самое первое что пришло где можно подглядеть пример использования). 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381824
Norman Eisenherz 354 Опубликовано 27 Апреля 2021 Поделиться Опубликовано 27 Апреля 2021 @Баба ЯГА [bind_physic_object.script] generic_physics_binder:use_callback(obj, who) Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381884
ARTLantist 14 Опубликовано 27 Апреля 2021 Поделиться Опубликовано 27 Апреля 2021 25.04.2021 в 23:16, Biblia сказал(а): Естественно, прописывать такое для каждого из предметов - глупо С чего ты это взял?) Даже в таком сложном в функциональном плане моде, как Dead Air, сделано для каждого предмета отдельно. Вот: Скрытый текст outfit = { [0] = "actor_effects.use_weapon(0)", [1] = "xr_effects.disable_ui_lite_with_imput(db.actor, nil)", [2] = "xr_effects.play_inv_repair_sewing_kit()", [378] = "actor_effects.use_helmet(0)", [379] = "xr_effects.disable_nv(db.actor, nil)", [380] = "xr_effects.disable_ui_inventory(db.actor, nil)", [550] = "level.add_cam_effector('camera_effects\\\\item_use_fast.anm', 8063, false,'')", [2900] = "level.add_pp_effector('surge_fade.ppe', 8023, false)", [3020] = "level.add_cam_effector('camera_effects\\\\item_use_slow.anm', 8064, false,'')", [6000] = "level.remove_pp_effector(8023)", [7001] = "xr_effects.enable_ui_lite(db.actor, nil)", [7002] = "actor_effects.use_helmet(1)", [7003] = "xr_effects.enable_nv_and_imput(db.actor, nil)", [7004] = "actor_effects.use_weapon(1)" }, helm = { [0] = "actor_effects.use_weapon(0)", [1] = "xr_effects.disable_ui_lite_with_imput(db.actor, nil)", [2] = "xr_effects.disable_nv(db.actor, nil)", [3] = "actor_effects.use_helmet(0)", [4] = "xr_effects.disable_nv(db.actor, nil)", [5] = "level.add_cam_effector('camera_effects\\\\item_use_fast.anm', 8053, false,'')", -- [6] = "xr_effects.play_inv_repair_sewing_kit()", [7] = "level.add_cam_effector('camera_effects\\\\item_use_slow.anm', 8054, false,'')", [380] = "xr_effects.disable_ui_inventory(db.actor, nil)", [1700] = "actor_effects.use_helmet(1)", [1701] = "xr_effects.enable_ui_lite(db.actor, nil)", [2500] = "xr_effects.enable_imput(db.actor, nil)", [2503] = "actor_effects.use_weapon(1)" }, gun_oil_dummy = { [0] = "actor_effects.use_weapon(0)", [1] = "xr_effects.disable_ui_lite_with_imput(db.actor, nil)", -- [378] = "actor_effects.use_helmet(0)", -- [379] = "xr_effects.disable_nv(db.actor, nil)", [550] = "level.add_cam_effector('camera_effects\\\\item_use.anm', 8053, false,'')", [1040] = "xr_effects.disable_ui_inventory(db.actor, nil)", [1460] = "xr_effects.play_inv_repair_spray_oil()", [4351] = "xr_effects.enable_ui_lite(db.actor, nil)", -- [5450] = "actor_effects.use_helmet(1)", [6050] = "xr_effects.enable_imput(db.actor, nil)", [6650] = "actor_effects.use_weapon(1)" }, gun_oil_2_dummy = { [0] = "actor_effects.use_weapon(0)", [1] = "xr_effects.disable_ui_lite_with_imput(db.actor, nil)", -- [378] = "actor_effects.use_helmet(0)", -- [379] = "xr_effects.disable_nv(db.actor, nil)", [550] = "level.add_cam_effector('camera_effects\\\\item_use.anm', 8053, false,'')", [1040] = "xr_effects.disable_ui_inventory(db.actor, nil)", [1460] = "xr_effects.play_inv_repair_spray_oil()", [4351] = "xr_effects.enable_ui_lite(db.actor, nil)", -- [5450] = "actor_effects.use_helmet(1)", [6050] = "xr_effects.enable_imput(db.actor, nil)", [6650] = "actor_effects.use_weapon(1)" }, cleaning_kit_p_dummy = { [0] = "actor_effects.use_weapon(0)", [1] = "xr_effects.disable_ui_lite_with_imput(db.actor, nil)", -- [378] = "actor_effects.use_helmet(0)", -- [379] = "xr_effects.disable_nv(db.actor, nil)", [550] = "level.add_cam_effector('camera_effects\\\\item_use_fast.anm', 8063, false,'')", [1040] = "xr_effects.disable_ui_inventory(db.actor, nil)", [1460] = "xr_effects.play_inv_repair_brushes()", [3020] = "level.add_cam_effector('camera_effects\\\\item_use.anm', 8064, false,'')", [7681] = "xr_effects.enable_ui_lite(db.actor, nil)", -- [8480] = "actor_effects.use_helmet(1)", [9080] = "xr_effects.enable_imput(db.actor, nil)", [9680] = "actor_effects.use_weapon(1)" }, cleaning_kit_p_2_dummy = { [0] = "actor_effects.use_weapon(0)", [1] = "xr_effects.disable_ui_lite_with_imput(db.actor, nil)", -- [378] = "actor_effects.use_helmet(0)", -- [379] = "xr_effects.disable_nv(db.actor, nil)", [550] = "level.add_cam_effector('camera_effects\\\\item_use_fast.anm', 8063, false,'')", [1040] = "xr_effects.disable_ui_inventory(db.actor, nil)", [1460] = "xr_effects.play_inv_repair_brushes()", [3020] = "level.add_cam_effector('camera_effects\\\\item_use.anm', 8064, false,'')", [7681] = "xr_effects.enable_ui_lite(db.actor, nil)", -- [8480] = "actor_effects.use_helmet(1)", [9080] = "xr_effects.enable_imput(db.actor, nil)", [9680] = "actor_effects.use_weapon(1)" }, cleaning_kit_p_3_dummy = { [0] = "actor_effects.use_weapon(0)", [1] = "xr_effects.disable_ui_lite_with_imput(db.actor, nil)", -- [378] = "actor_effects.use_helmet(0)", -- [379] = "xr_effects.disable_nv(db.actor, nil)", [550] = "level.add_cam_effector('camera_effects\\\\item_use_fast.anm', 8063, false,'')", [1040] = "xr_effects.disable_ui_inventory(db.actor, nil)", [1460] = "xr_effects.play_inv_repair_brushes()", [3020] = "level.add_cam_effector('camera_effects\\\\item_use.anm', 8064, false,'')", [7681] = "xr_effects.enable_ui_lite(db.actor, nil)", -- [8480] = "actor_effects.use_helmet(1)", [9080] = "xr_effects.enable_imput(db.actor, nil)", [9680] = "actor_effects.use_weapon(1)" }, --И далее для всех-всех-всех предметов, которые используют анимации Я же у себя сделал немного попроще - сделал общие скрипты анимаций для однотипных предметов - например, для всех таблеток одна анимация, для еды - другая, для воды - третья и т.д., и далее при использовании предмета отслеживаю его секцию и запускаю анимацию. У меня так сделано по большей части из-за нескольких юзаний одного типа предмета: Скрытый текст function use_item_stack(s_obj,obj) -- DRUGS USE -- caffeine x5 if(s_obj)and(s_obj:section_name()=="caffeine_5")then alife():create("caffeine_4", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) local sleep_ch = system_ini():r_float(s_obj:section_name(), "eat_sleep") ui_sleep_dialog.set_sleep(sleep_ch) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="caffeine_4")then alife():create("caffeine_3", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) local sleep_ch = system_ini():r_float(s_obj:section_name(), "eat_sleep") ui_sleep_dialog.set_sleep(sleep_ch) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="caffeine_3")then alife():create("caffeine_2", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) local sleep_ch = system_ini():r_float(s_obj:section_name(), "eat_sleep") ui_sleep_dialog.set_sleep(sleep_ch) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="caffeine_2")then alife():create("caffeine", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) local sleep_ch = system_ini():r_float(s_obj:section_name(), "eat_sleep") ui_sleep_dialog.set_sleep(sleep_ch) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="caffeine")then local sleep_ch = system_ini():r_float(s_obj:section_name(), "eat_sleep") ui_sleep_dialog.set_sleep(sleep_ch) items_animation.drugs_anims() end -- DRUGS -- drug_charcoal x5 if(s_obj)and(s_obj:section_name()=="drug_charcoal_5")then alife():create("drug_charcoal_4", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="drug_charcoal_4")then alife():create("drug_charcoal_3", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="drug_charcoal_3")then alife():create("drug_charcoal_2", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="drug_charcoal_2")then alife():create("drug_charcoal", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) items_animation.drugs_anims() end if(s_obj)and(s_obj:section_name()=="drug_charcoal")then items_animation.drugs_anims() end -- drug_coagulant x5 if(s_obj)and(s_obj:section_name()=="drug_coagulant_5")then alife():create("drug_coagulant_4", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) items_animation.drugs_anims() end и т.д. для всех предметов. Насколько я понял, у тебя в конфигах указывается тип используемого предмета. Так в чём, собственно проблема? В колбеке на использование предмета делаешь ссылку на функцию, в которой проверяешь, чему эта секция равна, и запускаешь анимку в зависимости от результата: -- в конфиге: [kolbasa]:booster, food_base $spawn = "food and drugs\kolbasa" visual = dynamics\devices\dev_kolbasa\dev_kolbasa.ogf description = st_kolbasa_descr inv_name = st_kolbasa inv_name_short = st_kolbasa inv_weight = 0.4 inv_grid_width = 1 inv_grid_height = 1 inv_grid_x = 35 inv_grid_y = 18 cost = 960 attach_angle_offset = 0.440521, 1.378287, -0.644026 attach_position_offset = 0.104196, -0.010821, 0.076969 attach_bone_name = bip01_r_hand auto_attach = false eat_satiety = 0.646 eat_radiation = 0.0 eat_alcohol = 0.100 eat_health = -0.05 use_sound = interface\inv_eat_paperwrap anim_type = food --тип анимации --в скрипте: local anim_type = ini:r_string(obj:section(), "anim_type") if anim_type == "food" then --запускаешь камеру и всё, что нужно elseif anim_type == "drug" then ... end И в дополнение, запускать функцию на проверку типа анимации предмета надо из bind_stalker.script таким образом: --функция: function actor_binder:use_inventory_item(obj) --в конце её, перед последним end, пишешь: items_manager.use_item_stack(obj) -- твоя функция (я вставил свою для примера) end 26.04.2021 в 07:33, I am Dead сказал(а): Как сделать тоже самое только для проверки предмета который находится на поясе? Добавлять в движке итератор для пояса и с его помощью проверять наличие предмета нужной секции. Иначе никак. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381925
I am Dead 918 Опубликовано 27 Апреля 2021 Поделиться Опубликовано 27 Апреля 2021 49 минут назад, ARTLantist сказал(а): Добавлять в движке итератор для пояса и с его помощью проверять наличие предмета нужной секции. Иначе никак. Подсказали функцию которая замечательно работает. Скрытый текст function actor_has_item_on_belt(actor, npc, p) local obj = actor:object(p[1]) return obj and actor:is_on_belt(obj) end 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381927
ARTLantist 14 Опубликовано 27 Апреля 2021 Поделиться Опубликовано 27 Апреля 2021 @I am Dead а какая платформа? Просто на чистой зп ни в скриптах (_g.script), ни в движке нет такой функции Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381928
I am Dead 918 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 @ARTLantist Функция такая я как понял в OGSR моде присутствует. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381939
ARTLantist 14 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 @I am Dead так у тебя ОГСР? Тогда другое дело. Там и итератор тебе сразу есть, и эти проверки - is_on_belt, is_on_ruck и куча всего другого. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381940
I am Dead 918 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 (изменено) @ARTLantist Тогда вопрос уже другой, как эту функцию переделать под огср. Скрытый текст -- переносим все вещи из ящика с указанным story_id function transfer_from_box(box_sid) local box = level_object_by_sid(box_sid) if box then box:iterate_inventory_box(function(item) box:transfer_item(item, db.actor) end) end end С такой функцией у меня идет ругань на iterate_inventory_box так как в движке его нету, происходит вылет. Изменено 28 Апреля 2021 пользователем I am Dead Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381941
Stalkersof 209 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 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 -------------------------- -------------------------- -------------------------- NewUI4.main() --self:mutanter_use(obj,who) end Разделил функцию на две. Где self:mutanter_use(obj,who) это все действия по обыску трупов. NewUI4.main() это собственно окно с двумя кнопками. Если вызываю из окна при нажатии кнопки скрипт валиться из за отсутствия переменных. Если функцию без окна запускаю все работает. Вызываю собственно так. function NewUI4:button1_button_clicked() bind_monster.generic_object_binder:mutanter_use() --bind_monster.generic_object_binder:mutanter_use(obj,who) self:Hide() end Freeplay Graphic Mod(FGM) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381944
I am Dead 918 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 @Stalkersof Попробуй так сделать: Скрытый текст 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 -------------------------- -------------------------- -------------------------- level.start_stop_menu(NewUI4.main(), true) --self:mutanter_use(obj,who) end Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381945
Stalkersof 209 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 44 минуты назад, I am Dead сказал(а): @Stalkersof Попробуй так сделать: Показать 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 -------------------------- -------------------------- -------------------------- level.start_stop_menu(NewUI4.main(), true) --self:mutanter_use(obj,who) end Не а не получается. NewUI4.main() это скрипт и функция в нем. Окно появляется и кнопки и все. function main() local hud = NewUI4(get_hud()) level.start_stop_menu(hud, true) end Попытаюсь еще раз объяснить проблему функция self:mutanter_use(obj,who) вызываемая непосредственно в скрипте. Прекрасно работает. Комментирую ее и пытаюсь вызвать при нажатии кнопки вылет. Либо не корректные параметры либо отсутствие параметров. Т.е вот это (obj,who)я не могу передать из другого скрипта. Freeplay Graphic Mod(FGM) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381949
ARTLantist 14 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 @Stalkersof заведомо безнадёжная идея делать так, как сделано у тебя. При смерти мутанта в биндере он отлавливается и все действия относятся к нему, а когда ты хочешь заупустить из другой функции что-то из биндера монстров, ты уже теряешь этого монстра. Используй логические переменные и пересылай их в свой скрипт с ГУИ окном, там после нажатия кнопки делай true и в апдейте биндера монстров отлавливай момент, когда эта переменная true, выполняй нужные действия. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381951
Stalkersof 209 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 2 минуты назад, ARTLantist сказал(а): @Stalkersof заведомо безнадёжная идея делать так, как сделано у тебя. При смерти мутанта в биндере он отлавливается и все действия относятся к нему, а когда ты хочешь заупустить из другой функции что-то из биндера монстров, ты уже теряешь этого монстра. Используй логические переменные и пересылай их в свой скрипт с ГУИ окном, там после нажатия кнопки делай true и в апдейте биндера монстров отлавливай момент, когда эта переменная true, выполняй нужные действия. Вроде с переменными тоже пробовал. Хорошо еще раз попробую. Freeplay Graphic Mod(FGM) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381952
ARTLantist 14 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 (изменено) @I am Dead ну, либо лезть в движок, либо костыльно как-то перебирать все предметы в ящике. Как вариант, попробуй так: Скрытый текст local cnt = box:object_count() for i=0, cnt-1 do local item = box:object(i) --нужные действия end Сразу говорю, что не ручаюсь за работоспособность у inventory_box, я эту функцию раньше использовал только для актора @Stalkersof и вообще, зачем тебе обратно ссылаться на биндер монстров? Можно же в скрипте с ГУИ выдать все нужные предметы и не забивать себе голову. Изменено 28 Апреля 2021 пользователем ARTLantist Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381953
Stalkersof 209 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 11 минут назад, ARTLantist сказал(а): @Stalkersof и вообще, зачем тебе обратно ссылаться на биндер монстров? Можно же в скрипте с ГУИ выдать все нужные предметы и не забивать себе голову. У меня там не только предметы(запчасти) чтение конфига монстра, удар ножом, хит монстру и анимация. Мне вот это и актор нужен там и монстр(obj,who) надо. Freeplay Graphic Mod(FGM) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381954
ARTLantist 14 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 1 минуту назад, Stalkersof сказал(а): и актор нужен там и монстр(obj,who) Перешли их в скрипт с ГУИ окном: NewUI4.main(obj,who) и там уже устанавливай в той функции function main(obj,who) self.actor = who self.monstr = obj --и далее нужное и всё. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381956
Space.Marine 466 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 Попросил помощи с проверкой скрипта на предыдущей странице, но в виду "оживлённой" беседы моё сообщение, видимо, просто осталось без внимания... Попрошу ешо раз: Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1381974
Biblia 4 Опубликовано 28 Апреля 2021 Поделиться Опубликовано 28 Апреля 2021 @ARTLantist я все переправил уже. Сделал плюс-минус как ты, только естесн, параметры назвал по-другому Вот еще вопрос: может кто-то может подсказать мод на ЗП, в котором была перенесена из ТЧ скриптовая система фейк слотов с ножом, фонариком и т.д. Просто ввиду того, что еще новичок - скрипты-то совместить я умею, и даже что-то элементарное написать, но вот перенести с одной платформы на другую... Ибо я просто не знаю различий в функциях и т.д. Потому и спрашиваю, может что-то готовое есть 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/557/#findComment-1382000
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти