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/
Redix 0 Опубликовано 26 Сентября 2020 Поделиться Опубликовано 26 Сентября 2020 Нужен скриптер, возможно ли переделать скрипт из мода Dynamics Helmets на ЗП в ТЧ? Поменял только названия визуалов, вылет. Скрытый текст [26.09.20 15:11:25.868] ********************************************************************************* [26.09.20 15:11:25.868] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR: ....a.l.k.e.r - shadow of chernobyl\gamedata\scripts\m_visuals.script:125: bad argument #1 to 'find' (string expected, got nil) stack traceback: [C]: at 0x7ff92d71b8d8 [C]: in function 'find' ....a.l.k.e.r - shadow of chernobyl\gamedata\scripts\m_visuals.script:125: in function 'str_explode' ....a.l.k.e.r - shadow of chernobyl\gamedata\scripts\m_visuals.script:68: in function 'update' ...l.k.e.r - shadow of chernobyl\gamedata\scripts\bind_stalker.script:340: in function <...l.k.e.r - shadow of chernobyl\gamedata\scripts\bind_stalker.script:214> [26.09.20 15:11:25.868] ********************************************************************************* [26.09.20 15:11:25.868] FATAL ERROR [error]Expression : FATAL ERROR [error]Function : CScriptEngine::lua_pcall_failed [error]File : c:\projects\ogsr-engine\ogsr_engine\common_ai\script_engine.cpp [error]Line : 52 [error]Description : [CScriptEngine::lua_pcall_failed]: ....a.l.k.e.r - shadow of chernobyl\gamedata\scripts\m_visuals.script:125: bad argument #1 to 'find' (string expected, got nil) [26.09.20 15:11:25.868] ***************************[ScriptCrashHandler]********************************** [26.09.20 15:11:25.868] stack traceback: [C]: at 0x7ff92d71b8d8 [C]: in function 'find' ....a.l.k.e.r - shadow of chernobyl\gamedata\scripts\m_visuals.script:125: in function 'str_explode' ....a.l.k.e.r - shadow of chernobyl\gamedata\scripts\m_visuals.script:68: in function 'update' ...l.k.e.r - shadow of chernobyl\gamedata\scripts\bind_stalker.script:340: in function <...l.k.e.r - shadow of chernobyl\gamedata\scripts\bind_stalker.script:214> [26.09.20 15:11:25.868] Locals: [26.09.20 15:11:25.868] string (*temporary) : ....a.l.k.e.r - shadow of chernobyl\gamedata\scripts\m_visuals.script:125: bad argument #1 to 'find' (string expected, got nil) [26.09.20 15:11:25.868] End [26.09.20 15:11:25.868] Locals: [26.09.20 15:11:25.868] nil (*temporary) : [not available] [26.09.20 15:11:25.868] string (*temporary) : . [26.09.20 15:11:25.868] number (*temporary) : 1.000000 [26.09.20 15:11:25.868] boolean (*temporary) : true [26.09.20 15:11:25.868] string (*temporary) : string expected, got nil [26.09.20 15:11:25.868] string (*temporary) : bad argument #1 to 'find' (string expected, got nil) [26.09.20 15:11:25.868] End [26.09.20 15:11:25.868] Locals: [26.09.20 15:11:25.868] string div : . [26.09.20 15:11:25.868] nil str : [not available] [26.09.20 15:11:25.868] number pos1 : 1.000000 [26.09.20 15:11:25.868] number pos2 : 1.000000 [26.09.20 15:11:25.868] nil clear : [not available] [26.09.20 15:11:25.868] nil conv : [not available] [26.09.20 15:11:25.868] Table: t [26.09.20 15:11:25.868] nil cpt : [not available] [26.09.20 15:11:25.868] nil pos : [not available] [26.09.20 15:11:25.868] End [26.09.20 15:11:25.868] Locals: [26.09.20 15:11:25.868] End [26.09.20 15:11:25.868] Locals: [26.09.20 15:11:25.868] Userdata: self [26.09.20 15:11:25.868] Table: self.st [26.09.20 15:11:25.868] number self.next_restrictors_update_time : 28190.000000 [26.09.20 15:11:25.868] boolean self.weapon_hide : false [26.09.20 15:11:25.868] boolean self.bCheckStart : false [26.09.20 15:11:25.868] Userdata: self.weather_manager [26.09.20 15:11:25.868] table self.weather_manager.weather_list : [...] [26.09.20 15:11:25.868] number self.weather_manager.update_time : 10000.000000 [26.09.20 15:11:25.868] string self.weather_manager.update_level : l01_escape [26.09.20 15:11:25.868] number self.weather_manager.weather_change_day : 1.000000 [26.09.20 15:11:25.868] Userdata: self.actor_detector [26.09.20 15:11:25.868] number self.actor_detector.init_time : -1.000000 [26.09.20 15:11:25.868] number delta : 0.000000 [26.09.20 15:11:25.868] number time : 27990.000000 [26.09.20 15:11:25.868] End Вот сам скрипт: Скрытый текст ---------------------- -- File: Visuals -- Author: Shoker, Mechanic -- Правки: Antnigm, Redix -- Меняет визуал ГГ в зависимости от одетого на него шлема ---------------------- -- Таблица секций брони, а также визуалов --[[ local visuals = { секция_брони = { секция_шлема = путь к моделе ... } ... } ]] -- Если шлем не нужен, то ничего не пишем local visuals = { without_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, novice_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, stalker_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, svoboda_light_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, dolg_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, svoboda_heavy_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, specops_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, military_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, dolg_heavy_outfit = { helm_respirator = "actors\\novice\\green_stalker_antigas", }, } local otf local helm local curent_vis local helm_tbl local new_model function update() otf = db.actor:item_in_slot(7) helm = db.actor:item_in_slot(11) curent_vis = db.actor:get_visual_name() if otf==nil and helm==nil then db.actor:set_visual_name("actors\\hero\\hero_novice") return end if otf~=nil and helm==nil then local otf_vis_name = str_explode(".", get_ltx(otf:section(), "actor_visual", "str"))[1] if otf_vis_name~=curent_vis then db.actor:set_visual_name(otf_vis_name) end else ------------------------------------- if otf==nil and helm~=nil then helm_tbl = visuals["without_outfit"] else helm_tbl = visuals[otf:section()] end if helm_tbl~=nil then new_model = helm_tbl[helm:section()] if new_model~=nil then if new_model~=curent_vis then db.actor:set_visual_name(new_model) end end end ------------------------------------- end end -- Получить строку из LTX файла function get_ltx(l_name,l_string,type) if system_ini():section_exist(l_name) and system_ini():line_exist(l_name, l_string) then if type=="bol" then return system_ini():r_bool(l_name, l_string) end if type=="num" then -- целое число return tonumber(system_ini():r_u32(l_name, l_string)) end if type=="num_float" then -- число с запятой return tonumber(system_ini():r_float(l_name, l_string)) end if type=="str" then return tostring(system_ini():r_string(l_name, l_string)) end if type==nil then return system_ini():r_u32(l_name, l_string) end end return nil end function str_explode(div,str,pos1,pos2,clear, conv) local t={} local cpt, pos if pos1 == nil then pos1 = 1 end if pos2 == nil then pos2 = pos1 end local cpt1 = string.find (str, div, pos1, true) local cpt2 = string.find (str, div, pos2, true) if cpt1 and cpt2 then if cpt2-cpt1 > 5 then cpt = cpt1 pos = pos1 else cpt = cpt2 pos = pos2 end repeat if clear then table.insert( t, trim(string.sub(str, 1, cpt-1)) ) else table.insert( t, string.sub(str, 1, cpt-1) ) end str = string.sub( str, cpt+string.len(div) ) cpt = string.find (str, div, pos, true) until cpt==nil end if clear then table.insert(t, trim(str)) else table.insert(t, str) end if conv then t = convert_tbl(t) end return t end 125 строка - local cpt1 = string.find (str, div, pos1, true) Заранее спасибо Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350348
UriZzz 1 004 Опубликовано 26 Сентября 2020 Поделиться Опубликовано 26 Сентября 2020 (изменено) В xray_ext есть скриптовой метод задающий путь до визуала для актора - set_actor_visual(string<path>), не думал попробовать? В ОГСР скорее всего тоже что то есть, не знаю. Как показал lua_help в ТЧ нет методов set_visual_name, get_visual_name, так что однозначно правим движок Изменено 26 Сентября 2020 пользователем UriZzz Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350377
_Sk8_AsTeR_ 122 Опубликовано 28 Сентября 2020 Поделиться Опубликовано 28 Сентября 2020 Ребят, а как вообще реализована механика ворон в Сталкере? Насколько я понял - они спавнятся и "беспалева" преследуют ГГ по небу, имитируя бурную воронью деятельность. А есть возможность задать воронам вектор движения? По вызову скрипта, например, чтобы летела ворона от края до края локи? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350777
mdm64 586 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 Доброго времени! Сильно заинтересовал такой вопрос - в ТЧ есть масхалат, точнее маскировочный экзоскелет, в котором можно некоторое время шариться под самым носом у врагов и они только головами водят, но не трогают. Как реализовать такую маскировку в ЗП, если это реально? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350829
HellRatz 2 913 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 @mdm64, вставлю 5 копеек и не более. Не утверждаю, т.к не скриптер. Но большинство кода можно перенести из платформы в платформу, что и делали первые модификации на ЗП — там тянули фишки из модов на ТЧ (Те же контейнеры для артов). Думаю, если у тебя есть скрипт этого экзоскелета, можно попробовать его адаптировать напрямую. Во всяком случае, я бы начал с этого, чем писать с нуля. 3 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350840
mdm64 586 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 @HellRatz, Согласен, идея более чем разумная. Мы тут с моей головой посовещались и я решил... высказать простое предположение по возможной реализации "невидимки" - по сути, если вспомнить реакцию враждебных НПС из той же Солянки, требуется при надевании такого масхалата прописать запрет на стрельбу со стороны врагов и всё. И будет тот же самый эффект. Я хорошо помню, что неписи даже какое-то время шли за мной с оружием, кричали "враг, враг!", но не стреляли. Но честно говоря, я сейчас не представляю, как эту возможность реализовать. Понятно, что требуется скрипт и инфопоршни, чтобы при одевании масхалата выдавался поршень и скрипт отрабатывал запрет ведения огня любыми неписями... Думается, так оно и реализовано, это по мне так самый простой вариант "Невидимки". Хотя, может быть и ошибаюсь... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350844
Painter 3 574 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 Цитата Как реализовать такую маскировку в ЗП, если это реально? @mdm64, один из вариантов реализации маскхалата можно подсмотреть здесь. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350850
mdm64 586 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 (изменено) @Jurok, Этот параметр является штатным для движка ЗП - "npc_blindness_koeff" (видимость ГГ НПС, в метрах.)? или это только для правленого движка? @Jurok, Если я правильно понимаю, в этом способе работают следующие файлы: Скрытый текст npc_blindness_koeff = 19 ;видимость ГГ НПС, в метрах. Скрытый текст function ReadOutfitBlindnessKoeff(section) local ltx = system_ini() if ltx:line_exist(section,"npc_blindness_koeff") then return ltx:r_float(section,"npc_blindness_koeff") else return 80 end end function transparent_gg() local range1, id, obj_around, alife_obj, dist_act_npc local outfit_in_slot=db.actor:item_in_slot(7) if db.actor == nil then return nil end if db.actor:item_in_slot(7) == nil then range1 = 80 elseif outfit_in_slot~=nil and ReadOutfitBlindnessKoeff(outfit_in_slot:section())>0.0 then range1 = ReadOutfitBlindnessKoeff(outfit_in_slot:section()) else range1 = 80 end for id = 1, 65534 do obj_around = level.object_by_id(id) if obj_around ~= nil and IsStalker(obj_around) then alife_obj = alife():object(id) if alife_obj then dist_act_npc = db.actor:position():distance_to(alife_obj.position) end if dist_act_npc <= 120 then if obj_around then obj_around:set_range(range1) end else if obj_around then obj_around:set_range(80) end end end end end function timer_trans() timer_transparent = timer_transparent + 1 if timer_transparent >= 50 then timer_transparent = 0 transparent_gg() end end Скрытый текст trans_outfit.timer_trans() -- уменьшение дистанции видимости при одевании соотв. броников -- јпдейт доступности дл¤ симул¤ции. simulation_objects.get_sim_obj_registry():update_avaliability(alife():actor()) bind_stalker_ext.actor_on_update(self,delta) --alun_utils.debug_write("actor update END 2") end Скрытый текст mus_vol = 0 amb_vol = 0 b_discard_settings_shown = false timer_transparent = 0 --маскхалат Я ничего не пропустил или всё-таки что-то не доглядел? Изменено 29 Сентября 2020 пользователем mdm64 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350852
dsh 3 824 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 2 hours ago, mdm64 said: высказать простое предположение по возможной реализации "невидимки Один из вариантов - это использовать enemy_callback. Т.е. если невидимка в слоте, то всем мобам этот коллбек отвечает, что актор невкусный и они его игнорируют. 2 3 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350865
Romann 623 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 2 часа назад, mdm64 сказал: Думается, так оно и реализовано. Хотя, может быть и ошибаюсь... Ошибаешься. 2 часа назад, HellRatz сказал: большинство кода можно перенести из платформы в платформу Я как-то тоже подумывал перенести "невидимку" на КоК, там конечно есть свой "маскхалат", но вот хочется именно тот самый скрипт невидимки от @НаноБот, там используется некий "инвиз", что за зверь и где он в скриптах вообще объявляется я так и не нашёл(или плохо искал), или может он из движка не знаю, так и забил на это. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350866
WinCap 323 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 3 часа назад, mdm64 сказал: возможной реализации "невидимки" Как уже сказал @dsh, самый простой вариант добавить новое условие в функцию "is_enemy()" в "xr_combat_ignore.script". Если надет нужный броник, то функция возвращает false. Скрытый текст function is_enemy(obj, enemy, st, not_check_sim) ... if st.enabled == false then return true end -- МаскХалат if enemy:id() == db.actor:id() then local bronik = db.actor:item_in_slot(7) if bronik and bronik:section() == "maskhalat" then return false end end ... end 1 3 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350872
mdm64 586 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 @WinCap, Да, согласен, действительно очень просто, решение в несколько строк... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350874
Romann 623 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 11 минут назад, WinCap сказал: самый простой вариант Ну не всё так просто - это не реализация "невидимки", это всего лишь некий игнор, враг просто не будет атаковать, но по факту актора будут все видеть, и даже на него реагировать. И назвать такое "невидимкой" у меня лично язык не повернётся, ИМХО. А вот сделать полную реализацию невидимки, когда мобы актора не просто игнорят - а полностью не видят и не реагируют - вот это уже "невидимка". 4 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350875
mdm64 586 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 (изменено) @Romann, Соглашусь полностью, но именно так была реализована "невидимка" в Солянке, просто другой реализации я не видел. Я бы даже сказал так - это именно маскхалат, когда враги тебя ощущают, но не видят отчётливо настолько, чтобы стрелять. А "невидимка" это да - когда сидят "три мартышки"... и четвёртая с КПК.... Изменено 29 Сентября 2020 пользователем mdm64 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350877
WinCap 323 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 @mdm64, вариант скрипта, с проверкой расстояния и времени суток: Скрытый текст if enemy:id() == db.actor:id() then local bronik = db.actor:item_in_slot(7) if bronik and bronik:section() == "maskhalat" then local dist = 10 -- ночью if in_time_interval(10, 17) then dist = 50 -- днем else if in_time_interval(6, 21) then dist = 35 -- утром/вечером end if obj:position():distance_to(enemy:position()) > dist then return false end end end 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350880
mdm64 586 Опубликовано 29 Сентября 2020 Поделиться Опубликовано 29 Сентября 2020 @WinCap, А ведь на этот скрипт можно "прикрутить" совершенно уникальные условия для выполнения тех или иных квестов! И в частности, с фотографированием нужных объектов или НПС... Вот только нигде пока не нашёл аддона с фотиком, как в Фотографе... 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1350881
phalcor 60 Опубликовано 30 Сентября 2020 Поделиться Опубликовано 30 Сентября 2020 А возможно заспавнить физический объект? Например, деревянный ящик, такой, как рядом с Прапором? На котором магнитофон стоит. Делаю, как ниже. Рюкзак спавнится, а какую секцию указать для ящика? local a_pos = db.actor:position() local xpos=a_pos.x+2 local ypos=a_pos.y local zpos=a_pos.z local lv=db.actor:level_vertex_id() local gv=db.actor:game_vertex_id() local newOBJ=alife():create("inventory_box", xyz(xpos,ypos,zpos), lv,gv) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1351012
HellRatz 2 913 Опубликовано 30 Сентября 2020 Поделиться Опубликовано 30 Сентября 2020 53 минуты назад, phalcor сказал: а какую секцию указать для ящика? Нужно создать предмет (естественно не подбираемый, хотя можно и ящики собирать если нужно) с визуалом ящика, потом спавнить как любой предмет. Но все же советую делать такие вещи через СДК, подобные костыли — уровень 2007 года. 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1351016
phalcor 60 Опубликовано 30 Сентября 2020 Поделиться Опубликовано 30 Сентября 2020 @HellRatz, получается, что самый обычный деревянный ящик скриптом я заспавнить не смогу без создания своего предмета? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1351018
HellRatz 2 913 Опубликовано 30 Сентября 2020 Поделиться Опубликовано 30 Сентября 2020 2 минуты назад, phalcor сказал: обычный деревянный ящик скриптом я заспавнить не смогу Деревянный ящик — это зашитая в спавн секция динамического объекта с прописанным визуалом этого самого ящика. Соответственно — нет. Тебе нужно по аналогии создать в конфигах предмет с прописанным визуалом, и спавнить непосредственно предмет, а не модель. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/532/#findComment-1351020
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти