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

Конфигурационные файлы

Редактирование параметров конфигурации, создание новых конфигураций

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



Много интересного материала здесь (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)", ее и надо расскомментировать, должно получиться вот так:
Код
function abort(fmt, ...)
                            local reason = string.format(fmt, ...)
                            error_log(reason)
end

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

Первый:
Код
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)

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


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



 
Aleksn09Дата: Чт, 05.07.2018, 13:07 | Сообщение # 706
Шаман Sigerous
Ночной Админ
Сообщений: 1333
Награды: 13
Репутация: [ 120 ]

Policai, возможно параметр far_distance в схеме meet, но это не точно.

Что ждет тебя Сталкер, в Зоне, которая изменилась?
 
PolicaiДата: Пн, 09.07.2018, 14:22 | Сообщение # 707
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Цитата Aleksn09 ()
возможно параметр far_distance в схеме meet, но это не точно.


Тоже логически предположил так же, ставил и 0 и 3 ничего не меняется...

Вот вся логика:

[cut noguest=Тыц][logic@esc_kpp_tehnic]
suitable = {=check_npc_name(esc_kpp_tehnic)}
prior = 200
level_spot = mechanic
active = animpoint@tehnic

[animpoint@tehnic]
cover_name = esc_kpp_animpoint_tehnic
avail_animpoints = animpoint_sit_normal
combat_ignore_cond = false
combat_ignore = false
combat_ignore_keep_when_attacked = false
meet = meet

[meet]
close_anim = nil
close_victim = nil
far_anim = nil
far_victim = nil
close_distance = 0
far_distance = 3
close_snd_distance = 3
use = {=actor_enemy} false, true
allow_break = false
meet_on_talking = false[/cut]

Добавлено (09.07.2018, 14:22)
---------------------------------------------
Народ! Не могу выдать поршень на стартовый диалог начала игры. Подскажите как правильно составить, автосейв срабатывает а поршень ни в какую.

[cut noguest=Логика][logic]
active = sr_idle@game_start

[sr_idle@game_start]
on_info = {=actor_on_level(escape)} sr_idle@game_start_2 %=damage_actor_items_on_start%

[sr_idle@game_start_2]
on_info = sr_idle@timer %+esc_kpp_game_start =scenario_autosave(st_save_start_escape)%

[sr_idle@timer]
on_game_timer = 3000 | %+esc_kpp_simulation_start%
on_info = {+esc_kpp_skriagin_conversation}

[sr_idle@nil][/cut]




Сообщение отредактировал Policai - Пн, 09.07.2018, 14:23
 
sergej5500Дата: Пн, 09.07.2018, 16:28 | Сообщение # 708
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
Подскажите как правильно составить, автосейв срабатывает а поршень ни в какую.


Какой именно поршень нужно выдать? Их тут два.
 
PolicaiДата: Пн, 09.07.2018, 16:47 | Сообщение # 709
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

esc_kpp_skriagin_conversation Это начало игры, разговор с начальником базы.

Добавлено (09.07.2018, 16:38)
---------------------------------------------
И ещё меня смущает, что когда появляюсь на локе начиная новую игру, появляется сообщение " Теперь можно достать оружие", как будто я вышел из зоны no_weapon, это давно уже и не знаю почему, может так и должно раз на локе есть такие спейсы, но они далеко от места старта. Глюков и вылетов нет я и не обращал на него внимание.

Добавлено (09.07.2018, 16:47)
---------------------------------------------
configs\misc\

[cut noguest=tm_escape.ltx][esc_kpp_talk_skriagin]; Разговор с начальником базы
icon = ui_inGame2_Karti_mestnosti
prior = 111
storyline = false
title = esc_kpp_talk_skriagin_name
descr = esc_kpp_talk_skriagin_text
target = esc_kpp_colonel_skriagin
condlist_0 = {+esc_kpp_skriagin_conversation} complete[/cut]

configs\gameplay

[cut noguest=dialogs_escape.xml]<dialog id="esc_kpp_talk_skriagin">
<phrase_list>
<phrase id="0">
<text>esc_kpp_talk_skriagin_0</text>
<give_info>esc_kpp_skriagin_conversation</give_info>
<next>1</next>
</phrase>
<phrase id="1">
<text>esc_kpp_talk_skriagin_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>esc_kpp_talk_skriagin_2</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>esc_kpp_talk_skriagin_3</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>esc_kpp_talk_skriagin_4</text>
<next>5</next>
</phrase>
<phrase id="5">
<text>esc_kpp_talk_skriagin_5</text>
<give_info>esc_kpp_skriagin_stop</give_info>
</phrase>
</phrase_list>
</dialog>[/cut]

[cut noguest=info_escape]<game_information_portions>
<info_portion id="esc_kpp_skriagin_conversation"></info_portion>
<info_portion id="esc_kpp_skriagin_stop"></info_portion>
</game_information_portions>[/cut]

[cut noguest=character_desc_escape.xml]<!-- Начальник базы "Скрягин" -->

<specific_character id="esc_kpp_colonel_skriagin" team_default = "1">
<name>esc_kpp_colonel_skriagin_name</name>
<icon>ui_inGame2_Kovalskiy</icon>
<map_icon x="1" y="0">
</map_icon>
<bio>ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует.</bio>
<class>esc_kpp_colonel_skriagin</class>
<community>army</community>
<terrain_sect>stalker_terrain</terrain_sect>
<snd_config>characters_voice\human_02\military\</snd_config>
<rank>75</rank>
<reputation>0</reputation>
<visual>actors\stalker_soldier\stalker_soldier_3_face_1</visual>
<supplies>

[spawn] \n
wpn_fort \n
wpn_groza \n
ammo_9x18_pmm = 1 \n
ammo_9x39_ap = 1 \n
grenade_f1 = 2 \n
hand_radio \n
wpn_binoc = 1 \n

#include "gameplay\character_food_army.xml"
#include "gameplay\character_drugs_2.xml"
#include "gameplay\character_drugs_mil.xml"
</supplies>
#include "gameplay\character_criticals_4.xml"

<start_dialog>esc_kpp_talk_skriagin</start_dialog>
<actor_dialog>actor_break_dialog</actor_dialog>[/cut]

[cut noguest=xr_effects.script]function zat_a1_tutorial_end_give()
task_manager.get_task_manager():give_task("esc_kpp_talk_skriagin")
end[/cut]

Может где что ещё забыл... Всё в новинку, только осваиваю...




Сообщение отредактировал Policai - Пн, 09.07.2018, 17:54
 
sergej5500Дата: Пн, 09.07.2018, 16:48 | Сообщение # 710
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
on_info = {+esc_kpp_skriagin_conversation}


Если исходить из логики, то этот поршень не выдаётся нигде. Строка означает, что если поршень есть, то нужно что то сделать. Причем это что то не дописано.

Что бы поршень выдавался, нужно писать что то типа.

on_game_timer = 3000 | %+esc_kpp_simulation_start +esc_kpp_skriagin_conversation%
on_info = {+esc_kpp_skriagin_conversation} sr_idle@nil
 
PolicaiДата: Пн, 09.07.2018, 16:58 | Сообщение # 711
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Цитата sergej5500 ()
on_game_timer = 3000 | %+esc_kpp_simulation_start +esc_kpp_skriagin_conversation%
on_info = {+esc_kpp_skriagin_conversation} sr_idle@nil


Попробовал. Не появляется задание всё равно, но сейчас появился вылет в начале разговора со скрягиным, вылетов небыло до этого

FATAL ERROR

[error]Expression : !m_error_code
[error]Function : raii_guard::~raii_guard
[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line : 748
[error]Description : ....k.e.r. - call of pripyat\gamedata\scripts\_g.script:505: bad argument #2 to 'format' (string expected, got no value)

stack trace:

-- Крешнуть игру (после вывода сообщения об ошибке в лог)
function abort(fmt, ...)
-- local reason = string.format(fmt, ...)
printf("ERROR! : "..fmt, ...)
string.format("%s") ------------- 505 строка
end

Я так понимаю после первой фразы у меня стоит поршень что задание выполнено и в этот момент вылет, то есть сработало на выполнение задачи которую не выдало.




Сообщение отредактировал Policai - Пн, 09.07.2018, 17:03
 
sergej5500Дата: Пн, 09.07.2018, 17:14 | Сообщение # 712
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
Не появляется задание всё равно


Чтобы задание появилось, его нужно как то выдать. Если уж поршень esc_kpp_skriagin_conversation выдается в диалоге, то можно написать так.

on_game_timer = 3000 | %+esc_kpp_simulation_start =zat_a1_tutorial_end_give%
on_info = {+esc_kpp_skriagin_conversation} sr_idle@nil
 
PolicaiДата: Пн, 09.07.2018, 17:19 | Сообщение # 713
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Он должен выдаваться при первом появлении на локации, и закрываться после начала разговора.

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

Цитата Policai ()
Он должен выдаваться при первом появлении на локации, и закрываться после начала разговора.


Если вы напишете логику, как я предлагал, то квест будет выдан через несколько секунд после стартового сейва.
 
PolicaiДата: Пн, 09.07.2018, 18:00 | Сообщение # 715
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Цитата sergej5500 ()
Если вы напишете логику, как я предлагал, то квест будет выдан через несколько секунд после стартового сейва.


Сейчас Сергей попробую и отпишу, мелкая кушать захотела, кормил..))

Добавлено (09.07.2018, 17:45)
---------------------------------------------
Цитата Policai ()
Сейчас Сергей попробую и отпишу


Не помогло, нет задания и такой же вылет в начале разговора.

Добавлено (09.07.2018, 18:00)
---------------------------------------------
Вообще то по задумке поршень не должен был прописываться в логике автосейва, у меня стояла такая

Цитата


[logic]
active = sr_idle@game_start

[sr_idle@game_start]
on_info = {=actor_on_level(escape)} sr_idle@nil %=damage_actor_items_on_start +esc_kpp_game_start =scenario_autosave(st_save_start_escape)%

[sr_idle@nil]


А поршень должен выдаваться скриптом в начале новой игры

xr_effects.script

function zat_a1_tutorial_end_give()
task_manager.get_task_manager():give_task("esc_kpp_talk_skriagin")
end

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




Сообщение отредактировал Policai - Пн, 09.07.2018, 18:01
 
sergej5500Дата: Пн, 09.07.2018, 20:00 | Сообщение # 716
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
А поршень должен выдаваться скриптом в начале новой игры


Если вы вписали функцию в xr_effects, то она не сработает автоматом. Её нужно выдать каким то способом.

Например, так:
on_game_timer = 3000 | %+esc_kpp_simulation_start =zat_a1_tutorial_end_give%
 
PolicaiДата: Пн, 09.07.2018, 20:15 | Сообщение # 717
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Вылет в этом случае. Выше описано.

Делал по уроку по аналогии, в инете нашёл, там всё по шагово, пересмотрел сейчас ещё раз, у меня всё точно так же, там работает, а у меня нет...
Я только день назад с сидором закончил, там кучу скриптов переделал чтоб анимация его работала со звуком и торговля. Может там что не стыкуется с этим методом.
У меня есть пара спейсов на старте, в одном я сразу появляюсь при начале новой игры, он запускает вертолёт и кат сцену с ним, и ещё 1 на автосейв впереди меня на пару метров. Можно как то выдать поршень используя их?


 
sergej5500Дата: Пн, 09.07.2018, 20:33 | Сообщение # 718
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
Вылет в этом случае. Выше описано.


Тогда вместо =zat_a1_tutorial_end_give напиши =give_task(esc_kpp_talk_skriagin)

Так

on_game_timer = 3000 | %+esc_kpp_simulation_start =give_task(esc_kpp_talk_skriagin)%
 
PolicaiДата: Пн, 09.07.2018, 21:04 | Сообщение # 719
Ветеран
Разработчики
Сообщений: 421
Награды: 2
Репутация: [ 183 ]

Цитата sergej5500 ()
Тогда вместо =zat_a1_tutorial_end_give напиши =give_task(esc_kpp_talk_skriagin)

Так

on_game_timer = 3000 | %+esc_kpp_simulation_start =give_task(esc_kpp_talk_skriagin)%


Тоже самое, нет задания и вылет в начале разговора..((


 
sergej5500Дата: Пн, 09.07.2018, 22:37 | Сообщение # 720
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата Policai ()
Тоже самое, нет задания и вылет в начале разговора..((


Выложи полностью все правки, относящиеся к этому квесту.
 
Поиск: