Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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]
 
НаблюдательДата: Вс, 22.01.2017, 18:49 | Сообщение # 2236
Ветеран
Пользователи
Сообщений: 402
Награды: 1
Репутация: [ 59 ]

Здравствуйте Всем! Такой вопрос к Мастерам, когда то читал что в ЗП прописано максимальное количество артефактов, которое может собрать ГГ - 250. После чего игра начинает вылетать? Подскажите пожалуйста, в каком файле можно исправить это число на большее?
 
sergej5500Дата: Вс, 22.01.2017, 19:40 | Сообщение # 2237
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Наблюдатель,

Файл gamedata\scripts\xr_statistic.

Строки package:w_u8(i) в функции save(package) и

строки package:r_u8() в функции load(package).

Строк этих в каждой функции по три. Они отвечают за оружие и артефакты.

В этих строках w_u8 и r_u8 нужно заменить на w_u16 и r_u16 соответственно. После этого таблицы станут 16-битными и можно будет собрать 65536 артефактов.

После этой правки необходима новая игра.
 
denis2000Дата: Вс, 22.01.2017, 19:43 | Сообщение # 2238
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Наблюдатель, Файл xr_statistic.script в функции save(package) вместо
Код
i = 0
    for k,v in pairs(artefacts_table) do
  i = i + 1
    end
    package:w_u8(i)
    for k,v in pairs(artefacts_table) do
  package:w_stringZ(tostring(k))
  package:w_bool(v)
    end
    i = 0
    for k,v in pairs(taken_artefacts) do
  i = i + 1
    end
    package:w_u8(i)
    for k,v in pairs(taken_artefacts) do
  package:w_u32(k)
    end

написать
Код
i = 0
    for k,v in pairs(artefacts_table) do
  i = i + 1
    end
    package:w_u32(i)
    for k,v in pairs(artefacts_table) do
  package:w_stringZ(tostring(k))
  package:w_bool(v)
    end
    i = 0
    for k,v in pairs(taken_artefacts) do
  i = i + 1
    end
    package:w_u32(i)
    for k,v in pairs(taken_artefacts) do
  package:w_u32(k)
    end

в функции load(package) вместо
написать
Код
n = package:r_u32()
    for i = 1,n do
  log("n "..tostring(n))
  local k = package:r_stringZ()
  local v = package:r_bool()
  artefacts_table[k] = v
    end

  taken_artefacts = {}
    n = package:r_u32()
    for i = 1,n do
  local k = package:r_u32()
  taken_artefacts[k] = k
    end


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
deaderДата: Пн, 23.01.2017, 17:10 | Сообщение # 2239
темный
Тёмные
Сообщений: 3124
Награды: 27
Репутация: [ 1930 ]

denis2000, спасибо большое.

Только что-то я не совсем понимаю - почему так сильно размазана текстура террейна:
[cut noguest=тык][/cut]
Причем в LE все отображается как надо. Комлипяция на драфте, траву не компилил. Текстура террейна не менялась. Что не так я сделал?



...и как бы выглядела земля, если бы с нее исчезли тени?...(Воланд)

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

Цитата deader ()
Комлипяция на драфте

Это издержки драфтового качества. Для отображений подкладок из детал-текстур нужна компиляция выше драфта, правильная настройка thm текстуры и маска шейдеров террена.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
deaderДата: Вт, 24.01.2017, 17:42 | Сообщение # 2241
темный
Тёмные
Сообщений: 3124
Награды: 27
Репутация: [ 1930 ]

Еще раз спасибо.
Цитата denis2000 ()
правильная настройка thm текстуры и маска шейдеров террена
можно здесь по подробнее, или хотя-бы, "где копать"?



...и как бы выглядела земля, если бы с нее исчезли тени?...(Воланд)

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

deader, Читайте статьи - Создание текстуры террена. Но поскольку текстура не новая, берите существующий thm и маску террейна

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Ср, 25.01.2017, 12:06 | Сообщение # 2243
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

Здравствуйте. Хотел бы спросить, если в SGM добавлен новый детектор, можно и его тоже поставить на аккумуляторное питание? И как это можно осуществить? Заранее благодарю.
 
denis2000Дата: Ср, 25.01.2017, 16:00 | Сообщение # 2244
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Voland-777, Не помню, чтобы для этого требовались отдельные настройки детектора.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Ср, 25.01.2017, 18:48 | Сообщение # 2245
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

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

Voland-777, Пробуйте!

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
НаблюдательДата: Сб, 28.01.2017, 10:07 | Сообщение # 2247
Ветеран
Пользователи
Сообщений: 402
Награды: 1
Репутация: [ 59 ]

Здравствуйте Всем! Умные люди, подскажите пожалуйста решение злодейской ситуации, когда группа Бродяги убивает вербовщиков. Играю в Forgotten Land на ЗП. Пробовал править файл game_relations, типа монолит и долг нейтральны друг другу, ловлю вылет:
Expression : error handler is invoked!
Function : handler_base
File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
Line : 764
Description : application is aborting
Помню, что вроде кто-то на форуме выкладывал правку этого косяка, вчера пол ночи лопатил форум, не нашёл. Т.е. нашёл правку на SMod, но она не работает на ЗП. Может у кого-то где-то записана правка этой проблемы для ЗП, поможите, чем можите, плиз. sad


Сообщение отредактировал Наблюдатель - Вт, 31.01.2017, 04:32
 
deaderДата: Ср, 01.02.2017, 17:46 | Сообщение # 2248
темный
Тёмные
Сообщений: 3124
Награды: 27
Репутация: [ 1930 ]

Цитата Наблюдатель ()
Line : 764


[cut noguest=нашел по этому вылету:]Expression : error handler is invoked!
Function : handler_base
File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
Line : 764
Description : application is aborting
Возникает на этапе загрузки игры.

Возможная причина:
Что-то намудрили с анимациями объекта. Возможно, число костей в объекте не соответствует числу костей в анимации (например, прописан путь к чужому ОМФу). Также может возникать, если перемудрить с настройками костей в АЕ[/cut]

только как реально лечить - не знаю. sad



...и как бы выглядела земля, если бы с нее исчезли тени?...(Воланд)



Сообщение отредактировал deader - Ср, 01.02.2017, 17:49
 
НаблюдательДата: Вс, 05.02.2017, 00:53 | Сообщение # 2249
Ветеран
Пользователи
Сообщений: 402
Награды: 1
Репутация: [ 59 ]

Здравствуйте Всем! Уважаемые Мастера, подскажите, как можно прописать живого дядьку Яра в Припяти, после его смерти в Копачах? Исхитрился обойти все вылеты, не убивая неписей после которых вылет в Forgotten Land, но с Яром такого не выходит, там надо валить всех наймов, с ним постоянный вылет:
Expression : res!=-1
Function : get_rank
File : D:\prog_repository\sources\trunk\xrGame\ui\Restrictions.cpp
Line : 34
Description : cannot find rank for
Arguments : wpn_m4a1_k6
Видать аффтар накосячил в стволах. Можно Яра в Припяти воскресить, мод для фриплея самое то и графика и спавн мутантов, не так как в обычном ЗП, фриплей - пустыня.
 
deaderДата: Вс, 05.02.2017, 09:38 | Сообщение # 2250
темный
Тёмные
Сообщений: 3124
Награды: 27
Репутация: [ 1930 ]

Цитата Наблюдатель ()
Line : 34
Description : cannot find rank for


Причина:
Указанное оружие, в данном случае wpn_m4a1_k6, не прописано в mp_ranks.ltx.
Лечение:
Добавить оружие в секции по аналогии с имеющимися. Либо избавиться от вылета на совсем посредством правки dll.



...и как бы выглядела земля, если бы с нее исчезли тени?...(Воланд)

 
Поиск: