Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Сборник модостроения ЗП 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]
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение:
хм, не смотрел, посмотрю, но я вроде всю начинку у ак-а копировал, думал оно там есть Спасибо за совет, отпишусь как узнаю, есть кстати мысль еще примастырить в сгм полюбившийся 9А-91 из Мизери
Добавлено (16.09.2015, 18:52) --------------------------------------------- Собственно сделал все действительн опо образу и подобию АКМ-а, правда вот тчо в нем, что во всех других стволах с возможностью апргрейда не прописано где их можно грейдить а где нет Подскажите где это прописывать и где оно должно храниться, если не трудно.
Эти 0 пользователя(ей) поблагодарили iLow за это полезное сообщение:
iLow, Если не трудно читайте наконец КМБ Урок 15а. "Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение:
Дело такое, появилось желание сделать ветку апргейда для ВАЛ'а. В сборке альбора для СГМ 2.2 он подписан как ствол не имеющий апгрейдов и тд. в конфиге его прописано что на нем может стоять кобра и еще какой-то прицел
Ну в общем, эта связка не будет работоспособной (Албор много раз писал, почему он так сделал). Ну а так, безумству храбрых поём мы славу.
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение:
Читали урок, читали, да только один фиг не понятно мне куда там прописывать выдачу механикам способности апгрейдить. А если не трудно где можно почитать то что писал по этому поводу Албор? Потому как упорно не получается заставить это дело работать, хотя все было сделано как писали в 15а. Кстати я даже прошерстил все фалы что в сгм что в мизери и так и не нашел где там прописывается причастность механиков к апгрейду. А 9А-91 вообще там в конфиге вала прописан, что меня в когнитивный диссонас повергло То есть что анимации что апгрейды что все остальное там ВАЛ-овское кроме непосредственно ТТХ, вечером могу сюда переписать как он там оформлен, может кто подскажет как это провернуть.
в уроке забыли добавить, что апгрейд еще нужно вписать в список апгрейдов механика
Да не ужели! А если прочитать урок внимательнее?
ЦитатаiLow ()
Читали урок, читали, да только один фиг не понятно мне куда там прописывать выдачу механикам способности апгрейдить.
Ну тогда давайте почитаем еще раз вместе:
Теперь можно прописать возможность апгрейда механнику, на пример Кардану:
Код
;--Добавлена возможность апгрейдов AUG wpn_aug
...
[zat_a2_stalker_mechanic_upgr]
;--Кардан делает все апгрейды AUG up_sect_firsta_aug = true up_sect_firstc_aug = true up_sect_firstd_aug = true up_sect_firste_aug = true
Теперь оружие можно апгрейдить и ремонтировать.
Итак ,что на самом деле мы прочитали: В секцию [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
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение:
Сделал на Кордоне эксклюзивный сквад. Медик, механик, торговец, командир блокпоста. Для проверки правильности работы логики этих НПС поставил на эти работы сквад из дефолтных сталкеров. Решил, что индивидуальные профили торговцу, технику и т.д. добавлю потом.
Обратил внимание на следующую вещь. Профили обоих сталкеров одинаковы.
[cut=Рядовой сталкер] [/cut]
[cut=Командир сквада] [/cut]
Видно, что у командира есть фраза: "Чем сейчас занимаешься?". Эта фраза запускает травел диалог на перемещение сталкера и сквада на другой смарт.
То есть движок проверяет, является ли непись командиром сквада.
В связи с этим возник вопрос. Можно ли добавить в этот диалог ещё одну проверку? Если в секции сквада прописан какой то target_smart, то травел фраза появляться не должна. Или непись должен отказываться вести игрока. Нужно, чтобы сквады, охраняющие базы, не уходили вместе с игроком.
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение:
sergej5500, открой файл gamedata\scripts\travel_manager.script В функции function uni_traveler_precond(actor, npc) после строчки local squad = get_object_squad(npc) добавь вот это local new_target = xr_logic.pick_section_from_condlist( db.actor, squad, squad.action_condlist ) if new_target ~= nil and new_target ~= "nil" then return false end Посмотри, что получится. Терпение...... И все получится!
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение:
Доброго времени суток, господа. Вопрос скриптерам: можно ли осуществить проверку на наличие какого-либо апгрейда у предмета (оружие/бронежилет/шлем)? Что-то вроде: local outfit_in_slot=db.actor:item_in_slot(7) if outfit_in_slot~=nil then if _g.check_for_upgrade(outfit_in_slot,up_gr_firstab_cs_heavy_outfit)==true then --здесь будет что-то происходить end end Очень интересует, как должна выглядеть function check_for_upgrade(item_name,upgrade_name) Общий вид функции может быть и другим. Важен сам смысл.
Платформа ЗП.
Сообщение отредактировал suhar_ - Сб, 26.09.2015, 01:33
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение:
suhar_, чтобы понять какие апгрейды установлены, нужно читать нет-пакет объекта, а конкретно его state часть. В моде Припять. Точка отсчёта есть скрипт, который читает пакет оружия и определяет, какие апгрейды установлены. Как это работает, можно посмотреть в файле upgrade_weapons.script Терпение...... И все получится!
Эти 0 пользователя(ей) поблагодарили makdm за это полезное сообщение: