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

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

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/

Не нахожу нет-пакета куда записываются не стартовые диалоги НПС, есть пакет только для стартовых диалогов. Кроме как в XML профиле, больше ни как нельзя НПС задать нестартовые диалоги?

Камрады скриптовики!

 

Не дайте помереть, да поможите провести дебаг!

В моей сборке что-то адски жрёт fps.

Адски именно. Движок от ОГСЕ. При максимальных настройках на паузе имею 150 fps. А при игре 20-30 fps на открытых уровнях и 40-50 fps в подземельях.

Жрёт что-то в скриптах, ибо если иногда происходит какой-то сбой у актора при загрузке, то в игре подскакивают до этих 150 fps.

Если при этом сохраниться, то сейв будет битый из-за nil актора.

Вещи, висящие на апдейте актора, пробовал отключать - изменений нет.

 

Где пробовать копать?

1 час назад, Wlad777 сказал:

Где пробовать копать?

Понатыкать profile_timer в апдейте и увидеть, где надо копать?

С помощью profile_timer можно замерить время выполнения куска кода(методы в lua_help.script). Расставляешь пару замеров в апдейте, находишь тормозящий кусок, расставляешь в нем, и так пока не поймешь в чем дело.

  • Спасибо 1

@Wlad777 вот так как-то

local pt = profile_timer()
pt:start()
-- подозрительный код
pt:stop()
log2( "работало %s ms", pt:time() )

 

  • Спасибо 2
  • Полезно 2

Хаюшки. Будьте любезны, подскажите, как спавнить вертолёт через скрипт. На Кордоне. Цель- актёр и нпс кроме армии.

Вопрос по воронам - их класс вообще полностью поддерживает скриптовую обвязку bind_monster?

Попробовал добавить строку вида:

script_binding = bind_monster.bind

в конфиг, вроде эффект есть, функция хита при обыске трупа вороны срабатывает, например, но выдача инфопоршня при убийстве - нет. Последнее делал по аналогии с OGSM, где при убийстве монстра даётся статья о нём.

Код:

 --if string.find(self.object:section(), "m_crow") then - не работает
 if self.object:section() == "m_crow" then - тоже метод не работает
 if not has_alife_info("crow_dead") then db.actor:give_info_portion("crow_dead") end
 end

Upd. подсмотрел метод в моде OLR, кому интересно - смотрите скрипт bind_crow.

Изменено пользователем Капрал Хикс
неактуальность помощи
  • Полезно 1

У меня вопрос из области GUI, можно ли сделать скролл InitStatic'ку, а то большой текст за статик вылазит?

Скрытый текст

875a05134f48783c7a06e360ae333289.jpg

 

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

Вопрос: можно через скрипты или как-то блокировать срабатывание перехода с локации на локацию до того, пока определённый квест не получит ГГ? Или к примеру поставить ворота и чтобы они не открывались т.к. скрипт проверяет и не видит, что у ГГ активен или выполнен определённый квест.

 

Если это реально. То как. Прошу примера т.к. подобного не встречается ни в одной из игр оригинала?

Изменено пользователем Lebedev30
Только что, Lebedev30 сказал:

можно через скрипты или как-то блокировать срабатывание перехода с локации на локацию

Можно спавнить переход по условию, до определённого события перехода просто не будет.

  • Согласен 1
1 hour ago, Graff46 said:

сделать скролл InitStatic'ку

Я делаю scroll

    <descr_scroll x="247" y="10" width="355" height="150" always_show_scroll="0"/>
  self.descr_scroll = xml:InitScrollView(
    "main_dialog:descr_scroll", self.dialog
  )

и к нему уже аттачу статик с текстом

    <descr_text x="0" y="0" width="335" height="250" complex_mode="1">
      <font font="letterica16" r="255" g="255" b="255"/>
    </descr_text>
  self.item_descr = self.xml:InitStatic(
    "main_dialog:descr_text", self.descr_scroll
  )
  self.item_descr:SetText( self:get_item_description( ui_item.data ) )
  self.item_descr:AdjustHeightToText()

 

@Lebedev30 Как вариант: перед переходом поставить большой рестриктор и в логике вызывать функцию, когда ГГ будет внутри. А в функции телепортировать (например 2 метра назад) и развернуть ГГ и написать сообщение на экран типа "Переход заблокирован". После выполнения квеста, рестриктор удаляем.

  • Согласен 1
5 часов назад, Graff46 сказал:

Можно спавнить переход по условию, до определённого события перехода просто не будет.

Вот только тогда игрок сможет выйти за пределы локации и упасть например)

Здравствуйте ВАМ. Как можно в ТЧ...04 сделать арты, увеличивающие переносимый вес? 

3 минуты назад, nego сказал:

Здравствуйте ВАМ. Как можно в ТЧ...04 сделать арты, увеличивающие переносимый вес? 

 

Меня этот вопрос интересовал и давно, но для ТЧ даже таких модов не встречалось или инструкций. Лучше на ЧН или ЗП переходи.

Прямо в соседней теме и было. Только к скриптам отношения не имеет: чистый конфиг. Создаем пистолет на n патронов, создаем для него патроны с отрицательным весом, устанавливаем в нем патроны через set_ammo_elapsed()

 

Сами патроны ни куда не спавнить. Ни при каких обстоятельствах.

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

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

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

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

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

Войти

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

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

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