Капрал Хикс 519 Опубликовано 6 Марта Поделиться Опубликовано 6 Марта (изменено) Поколдовал ещё со скриптом task_manager.script и создал ещё один новый тип квеста - поиск информации. Ставим как цель квеста определённый инфопоршень и при получении его бежим за наградой, т.к. квест выполняется. Буду ещё тестировать, но вроде работает. P.S. Если у нас уже есть этот инфопоршень, задание сразу обновляется, можно сразу получить награду. Изменено 6 Марта пользователем Капрал Хикс 2 Ссылка на комментарий
Капрал Хикс 519 Опубликовано 15 Марта Поделиться Опубликовано 15 Марта Как скриптами отследить, что взят однотипный квест, например, на поиск предмета? Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 15 Марта Поделиться Опубликовано 15 Марта Привязаться к таблице в менеджере заданий: local tm = task_manager.get_random_task() local task = tm.task_info[type_parent] if task.status = "selected" then … Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Stalkersof 141 Опубликовано 18 Апреля Поделиться Опубликовано 18 Апреля Такой вопрос к тем кто пользуется системой сигналов OGSE(ogse_signals.script). С каким интервалом происходит обновление при стандартном подключении скриптов в bind_stalker.script(actor_binder:update(delta)). Можно ли задать интервал для апдейта, например раз в секунду раз в минуту. Если есть такая стандартная возможность в менеджере сигналов то подскажите как? Если нет то наверно в скриптах придется ставить таймеры на обновление так что ли. Freeplay Graphic Mod(FGM) Ссылка на комментарий
I am Dead 912 Опубликовано 18 Апреля Поделиться Опубликовано 18 Апреля 7 часов назад, Stalkersof сказал: Если есть такая стандартная возможность в менеджере сигналов Естьhttps://github.com/I-AmDead/Secret-Trails/blob/Cleaner/gamedata/scripts/dsh/dsh_hud_fx.script#L57 1 1 Ссылка на комментарий
phalcor 60 Опубликовано 20 Апреля Поделиться Опубликовано 20 Апреля Приветствую! Подскажите пожалуйста способ, как грамотно убить нпц/монстра в ОФФЛАЙНЕ? Так, чтобы движок правильно это всё обработал - записал game_death_time и т.д. (Простое присваивание health = 0 убивает, но та же game_death_time в серверный объект не записывается. Подозреваю, что есть и другие недостатки). Ссылка на комментарий
Balavnik 112 Опубликовано 28 Апреля Поделиться Опубликовано 28 Апреля (изменено) Может есть у кого скрипт, возвращающий количество предметов в инвентаре? Каждой конкретной item_section. Изменено 28 Апреля пользователем Balavnik Добавлено Купер, 29 Апреля Перемещено. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 207 Опубликовано 28 Апреля Это популярное сообщение. Поделиться Опубликовано 28 Апреля (изменено) @Balavnik, перебор всех предметов в инвентаре и подсчёт количества каждого типа предмета с возвратом таблицы вида { секция1 = кол-во1, секция2 = кол-во2...}: Скрытый текст function enumerate_items() local counts = {} db.actor:iterate_inventory(function(dummy, item) local sect = item:section() if counts[sect] then counts[sect] = counts[sect] + 1 else counts[sect] = 1 end end, nil) return counts end -- использование local item_counts = enumerate_items() -- получаем таблицу секций предметов в инвентаре и их количества for section, count in pairs(item_counts) do -- здесь что-то делаем с каждой секцией и количеством end Имхо, это всё вопросы для Скриптования, а не Ковырялки. Изменено 28 Апреля пользователем Kirgudu 3 4 Инструмент Ссылка на комментарий
Balavnik 112 Опубликовано 29 Апреля Поделиться Опубликовано 29 Апреля Кстати, хотел спросить, можно ли из функции менять глобальную переменную? Мне нужно для реализации "отбирания" и запоминания текущих вещей актора, с последующим возвращением строго по списку. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Kirgudu 1 207 Опубликовано 29 Апреля Поделиться Опубликовано 29 Апреля 36 минут назад, Balavnik сказал: можно ли из функции менять глобальную переменную Можно, запись в любые доступные переменные возможна точно так же, как и чтение из них. 1 2 Инструмент Ссылка на комментарий
Balavnik 112 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля @KirguduИ до какого момента они хранятся в кэшэ игры? Ведь в самом списке в файле ничего не меняется. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Kirgudu 1 207 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля @Balavnik если это действительно глобальная переменная с ненулевым значением - до конца игры, ближайшей загрузки из сейва или принудительного обнуления скриптовым кодом. Инструмент Ссылка на комментарий
Balavnik 112 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля (изменено) @Kirgudu Т.е. сам массив в скриптовом файле .script по факту меняется после выполнения функции enumerate_items? А можно ли в одном месте запомнить, и потом в любой момент обращаться(я понял так, что после перезагрузки сейва массив становится пустым т.к. кэш скриптов сброшен)? Или это уже вне компетенции встроенного Lua, и нужно менять движок? Изменено 30 Апреля пользователем Balavnik Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Kirgudu 1 207 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля @Balavnik, ничего не понял. Если первая часть вопроса относится к моему ответу в "ковырялке", то переменная в примере была объявлена как локальная: local item_counts = enumerate_items(). Да, там, где выполняется эта строка, содержимое массива, конечно, изменится. Но при этом, поскольку переменная локальная, из других скриптовых модулей она будет недоступна. А вообще, как ты её (переменную) используешь, куда вставил, где изменяешь, как и откуда пытаешься читать - сие только тебе, да телепатам известно. Но последние здесь отсутствуют, поэтому вменяемый ответ дать сложно. Что же касается второй части, то - опять же, за отсутствием телепатов предположительно, - нужна некая система сохранения переменной в сейве, чтобы её значение можно было использовать в ранее запомненном виде хоть после перехода на другую локацию, хоть после сохранения-загрузки и вообще в любое время. Так? Современные версии движка, такие как OGSR, обладают подобными возможностями, вот буквально недавно на глаза попадался похожий вопрос и ответ на него. Если же модифицированные движки по тем или иным причинам не рассматриваются, рекомендую обратить своё внимание на модуль se_stor от Artos-а, который можно взять, например, здесь: 1 Инструмент Ссылка на комментарий
Biblia 4 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля (изменено) Приветствую. Хотел бы спросить совета, что я не так наскриптопурил(платформа: ЗП). Я решил попытаться сделать ограничение максимального количества ХП у ГГ при низком уровне сытости. Вставил функцию в апдейт, а в саму функцию накодил: ------ local mh if (db.actor.health>0.5) and (db.actor.satiety<0.31) then mh = 0.5 - db.actor.health db.actor.health = mh end ------ Однако ничего не заработало. Решил проверки ради убрать проверку на сытость(но сами понимаете, не то, ибо ХП по умолчанию остановилось на уровне 50% вне зависимости от сытости). В результате чего, на удивление, заработало. Это какая-то особенность ЗП, что проверка на ХП перестает работать при наличии еще одной проверки или я накосячил? Изменено 30 Апреля пользователем Biblia Ссылка на комментарий
Kirgudu 1 207 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля @Biblia В скриптовом плане ошибки нет (переменная только лишняя, вполне можно писать сразу db.actor.health = 0.5 - db.actor.health). Выведи содержимое db.actor.satiety в лог и посмотри, чему оно равно и меняется ли вообще. 1 Инструмент Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля Спойлер: не меняется – в ЗП сытость всегда 1.0, даже при красном индикаторе голода. 3 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Biblia 4 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля @Norman Eisenherz получается, что без ковыряний в движке проблема нерешаема? Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля Разве что попытаться повторить движковые формулы в скриптах для расчета сытости по таймеру и, если такое такое есть, по повышенному расходу сил на бег, прыжки и критические ранения. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
WinCap 316 Опубликовано 30 Апреля Поделиться Опубликовано 30 Апреля 29.04.2024 в 23:30, Balavnik сказал: Мне нужно для реализации "отбирания" ... с последующим возвращением строго по списку. Возможно задумка в том, что бы "ограбить" ГГ, а потом всё вернуть. В этом случае можно воспользоваться перемещением предметов в заранее подготовленный ящик и обратно. Примеры в "xr_effects.script" есть (см. функцию "transfer_item"). 1 1 1 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти