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/
Norman Eisenherz 354 Опубликовано 2 Апреля 2023 Поделиться Опубликовано 2 Апреля 2023 @Kirgudu И снова дьявол кроется в деталях: если сравнить имена объектов, то в твоем сейве имя pseudodog_weak#, а у меня проблема с мутантом, который живет в пещере за АТП и имеет уникальное имя esc_pseudodog_strong. У слабой псевдособаки вызов binder:load действительно ловится, у этой – нет. В [all.spawn] для этого зверя указано section_name = pseudodog_weak, то есть вроде бы точно такая же псевдособака. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455504
Zander_driver 10 348 Опубликовано 3 Апреля 2023 Поделиться Опубликовано 3 Апреля 2023 10 часов назад, Norman Eisenherz сказал: У слабой псевдособаки вызов binder:load действительно ловится, у этой – нет. А что у них прописано в script_binding в их секциях? Неужели нечто разное... (Тогда надо прописать штатный биндер, и будет ловить нормально) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455517
Norman Eisenherz 354 Опубликовано 3 Апреля 2023 Поделиться Опубликовано 3 Апреля 2023 (изменено) Нашлась еще одна неведома зверушка: кабан esc_bd__m_boar_e_0007, который спавнится в виде трупа среди аномалий западнее а/м моста (или севернее вагончика, где лежит раненый Толик). @Zander_driver Оба мутанта описаны только в [all.spawn]. Единственная запись со словом script: script_version = 6. В исходных конфигах одна ссылка для всех вариантов: script_binding = bind_monster.bind. Изменено 3 Апреля 2023 пользователем Norman Eisenherz Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455548
h0N0r 381 Опубликовано 4 Апреля 2023 Поделиться Опубликовано 4 Апреля 2023 @Norman Eisenherz Затестил скрипт с переменной, она тру после первого юза / сейвлоада, но сбрасывается в false при смене уровня. Если добавить в se_monster.script: function se_monster:keep_saved_data_anyway() return true end то будет сохранение. К примеру, если подобный блок удалить в se_zones.script для se_restrictor, то их логика будет сбрасываться на начало после смены уровня. ; test sr [logic] active = sr_idle@1 [sr_idle@1] on_info = {+ai4_sr_to_2} sr_idle@2 %=send_tip(SR_to_section_2)% [sr_idle@2] on_info = {+ai4_sr_to_3} sr_idle@3 %=send_tip(SR_to_section_3)% on_game_timer = 50 | {-ai4_sr_to_3} %+ai4_sr_to_3% [sr_idle@3] 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455632
Norman Eisenherz 354 Опубликовано 4 Апреля 2023 Поделиться Опубликовано 4 Апреля 2023 Да, оно: потестил на начальных зверях (+ еще два уника в подземке НИИ), состояние запоминается правильно. Есть ли информация о причине такого ограничения? Не приведет ли снятие запрета к записи каких-нибудь неправильных данных в нетпакет? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455647
h0N0r 381 Опубликовано 8 Апреля 2023 Поделиться Опубликовано 8 Апреля 2023 @Norman Eisenherz Насчёт ограничений, есть исходники ориг. ТЧ: https://github.com/mortany/xray xrServer_Object_Base.cpp, //client object custom data serialization SAVE u16 client_data_size = (u16)client_data.size(); Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455921
Norman Eisenherz 354 Опубликовано 8 Апреля 2023 Поделиться Опубликовано 8 Апреля 2023 Не знаю, насколько это подходит… Нашел в OGSR [se_stalker.script] вот такой комментарий: Spoiler -- Dsh (c): -- Это включать не нужно, будут проблемы. Ни движок, ни скрипты на это -- не расчитаны. Проблема в том, что оно работает и клиентские данные -- сохраняются. При том, все данные, не только то, что скрипты -- запишут, но и то, что движок сохраняет. В этом-то и -- проблема. Например, движок сохраняется информацию о best_danger и -- вот что получается. На Янтаре у долговца был best_danger, ну пусть -- другой долговец. Теперь мы уходим с локации и best_danger остается -- в клиентских данных. Через некоторое время этот долговец тоже -- уходит с Янтаре и мы с ним пересекаемся в Баре. И что мы видим? -- Долговец в истерике, т.к. у него есть best_danger, который был -- загружен из клиентских данных, т.к. они не были очищены из-за -- keep_saved_data_anyway(). Тоже самое с хитовой памятью. На другой -- локации у непися всплывает хит, m_object которого нет, т.к. он -- остался на той локации, где хит был нанесен. -- -- Со скриптами тоже проблема всплывает. Например, в -- xr_logic. Представим, что непись был в смарте, получил там работу и -- у него была активная логика. Мы ушли с локации и активная логика -- была сохранена в клиентских данных. Потом непися выгнали из смарта -- и его приняли в другой. Все это было в оффлайне и клиентские данные -- все еще содержат активную логику первоначального смарта. Теперь мы -- пересекаемся с ним на какой-нибудь локации и тут xr_logic -- восстанавливает его активную логику и оказывается, что никакой -- вертекс пути это логики, на этой локации не существует. Движок -- обижается и падает. -- -- Переделывать все это я не вижу смысла. Сохранение активной логики -- скриптовыми методами требует меньших усилий, чем приведение всего -- этого в порядок. -- -- function se_stalker:keep_saved_data_anyway() -- return true -- end Вроде как мутанты тоже должны запоминать условия последних стычек, но за полное прохождение вылетов не случилось – видимо, принудительное сохранение для них безопаснее, чем для NPC. 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455932
h0N0r 381 Опубликовано 9 Апреля 2023 Поделиться Опубликовано 9 Апреля 2023 14 часов назад, Norman Eisenherz сказал: Не знаю, насколько это подходит… Мне напомнило о том самом алайфе, без смартов и прочего, где ии более живой и без принудительного склероза. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1455961
Norman Eisenherz 354 Опубликовано 10 Апреля 2023 Поделиться Опубликовано 10 Апреля 2023 Можно ли методом obj:set_nonscript_usable(false) "окирпичить" предмет вроде аптечки или оружия? Какой биндер править? Прямое изменение при сбросе предмета не мешает потом его поднять и использовать. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456046
Zander_driver 10 348 Опубликовано 10 Апреля 2023 Поделиться Опубликовано 10 Апреля 2023 7 часов назад, Norman Eisenherz сказал: не мешает потом его поднять и использовать. И не помешает, т.к. аптечки и подобное юзаются движком напрямую, без участия скриптов. Тут либо править движок, либо пользоваться колбеками наподобие before_use , которые опять же найти можно в исправленных движках. 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456066
madrazor 10 Опубликовано 12 Апреля 2023 Поделиться Опубликовано 12 Апреля 2023 Есть ли в сталкере возможность спавнить вейпоинты через скрипт? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456204
_g.script 3 657 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 (изменено) На движке ОГСР можно вынести пути во внешний файл. А скриптом можно заспавнить НПС, которому в кастом дате указать пути, пописанные в этом файле. Скрытый текст Указать путь к путям () в файле external.ltx Дальше ручками добавлять новые секции с прописанными к ним кастом-датами. А в кастом дате уже указываем пути и остальное: Или при спауне скриптом сразу записывать дату, но, насколько помню, таким образом не всё туда запишется. Скрытый текст Пример с функциями АМК-мода: local obj=amk.spawn_item("ros_killer_respawn_1",vector():set(-70.358726501465,-13.440641403198,-160.03511047363),107,201811) if (IsStalker(obj)) then local t=amk.read_stalker_params(obj) t.custom="[logic]\nactive=walker\n[walker]\npath_walk=add_merc_esc_walk\npath_look=add_merc_esc_look" amk.write_stalker_params(t,obj) end Изменено 13 Апреля 2023 пользователем mole venomous 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456206
imcrazyhoudini 218 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 @mole venomous по-моему он спросил не о кастом дате, а о возможности спавнить вэй-поинт скриптом. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456213
_g.script 3 657 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 Может, я чего-то не знаю. Но точки путей, это объекты, которые можно заспавнить? Я лишь подумал, что некорректно поставлен вопрос 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456214
dsh 3 824 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 В OGSR точки пути можно и скриптом создавать, если нужно именно через скрипт. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456221
_g.script 3 657 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 (изменено) 5 часов назад, dsh сказал: можно и скриптом создавать Сложно представить ситуацию, когда это нужно. Скрытый текст ситуации, когда ГГ даёт НПСу указание, как подчинённому, типа "Стоять здесь!". И он остаётся там навсегда уолкером, например, а не в ремарке. Изменено 13 Апреля 2023 пользователем mole venomous 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456231
Zander_driver 10 348 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 8 часов назад, mole venomous сказал: Но точки путей, это объекты, которые можно заспавнить? Нет. Во всяком случае это НЕ игровой объект в его классическом представлении (серверный, клиентский, имеет id, секцию, конфиг, класс...) - нет. Точки путей это более простая вещь, которая таким объектом не является. Заспавнить их нельзя. Скриптом создать (в OGSR) - можно. 1 час назад, mole venomous сказал: Сложно представить ситуацию, когда это нужно Сложно представить? А если еще подумать? Что можно ТОЛЬКО ТАК и делать? Все случаи, когда нам надо путь динамически создать, а не прибить его раз-навсегда гвоздями в алл.спавн. Это только исключительно динамическое создание через скрипт. По другому никак. 1 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456237
_g.script 3 657 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 @Zander_driver , Скрытый текст ты сейчас не согласен с тем, что сам утверждаешь? Судя по красному крестику. Если что, там у меня не вопрос, хоть и со знаком вопроса. Это недоумение. К вопросу о том, как заспавнить поинты. Ну да ладно. Не нужно быть матёрым кодером, что бы понимать, что точки путей это не объекты. Поэтому вопрос юзера был, как я считаю, некорректным. 17 минут назад, Zander_driver сказал: динамически создать Об этом я думал. И первое, что всплыло в голове, была СЗ. Не знаю, как у тебя там... Но не вижу в этом острой необходимости. Моб-хоумами с разными радиусами не так сложно поиграться, а для сталкеров я бы не стал так рандомно накидывать. Ну это моё видение, я допускаю одинаковые пути. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456238
Zander_driver 10 348 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 1 минуту назад, mole venomous сказал: Но не вижу в этом острой необходимости. Скрытый текст В одно окно смотрели двое. Один увидел дождь и грязь. Другой — листвы зелёной вязь, весну и небо голубое. В одно окно смотрели двое. В чем я только-что еще раз, в стопятисотый раз убедился. Что глядя на одни и те же, вроде бы, вещи, и даже одинаково их понимая, кажется. Видеть можно совершенно противоположные, разные "явления"... Ну или не видеть. А я вижу... и почему-то только я? 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456239
_g.script 3 657 Опубликовано 13 Апреля 2023 Поделиться Опубликовано 13 Апреля 2023 (изменено) @Zander_driver , 8 минут назад, Zander_driver сказал: Видеть можно совершенно противоположные, разные "явления" так всегда было. И во всём. Но это не повод для грусти, вообще то. Я бы так сказал: Не вижу острой необходимости. Вообще то, я сам любитель рандома. Ещё со времён "Диабло". Но считаю, что он не должен быть совсем хаотичным. Ну то есть, мне не лень будет сделать с десяток дорог, из которых каждый раз будет выбрана одна. Изменено 13 Апреля 2023 пользователем mole venomous Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/599/#findComment-1456242
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти