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

Цитата Дизель ()
Я убедился на опыте своём. Карты более 3км не компилируются, даже с минимум полигонов.

Используйте пересобранные из исходников компиляторы, они так не ограничивают локации (или пересоберите сами устранив ограничения). Движек не ограничивает локации размером в метрах, а именно количеством полигонов. Насчет ogf ничего сказать не могу - тут вам виднее, с другой стороны ogf - формат для динамических и не больших объектов поэтому объекты с размерами более 30 метров как бы и не предполагались.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
NoxerДата: Вс, 28.12.2014, 20:27 | Сообщение # 917
Удаленные



Вечер добрый. Уважаемые специалисты мододелия, у меня вопрос, касающийся адаптации модов. Общие положения из урока я вынес, но возникает ряд вопросов, которые самостоятельно решить я не в состоянии (нужен хотя бы пример). Кто уделит часть своего времени либо на разъяснения, либо на подсказку, где об этом можно прочитать? Заранее благодарен

Добавлено (28.12.2014, 20:24)
---------------------------------------------
Вопрос 1. При сравнении файлов программой WinMerge, как определить, какие записи и команды должны добавляться, а какие заменяться, чтобы в один прекрасный момент не происходил вылет из-за несовпадения или отсутствия чего-то.

Добавлено (28.12.2014, 20:27)
---------------------------------------------
Вопрос 2. Есть ли где-нибудь пример урока по адаптации 2-ух модификаций (к примеру, ЗП Путь во мгле и ЗП Shoker Weapon 2.0). Чтобы основа оставалась из Путь во мгле, а оружие из второго.

 
makdmДата: Вс, 28.12.2014, 21:46 | Сообщение # 918
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Noxer, всё очень просто. biggrin
Например берёте файл bind_stalker.script из чистого ЗП. Сравниваете его с с таким же файлом из Shoker Weapon 2.0
Смотрите, что добавлено.
Вот теперь, то что добавлено вставляете в bind_stalker.script мода Путь во Мгле.
И так по каждому файлу.
Плюс, если есть файлы, которых нет в ЗП, то их нужно добавлять. А некоторые файлы, например анимации, полностью заменять.
Удачи!! Думаю месяц, а то и два, вам будет чем заняться.


Терпение......
И все получится!
 
NoxerДата: Вс, 28.12.2014, 22:03 | Сообщение # 919
Удаленные



makdm, Но программа автоматом заменяет некоторые записи. Элементарно, простая адаптация. MODERN_HUD_v3.0 адаптирую к Под прикрытием смерти.

Добавлено (28.12.2014, 22:02)
---------------------------------------------
makdm, Тот же файл bind_stalker.script
[cut]------------------------------------makdm 2013------------------------------------
----------------------Здесь организуем вывод Ранга ГГ и количество Хедшотов на Худ
gd_rank.rank_update()
----------------------------------------------------------------------------------
end
----------------------------------------------------------------------------------------------------------------------

Кстати, Ваши наработки))). Я так понимаю, из Время Альянса)))

заменяет на
--------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
----------------------------------------------------------MODERN HUD
hud_minimap.sMinimap()
----------------------------------------------------------MODERN HUD
-------------------------------------------------------------------------------------------------------

end
----------------------------------------------------------------------------------------------------------------------

[/cut]

Добавлено (28.12.2014, 22:03)
---------------------------------------------
makdm, В данном случае, роли не играет. Но в других случаях ведь возможно, отрицательно скажется на игре

Сообщение отредактировал Noxer - Вс, 28.12.2014, 22:00
 
asd123Дата: Пн, 29.12.2014, 00:39 | Сообщение # 920
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Подскажите, а можно ли сделать задание на убийство сталкера с помощью поршней в диалогах и в misc? Типо, пока не получишь поршень о его убийстве - не начнется диалог с наградой.

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




Сообщение отредактировал asd123 - Пн, 29.12.2014, 01:30
 
Ay49MihasДата: Пн, 29.12.2014, 07:16 | Сообщение # 921
Полевой исследователь
Ученые сталкеры
Сообщений: 218
Награды: 9
Репутация: [ 83 ]

Цитата asd123 ()
Подскажите, а можно ли сделать задание на убийство сталкера с помощью поршней в диалогах и в misc? Типо, пока не получишь поршень о его убийстве - не начнется диалог с наградой.

Это ж элементарно. Диалог, выдающий задание, даёт поршень на убийство сталкера. Также создаёшь ещё один диалог, наградной. У этого диалога есть прекондишен, туда вставляешь что выдан поршень, и в этом диалоге выдача награды, одновременно выдаётся поршень, что задание выполнено (чтобы этот диалог больше не появлялся). Сталкеру в логику ставишь on_death (если правильно помню) при выданном поршне на убийство этого сталкера выдачу поршня о его убийстве. Получается, убьёшь ли его ты или не ты, но если было выдано задание, ты получишь возможность наградиться.
 
asd123Дата: Пн, 29.12.2014, 10:59 | Сообщение # 922
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата Ay49Mihas ()
Это ж элементарно. Диалог, выдающий задание, даёт поршень на убийство сталкера. Также создаёшь ещё один диалог, наградной. У этого диалога есть прекондишен, туда вставляешь что выдан поршень, и в этом диалоге выдача награды, одновременно выдаётся поршень, что задание выполнено (чтобы этот диалог больше не появлялся). Сталкеру в логику ставишь on_death (если правильно помню) при выданном поршне на убийство этого сталкера выдачу поршня о его убийстве. Получается, убьёшь ли его ты или не ты, но если было выдано задание, ты получишь возможность наградиться.

Ну, с поршнями я уже могу разобраться smile Просто хотел убедиться


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


 
NoxerДата: Пн, 29.12.2014, 16:05 | Сообщение # 923
Удаленные



И еще, подскажите, пожалуйста, как запустить скачанную локацию для ЗП Тир и заспаунить оружие
 
denis2000Дата: Пн, 29.12.2014, 18:17 | Сообщение # 924
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Noxer, Как самый минимум прочитать статью. То что уже имеется не выполняете, то что отсутствует требуется доделать.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
a4927860Дата: Пн, 29.12.2014, 19:36 | Сообщение # 925
Новичок
Пользователи
Сообщений: 81
Награды: 0
Репутация: [ 22 ]

Доброй ночи.

Где в SGM 2.2 можно настроить количество ОСТАВШИХСЯ партонов в оружии после убийства нпс?
где настроить количество патронов в самих тушках нпс нашел без проблем а вот в оружии.

Задача снизить количество патронов до 3-10 на ствол, иначе при выходе с затона у меня накапливается 3-4 000 патронов только к калашу...
 
denis2000Дата: Пн, 29.12.2014, 20:33 | Сообщение # 926
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

a4927860, С этим в игре все достаточно честно: зарядил 30 патронов НПС в ствол, отстрелял 10, получите в выпавшем стволе 20. Но если есть необходимость ловите событие смерти НПС и правьте скриптом количество патронов в обойме.
В файле xr_motivator.script в функции motivator_binder:death_callback(victim, who) добавляйте что-то типа:
Код
local active_slot = npc:active_slot()
      if (active_slot == 2) or (active_slot == 3) then      
       local active_item = npc:item_in_slot(active_slot)
       if active_item then
        active_item:set_ammo_elapsed(math.random(0,2))
       end
      end

Будете получать в выпавшем оружии от 0 до двух патронов...


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
a4927860Дата: Пн, 29.12.2014, 20:52 | Сообщение # 927
Новичок
Пользователи
Сообщений: 81
Награды: 0
Репутация: [ 22 ]

Цитата denis2000 ()
Будете получать в выпавшем оружии от 0 до двух патронов...


Спасибо! А как вместо конечного числа сделать максимально возможное в оружии?
например 2 патрона для двустволки это нормально а вот для пкм - явный недобор...
 
asd123Дата: Пн, 29.12.2014, 23:13 | Сообщение # 928
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата denis2000 ()
Имя анимационного состояния и за ним флаг использовать его или нет.

0 - использовать, 1 - не использовать, так?


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


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

a4927860, Для этого нужно считывать количество боеприпасов в обойме из конфига и отталкиваться от него, например так:
Код
local ini = system_ini()
   local active_slot = npc:active_slot()
   if (active_slot == 2) or (active_slot == 3) then        
    local active_item = npc:item_in_slot(active_slot)
    if active_item then
     local max_ammo = math.floor(ini:r_string(active_item:section(),"ammo_mag_size")/10)
     active_item:set_ammo_elapsed(math.random(0,max_ammo))
    end
      end

А вообще, я показал возможность - далее вам доводить до желаемого результата.

Цитата asd123 ()
0 - использовать, 1 - не использовать, так?

А почему у вас "ноль" ассоциируется с "Да"?


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

Цитата denis2000 ()
А почему у вас "ноль" ассоциируется с "Да"?

Не знаю если честно. Я же в этом не спец

Добавлено (29.12.2014, 23:49)
---------------------------------------------
А можно ли сделать скваду из не уникальных нпс спец. логику? Я имею ввиду такое: Сквад, который идет на захват деревни новичков на кордоне по первому заданию от сталкеров, бежит в смарт-коверы по логике.


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


 
Поиск: