Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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 по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ted80Дата: Вт, 22.12.2015, 21:15 | Сообщение # 706
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Здравствуйте, в ТЧ есть возможность активации артефактов.
После отыгрыша анимации, артефакт выбрасывается, и после пары секунд спавнится аномалия,
такой вопрос - можно ли как-то отловить момент активации и эти пару секунд - когда артефакт выброшен но аномалия еще не появилась?


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

ted80, Потеря арта, возможно, вызовет колбек on_item_drop. Но как отследить спавн аномалии не совсем понятно.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ted80Дата: Ср, 23.12.2015, 19:04 | Сообщение # 708
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Втом-то и дело, с установленными детекторами артефактов, при дропе арта - происходит замена арта, на невидимый и не подбираемый предмет, а активации аномалии не происходит (((

 
denis2000Дата: Ср, 23.12.2015, 19:13 | Сообщение # 709
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата ted80 ()
происходит замена арта, на невидимый и не подбираемый предмет

Это кто и зачем так делает?


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ted80Дата: Ср, 23.12.2015, 19:20 | Сообщение # 710
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

)) Мод детекторы артефактов а'ля ЗП, вырезанный из Autumn Aurora 2
Арты можно подбирать только имея детектор


 
denis2000Дата: Ср, 23.12.2015, 19:39 | Сообщение # 711
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

ted80, Видимо скрипт отслеживает дроп предмета и если это арт производит подмену. Можно попытаться отложить подмену на пару секунд и если объект арт будет существовать после этого интервала (не конвертируется в аномалию), то только тогда подменять.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Пт, 08.01.2016, 18:20 | Сообщение # 712
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый день.

Сделал в чистом ЗП на Затоне в Лесничестве базу НПС. Как в СГМ. Для теста заспавнил там сквад Долга.

Обнаружил такую вещь. Долговцы стоят на своих местах. Выполняют работы в смарте. Мимо проходит сквад бандитов из симуляции. Бандиты видят долговцев и нападают на них. Долговцы ноль внимания. Стоят и покорно ловят пули. Гибнут один за другим. Игровое время 6 часов утра.

Я убил одного из этих бандитов. Тут же на Скадовске поднимается тревога и вся база краснеет. Когда я убил бандита, Скадовск был в оффлайне.

В другом месте Затона (возле Изумрудного) наблюдал такую вещь.

[cut=Скрины]
[/cut]

Рядом идут сталкеры и бандиты из симуляции. До Скадовска далеко. Почему они не перестреляют друг друга? Данное зрелище можно наблюдать на Затоне, если начать новую игру в 5 часов утра и немедленно телепортироваться в Изумрудное. Этих ребят можно увидеть идущими со стороны Заправки возле моста. Явление довольно стабильно. Я три раза начинал новую игру и три раза наблюдал мирных сталкеров и бандитов в этом районе. Если выстрелить в них, то немедленно получим тревогу на Скадовске.

Видимо, у этих явлений в Лесничестве и в Изумрудном общая причина. И связана она с зоной дружбы на Скадовске.

Вопрос такой. Можно ли это как то исправить?
 
prohodchikДата: Пн, 11.01.2016, 19:00 | Сообщение # 713
Новичок
Пользователи
Сообщений: 50
Награды: 0
Репутация: [ 0 ]

Здравствуйте!
Как реализовать "войну группировок аля ЧН" в ЗП? Спавном и логикой?
И как реализовать вступление в группировки в той же ЗП?


Проект в разработке – "Болотные легенды"
 
sergej5500Дата: Пн, 11.01.2016, 19:27 | Сообщение # 714
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата prohodchik ()
И как реализовать вступление в группировки в той же ЗП?


Перевод игрока в другую группировку производится с помощью скрипта вида

db.actor:set_character_community("bandit",0,0)

Данная функция переведет игрока в группировку бандитов. Аналогично с прочими группировками.

Цитата prohodchik ()
Как реализовать "войну группировок аля ЧН" в ЗП?


Не очень понятно, что вы хотите сделать.
 
prohodchikДата: Сб, 16.01.2016, 20:58 | Сообщение # 715
Новичок
Пользователи
Сообщений: 50
Награды: 0
Репутация: [ 0 ]

Цитата sergej5500 ()
Не очень понятно, что вы хотите сделать.

систему захвата и удержания важных той или иной группировке контрольных точек несколько типов.

Добавлено (16.01.2016, 20:58)
---------------------------------------------
И еще вопрос. При первом появлении на Янове проигрывается ролик, в котором Лоцман уходит в бар, а Азот представляется ГГ. Как убрать этот ролик?


Проект в разработке – "Болотные легенды"

Сообщение отредактировал prohodchik - Сб, 16.01.2016, 21:25
 
denis2000Дата: Вс, 17.01.2016, 11:53 | Сообщение # 716
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата prohodchik ()
систему захвата и удержания важных той или иной группировке контрольных точек несколько типов.

Делайте, подсматривайте в ЧН и делате.

Цитата prohodchik ()
Как убрать этот ролик?

Сборник модостроения ЗП v10.10.11 (автор: XOBAH). Раздел Скрипты, пункт 54. Или убрать все элементы логики обрабатывающие эту катсцену.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
prohodchikДата: Вс, 17.01.2016, 15:17 | Сообщение # 717
Новичок
Пользователи
Сообщений: 50
Награды: 0
Репутация: [ 0 ]

Цитата denis2000 ()
Сборник модостроения ЗП v10.10.11 (автор: XOBAH). Раздел Скрипты, пункт 54.

Как выдать инфопорши не из диалога, а при старте игры?


Проект в разработке – "Болотные легенды"
 
ted80Дата: Вс, 17.01.2016, 22:45 | Сообщение # 718
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Добрый вечер, подскажите пожалуйста,
как скриптово можно установить и снять оптику на\с оружия??
забыл, это для ТЧ




Сообщение отредактировал ted80 - Вс, 17.01.2016, 22:46
 
denis2000Дата: Пн, 18.01.2016, 13:38 | Сообщение # 719
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

prohodchik, Например в рестрикторе:
Код
[logic]
active = sr_idle@start
[sr_idle@start]
on_info = {-infoportion} nil %+infoportion%




ted80, Вероятно получиться через нетпакет объекта, но более определенно сказать не могу.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
prohodchikДата: Вт, 19.01.2016, 18:16 | Сообщение # 720
Новичок
Пользователи
Сообщений: 50
Награды: 0
Репутация: [ 0 ]

Цитата denis2000 ()
Например в рестриктор

а можно как-то именно при старте игры?


Проект в разработке – "Болотные легенды"
 
Поиск: