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/
mr.vispd 0 Опубликовано 25 Мая 2020 Поделиться Опубликовано 25 Мая 2020 2 часа назад, Капрал Хикс сказал: Редактировать движок игры. А не подскажите как? что нужно сделать, извините, но опыт у меня нулевой в этом, потому и спрашиваю, чтобы сделать одну или пару правок тяжело ли будет? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332291
Капрал Хикс 567 Опубликовано 25 Мая 2020 Поделиться Опубликовано 25 Мая 2020 2 часа назад, mr.vispd сказал: А не подскажите как? что нужно сделать, извините, но опыт у меня нулевой в этом, потому и спрашиваю, чтобы сделать одну или пару правок тяжело ли будет? Если так, лучше даже не берись и забудь про идею. Реализуй что попроще без ковыряния движка. 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332307
Norman Eisenherz 355 Опубликовано 27 Мая 2020 Поделиться Опубликовано 27 Мая 2020 Здрасьте. [ТЧ 1.0006] В отношении класса CUIProgressBar() в файле [lua_help.script] пропущены, как минимум, методы InitProgressBar(str, CUIWindow), SetProgressPos(num) и GetProgressPos(). Существует ли в открытом виде точный список методов этого и других оконных классов? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332465
Zander_driver 10 357 Опубликовано 27 Мая 2020 Поделиться Опубликовано 27 Мая 2020 (изменено) 2 часа назад, Norman Eisenherz сказал: Существует ли в открытом виде Да... Открыть исходники (вашего движка), и там посмотреть, что экспортировано в скрипты. Ничего программировать и ничего компилировать не надо, т.е. бояться (как этого обычно боятся) - нечего. 1 час назад, Norman Eisenherz сказал: Чем-то определенным надо открыть Исходник - текстовый файл. Открывается чем угодно, хоть блокнотом. Изменено 27 Мая 2020 пользователем Zander_driver Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332468
Norman Eisenherz 355 Опубликовано 27 Мая 2020 Поделиться Опубликовано 27 Мая 2020 @Zander_driver IDA показывает ассемблерный код. Чем-то определенным надо открыть, чтобы увидеть названия классов и методов? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332472
naxac 2 605 Опубликовано 27 Мая 2020 Поделиться Опубликовано 27 Мая 2020 (изменено) @Norman Eisenherz, зачем ida? Открывай обычным блокнотом или любым другим текстовым редактором. *.cpp и *.h - обычные текстовые файлы. Экспорт функций и классов с их методами, как правило, находится в файлах, в имени которых есть script. Изменено 27 Мая 2020 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332483
RusStriker 0 Опубликовано 29 Мая 2020 Поделиться Опубликовано 29 Мая 2020 Подскажите, кто разбирается, есть ли функции для запрета вывода сообщений на экран (нужно только в пда)? Или это только движок ковырять? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332655
Zander_driver 10 357 Опубликовано 29 Мая 2020 Поделиться Опубликовано 29 Мая 2020 @RusStriker, Это news_manager.script нужно править. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332658
Graff46 625 Опубликовано 29 Мая 2020 Поделиться Опубликовано 29 Мая 2020 (изменено) У меня вопрос: можно ли переносить предметы в инвентарь в оффлайне, когда нет возможности пользоваться методом transfer_item, а свойство parent_id серверных объектов работает только на чтение? Изменено 29 Мая 2020 пользователем Graff46 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332692
RusStriker 0 Опубликовано 30 Мая 2020 Поделиться Опубликовано 30 Мая 2020 (изменено) 23 часа назад, Zander_driver сказал: @RusStriker, Это news_manager.script нужно править. Что то не могу найти, где там координаты вывода задаются, не силен я в скриптах . Можно какой то пример кода для ЗП? Изменено 30 Мая 2020 пользователем RusStriker Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332718
Zander_driver 10 357 Опубликовано 30 Мая 2020 Поделиться Опубликовано 30 Мая 2020 @RusStriker, координаты там и не задаются. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1332722
phalcor 60 Опубликовано 3 Июня 2020 Поделиться Опубликовано 3 Июня 2020 Имеем в переменной obj объект, например, бинт. Но не просто бинт, а застрявший в текстурах бинт. Есть ли простой скриптовый способ извлечь его на свет божий? (например, поднять на 1 м вверх) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333278
Graff46 625 Опубликовано 3 Июня 2020 Поделиться Опубликовано 3 Июня 2020 @phalcor, Можно нет-пакетом cse_abstract для этого рекомендую m_netpk.script он выложен в соседней теме. Либо если движок правленый, то скорее всего у класса алайф есть метод для телепортации объектов по их id. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333283
dsh 3 824 Опубликовано 3 Июня 2020 Поделиться Опубликовано 3 Июня 2020 @phalcor, чем этот бинт тебе так дорог, что непременно нужно именно его переместить? Просто удали его и создай новый по прошлым координатам + 1 метр. 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333284
phalcor 60 Опубликовано 3 Июня 2020 Поделиться Опубликовано 3 Июня 2020 @dsh, да, с бинтом это меня устроит. А если это оружие с определённым состоянием, зарядом, обвесами и т.д.? Как-то же возможно изменить y-координату? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333290
dsh 3 824 Опубликовано 3 Июня 2020 Поделиться Опубликовано 3 Июня 2020 @phalcor, с оригинальным движком, наверное, только через нетпакет. В m_netpk, если я правильно помню, как раз описывается пример с указанием то-ли координат, то-ли направления. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333295
phalcor 60 Опубликовано 4 Июня 2020 Поделиться Опубликовано 4 Июня 2020 (изменено) Я обозначил проблему в этой теме, однако есть основание полагать, что вопрос связан со скриптами. Смысл такой: В задании "Защитить лагерь новичков от наёмников" (которое даёт Фанат на Кордоне) нужно убить 7 наёмников. После чего задание засчитывается (устанавливается инфопоршн escape_lager_killers_die). Если теперь сделать save и затем load - трупы наёмников пропадают! При этом промежуточные save/load (когда убиты ещё не все наёмники) такого эффекта не вызывают - трупы не пропадают. Если вручную толкнуть означенный выше поршень, то ещё живые наёмники исчезают. Вопрос: как сделать так, чтобы трупы наёмников были как и обычные трупы - НЕ ИСЧЕЗАЛИ после save/load. Видимо, есть какой-то параметр/свойство.. Изменено 4 Июня 2020 пользователем phalcor синтаксис Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333406
dsh 3 824 Опубликовано 4 Июня 2020 Поделиться Опубликовано 4 Июня 2020 @phalcor, посмотри, что у них в [spawner] dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333443
phalcor 60 Опубликовано 4 Июня 2020 Поделиться Опубликовано 4 Июня 2020 @dsh, знал бы точно, что и где искать? Вот в all.spawn есть семь секий (по числу наёмников), это оно? Скрытый текст [3118] ; cse_abstract properties section_name = stalker name = esc_killer1 position = -99.2369918823242,-4.79276275634766,-77.2306289672852 direction = 0.0865945741534233,-0.0213616397231817,0.147721081972122 unknown_id = 0 script_version = 7 ; cse_alife_trader_abstract properties money = 5000 character_profile = esc_killer_specnaz ; cse_alife_object properties game_vertex_id = 75 distance = 8.39999961853027 level_vertex_id = 161287 object_flags = 0xffffffbf custom_data = <<END [spawner] cond = {+escape_lager_spawn_killers} [smart_terrains] esc_killers = true END ; cse_visual properties Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333450
AndrewMor 535 Опубликовано 5 Июня 2020 Поделиться Опубликовано 5 Июня 2020 (изменено) @phalcor, Да, оно. Но в секции [spawner] тут только инфо escape_lager_spawn_killers на перевод наймов в онлайн. Вот кусок из gulag_espace.script Скрытый текст if type == "esc_killers" then return function(gulag) local actor = db.actor if not actor then return gulag.state end if not has_alife_info("escape_lager_spawn_killers") then return 0 -- offline elseif has_alife_info("escape_lager_spawn_killers") and not has_alife_info("esc_killers_raid") then return 3 -- wait elseif has_alife_info("esc_killers_raid") and not has_alife_info("esc_open_killer_fire") then return 4 -- raid elseif has_alife_info("esc_open_killer_fire") and xr_gulag.getGulagPopulationComed("esc_lager") > 0 then return 1 -- fight elseif has_alife_info("esc_open_killer_fire") and xr_gulag.getGulagPopulationComed("esc_lager") <= 0 then return 2 -- kamp end return gulag.state end end Состояние 2 - это вот не для него случаем: Скрытый текст t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, position_threshold = 400, in_rest = "", out_rest = "" } table.insert(sj, t) t = { section = "logic@esc_killer_kamp_offline", idle = 0, prior = 5, state = {0}, online = false, position_threshold = 400, in_rest = "", out_rest = "" } table.insert(sj, t) Сама логика: Скрытый текст [logic@esc_killer_kamp_offline] active = kamp@esc_killer_kamp_offline [kamp@esc_killer_kamp_offline] center_point = kamp_wait Изменено 5 Июня 2020 пользователем AndrewMor 2 Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/517/#findComment-1333467
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти