Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Редактирование и создание скриптов
denis2000Дата: Пн, 10.10.2011, 21:17 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Редактирование и создание скриптов

Редактирование и создание скриптов на языке LUA

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


Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7

Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл:
1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R])
2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx"
3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо)
Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#"
Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]

[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти?
Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда.
Для того чтоб найти LOG необходимо зайти вот сюда:

В Win хр лог находится:

C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs

Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.

В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs

Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка:
...
$app_data_root$ = true | false| $fs_root$| users\
(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx)
...
$logs$ = true| false| $app_data_root$| logs\
(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи)
...
[/cut][cut=Получение более подробной информации о вылете (ХОВАН)]
Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:
Code
function abort(fmt, ...)
                             local reason = string.format(fmt, ...)
                             error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Code
Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

Второй:
Code
Expression    : 0
Function      : ErrorLog
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
Line          : 49
Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

[/cut]


Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
denis2000Дата: Пн, 10.10.2016, 19:02 | Сообщение # 841
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата av661194 ()
Какое условие должно стоять вместо русских букв?

Что за кнопка, где она?


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
av661194Дата: Пн, 10.10.2016, 22:16 | Сообщение # 842
Отмычка
Пользователи
Сообщений: 39
Награды: 0
Репутация: [ 38 ]

denis2000,
Кнопка "Опции мода/Установки ХУДа/Отключить события статистики"
 
denis2000Дата: Вт, 11.10.2016, 08:51 | Сообщение # 843
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

av661194, Так вот в обработчике нажатия этой кнопки и устанавливайте флаг, на который будете ориентироваться включать или нет.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Сб, 15.10.2016, 16:09 | Сообщение # 844
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

Здравствуйте, хотел бы спросить можно ли сделать так чтобы одно гуи не перекрывало другое? т.е. при двух открытых гуи работало не только верхнее(последнее включенное), но и нижнее(открывшееся первым)?

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


Сообщение отредактировал men_stalker - Сб, 15.10.2016, 16:10
 
denis2000Дата: Сб, 15.10.2016, 18:21 | Сообщение # 845
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата men_stalker ()
можно ли сделать так чтобы одно гуи не перекрывало другое? т.е. при двух открытых гуи работало не только верхнее(последнее включенное), но и нижнее(открывшееся первым)?

Сомневаюсь, что движек на это рассчитан, но вы вполне можете поэкспериментировать.
Цитата men_stalker ()
А и ещё, можно ли сделать так что бы одна кнопка действовала на два гуи?

Вот тут не понятно, а что прописать две кнопки проблема? Одну в одном окне другую в другом окне. Имел дело с несколькими средами объектно-ориентированного программирования и ни в одной такое не предусматривалось иерархия классов знаете ли.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Вс, 16.10.2016, 14:35 | Сообщение # 846
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

Здравствуйте, можно ли self:HideDialog() в одном классе, использовать для закрытя и другого?
Т.е. нажимаем кнопку выключения в одном окне а закрываются и первое и второе.
 
denis2000Дата: Пн, 17.10.2016, 08:37 | Сообщение # 847
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

men_stalker,
Код
Frame_1:HideDialog()
Frame_2:HideDialog()

где Frame_1 - первый объект-окно, Frame_2 - второй объект-окно.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
МирияДата: Вт, 18.10.2016, 19:37 | Сообщение # 848
Караул Смерти
Тёмные
Сообщений: 274
Награды: 4
Репутация: [ 283 ]

Добрый вечер, уважаемые Мастера.

Подскажите, пожалуйста, есть ли возможность перенести анимации использования нпс'ами укрытий и стрельбы из-за них из ЧН/ЗП в ТЧ? И если да, то каким образом?
Заранее спасибо.

p.s. я - человек весьма далекий от технической части внутриигровых процессов, так что прошу сильно не лупить.Все ваши ответы, если таковые будут, постараюсь передать дословно внутрь своей команды.


"Они - сама ярость: жестокие, бесстрашные, неудержимые, беспощадные... Но ТЫ...Ты будешь еще хуже... Рви их в клочья, пока не уничтожишь всех..."
 
denis2000Дата: Ср, 19.10.2016, 19:39 | Сообщение # 849
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Мирия, Раз никто не отвечает, придется мне что то писать.
1. Поскольку скелеты НПС в ТЧ и ЗП/ЧН отличаются, то анимации несовместимы. Для приведения анимаций из ЗП к скелету ТЧ нужны некоторые манипуляции.
2. Поскольку укрытия обсчитывает движек и соответственно отправляет туда НПС и проигрывает анимации входа/выхода, атаки и тд. и тп. в укрытиях, то подключить новые анимации не получиться придется подменять старые.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Чт, 20.10.2016, 16:40 | Сообщение # 850
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

Здравствуйте, можно ли создать функцию
[cut=наподобии этой]--Запуск Gui
function run_gui(gui, close_inv)
if close_inv == true then
gui:ShowDialog(true)
game_hide_menu()
level.show_weapon(false)
else gui:ShowDialog(true)
end
end [/cut]
Но при этом чтобы при её активации стрелка курсора не переводилась в центр?
Возможно ли это?
 
denis2000Дата: Чт, 20.10.2016, 21:12 | Сообщение # 851
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

men_stalker, Не уверен что это возможно, курсором управляет движек, он то его и ставит в центр.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Ср, 09.11.2016, 13:44 | Сообщение # 852
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

Здравствуйте, хотел бы кое что спросить. Как известно бэкраунд (ui_inGame2_pda_buttons_background) окон в ПДА гг складывается [cut=из этого]<texture id="ui_inGame2_pda_buttons_background_lt" x="0" y="29" width="20" height="19" />
<texture id="ui_inGame2_pda_buttons_background_l" x="0" y="40" width="20" height="11" />
<texture id="ui_inGame2_pda_buttons_background_lb" x="0" y="52" width="20" height="11" />
<texture id="ui_inGame2_pda_buttons_background_t" x="20" y="29" width="56" height="19" />
<texture id="ui_inGame2_pda_buttons_background_back" x="20" y="40" width="56" height="11" />
<texture id="ui_inGame2_pda_buttons_background_b" x="20" y="52" width="56" height="11" />
<texture id="ui_inGame2_pda_buttons_background_rt" x="76" y="29" width="20" height="19" />
<texture id="ui_inGame2_pda_buttons_background_r" x="241" y="38" width="20" height="11" />
<texture id="ui_inGame2_pda_buttons_background_rb" x="76" y="52" width="20" height="11" />[/cut]
В одно большое окно путём совмещений и растягиваний фрагментов текстур. Как эту функцию можно реализовать вне движка?
 
denis2000Дата: Ср, 09.11.2016, 20:44 | Сообщение # 853
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

men_stalker, Обычными кастомстатиками ставишь текстуры на холсте и все нормально отображается, это заморочки с ПДА и реализацией в движке потребовали разных кусков текстур.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Вс, 13.11.2016, 11:14 | Сообщение # 854
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

denis2000, спасибо!

Здравствуйте, хотел задать вопрос можно ли внутри нода создать несколько нодов (что бы сразу регестрировать несколько элементов в скрипте не загромождая его почти идинтичными нодами складывающийся в один элемент)
Примерно так:
Код
<background_ranking x="35" y="41" width="955" height="198" stretch="1"> <!--- не работает--->
  <texture>ui_inGame2_pda_buttons_background_back</texture>
  <background_ranking_1 x="990" y="41" width="100" height="198" stretch="1">
  <texture>ui_inGame2_pda_buttons_background_r</texture>
  </background_ranking_1>
    </background_ranking>


Добавлено (13.11.2016, 11:14)
---------------------------------------------
Как повысить яркость гуи элемента в ноде допустим есть (изображения сильно увеличины):
[cut=вот это][/cut]
а надо
[cut=вот это][/cut]
2-2 из оригинала, 1-й этот же элемент отображается у меня


Сообщение отредактировал men_stalker - Вс, 13.11.2016, 11:16
 
denis2000Дата: Вс, 13.11.2016, 15:19 | Сообщение # 855
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата men_stalker ()
можно ли внутри нода создать несколько нодов

Можно. Таких примеров в конфигах сплошь и рядом.
Цитата men_stalker ()
Как повысить яркость гуи элемента

Только графическим редактором.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Поиск: