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/
_Sk8_AsTeR_ 122 Опубликовано 16 Ноября 2018 Поделиться Опубликовано 16 Ноября 2018 Господа, подскажите пожалуйста, что и где подкрутить чтобы откорректировать цветовую гамму игры? Запустил оригинал сталкера сегодня и чуть не расплакался от той самой оригинальной картинки на мониторе. Солянка делает картинку какой-то желтоватой чтоли... Какой-то менее выразительней в плане цветопередачи, не знаю описать. Будто насыщенность выкрутили и температуру картинки сделали желтой, не знаю. Оригинальная картинка была какая-то розовато-синяя, чтоли. Подскажите пожалуйста? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211113
Graff46 620 Опубликовано 16 Ноября 2018 Поделиться Опубликовано 16 Ноября 2018 @_Sk8_AsTeR_, Это шейдеры надо править. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211116
Romann 623 Опубликовано 17 Ноября 2018 Поделиться Опубликовано 17 Ноября 2018 (изменено) Привет, снова я. Имеем такую функцию: Скрытый текст local current_outfit = db.actor:item_in_slot(7) if current_outfit then local outfit_section = current_outfit:section() if outfit_properties[outfit_section] then outfit_protection = outfit_properties[outfit_section] end news_manager.send_tip(db.actor, "%c[250, 0, 255, 0]".."Б-р-р-р, прохладно.", nil, nil, nil) end Проблема в строчке сообщения, во первыx - сообщение надо отправить когда мы снимаем броню, а не когда она в слоте, во вторыx - сообщение отправляется постоянно, а нужно: сняли броню - отправили сообщение, одели броню - не отправляем сообщение, сняли - опять отправили. Кто подскажет, как лучше сделать? Изменено 17 Ноября 2018 пользователем Romann Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211144
Fenrir02 199 Опубликовано 17 Ноября 2018 Поделиться Опубликовано 17 Ноября 2018 (изменено) @Romann Здравствуйте! Как вариант, можно однократно вызвать сообщение с помощью инфопоршня: Скрытый текст local current_outfit = db.actor:item_in_slot(7) if current_outfit then if not has_alife_info("check_outfit") then db.actor:give_info_portion("check_outfit") -- Здесь одноразовое срабатывание при надевании костюма end local outfit_section = current_outfit:section() if outfit_properties[outfit_section] then outfit_protection = outfit_properties[outfit_section] end else if has_alife_info("check_outfit") then db.actor:disable_info_portion("check_outfit") news_manager.send_tip(db.actor, "%c[250, 0, 255, 0]".."Б-р-р-р, прохладно.", nil, nil, nil) -- Здесь одноразовое срабатывание при снятии костюма end end Изменено 17 Ноября 2018 пользователем Fenrir02 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211150
Norman Eisenherz 354 Опубликовано 17 Ноября 2018 Поделиться Опубликовано 17 Ноября 2018 Здрасьте. При появлении в инвентаре любого нового броника у надетой брони вырубается ПНВ. Скорее всего, проблема решается правкой движка (поправьте меня, если нет), поэтому в качестве простого варианта хочу добавить костыль в скрипты – включать ПНВ обратно через отлов события "поднять предмет". Проблема: обнаруженная в скриптах конструкция "level.add_pp_effector("name.ppe", ###, false)" включает эффектор ненадолго и сразу для всей карты (как дополнительный эффект погоды, что ли), а надо сымитировать включение ПНВ в броне и оставить его до следующего нажатия клавиши "ПНВ вкл./выкл.". Как это сделать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211190
Graff46 620 Опубликовано 17 Ноября 2018 Поделиться Опубликовано 17 Ноября 2018 Что делает эта ф-ция? Скрытый текст function mob_capture(mob, reset_actions) if reset_actions == nil then abort("mob_capture: reset_actions parameter's value is not specified") end if reset_actions then reset_action(mob, script_name()) else if not mob:get_script() then mob:script(true, script_name()) end end end И что делают эти классы\методы? reset_action(mob, script_name()) mob:script(true, script_name()) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211260
dsh 3 824 Опубликовано 17 Ноября 2018 Поделиться Опубликовано 17 Ноября 2018 @Graff46, это для установления контроля за мобом. Т.е. он будет выполнять то, что ты ему скриптом скажешь. Например бежать в определенном направлении. Для примера, посмотри вот этот скрипт https://github.com/dsh2dsh/op2ogse/blob/3f7514f804eaf1dc875cc3ce8513d8537dd53bc2/gamedata/scripts/dsh_battle_radius.script#L135 Это аналог mob_home, только без путей. Там как раз используется такой захват контроля над мобом, что бы заставить его вернуться внутрь. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211395
AndreySol 215 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 (изменено) 23 часа назад, Norman Eisenherz сказал: а надо сымитировать включение ПНВ в броне и оставить его до следующего нажатия клавиши "ПНВ вкл./выкл.". Это явно из разряда "Овчинка выделки не стоит". Можно, конечно, все это скриптами наворотить(причем объем костылей и извращений будет не маленьким), вот только ради чего ? Изменено 18 Ноября 2018 пользователем AndreySol Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211485
AndreySol 215 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 В 17.11.2018 в 07:44, Romann сказал: а нужно: сняли броню - отправили сообщение, одели броню - не отправляем сообщение, сняли - опять отправили. Кто подскажет, как лучше сделать? С учетом отсутствия, в оригинале, движковых сообщений(кэллбэков) о манипуляциях с содержимым слотов - видимо как всегда, нагрузить в многострадальный апдейт биндера актера проверку на содержимое слота... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211486
Norman Eisenherz 354 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 @AndreySol Ради того, что достало каждый раз оказываться в темноте. В оригинале это еще не такая большая проблема, а в "солянке", где броню можно снимать с трупов, уже основательно надоедает. Я так понимаю, прямой функции "включить ПНВ" нет? Может, есть способ изобразить нажатие определенной клавиши скриптом? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211503
DoberBull 291 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 Кто может помочь, знает как сделать так, чтобы фонарики НПС не гасли после их смерти, а оставались светить, как в старых билдах ? Желательно без движковых исправлений. Или может кто знает мод где такое уже есть ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211505
Graff46 620 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 @Norman Eisenherz, В x-ray extensions вроде можно скриптами включать\отключать ПНВ Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211527
AndreySol 215 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 2 часа назад, DoberBull сказал: как сделать так, чтобы фонарики НПС не гасли после их смерти, а оставались светить Смотри в xr_motivator.script ф-цию motivator_binder:death_callback, в ней есть sr_light.check_light(self.object) ... death_manager.drop_manager(self.object):create_release_item() В sr_light может быть отключение фонарика у померших, а в death_manager может быть удаление фонарика из инвентаря моба, соответственно отключение по факту удаления. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211547
Fenrir02 199 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 Из X-Ray extensions: send_event_key_press(int<DIK_keys>) - имитация события нажатия кнопки Как именно применить это на практике? Допустим, при нажатии клавиши F3 нужно вызвать какое-то действие. Как это сделать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211568
Norman Eisenherz 354 Опубликовано 19 Ноября 2018 Поделиться Опубликовано 19 Ноября 2018 @Graff46 Спасибо, попробую. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211657
Shkiper2012 35 Опубликовано 19 Ноября 2018 Поделиться Опубликовано 19 Ноября 2018 В 18.11.2018 в 17:48, Fenrir02 сказал: Как именно применить это на практике? @Fenrir02, в нужную функцию вставляем: level.send_event_key_press(DIK_keys.DIK_F3) -- вместо "DIK_F3" может быть любая другая клавиша. Результатом будет имитация нажатия, как будто ты нажал на кл."F3" (не касаясь пальцем физически). Только вот не помню, должна ли быть локация загружена в этот момент, так как используется пространство "level". На всякий, может проверку поставить, типа "if level then ... end" 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1211746
Fenrir02 199 Опубликовано 22 Ноября 2018 Поделиться Опубликовано 22 Ноября 2018 И снова здравствуйте! Подскажите, как с помощью скрипта разжечь костёр, к которому подходит ГГ на определённое расстояние? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1212153
Overfirst 637 Опубликовано 22 Ноября 2018 Поделиться Опубликовано 22 Ноября 2018 Какая платформа? Для ЗП делал так: bind_campfire.script: function turn_off_campfire_by_name(name) if name then local campfire = campfire_table_by_name[name] if campfire and campfire:is_on() then campfire:turn_off() end end end function turn_on_campfire_by_name(name) if name then local campfire = campfire_table_by_name[name] if campfire and not campfire:is_on() then campfire:turn_on() end end end В самом верху объявил массив: campfire_table_by_name = {} В методе net_spawn заполняем его: campfire_table_by_name[self.object:name()] = self.campfire Собственно, использование: bind_campfire.turn_off_campfire_by_name("campfire_name") bind_campfire.turn_on_campfire_by_name("campfire_name") Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1212154
Fenrir02 199 Опубликовано 22 Ноября 2018 Поделиться Опубликовано 22 Ноября 2018 @Overfirst Нет, не в ЗП. Мне нужно для ТЧ, а там биндера костров нет. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1212155
Kirgudu 1 323 Опубликовано 22 Ноября 2018 Поделиться Опубликовано 22 Ноября 2018 @Fenrir02, был такой Dynamic campfire mod от kstn. Посмотри, как там реализовано, и переработай под свои нужды. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/472/#findComment-1212165
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти