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

Помощь тем кто хочет знать больше о игре и модах

Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


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


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


Посты, для которых есть свои категории, из этой темы будут удаляться или перемещаться в соответсвующую тему. Персональных извещений в ЛС о переносе\удалении поста не будет, ищите сами. Учитывайте, что в системах Ucoz тема не обновляется в статистике при переносе поста.
Посты, написанные здесь-же после переноса, будут расцениваться как кросспостинг, со всеми вытекающими


[cut noguest=Первый юбилей нашей темы]

Здравствуйте господа модостроители, и все так или иначе причастные к этому.
Нашей теме исполнился 1 год.
От души поздравляю Всех Вас дорогие друзья, творческих успехов.
Хочу так же выразить отдельную благодарность denis2000 и ХОВАН.

tracker 23.06.11



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

Цитата denis2000 ()
Если сделать сохранение рядом с ними, а потом загрузить его баг сохраняется?


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

Возле Скадовска обнаружил этих четырех персов погибшими от выброса. Как шли рядышком, так и легли.

Можно предположить, что эти 4 непися направлялись на Скадовск. И попали под управление зоны мира на Скадовске.
 
Kapitan_komandorДата: Пн, 07.09.2015, 09:42 | Сообщение # 1457
Диггер Вольных
Вольные сталкеры
Сообщений: 12056
Награды: 15
Репутация: [ 1122 ]

sergej5500, программные не дочёты...а мне и пофиг.
Главное хороший мод и атмосфера игры.Поиск в ЧЗО и разные головоломки.
А графа или еще там улучшение,это не суть главно.
Очень охота по больше окунутся в атмосферу приключений,как это было при первых днях,когда ставил игры СТАЛКЕР и не мог оторватся от того,что будет дальше.
- Как сам?...что поделываешь.



Жизнь это миг.за него и держись.
 
asd123Дата: Вт, 15.09.2015, 20:48 | Сообщение # 1458
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Здравствуйте. Решил добавить квестовый сквад на Кордоне, но ловлю вылет при приближении к Железнодорожному мосту(думаю, это конечный радиус от смарт-террайна Фермы). Вообщем, вот что добавил в esc_smart_terrain_6:
Код
esc_b6_guarder_26 = escape\esc_b6_logic.ltx
esc_b6_army_1 = escape\esc_b6_logic.ltx
esc_b6_army_2 = escape\esc_b6_logic.ltx
esc_b6_army_3 = escape\esc_b6_logic.ltx
esc_b6_army_4 = escape\esc_b6_logic.ltx
esc_b6_army_5 = escape\esc_b6_logic.ltx
esc_b6_army_6 = escape\esc_b6_logic.ltx
esc_b6_glava_bazi = escape\esc_b6_logic.ltx
esc_b6_medic = escape\esc_b6_logic.ltx


Вот что добавил в esc_b6_logic:
Код

[logic@esc_b6_guarder_26]
active = walker@guarder_26
suitable = {=check_npc_name(sim_default_bandit_enemy)} true, {=check_npc_name(sim_default_army)} true
prior = 95

[walker@guarder_26]:walker@def_guarder
path_walk = guard_21_walk
path_look = guard_21_look

;

[logic@esc_b6_glava_bazi]
active = walker@glava_position
suitable = {=check_npc_name(army_glava_bazi)} true
prior = 200

[walker@glava_position]
path_walk = glava_walk
path_look = glava_look
avail_animations = animpoint_sit_normal
combat_ignore_keep_when_attacked = true
invulnerable = true
meet = meet@glava
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
use_camp = true
on_game_timer = 10 | walker@glava_sit
on_info = {=actor_enemy} %=actor_neutral%

[walker@glava_sit]
path_walk = glava_2_walk
path_look = glava_2_look
avail_animations = animpoint_sit_normal
combat_ignore_keep_when_attacked = true
invulnerable = true
meet = meet@glava
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
use_camp = true
on_game_timer = 20 | {=npc_in_zone(glava_2_walk)} walker@glava_sit_2
on_info = {=actor_enemy} %=actor_neutral%

[walker@glava_sit_2]
path_walk = glava_3_walk
path_look = glava_3_look
avail_animations = animpoint_sit_high_normal
combat_ignore_keep_when_attacked = true
invulnerable = true
meet = meet@glava
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
use_camp = true
on_game_timer = 50 | {=npc_in_zone(glava_3_walk)} walker@glava_position
on_info = {=actor_enemy} %=actor_neutral%

[meet@glava]
close_anim   = nil
close_victim  = nil
far_anim   = nil
far_victim   = nil
close_distance  = 0
far_distance  = 0
use = {=actor_enemy} false, true
trade_enable  = false
allow_break  = false
meet_on_talking = false

;

[logic@esc_b6_medic]
active = walker@medic_position
level_spot = medic
trade = misc\trade\trade_jup_b202_stalker_medic.ltx

[walker@medic_position]
path_walk = medic_walk
path_look = medic_look
combat_ignore_keep_when_attacked = true
invulnerable = true
meet = meet@medic
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
use_camp = false
on_info = {=actor_enemy} %=actor_neutral%

[meet@medic]
close_anim   = nil
close_victim  = nil
far_anim   = nil
far_victim   = nil
close_distance  = 0
far_distance  = 0
use = {=actor_enemy} false, true
trade_enable  = true
allow_break  = true
meet_on_talking = false

;

[logic@esc_b6_army_1]
active = walker@army_1
suitable = {=check_npc_name(esc_army)} true
prior = 95

[walker@army_1]:walker@def_guarder
path_walk = army_1_walk
path_look = army_1_look

;

[logic@esc_b6_army_2]
active = walker@army_2
suitable = {=check_npc_name(esc_army)} true
prior = 95

[walker@army_2]:walker@def_guarder
path_walk = army_2_walk
path_look = army_2_look

;

[logic@esc_b6_army_3]
active = walker@army_3
suitable = {=check_npc_name(esc_army)} true
prior = 95

[walker@army_3]:walker@def_guarder
path_walk = army_3_walk
path_look = army_3_look

;

[logic@esc_b6_army_4]
active = walker@army_4
suitable = {=check_npc_name(esc_army)} true
prior = 95

[walker@army_4]:walker@def_guarder
path_walk = army_4_walk
path_look = army_4_look

;

[logic@esc_b6_army_5]
active = walker@army_5
suitable = {=check_npc_name(esc_army)} true
prior = 95

[walker@army_5]:walker@def_guarder
path_walk = army_5_walk
path_look = army_5_look

;

[logic@esc_b6_army_6]
active = walker@army_6
suitable = {=check_npc_name(esc_army)} true
prior = 95

[walker@army_6]:walker@def_guarder
path_walk = army_6_walk
path_look = army_6_look

;


Ну и собственно сам вылет:

Код
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   : .... - Зов Припяти\gamedata\scripts\xr_motivator.script:107: attempt to index local 'smart_task' (a nil value)
             

stack trace:

Где я допустил ошибку? Если что, как обычно - всё делаю в СГМ 2.2 со всем фаршем из фиксов biggrin


У мутантов тоже есть группировки. © Движок X-Ray




Сообщение отредактировал asd123 - Вт, 15.09.2015, 21:05
 
sergej5500Дата: Вт, 15.09.2015, 21:09 | Сообщение # 1459
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

asd123,

Такие вылеты 'smart_task' у меня бывают, когда я забываю или неверно прописываю пути неписей в all.spawn. Прверяйте файл way_**
 
asd123Дата: Вт, 15.09.2015, 21:34 | Сообщение # 1460
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

sergej5500, а точно! У меня изначально медик и другой перец имели другие секции в way_escape, а исправить я их забыл. oops Спасибо! specool

У мутантов тоже есть группировки. © Движок X-Ray




Сообщение отредактировал asd123 - Вт, 15.09.2015, 21:46
 
iLowДата: Ср, 16.09.2015, 12:55 | Сообщение # 1461
Удаленные



Дело такое, появилось желание сделать ветку апргейда для ВАЛ'а.
В сборке альбора для СГМ 2.2 он подписан как ствол не имеющий апгрейдов и тд.
в конфиге его прописано что на нем может стоять кобра и еще какой-то прицел и есть ветка апргрейдов (не заполненая) и так же ссыль на таблицу(хотя в самой таблице ничего связанного с влаом нет) собственно я все недостающее добавил где надо как таковую ветку взял от ака(все где стояла приписка АК было заменено на ВАЛ) и сделал идентичную таблицу, так же в конфиге самого вала поменял значение в разделе прицелы с 0 на 2. Так вот эффекта никакого, в чем проблема?
 
asd123Дата: Ср, 16.09.2015, 15:17 | Сообщение # 1462
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

iLow, а вы апгрейд ВАЛа прописали у какого-нибуть механика?

У мутантов тоже есть группировки. © Движок X-Ray


 
iLowДата: Ср, 16.09.2015, 18:52 | Сообщение # 1463
Удаленные



хм, не смотрел, посмотрю, но я вроде всю начинку у ак-а копировал, думал оно там есть smile Спасибо за совет, отпишусь как узнаю, есть кстати мысль еще примастырить в сгм полюбившийся 9А-91 из Мизери

Добавлено (16.09.2015, 18:52)
---------------------------------------------
Собственно сделал все действительн опо образу и подобию АКМ-а, правда вот тчо в нем, что во всех других стволах с возможностью апргрейда не прописано где их можно грейдить а где нет
Подскажите где это прописывать и где оно должно храниться, если не трудно.

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

iLow, Если не трудно читайте наконец КМБ Урок 15а.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Ay49MihasДата: Чт, 17.09.2015, 11:04 | Сообщение # 1465
Полевой исследователь
Ученые сталкеры
Сообщений: 218
Награды: 9
Репутация: [ 83 ]

Цитата iLow ()
Дело такое, появилось желание сделать ветку апргейда для ВАЛ'а.
В сборке альбора для СГМ 2.2 он подписан как ствол не имеющий апгрейдов и тд.
в конфиге его прописано что на нем может стоять кобра и еще какой-то прицел

Ну в общем, эта связка не будет работоспособной (Албор много раз писал, почему он так сделал). Ну а так, безумству храбрых поём мы славу.
 
iLowДата: Чт, 17.09.2015, 14:03 | Сообщение # 1466
Удаленные



Читали урок, читали, да только один фиг не понятно мне куда там прописывать выдачу механикам способности апгрейдить.
А если не трудно где можно почитать то что писал по этому поводу Албор? Потому как упорно не получается заставить это дело работать, хотя все было сделано как писали в 15а. Кстати я даже прошерстил все фалы что в сгм что в мизери и так и не нашел где там прописывается причастность механиков к апгрейду. А 9А-91 вообще там в конфиге вала прописан, что меня в когнитивный диссонас повергло biggrin То есть что анимации что апгрейды что все остальное там ВАЛ-овское кроме непосредственно ТТХ, вечером могу сюда переписать как он там оформлен, может кто подскажет как это провернуть.

Добавлено (17.09.2015, 14:03)
---------------------------------------------

Цитата Ay49Mihas ()
Ну в общем, эта связка не будет работоспособной (Албор много раз писал, почему он так сделал). Ну а так, безумству храбрых поём мы славу.

Кстати попался "в поле" ВАЛ с напяленным на него коллиматором и на нем почему то даже точки нет, поэтому весчь оказалась юзлесс...
 
asd123Дата: Чт, 17.09.2015, 17:36 | Сообщение # 1467
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

denis2000, а в уроке забыли добавить, что апгрейд еще нужно вписать в список апгрейдов механика(или механиков. По усмотрению пользователя) в файле stalkers_upgrade_info.ltx

У мутантов тоже есть группировки. © Движок X-Ray




Сообщение отредактировал asd123 - Чт, 17.09.2015, 17:36
 
denis2000Дата: Пт, 18.09.2015, 08:58 | Сообщение # 1468
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата asd123 ()
в уроке забыли добавить, что апгрейд еще нужно вписать в список апгрейдов механика

Да не ужели! А если прочитать урок внимательнее?


Цитата iLow ()
Читали урок, читали, да только один фиг не понятно мне куда там прописывать выдачу механикам способности апгрейдить.

Ну тогда давайте почитаем еще раз вместе:


Итак ,что на самом деле мы прочитали:
В секцию [zat_a2_stalker_mechanic_upgr] вписать варианты апгрейда, а после равенства - делает или нет этот апгрейд механник. Строго говоря строка после равенства - это кондлист или специальным образом форматированная строка условий и результатов проверки этих условий. Если написано = true то апгрейд возможен в любом случае (вообще эти строки можно и не писать, поскольку кондлист апгрейда итак по умолчанию равен true).
Второй момент: общее разрешение ремонта или апгрейда предмета механиком строка выше [zat_a2_stalker_mechanic_upgr], то есть wpn_aug.
Теперь давайте разберемся куда это писать, запускаем поиск в файлах строки [zat_a2_stalker_mechanic_upgr] и для оригинальной игры находиться файл stalkers_upgrade_info.ltx в моде это может быть совершенно другой файл поэтому указывать его в уроке бессмысленно! Итак нашли файл выше имени секции разрешенных механнику апгрейдов пишем wpn_aug, ниже имени секции все остальное.

Найти какой файл является параметрами апгрейда для механников можно и другим способом. В скрипте inventory_upgrades.script ищем строку local param_ini:
Код
local param_ini = ini_file("misc\\stalkers_upgrade_info.ltx")

Она явно и четко указывает какой файл содержит параметры апгрейдов механиков.
Теперь заглянем в структуру этого файла:
Код
;************************************************
;****************** Кардан **********************
;************************************************

[zat_a2_stalker_mechanic] - имя секции: стори-ид персонажа механника
discount_condlist =  - строка-кондлист: условие скидок у данного механика
...
wpn_pm - предметы разрещенные к ремонту или апгрейду данным механиком
...
[zat_a2_stalker_mechanic_upgr] - имя секции: стори-ид персонажа механника плюс "_upgr", какие конкретно и при каких условиях делает данный механик.
up_sect_firsta_ak74u = {!upgrade_hint_kardan(1)} false, true
up_sect_firstc_ak74u = {!upgrade_hint_kardan(2)} false, true


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
asd123Дата: Сб, 19.09.2015, 11:32 | Сообщение # 1469
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата denis2000 ()
в моде это может быть совершенно другой файл поэтому указывать его в уроке бессмысленно

Тогда извините


У мутантов тоже есть группировки. © Движок X-Ray


 
iLowДата: Сб, 19.09.2015, 11:33 | Сообщение # 1470
Удаленные



Огромное спасибо, просто в самом уроке не прописано где искать разрешение для мехов:)
А до поиска как то не додумался cat
 
Поиск: