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/
Chypakabra 841 Опубликовано 25 Марта 2022 Поделиться Опубликовано 25 Марта 2022 11 минут назад, Zander_driver сказал: Я в чужие дела не лезу, хочет узнать - значит есть, зачем. #Сидорович 12 минут назад, Zander_driver сказал: если опираться на функционал оригинального движка если на то пошло - и будем опираться на оригинал - у непися может и будет находиться только то, что ему заспавнено (оллспавном или скриптом), и больше ни чего - так как в ванили нпс не лутаются, не торгуют между собой и барыгами, не шмонают трупы и нычки, и не собирают арты и любой другой хабар, единственная возможность изменения содержимого инвентаря (если я ни чего не забыл) нпс это торговля с ГГ, поэтому я и посчитал данный вопрос всего лишь глупой хотелкой. Личный архив по играм Архив по Trilogy EE Скрипт гладкого интерфейса AMK-Team Файлы BFG Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1424532
Zander_driver 10 348 Опубликовано 25 Марта 2022 Поделиться Опубликовано 25 Марта 2022 1 час назад, Okichi сказал: Всегда, чтоб продуктивно помочь - надо знать, какая конечная цель. Так то оно так. Но, если конечная цель является военной тайной вопрошающего, и не раскрывается ни при каких условиях, то что тут можно поделать? Можно конечно устроить партизанский допрос с пристрастием Но, это немного затратно по времени. В конце концов, если бы это было важно, человек сам бы сказал. 2 часа назад, ted.80 сказал: Я конечно дико извиняюсь, это какова язика синтоксис? А еще можно выделить мой пост выше, и прочитать текст целиком, включая _невидимый_ Одну "мину" нашел, возьми с полки пирожок. Их там было две. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1424539
Okichi 979 Опубликовано 25 Марта 2022 Поделиться Опубликовано 25 Марта 2022 @Zander_driver , ну, например - в данном случае полезно бы знать, является ли искомый предмет ( который надо найти в инвентаре непися ) - уником, или это снова "пачка патронов". Если это уник - совсем не надо цикл на 65 тыс, достаточно получить серверный объект этого уника ( по ид, по стори_айди, по имени, по хранимой переменной - как там он изначально определялся ) - и проверить ТОЛЬКО для него его текущего парента. Вряд ли подобные данные можно считать военной тайной, не раскрываемой ни при каких условиях... След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1424541
Chypakabra 841 Опубликовано 26 Марта 2022 Поделиться Опубликовано 26 Марта 2022 8 часов назад, Zander_driver сказал: Одну "мину" нашел, возьми с полки пирожок. Их там было две Я и не искал - она сама мне прямо в глаз "попала" Это и правда было-бы весело - если бы не было печально, подавляющее большинство среднестатистических индивидуумов тупо скопирует твой "заминированный" код, и не будет разбираться в синтаксисе и искать пасхалки, а будет сидеть и ныть в комментах "ни роботаит", а если ему подскажут в чём трабл - ну или всё же сам допетрит - как ты думаешь что он с ним сделает? !Правильно! - повесит на апдейт! и вся эта портянка будет перебирать 65к предметов за такт, и опять начнется "виснит", "логаит", "вылитаит", так что это тот ещё вопрос, под кого это мина заложена , и восстанут "Юзвери" из пепла форумных ристалищ - и пойдут они строчить каменты на 3 страницы offтопа 1 Личный архив по играм Архив по Trilogy EE Скрипт гладкого интерфейса AMK-Team Файлы BFG Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1424555
ARTLantist 14 Опубликовано 27 Марта 2022 Поделиться Опубликовано 27 Марта 2022 (изменено) Есть у кого-нибудь схемы лута ящиков и разжигания костров неписями для ЗП? Или мб какая-нибудь статья где-то есть, посвящённая подобным темам. А то самому ума немного не хватает до конца разобраться со всем тем, что есть в xr_corpse_detection, чтобы по аналогии составлять скрипты для лута ящиков и т.д. Изменено 27 Марта 2022 пользователем ARTLantist Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1424705
Кекс 0 Опубликовано 30 Марта 2022 Поделиться Опубликовано 30 Марта 2022 Как сделать так, чтобы после разговора сквад стал враждебным? Я нашел функцию, но не понимаю куда что подставлять Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1424950
Colder 12 Опубликовано 1 Апреля 2022 Поделиться Опубликовано 1 Апреля 2022 (изменено) Вопрос по ОГСР движку. Как заставить ГГ достать бинокль? Добавил по аналогии как в НА7 -- в bind_stalker: Скрытый текст local slot_before_binoc = -1 function actor_binder:on_key(dik) local bind = dik_to_bind(dik) xr_signals.on_event("key_press", key, bind) if key == bind_to_dik(key_bindings.kNA_USE_BINOC) then if self.object:active_slot() == 8 then self.object:activate_slot(slot_before_binoc) elseif self.object:item_in_slot(8) and self.object:item_in_slot(8):is_binoculars() then slot_before_binoc = db.actor:active_slot() self.object:activate_slot(8) end end end function actor_binder:on_mouse_wheel(vol) if level.main_input_receiver() then return end xr_signals.on_event("mouse_wheel", vol) if self.object:has_info("ui_inventory") then return end if self.object:has_info("ui_pda") then return end if self.object:active_slot() == 5 and vol > 0 then if self.object:item_in_slot(8) and self.object:item_in_slot(8):is_binoculars() then self.object:activate_slot(8) end elseif self.object:active_slot() == 8 and vol > 0 then if self.object:item_in_slot(5) and not self.object:zoom_mode() then self.object:activate_slot(5) end end end В external: Скрытый текст [custom_keyboard_action] na_use_binoc=kNA_USE_BINOC В ui_keybinding: Скрытый текст <command id="kb_na_use_binoc" exe="na_use_binoc"/> В игре назначил кнопку и результат 0. Изменено 1 Апреля 2022 пользователем Colder Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1425133
Labadal 68 Опубликовано 7 Апреля 2022 Поделиться Опубликовано 7 Апреля 2022 Возможно в чистом ТЧ получить координаты точки, на которую нацелен/смотрит ГГ? @Кекс в логику рестриктора функцию: =set_squad_enemy_to_actor(id_сквада) God save Hatsune Miku! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1425639
AndreySol 215 Опубликовано 7 Апреля 2022 Поделиться Опубликовано 7 Апреля 2022 @Colder Чтож вы все пытаетесь игрока(т.е. живого человека) загнуть в ваши похотелки??? Ну всунешь ты ГГ бинокль скриптом в руки, что мешает игроку тут-же нажать назначенную клавишу другого снаряжения или колесико мыши крутнуть? В ЧЕМ смысл? 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1425650
Zander_driver 10 348 Опубликовано 15 Апреля 2022 Поделиться Опубликовано 15 Апреля 2022 Подозреваю, кат-сцену делают... где по сюжету ГГ должен бинокль достать, да еще наверное посмотреть в строго определенном направлении, чтобы там чего-то нужное увидеть. Проще всё нужное в этом случае, отснять на видео, перегнать в формат интро-роликов игры, и уже это в игре запускать. По образу-подобию снов Стрелка после прохождения Х-18 и иже с ними. 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1426328
AndreySol 215 Опубликовано 15 Апреля 2022 Поделиться Опубликовано 15 Апреля 2022 @Zander_driver Так я ж об этом самом: на кой игроку руки заламывать, сделайте в виде кат-сцены или ролика. 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1426366
Colder 12 Опубликовано 26 Апреля 2022 Поделиться Опубликовано 26 Апреля 2022 Всем привет. Пытаюсь дать рандомный хит заспавненому предмету ГГ в рюкзак. Скрытый текст function parse_list_box(obj) local sec = obj:section() local ac = sys_ini:r_float_ex(sec, "amount_content") local at = sys_ini:r_string_ex(sec, "amount_target") if rand(100) < ac then if ini_pack:section_exist(at) then local n = ini_pack:line_count(at) local key = rand(0,n-1) local result, item, num = ini_pack:r_line(at, key, "", "") alife():create(item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) item:set_condition((math.random(5)+15)/100) -- делаю так, получаю вылет local name = tostring(sys_ini:r_string(item, "inv_name_short")) axr_txt_tip.send_tip_attach("%c[d_cyan]"..gts("st_ui_package").." %c[ui_white]"..gts(name)) return item, num end end end Можно ли вообще каким нибудь путём дать хит? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1427251
Manool 148 Опубликовано 27 Апреля 2022 Поделиться Опубликовано 27 Апреля 2022 (изменено) 9 часов назад, Colder сказал: Пытаюсь дать рандомный хит заспавненому предмету ГГ в рюкзак Хит наносится так - Скрытый текст local h = hit() h.power = 0.3 h.direction = vector():set(0, 0, 0) h.impulse = 0 h.draftsman = db.actor h.type = hit.fire_wound obj:hit(h) -- obj в данном случае клиентский объект, которому наносится хит item:set_condition((math.random(5)+15)/100) Метод set_condition применяется к клиентским объектам. А в вашем случае item - это, скорее всего, строка, поэтому и вылет. Изменено 27 Апреля 2022 пользователем Manool 1 Объединённый Пак OGSR Engine Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1427263
AndreySol 215 Опубликовано 27 Апреля 2022 Поделиться Опубликовано 27 Апреля 2022 59 минут назад, Manool сказал: А в вашем случае item - это, скорее всего, строка Не скорее всего, а так и есть. Опять же, надо помнить, что не все инвентарные предметы поддерживают изменение condition. Тут требуется уточнить у вопрошавшего, для какого предмета он эту операцию пытается проделать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1427267
Norman Eisenherz 354 Опубликовано 28 Апреля 2022 Поделиться Опубликовано 28 Апреля 2022 (изменено) [ЗП 1.6.02] Документы с завода и квестовый артефакт "Измененный изолятор" не обнаруживаются при переборе инвентаря – "ловится" только модуль памяти БПЛА. При обычном поиске for i = 0, db.actor:object_count() -1 видны все квестовые предметы. В чем может быть причина? Spoiler -- триггер через расход бинта db.actor:inventory_for_each( function(item) if item:section():find("jup") then news_manager.send_tip(db.actor, item:section()) end end ) Изменено 28 Апреля 2022 пользователем Norman Eisenherz Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1427469
Colder 12 Опубликовано 7 Мая 2022 Поделиться Опубликовано 7 Мая 2022 (изменено) При обыске мутантов получаю такую иконку: https://disk.yandex.ru/i/C7p9gpesomX2mQ Что я пишу не так? Скрытый текст function InterfeiceLoot:SetMutantImage() local killed_mutant_tbl = { snork = {file="ui\\guide\\ui_actor_monsters_pda",x="393",y="200",special="0"}, dog = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="800",special="0"}, pseudodog = {file="ui\\guide\\ui_actor_monsters_pda",x="788",y="200",special="0"}, psy_dog = {file="ui\\guide\\ui_actor_monsters_pda",x="788",y="200",special="0"}, poltergeist = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="400",special="0"}, bloodsucker = {file="ui\\guide\\ui_actor_monsters_pda_3",x="393",y="400",special="0"}, controller = {file="ui\\guide\\ui_actor_monsters_pda_3",x="393",y="800",special="0"}, chimera = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="600",special="0"}, tushkano = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="0",special="0"}, rat = {file="ui\\guide\\ui_actor_monsters_pda_3",x="0",y="0",special="0"}, flesh = {file="ui\\guide\\ui_actor_monsters_pda_3",x="393",y="600",special="0"}, burer = {file="ui\\guide\\ui_actor_monsters_pda",x="0",y="0",special="0"}, boar = {file="ui\\guide\\ui_actor_monsters_pda",x="393",y="200",special="0"}, giant = {file="ui\\guide\\ui_actor_monsters_pda",x="0",y="200",special="0"}, cat = {file="ui\\guide\\ui_actor_monsters_pda_2",x="0",y="0",special="0"}, fracture = {file="ui\\guide\\ui_actor_monsters_pda_2",x="393",y="200",special="0"}, zombie = {file="ui\\guide\\ui_actor_monsters_pda_2",x="0",y="200",special="0"}, } local mutant_id = sys_ini:r_string_ex(self.section,"species") or nil local mutant_f = "ui\\guide\\ui_actor_monsters_pda_3" local mutant_x = 0 local mutant_y = 0 mutant_f = tostring(killed_mutant_tbl[mutant_id].file) mutant_x = tostring(killed_mutant_tbl[mutant_id].x) mutant_y = tostring(killed_mutant_tbl[mutant_id].y) local x1 = mutant_x local y1 = mutant_y local mutant_width = 393 local mutant_height = 200 local x2 = x1 + mutant_width local y2 = y1 + mutant_height self.image = self.xml:InitStatic("form:image",self.form) self.image:InitTexture(tostring(mutant_f)) self.image:SetOriginalRect(x1,y1,x2,y2) end Платформа ОГСР. Заранее спасибо. Изменено 7 Мая 2022 пользователем Colder Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1428280
Ghilli 0 Опубликовано 8 Мая 2022 Поделиться Опубликовано 8 Мая 2022 Совсем уж новичковый, возможно, глупый вопрос: на стандартном движке зп есть ли скриптовая функция, позволяющая отыгрывать худовые анимации? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1428281
ARTLantist 14 Опубликовано 16 Мая 2022 Поделиться Опубликовано 16 Мая 2022 Как сделать для НПС систему лута тайников/монстров/зажигания костров? Не особо что-то получается разобраться в оригинальном xr_corpse_detection.script. Как именно находится цель для НПС, и как его туда направить для дальнейших действий с этой целью? Мб кто подскажет, или есть какие посты на эту тему, не могу найти... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1428952
Купер 3 477 Опубликовано 17 Мая 2022 Поделиться Опубликовано 17 Мая 2022 @ARTLantist , попробуй тут и тут почитать. Возможно, что-то покажется полезным. (для 2-ой ссылки прокси/vpn с российских ip) 1 Сталкерский архив Петровича (BFG) Филиал Костра Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1428986
ARTLantist 14 Опубликовано 19 Мая 2022 Поделиться Опубликовано 19 Мая 2022 Как добавить костру надпись и сделать действия при нажатии клавиши действия? Пытался поставить скриптом надпись через self.object:set_tip_text, и вызывать коллбэк self.object:set_callback(callback.use_object, self.use_campfire, self), но ничего не вышло, костёр как не реагировал, так и не реагирует. Я так понял, это фишка рестрикторов. Хотелось бы сделать зажигание не через использование предмета рядом с костром, а через взаимодействие с самим костром Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/588/#findComment-1429192
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти