Перейти к контенту

Рекомендуемые сообщения

@Norman Eisenherz , работает! Осталось доработать тексты, но в целом на поиск детектора задание взялось, проапдейтилось и сдалось.

Изменено пользователем Капрал Хикс
  • Нравится 1
Ссылка на комментарий

Проверил в ТЧ, подтверждаю (стоило сразу так сделать вместо советов "может быть").

Полный список правок, если кому-то интересно:

• [game_tasks_by_vendor.xml] – новый тип задания "parent_new_type"

• [task_manager.ltx] – конфиг нового задания, обязательно с заголовком в начале файла

• [task_manager.script] – копия строк с обработкой задания "artefact" => "new_type"

  • Нравится 1
  • Полезно 3

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz , ещё строка find_item (меняем на свой тип задания) = "return_for_reward_bring", - текст "принести заказчику обещанное".

Ссылка на комментарий

Не соглашусь: задание "find_item" имеет дополнительную обработку "есть на сервере, но не в кармане заказчика" – надо копировать или "artefact", или "monster_part".

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

Поколдовал ещё со скриптом task_manager.script и создал ещё один новый тип квеста - поиск информации. Ставим как цель квеста определённый инфопоршень и при получении его бежим за наградой, т.к. квест выполняется. Буду ещё тестировать, но вроде работает.

P.S. Если у нас уже есть этот инфопоршень, задание сразу обновляется, можно сразу получить награду.

Изменено пользователем Капрал Хикс
  • Нравится 2
Ссылка на комментарий

Такой вопрос к тем кто пользуется системой сигналов OGSE(ogse_signals.script). С каким интервалом происходит обновление при  стандартном подключении скриптов в bind_stalker.script(actor_binder:update(delta)). Можно ли задать интервал для апдейта, например раз в секунду раз в минуту. Если есть такая стандартная возможность в менеджере сигналов то подскажите как? Если нет то наверно в скриптах придется ставить таймеры на обновление так что ли.

Ссылка на комментарий
7 часов назад, Stalkersof сказал:

Если есть такая стандартная возможность в менеджере сигналов

Есть
https://github.com/I-AmDead/Secret-Trails/blob/Cleaner/gamedata/scripts/dsh/dsh_hud_fx.script#L57
 

  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

Приветствую!

Подскажите пожалуйста способ, как грамотно убить нпц/монстра в ОФФЛАЙНЕ? Так, чтобы движок правильно это всё обработал - записал game_death_time и т.д.

(Простое присваивание health = 0 убивает, но та же game_death_time в серверный объект не записывается. Подозреваю, что есть и другие недостатки).

 

Ссылка на комментарий

Может есть у кого скрипт, возвращающий количество предметов в инвентаре? Каждой конкретной item_section.

Изменено пользователем Balavnik
Добавлено  Купер,

Перемещено.

Устал.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий

Кстати, хотел спросить, можно ли из функции менять глобальную переменную? Мне нужно для реализации "отбирания" и запоминания текущих вещей актора, с последующим возвращением строго по списку.

Устал.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
36 минут назад, Balavnik сказал:

можно ли из функции менять глобальную переменную

Можно, запись в любые доступные переменные возможна точно так же, как и чтение из них.

  • Нравится 1
  • Полезно 2
Ссылка на комментарий

@Balavnik если это действительно глобальная переменная с ненулевым значением - до конца игры, ближайшей загрузки из сейва или принудительного обнуления скриптовым кодом.

Ссылка на комментарий

@Kirgudu Т.е. сам массив в  скриптовом файле .script по факту меняется  после выполнения функции enumerate_items? А можно ли в одном месте запомнить, и потом в любой момент обращаться(я понял так, что после перезагрузки сейва массив становится пустым т.к. кэш скриптов сброшен)? Или это уже вне компетенции встроенного Lua, и нужно менять движок?

Изменено пользователем Balavnik

Устал.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий

@Balavnik, ничего не понял.

Если первая часть вопроса относится к моему ответу в "ковырялке", то переменная в примере была объявлена как локальная: local item_counts = enumerate_items(). Да, там, где выполняется эта строка, содержимое массива, конечно, изменится. Но при этом, поскольку переменная локальная, из других скриптовых модулей она будет недоступна.

А вообще, как ты её (переменную) используешь, куда вставил, где изменяешь, как и откуда пытаешься читать - сие только тебе, да телепатам известно. Но последние здесь отсутствуют, поэтому вменяемый ответ дать сложно.

Что же касается второй части, то - опять же, за отсутствием телепатов предположительно, - нужна некая система сохранения переменной в сейве, чтобы её значение можно было использовать в ранее запомненном виде хоть после перехода на другую локацию, хоть после сохранения-загрузки и вообще в любое время. Так? Современные версии движка, такие как OGSR, обладают подобными возможностями, вот буквально недавно на глаза попадался похожий вопрос и ответ на него. Если же модифицированные движки по тем или иным причинам не рассматриваются, рекомендую обратить своё внимание на модуль se_stor от Artos-а, который можно взять, например, здесь: 

 

  • Полезно 1
Ссылка на комментарий

Приветствую. Хотел бы спросить совета, что я не так наскриптопурил(платформа: ЗП). Я решил попытаться сделать ограничение максимального количества ХП у ГГ при низком уровне сытости. Вставил функцию в апдейт, а в саму функцию накодил:

------

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% вне зависимости от сытости). В результате чего, на удивление, заработало. Это какая-то особенность ЗП, что проверка на ХП перестает работать при наличии еще одной проверки или я накосячил? 

Изменено пользователем Biblia
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...