Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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]
 
denis2000Дата: Пн, 30.03.2015, 00:19 | Сообщение # 1261
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

DJRain,
1. Для того чтобы сработал параметр activation_time, нужно для начала отредактировать скрипты, которые будут выполнять требуемые действия при наличии его в конфиге предмета. Для этого придется перенести правки из SGM2.2.
2. Отредактируйте файл sgm_treasure.script, там все довольно понятно расписано.
3. Тут подробнее, в SGM добавлено много НПС которые спавнятся по разному и соответсвенно требуется разные действия для регулировки спавна.
4. Редактируйте sgm_dialogs.script, после строки /Селекция: функции/


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

Благодарю за быстрый ответ. Меняю арт на противогаз в SGM-тайнике (sgm_treasure.script) - получаю вылет при НИ. Также в этом скрипте прописан только один предмет в тайнике, а на деле там лежат несколько, причем они не указанны в файле.
Далее, меня интересует не запрет на спавн сквадов (хотя именно это и нужно :), а замедление его быстрой переодичности; например в ТЧ меняя "смс идле тайм первое число, второе число..." спавн становиться реже - как добиться того же в СГМ'е?
И еще в моде спавняться дополнительные персы (снайпер с абаканом на Земноснаряде, сталкер подыхающий от химеры возле самого Скадовска), где найти какие предметы прописаны этим нпс и как заменить им оружие?
Я, конечно, не любитель ковыряться в файлах - просто очень интересно играть в данный мод, и хочется новых впечатлений от него, в частности хардкора. А так как подобных сборок на СГМ 1.7 нет (я не учитываю сборку от Албора), приходиться химичить самому. Благо есть "шпаргалка от АМК" и другие "помошники", да только в них нет того, что мне нужно.
 
denis2000Дата: Вт, 31.03.2015, 13:27 | Сообщение # 1263
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата DJRain ()
Меняю арт на противогаз в SGM-тайнике (sgm_treasure.script) - получаю вылет при НИ

Что меняли, какой вылет получили?
Цитата DJRain ()
Далее, меня интересует не запрет на спавн сквадов (хотя именно это и нужно :), а замедление его быстрой переодичности

Еще раз повторяю: Конкретно какого именно сквада?
Цитата DJRain ()
снайпер с абаканом на Земноснаряде

Например он: zat_vobla_protection_sniper, его оружие в файле character_desc_sgm.xml:
Код
<specific_character id="zat_vobla_protection_sniper" team_default="1">
    <name>GENERATE_NAME_stalker</name>
    <icon>ui_inGame2_neutral_2</icon>
    <map_icon x="1" y="0">
    </map_icon>
    <bio></bio>
    <class>zat_vobla_protection_sniper</class>
    <community>stalker</community>
    <terrain_sect>stalker_terrain</terrain_sect>
    <snd_config>characters_voice\human_03\stalker\</snd_config>
    <rank>130</rank>
    <reputation>0</reputation>
    <money min="5000" max="10300" infinitive="0" />
    <visual>actors\stalker_neutral\stalker_neutral_2</visual>
    <supplies>
                   [spawn] \n
            device_torch \n
                   wpn_abakan_m1 = 1, scope \n
                   ammo_5.45x39_ap \n
            wpn_hpsa \n
                   ammo_9x19_fmj = 1 \n
                   #include "gameplay\character_items_nd.xml"
                   #include "gameplay\character_food.xml"
                   #include "gameplay\character_drugs.xml"
                </supplies>
                  <actor_dialog>about_story_dialog</actor_dialog>
    <actor_dialog>actor_break_dialog</actor_dialog>
                   #include "gameplay\character_criticals_4.xml"
                   #include "gameplay\character_dialogs.xml"
</specific_character>

Конкретно:
Код
[spawn] \n
            device_torch \n
                   wpn_abakan_m1 = 1, scope \n
                   ammo_5.45x39_ap \n
            wpn_hpsa \n
                   ammo_9x19_fmj = 1 \n


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

1. По замене содержимого сгм-тайников: нашел, где исправлять список предметов, только там прописан один предмет, а по факту там лежат ещё всякие пожитки (походу спавнятся рандомно?). А вот где эта рандомность прописана не пойму. Изменения при этом вступят в силу только после НИ?
2. Какой именно сквад? Да все). Вроде нашел файлы squad_descr.ltx и squad_descr_sgm.ltx и исправил npc_random = sim_default_stalker_0 (остальных удалил) и npc_in_squad = 2, 3 заменил на 1, 1. Людей поменьше стало, но всеравно они часто респавнятся.
3. По предметам у нпс вроде разобрался - менять надо в character_desc_sgm.xml, а предметы обычных нпс (собираемый в процессе игры лут) там же лежит?
4. Уменьшил переносимый вес (ну это гегко), а в моде еще есть плюшка "каждый костюм позволяет переносить свой вес". Так вот, подправил значит файлы outfit.ltx и SGM_descr_outfit.xml, а при заходе в игру дополнительный носимый вес костюма изменился, а вот в описании всеравно показываются остались старые данные.
5. В моде есть сок и пиво, а как к ним прописать уталение жажды и ввести потребность в жажде? Это есть в АРС моде, и в ПостПроцесс Моде, а как сделать в СГМ?
6. В СГМ 2.1 есть "отравление токсинами" - как это перенести в 1.7?
7. Как перенести из сборки Албора в СГМ 1.7 "техники не чинят сильно поврежденные вещи"?

На этом пока все. smile
 
sergej5500Дата: Вт, 31.03.2015, 19:43 | Сообщение # 1265
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата DJRain ()
только там прописан один предмет, а по факту там лежат ещё всякие пожитки (походу спавнятся рандомно?). А вот где эта рандомность прописана не пойму.


СГМ-тайник заполняется при помощи двух файлов.
1. gamedata\configs\misc\config_secrets. Тут прописаны предметы, постоянно находящиеся в тайнике.
2. gamedata\scripts\sgm_place. Функции bonus_rank_1_items, bonus_rank_2_items и т.д. В строках типа
fill_random_item(0.09,set_booty_1,parent_id) указана вероятность спавна предмета из таблицы set_booty_1. Сама таблица вверху файла.
set_booty_1={"mutant_snork_booty","mutant_psevdodog_booty","mutant_krovosos_booty","mutant_boar_booty",
"mutant_dog_booty","mutant_flesh_boot y"}
Ну и т.д.

Цитата DJRain ()
Изменения при этом вступят в силу только после НИ?

Да. Требуется новая игра.

Цитата DJRain ()
(собираемый в процессе игры лут) там же лежит?


Смотрите файлы gamedata\configs\misc\death_items_by_communities, death_items_by_levels, death_items_count. После смерти непися его инвентарь очищается и туда рандомно спанится набор хабара из этих файлов.
 
alex_xp_77Дата: Вт, 31.03.2015, 19:52 | Сообщение # 1266
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

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

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

Цитата alex_xp_77 ()
подскажите кто знает как создать совершенно новый артефакт


Есть урок по этой теме.
 
DJRainДата: Вт, 31.03.2015, 20:30 | Сообщение # 1268
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

sergej5500, gamedata\configs\misc\config_secrets - такого вообще нет, а есть в sgm_treasure.script, в котором прописано set_detectors_1, set_artefacts_3 и т.д. (это рандомные предметы), а ниже - secrets_2 = {model = math.random(1,3), grant_items = "ammo_9x39_pab9" (это постоянно лежащие предметы). Меняя рандомные предметы и вероятность их спавна (я просто заменил if math.random(5)<=prob*5 then) все шло норм, а как только поменял постоянные предметы сразу вылет:
[cut noguest]Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ... - call of pripyat\gamedata\scripts\sgm_world.script:39: attempt to index global 'sgm_treasure' (a nil value)[/cut]

А communities, levels, count - можете пояснить что это?


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

DJRain,

Судя по логу, ошибка в sgm_treasure. Выложите весь файл.
 
DJRainДата: Вт, 31.03.2015, 20:45 | Сообщение # 1270
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Знал бы я как)
 
sergej5500Дата: Вт, 31.03.2015, 21:01 | Сообщение # 1271
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

DJRain,

Покажите код файла. Под спойлером.
 
denis2000Дата: Ср, 01.04.2015, 09:33 | Сообщение # 1272
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

ACER_M5811, Если играете в солянку, то наберите Description своей ошибки в поисковике и найдете массу ответов и способов лечения.



Цитата DJRain ()
2. Какой именно сквад? Да все).

Попробуй изменить smart_terrain.script константа RESPAWN_IDLE

Цитата DJRain ()
4. Уменьшил переносимый вес (ну это гегко), а в моде еще есть плюшка "каждый костюм позволяет переносить свой вес". Так вот, подправил значит файлы outfit.ltx и SGM_descr_outfit.xml, а при заходе в игру дополнительный носимый вес костюма изменился, а вот в описании всеравно показываются остались старые данные.

Секции в файлах outfit.ltx и sgm_outfits.ltx описания в st_items_outfit.xml и SGM_descr_outfit.xml. Смотрите внимательнее, что и где меняете можно перепутать.

Цитата DJRain ()
5. В моде есть сок и пиво, а как к ним прописать уталение жажды и ввести потребность в жажде? Это есть в АРС моде, и в ПостПроцесс Моде, а как сделать в СГМ?

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

Фактически жажда делается так: В некои скрипте еть переменная обозначающая уровень жажды ГГ, при сохранеии игры ее значение также требуется сохранить (bind_stalker.actor_binder:save), а при загрузке восстановить (bind_stalker.actor_binder:load), данный скрипт анализирует колбеки на использование ГГ предметов (bind_stalker.actor_binder:use_inventory_item) и изменяет уровень переменной в зависимости от характеристик предмета влияющих на жажду (вода снижает уровнь, маслины повыщают например), так же в скрипте учитывается потоянное повышение жажды со временем с учетом сна и "мгновенных" перемещений (bind_stalker.actor_binder:update), скрипт должен сообщать через специальный индикатор пороги жажды и менять характеристики ГГ в зависимости от них (например снижать уровень силы в случае высокого уровня жажды)

Цитата DJRain ()
6. В СГМ 2.1 есть "отравление токсинами" - как это перенести в 1.7?

Смотри пункт 5. Та же жажда только с некоторыми оговорками.

Цитата DJRain ()
7. Как перенести из сборки Албора в СГМ 1.7 "техники не чинят сильно поврежденные вещи"?

Смотри пункт 5. Минимальное состояние стволов которые чинят механники задается переменной bad_cond в секции механника, значит в скриптах ищи где эта переменная анализируется и как влияет на процесс.


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

denis2000, меняю в outfit.ltx в секции -КОСТЮМ НЕЙТРАЛЬНОГО СТАЛКЕРА- additional_inventory_weight = 0
additional_inventory_weight2 = 0
, а в st_items_outfit.xml в секции stalker_outfit_description [default]Мин. переносимый вес = 35 кг\n%c[255,238,153,26]• %c[default]Макс. переносимый вес = 40 кг\n%. Захожу в игру, а в описании костюма все равно всплывает 50/60.
 
sergej5500Дата: Ср, 01.04.2015, 19:08 | Сообщение # 1274
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата DJRain ()
Захожу в игру, а в описании костюма все равно всплывает 50/60.


Скрины можете выложить?
 
asd123Дата: Ср, 01.04.2015, 19:58 | Сообщение # 1275
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

DJRain, а Вы точно тот текстовый файл исправляли? У Вас костюм не даёт дополнительного веса (всё по нулям), поэтому Вы увидите стандартный максимальный переносимый вес в размере 60 кг.
Собственно, вот так в тексте должна выглядеть строка(в тексте она без переноса) с описанием костюма (в Вашем случае нейтрального сталкера)
Код
    <string id="stalker_outfit_description">
        <text>%c[default]Характеристики переноса:\n%c[255,238,153,26]• %c[default]Мин. переносимый вес = 55 кг\n%c[255,238,153,26]• %c[default]Макс. переносимый вес = 65 кг\n%c[255,238,153,26]• %c[default]Контейнеров для артефактов = 2\n%c[default]Характеристики защиты:\n%c[255,238,153,26]• %c[default]Пулестойкость = 10%\n%c[default]Производимый народными умельцами комбинезон сталкера представляет собой сочетание двухслойной прорезиненной ткани с плексигласовой прокладкой и встроенного бронежилета. Несмотря на то, что бронежилет пробивается даже пистолетной пулей, костюм очень распространён из-за дешевизны и широких возможностей для улучшения. Оснащён встроенными контейнерами для артефактов.</text>
       </string>

p.s. пожалуйста, старайтесь писать грамотно.

Добавлено (01.04.2015, 19:58)
---------------------------------------------
Кстати, по поводу описания костюма. А можно ли подставить в описании костюма в строке "макс. переносимый вес" какой-нибуть скрипт, чтобы тот считывал изменения костюма. Например: я поставлю апгрейд на увеличение макс. веса при помощи костюма, и после этой манипуляции у костюма в описании сразу же изменится число в строке максимального веса. И, если это возможно, то можно ли развить скрипт до такой степени, чтобы он начислял дополнительный вес на костюм благодаря артефактам на поясе, которые придают дополнительный вес(Золотая рыбка, Грави и т.д.)


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




Сообщение отредактировал asd123 - Ср, 01.04.2015, 20:00
 
Поиск: