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/
_Val_ 2 283 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 @Fenrir02 Если допустим тебе нужно спавнить не только одного монстра, то попробуй так. if level.name()=="predbannik" and not has_alife_info("info") then db.actor:give_info_portion("info") Выдаешь поршень. А из поршня спавнишь все что душе угодно. Хоть сто монстров, хоть пятьсот рестрикторов. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1150950
Dennis_Chikin 3 664 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 (изменено) 1 час назад, Graff46 сказал: Как это в логике реализуется? on_info = {~nn} myval ... бла-бла..., на сколько помню. 47 минут назад, _Val_ сказал: А из поршня спавнишь все что душе угодно Жуть какая... Доктор, а может, все-же ограничимся тонзиллэктомией трансректально ? Пусть бы даже и автогеном ? if ... then for i, v in ipairs( { "mysect", mylvid, mygvid }, ... } ) do alife():object( v[1], level.vertex_position( v[2] ), v[2], v[3] ) end end upd: единственно что, трюк с level.vertex_position() работает только для текущей локации. Для спавна произвольных объектов на произвольной локации координаты все-же придется снять, до одного знака после точки. Изменено 25 Января 2018 пользователем Dennis_Chikin Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1150954
Graff46 620 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 Только что, Dennis_Chikin сказал: on_info = {~nn} myval nn это вероятность от сотни? Добавлено Dennis_Chikin, 25 Января 2018 Да. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1150956
_Val_ 2 283 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 (изменено) 2 часа назад, Dennis_Chikin сказал: Жуть какая... Сам боюсь - но было же когда-то и так)) Кстати - позволяет работать, не пользуясь услугами продвинутых скриптеров. Думаешь - пациент понял, что ты ему прописал? upd)) И да - "mysect" - это только секция непися или предмета? А как тогда насчет кастом даты? Плодить мутантов без логики как-то не комильфо... Изменено 25 Января 2018 пользователем _Val_ 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1150960
Fenrir02 199 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 Тогда ещё вопросик. if level.name() == "l04_darkvalley" then get_console():execute("start_my_script_level_name_=_"..level.name()) alife():create("m_boodsucker_e",vector():set(27.416481018066,1.3818007707596,-476.2585144043),207244,950) end - эта функция срабатывает не только при переходе на данную локацию, но ещё и при любой загрузке на ней. А как сделать, чтобы только при переходе она срабатывала? Наверное необходимы скрипты AMK - они есть, так как пробую эту функцию в моде на основе AMK. Кто знает, подскажите. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151001
_Val_ 2 283 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 3 часа назад, _Val_ сказал: and not has_alife_info("info") @Fenrir02 Ну вот - а мой ужос заодно и проверяет, происходило ли это когда-нибудь)) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151005
Fenrir02 199 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 (изменено) Значит вот так: if level.name()=="l04_darkvalley" and not has_alife_info("info") then alife():create("m_boodsucker_e",vector():set(27.416481018066,1.3818007707596,-476.2585144043),207244,950) db.actor:give_info_portion("info") end ??? И функцию эту вешать на net_spawn? Изменено 25 Января 2018 пользователем Fenrir02 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151011
MegaStalker 66 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 В общем, народ, я ничего не понимаю. Как мне правильно подключить скрипты этих новостей, чтобы они работали? Потому что я не понимаю, как это делать(( Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151034
Dennis_Chikin 3 664 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 По обоим последним постам: вы требуете угадать, что у вас в кармане. Смотрите имеющиеся моды, и разбирайтесь, как оно там работает. has_alife_info("info") - дожно быть прописано это самое инфо, причем не использующееся где-то еще. И, да, можно в net_spawn(), но сначала определиться, что именно надо. И, да, как правило, все нужное уже где-то сделано. Про "как подключить скрипты" - тоже, понять, что именно надо, и написать в соответствующем месте код для подключения. При этом понимая, что скопированный откуда-то скрипт вполне может потребовать еще чего-то оттуда же. Новости из amk требуют код из amk.script, и тот в свою очередь ссылается еще на десяток скриптов. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151043
Fenrir02 199 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 (изменено) Да, уже разобрался. Просто побольше хочется узнать. Если что прошу прощение за флуд и "глупые вопросы". Изменено 25 Января 2018 пользователем Fenrir02 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151045
Dennis_Chikin 3 664 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 (изменено) 5 часов назад, _Val_ сказал: И да - "mysect" - это только секция непися или предмета? А как тогда насчет кастом даты? Плодить мутантов без логики как-то не комильфо... Любого объекта. cd - добавить строку в туда же, и прописывать при создании. Иили скриптом же и генерить. Извращение, конечно, но менее извратное, чем забивать каждого монстра со своими координатами в олспавн, всю игру проверять для него условия выхода ив онлайн и взятия под смарты, потом проверять, жив ли еще, и делать переспавн по spawn_id. С одноразовыми - тем более - извращение: с НИ их в офлайне держать. Изменено 25 Января 2018 пользователем Dennis_Chikin Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151048
MegaStalker 66 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 (изменено) 1 час назад, Dennis_Chikin сказал: По обоим последним постам: вы требуете угадать, что у вас в кармане. Смотрите имеющиеся моды, и разбирайтесь, как оно там работает. has_alife_info("info") - дожно быть прописано это самое инфо, причем не использующееся где-то еще. И, да, можно в net_spawn(), но сначала определиться, что именно надо. И, да, как правило, все нужное уже где-то сделано. Про "как подключить скрипты" - тоже, понять, что именно надо, и написать в соответствующем месте код для подключения. При этом понимая, что скопированный откуда-то скрипт вполне может потребовать еще чего-то оттуда же. Новости из amk требуют код из amk.script, и тот в свою очередь ссылается еще на десяток скриптов. Да я это понимаю, я просто не понимаю, где конкретно подключаются скрипты. В патче уже есть сильно урезанный набор скриптов от АМК, т.е. все нужные файлы там есть, а вот где подключать скрипты - не понимаю. Совсем. Можешь какой-то пример привести, что именно надо прописывать(я про код)? Потому что в скриптах не шарю совсем, никогда ими не занимался - только редактировал конфиги. Изменено 25 Января 2018 пользователем MegaStalker Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151064
Dennis_Chikin 3 664 Опубликовано 25 Января 2018 Поделиться Опубликовано 25 Января 2018 Мне сюда весь код амк-мода запостить ? Поиск дает пересечение по 40 файлам, причем параметр для поиска учитывает явно не все варианты, которые там есть. Ну пропишете Вы в _g.script function start_game_callback() ... amk.on_game_start(obj) - и получите вылет прямо при запуске. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151070
dsh 3 824 Опубликовано 26 Января 2018 Поделиться Опубликовано 26 Января 2018 @Dennis_Chikin obj, кстати, в выше приведенном примере совсем не нужен. Только движок лишний раз дёргает, пытаясь найти obj.script Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151073
Fenrir02 199 Опубликовано 29 Января 2018 Поделиться Опубликовано 29 Января 2018 Не подскажите как сделать убор оружия при обыске мёртвых неписей/монстров/тайников? Не могу понять каким скриптом вызвать действия при обыске перечисленных предметов. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151466
AndrewMor 533 Опубликовано 29 Января 2018 Поделиться Опубликовано 29 Января 2018 3 часа назад, Fenrir02 сказал: Не подскажите как сделать убор оружия при обыске мёртвых неписей/монстров/тайников? Не могу понять каким скриптом вызвать действия при обыске перечисленных предметов. ИМХО, нужно отслеживать выдачу/забирание инфопоршенов при обыске трупа/тайника. Не помню, как они правильно называются. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151475
Rietmon 3 Опубликовано 29 Января 2018 Поделиться Опубликовано 29 Января 2018 (изменено) Господа модмейкеры, возникла трабла: При спавне сквада вылетает с таким логом: Expression : abstract Function : CALifeSimulatorBase::spawn_item File : alife_simulator_base.cpp Line : 113 Description : Cannot find item with section Arguments : jup_squad_monolit_on_jupiter Сам конфиг сквада: [jup_squad_monolit_on_jupiter]:online_offline_group relationship = neutral npc = sim_default_stalker_2 target_smart = jup_sim_18 spawn_point = monolit_on_jup_mon_spawn story_id = jup_squad_monolit_on_jupiter Конфиг сквада в simulation_objects_props.ltx: [jup_squad_monolit_on_jupiter]:default_squad sim_avail = false Вызов из логики (смарт этот остался еще от ПЫСов, так что проблема явно не в нем): on_info = {+test1213} nil %=create_squad(jup_squad_monolit_on_jupiter:jup_sim_18)% Где накосячил? Сам уже не знаю. Изменено 29 Января 2018 пользователем Rietmon Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151505
Fenrir02 199 Опубликовано 29 Января 2018 Поделиться Опубликовано 29 Января 2018 А где приблизительно нужно копать, чтобы найти эти инфопоршни? Может в bind_monster.script? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151514
Dennis_Chikin 3 664 Опубликовано 29 Января 2018 Поделиться Опубликовано 29 Января 2018 "ui_inventory", "ui_trade", "ui_car_body" и "ui_inventory_hide", "ui_trade_hide", "ui_car_body_hide" на закрытие. Выбирать нужные. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151534
Fenrir02 199 Опубликовано 29 Января 2018 Поделиться Опубликовано 29 Января 2018 Да с поршнями всё работает. Но вот ещё одна проблема: чёрт меня дернул - повесил на скрипт взятия предмета вот такое условие if time_global() > userObj[1] + userObj[2] then end end Теперь время в игре замедлилось. То есть всё движется медленно: перезарядка оружия, бег, другие объекты. Пробовал переустанавливать все - не помогло. Не подскажите что делать? Прошу прощения за флуд. Проблему решил - перезапуском компа) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/445/#findComment-1151544
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти