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 Ссылка на комментарий
Zagolski 74 Опубликовано 2 Мая 2018 Поделиться Опубликовано 2 Мая 2018 (изменено) Были мысли об этом, но тогда бы аномалии записывались и другим неписям. Но другим не пишутся, записываются только нужные рестрикторы. Я этого товарища везде перепроверил, в т.ч. по цепочке вызовов к amk_anoms.syncronize(), не нашел связей. Изменено 2 Мая 2018 пользователем Zagolski Ссылка на комментарий
Zagolski 74 Опубликовано 3 Мая 2018 Поделиться Опубликовано 3 Мая 2018 (изменено) Отбой, проблему решил. Аномалии не должны сразу все записываться в рестиркторы в амк-шной схеме. Это висит на медленном апдейте, запись происходит постепенно, чаще по две-три штуки, тех аномалий, которые ближайшие к неписю. Старые вычищаются, новые добавляются. А у меня при заходе на уровень происходила первая одиночная запись всех аномалий в игре неписям, чего быть не должно. Ну и переполнение буфера с последствиями. Вызов шел из blowout_scheme.script Изменено 3 Мая 2018 пользователем Zagolski Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 9 Мая 2018 Поделиться Опубликовано 9 Мая 2018 Господа, выручайте При первом переходе на Неразведанную Землю ловлю вылет на этапе загрузке уровня: Скрытый текст Expression : fatal error Function : CInifile::r_section File : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp Line : 342 Description : <no expression> Arguments : Can't open section 'aver_musics' Куда копать, подскажите пожалуйста Ссылка на комментарий
Graff46 598 Опубликовано 9 Мая 2018 Поделиться Опубликовано 9 Мая 2018 (изменено) 6 минут назад, _Sk8_AsTeR_ сказал: Куда копать, подскажите пожалуйста Отсутствует секция предмета aver_musics, но он где-то заспавнен или прописан кому-то в рюкзак. Хотя может быть это секция не предмета, а амбиента на локации. Изменено 9 Мая 2018 пользователем Graff46 Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 9 Мая 2018 Поделиться Опубликовано 9 Мая 2018 @Graff46, Посмотрел лог успешной загрузки другого уровня. Похоже что это грузятся звуки уровня. На успешном логе проходит эта стадия успешно: Loading music tracks from 'marsh_musics' (болота вроде грузил, где Чистое Небо тусуется) А при загрузке Неразв. Земли тут загрузка спотыкается: Loading music tracks from 'aver_musics'... FATAL ERROR Где-то нужно смотреть конфиги ззвуков на отсутствие соответствующей секции, если я все верно понял. Но вот где... Ссылка на комментарий
Graff46 598 Опубликовано 9 Мая 2018 Поделиться Опубликовано 9 Мая 2018 1 минуту назад, _Sk8_AsTeR_ сказал: Но вот где... config(s)\game_maps_single.ltx 1 1 Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 9 Мая 2018 Поделиться Опубликовано 9 Мая 2018 @Graff46, Благодарю, успешно решил свою проблему! Ссылка на комментарий
_Val_ 2 225 Опубликовано 9 Мая 2018 Поделиться Опубликовано 9 Мая 2018 @_Sk8_AsTeR_ 1. К скриптованию никаким боком. Это конфиги. 2. 3 минуты назад, _Sk8_AsTeR_ сказал: Но вот где... В принципе тебе ответили, но - если сделать так: забиваешь marsh_musics в поиск и ищешь, а где же оно прописано. И находишь САМ! именно этот файл)) 2 Ссылка на комментарий
Fenrir02 199 Опубликовано 10 Мая 2018 Поделиться Опубликовано 10 Мая 2018 Доброго времени! Подскажите, возможно ли скриптом проверить, идёт ли дождь на локации? Если можно, то каким образом? Заранее спасибо! Важнейшая задача цивилизации - научить человека мыслить. Ссылка на комментарий
Zagolski 74 Опубликовано 11 Мая 2018 Поделиться Опубликовано 11 Мая 2018 level.rain_factor() 0...1 Ссылка на комментарий
Lasplagas 0 Опубликовано 12 Мая 2018 Поделиться Опубликовано 12 Мая 2018 (изменено) Всем привет! Начну с того что маюсь поиском давно, и вариантов по одним и тем же функциям перепробовал множество, не знаю что и делать. Neeed help! Нужно: Через диалог активировать таймер, по истечению которого выдаётся поршень+сообщение. (доп условие - тайм фактор Не должен ломаться после перезагрузки) Поделка_1 (таймфактор ломается после перезагрузки) function start_timer() local iTimer = time_global() + 10000 local function check_timer() return time_global() > iTimer end level.add_call(check_timer, action_timer) end function action_timer() db.actor:give_info_portion("test_portion") end Поделка_2 (пропуск таймера и мгновенный переход к выполнению test_333) не довёл до ума но увидел что с этой функцией невозможно побороть сейфлоад, так же пропадает после перезагрузки. function start_timer_medpreparat(first_speaker,second_speaker) local function test_333() give_info("vikarii_quest_medpreparat_time") db.actor:give_game_news("vikarii_medpreparat_message", 0, "default", 10000) end CreateTimeEvent("test_222",zaebalsa, 5,test_333()) end Изменено 12 Мая 2018 пользователем Lasplagas Ссылка на комментарий
Overfirst 637 Опубликовано 12 Мая 2018 Поделиться Опубликовано 12 Мая 2018 Всю жизнь не понимал, нафига вы заводите скриптовые таймеры и плодите функции, когда можно в рестрикторе всё это красивенько сделать, причём всё сохраняется. Я, может, что-то упустил? Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Lasplagas 0 Опубликовано 12 Мая 2018 Поделиться Опубликовано 12 Мая 2018 1 минуту назад, Overfirst сказал: Всю жизнь не понимал, нафига вы заводите скриптовые таймеры и плодите функции, когда можно в рестрикторе всё это красивенько сделать, причём всё сохраняется. Я, может, что-то упустил? Нет возможности работы в рестрикторе, нужна конкретно функция на таймер с запоминанием в сейвлоаде. Ссылка на комментарий
Lasplagas 0 Опубликовано 12 Мая 2018 Поделиться Опубликовано 12 Мая 2018 1 час назад, Lasplagas сказал: Всем привет! Начну с того что маюсь поиском давно, и вариантов по одним и тем же функциям перепробовал множество, не знаю что и делать. Neeed help! Нужно: Через диалог активировать таймер, по истечению которого выдаётся поршень+сообщение. (доп условие - тайм фактор Не должен ломаться после перезагрузки) Поделка_1 (таймфактор ломается после перезагрузки) Показать function start_timer() local iTimer = time_global() + 10000 local function check_timer() return time_global() > iTimer end level.add_call(check_timer, action_timer) end function action_timer() db.actor:give_info_portion("test_portion") end Поделка_2 (пропуск таймера и мгновенный переход к выполнению test_333) не довёл до ума но увидел что с этой функцией невозможно побороть сейфлоад, так же пропадает после перезагрузки. Показать function start_timer_medpreparat(first_speaker,second_speaker) local function test_333() give_info("vikarii_quest_medpreparat_time") db.actor:give_game_news("vikarii_medpreparat_message", 0, "default", 10000) end CreateTimeEvent("test_222",zaebalsa, 5,test_333()) end пример_3 ( так же ломается при сейвлоаде) local iTimer function function_onetimer() iTimer = time_global() + 12*1000 end function timer_5_minutes() if iTimer and iTimer < time_global() then iTimer = nil db.actor:give_info_portion("vikarii_quest_medpreparat_time") end end регистрация в bind_stalker.scripts dialogs_deadcity.timer_5_minutes() Ссылка на комментарий
dsh 3 824 Опубликовано 12 Мая 2018 Поделиться Опубликовано 12 Мая 2018 4 hours ago, Overfirst said: может, что-то упустил? Ну.. Как минимум то, что стоит уйти на другую локацию и такой таймер все, останавливается. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
dsh 3 824 Опубликовано 12 Мая 2018 Поделиться Опубликовано 12 Мая 2018 @Lasplagas, не мучайся. Ни в одном из твоих примеров нет сохранения/загрузки таймера. Поищи готовую реализацию сохраняемых таймеров. Ну, например, можешь попробовать вытащить из OGSE. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Lasplagas 0 Опубликовано 12 Мая 2018 Поделиться Опубликовано 12 Мая 2018 @dsh, Спасибо за подсказку. К сожалению вчера уже нашёл но я слишком деревянный что бы понять как собрать из их кусков что либо работающее. https://github.com/KRodinn/OGSE_0693_Optimized/blob/be4597706496ba810682b3f4f4754c6879b4b932/gamedata/scripts/ogse_st_mgr.script#L353 вот инструкция. Ссылка на комментарий
Graff46 598 Опубликовано 16 Мая 2018 Поделиться Опубликовано 16 Мая 2018 (изменено) Можно ли как-то "подключиться" к биндеру объекта? Пробовал так: local a = level.object_by_id(mmobj.id) local b = a:binded_object() b.update = function(delta) get_console():execute("MY_BIND!") b.update(delta) end a:bind_object(b) Но ничего не происходит... Изменено 16 Мая 2018 пользователем Graff46 Ссылка на комментарий
Dennis_Chikin 3 661 Опубликовано 17 Мая 2018 Поделиться Опубликовано 17 Мая 2018 Полагаю, происходит завис. Какова цель данного действа ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Graff46 598 Опубликовано 17 Мая 2018 Поделиться Опубликовано 17 Мая 2018 4 часа назад, Dennis_Chikin сказал: Полагаю, происходит завис Зависания нет, нпс дальше вполне нормально функционирует. Цель, подключиться к биндеру объекта и пользоваться, например, его апдейтом в своих целях. Я думал для этого сделан метод level.add_call(object, ...), Но эта функция странно себя ведёт. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти