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

Цитата Сахар ()
Прописал вертушки врагом ГГ, а вертолёт всё равно летает по патрульным путям и стреляет в меня только если я нахожусь на пути его следования и то даже если я нахожусь в «мёртвой зоне».

Да боевая схема вертолета в ЗП так и написана (точнее такая схема ему досталась еще из ЧН). В ТЧ вертолет ведет себя более естественно, при атаке он переходит в боевое состояние: набирает высоту и атакует цель стараясь разворачиваться к ней всегда носом, при этом не отстанет пока не уничтожит или не взорвется. Логика вертушки это всего лишь скрипты, а значит ее можно править как тебе нужно. Так-же можете попытаться перенести схему поведения вертолета из ТЧ в ЗП или воспользоваться схемой из мода AI вертолетов, у меня это получалось, но было давно подробностей не вспомнить.


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

Еще раз добрый вечер. Подскажите, как сделать в оригинальной версии ЗП выпадение бронежилета с убитого НПС (Броник должен соответствовать его визуалу)?
 
sergej5500Дата: Чт, 01.01.2015, 20:14 | Сообщение # 963
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

roma_uf,

Можно попробовать сделать так. В секциях НПС в character_desc_** в секции <supplies> прописать строки типа:

stalker_outfit = 1, prob=0.12 \n

Число определит вероятность спавна.

[cut=Пример]<specific_character id="sim_default_stalker_1_default_0" 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>sim_default_stalker_1</class>
<community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
<snd_config>characters_voice\human_02\stalker\</snd_config>
<rank>30</rank>
<money min="1000" max="2000" infinitive="0"/>
<reputation>0</reputation>
<visual>actors\stalker_neutral\stalker_neutral_2</visual>
<supplies>
[spawn] \n
wpn_toz34 \n
ammo_12x70_buck = 1 \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
grenade_rgd5 = 1 \n
stalker_outfit = 1, prob=0.12 \n
#include "gameplay\character_items.xml"
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs.xml"
</supplies>
#include "gameplay\character_criticals_4.xml"
#include "gameplay\character_dialogs.xml"
</specific_character>
[/cut]
 
makdmДата: Чт, 01.01.2015, 20:19 | Сообщение # 964
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Цитата roma_uf ()
Броник должен соответствовать его визуалу

Покажу на примере экзоскелета и тяжёлой брони долга.
Вам же придётся дополнить таблицу других секций броников и соответствия визуала этим секциям.

Открываете файл xr_motivator.script
Ищите функцию function motivator_binder:death_callback(victim, who)
В неё пишите

local table_visual_section = { ["stalker_neutral_4"] = "exo_outfit", ["stalker_dolg_3"] = "dolg_heavy_outfit"}
local npc = self.object
local section = table_visual_section[npc:get_visual_name()]
local pos, lv_id, gv_id, npc_id = npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()
alife():create(section, pos, lv_id, gv_id, npc_id)


Терпение......
И все получится!
 
asd123Дата: Пт, 02.01.2015, 03:27 | Сообщение # 965
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

А как сделать вертолету патруль без остановок? Я хотел сделать в 30 точек направления в path_move, и сделал... без path_look. Получилось очень коряво, так как вертолет летал не по цепочке путей и смотрел в разные направления.. Хотелось бы такую же непрерывную и последовательную логику движения как у первого вертолета из ТЧ на Кордоне.

Добавлено (02.01.2015, 01:36)
---------------------------------------------
А еще: Хочу создать нового персонажа. Можно ли с помощью SDK его сделать? Текстуры есть, скелет можно использовать уже существующий(ну или что там biggrin ). Если есть такой урок - назовите номер.

Добавлено (02.01.2015, 03:18)
---------------------------------------------
Блин, еще у вертолета не срабатывает звук возгорания при возгорании.

Добавлено (02.01.2015, 03:27)
---------------------------------------------
А что за скриптовая функция из heli_fire: flag_by_enemy


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




Сообщение отредактировал asd123 - Пт, 02.01.2015, 01:37
 
СахарДата: Пт, 02.01.2015, 06:53 | Сообщение # 966
Гражданский
Пользователи
Сообщений: 2
Награды: 4
Репутация: [ 69 ]

Цитата asd123 ()
А что за скриптовая функция из heli_fire: flag_by_enemy

Похоже, что это флаг для точки пути.
Цитата asd123 ()
Блин, еще у вертолета не срабатывает звук возгорания при возгорании.

Можно через логику
Код
on_info = {=heli_health_le()} %=play_sound_looped()%

heli_health_le = Проверка на здоровье вертолёта (ну понятно, что в скобках указывается число жизней вертолёта)
play_sound_looped = Запуску проигрывание зацикленного звука
P.S Проверку heli_health_le нужно разкомментировать в xr_conditions.script
Цитата asd123 ()
Хочу создать нового персонажа. Можно ли с помощью SDK его сделать?

Если я тебя правильно понял, то ты хочешь создать новую модель. В СДК модель только настраивается.
[off]Надо кстати написать урок по привязки модели в Maya[/off]


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

Цитата asd123 ()
А что за скриптовая функция из heli_fire: flag_by_enemy

Нет там такой функции! Есть только переменная которая выставляется в true если вертолет нашел себе цель.

Цитата asd123 ()
Получилось очень коряво, так как вертолет летал не по цепочке путей и смотрел в разные направления..

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

Цитата asd123 ()
Блин, еще у вертолета не срабатывает звук возгорания при возгорании.

Ну так раскоментируйте выдачу звуков в файле bind_heli.script, все там есть.


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

Всем привет:)
у меня вопрос, добавить в SM модифицированное оружие? если делать как на оригинальном ЗП, ловлю вылет.
сделал, по образцу Ak74u
[cut noguest][wpn_l85_m1]:wpn_l85,cost_wpnl85_m1
$spawn = "weapons\l85_m1"
upgrades = up_gr_firstab_l85, up_gr_firstcd_l85, up_gr_firste_l85, up_gr_firstf_l85, up_gr_seconab_l85, up_gr_seconc_l85, up_gr_second_l85, up_gr_seconef_l85, up_gr_thirdab_l85, up_gr_thirdcd_l85, up_gr_thirde_l85, up_gr_thirdf_l85, up_gr_fourtab_l85, up_gr_fourtcd_l85, up_gr_fourtef_l85, up_gr_fifthab_l85, up_gr_fifthcd_l85, up_gr_change_components_l85
installed_upgrades = up_sect_fifthc_l85
upgrade_scheme = upgrade_scheme_l85[/cut]

ловлю вылет:
[cut noguest]FATAL ERROR

[error]Expression : fatal error
[error]Function : CInifile::r_section
[error]File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp
[error]Line : 502
[error]Description : <no expression>
[error]Arguments : Can't open section 'cost_wpn_l85_m1'. Please attach [*.ini_log] file to your bug report

stack trace:[/cut]


Сообщение отредактировал mambaaa - Пт, 02.01.2015, 11:43
 
denis2000Дата: Пт, 02.01.2015, 11:45 | Сообщение # 969
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

[wpn_l85_m1]:wpn_l85,cost_wpnl85_m1
Здесь вы ссылаетесь на несуществующую секцию cost_wpn_l85_m1.


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

denis2000, а куда эту секцию прописывать то?
и что вообще это wpn_l85,cost_wpnl85_m1 обозначает?

в оригинальном зп такого нет


Сообщение отредактировал mambaaa - Пт, 02.01.2015, 11:52
 
asd123Дата: Пт, 02.01.2015, 13:58 | Сообщение # 971
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата denis2000 ()
Ну так раскоментируйте выдачу звуков в файле bind_heli.script, все там есть.

Раскоментировал все, что включает в себя xr.sound. Удалось вернуть звук рации при сбивании вертолета, а при возгорании он ничего не делает.. Просто молчит. Мазахист наверное biggrin

Добавлено (02.01.2015, 13:58)
---------------------------------------------
mambaaa, А попробуйте сделать так:

Код
[wpn_l85_m1]:wpn_l85,cost_wpn_l85_m1
$spawn = "weapons\wpn_l85_m1"           
installed_upgrades = up_sect_fifthc_l85

Если я правильно понимаю - Вы хотите создать модифицированную L85? После скобок у Вас стоит такое ":wpn_l85" а значит новое оружие уже будет копией того, что уже есть.
cost_wpn_l85_m1 нужно вписать в costs.ltx, находящийся по адресу: gamedata\config. Должно получиться примерное такое:
Код
[cost_wpn_l85_m1]
cost = 12000

Да, и еще - советую новое оружие сразу же прописать в mp_ranks, ибо если его подберёт НПС, Вы получите вылет из-за отсутствия ранга для данного оружия.
И на последок: Проверьте строку installed_upgrades в L85, ибо там такого апгрейда я не нашел.


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




Сообщение отредактировал asd123 - Вс, 11.01.2015, 11:50
 
denis2000Дата: Пт, 02.01.2015, 16:04 | Сообщение # 972
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата asd123 ()
Раскоментировал все, что включает в себя xr.sound. Удалось вернуть звук рации при сбивании вертолета, а при возгорании он ничего не делает.. Просто молчит. Мазахист наверное

У меня все работает! На хит ругается, при возгорании фраза есть и при падении крики....


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

Цитата denis2000 ()
У меня все работает! На хит ругается, при возгорании фраза есть и при падении крики....

Cегодня перепроверил - действительно работает.. А можно ли сделать как в ТЧ ? Если получает хит ругается, а если сразу же возгорается или падает то тоже ругается. Типо, звук будет игнорировать интервал.


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




Сообщение отредактировал asd123 - Пт, 02.01.2015, 17:30
 
makdmДата: Пт, 02.01.2015, 19:08 | Сообщение # 974
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Цитата asd123 ()
А можно ли сделать как в ТЧ ?

Прежде чем задавать такие вопросы, откройте файлы ЗП и ТЧ. И сравните их.
Тогда вы увидите, что условия при которых в ТЧ и ЗП проигрывается звук абсолютно одинаковы.
Так чего тогда делать как в ТЧ, если уже и так всё, как в ТЧ?
Учите скрипты! Глядишь и вопросов станет поменьше. cool


Терпение......
И все получится!


Сообщение отредактировал makdm - Пт, 02.01.2015, 19:16
 
asd123Дата: Пт, 02.01.2015, 21:22 | Сообщение # 975
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

[cut=Видео][/cut]
Вопросы по видео:
1. Я сделал выстрел в один вертолет, потом в другой. У одного сработал звук хита, а у другого нет. Следовательно, сработал интервал, или задержка.. не знаю точно что это. Вообщем, как это убрать на вертолетах?
2. Когда вертолет загорелся, звук возгорания не сработал(хотя я его добавил). Я имею ввиду именно возгорание.
3. Когда вертолет упал, звук хита не сработал. Почему? Опять интервал?


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




Сообщение отредактировал asd123 - Пт, 02.01.2015, 21:24
 
Поиск: