Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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]
 
sergej5500Дата: Пт, 26.12.2014, 22:11 | Сообщение # 901
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый вечер. Столкнулся с таким вылетом.

[cut=Лог]FATAL ERROR

[error]Expression : !phrase_dialog->m_PhraseVector.empty()
[error]Function : CPhraseDialog::SayPhrase
[error]File : D:\prog_repository\sources\trunk\xrGame\PhraseDialog.cpp
[error]Line : 146
[error]Description : No available phrase to say, dialog[rasvet_addon_pursue_dialog]


stack trace:[/cut]

Вроде бы нет доступных строк в диалоге.

[cut=Диалог]<dialog id="rasvet_addon_pursue_dialog">
<dont_has_info>rasvet_add_pursue_final</dont_has_info>
<phrase_list>
<phrase id="25">
<text>rasvet_addon_pursue_dialog_25</text>
<next>26</next>
<next>27</next>
<next>28</next>
</phrase>
<phrase id="26">
<text>rasvet_addon_pursue_dialog_26</text>
<has_info>rasvet_add_pursue_story_1</has_info>
<next>29</next>
<next>30</next>
</phrase>
<phrase id="27">
<text>rasvet_addon_pursue_dialog_27</text>
<has_info>rasvet_add_pursue_story_2</has_info>
<next>29</next>
<next>30</next>
</phrase>
<phrase id="28">
<text>rasvet_addon_pursue_dialog_28</text>
<has_info>rasvet_add_pursue_story_3</has_info>
<next>29</next>
<next>30</next>
</phrase>
<phrase id="14">
<text>rasvet_addon_pursue_dialog_14</text>
<next>20</next>
<next>22</next>
</phrase>
<phrase id="29">
<text>rasvet_addon_pursue_dialog_29</text>
<give_info>rasvet_add_pursue_final_2</give_info>
<give_info>rasvet_add_pursue_final</give_info>
</phrase>
<phrase id="30">
<text>rasvet_addon_pursue_dialog_30</text>
<next>20</next>
<next>22</next>
</phrase>
<phrase id="1">
<text></text>
<next>2</next>
<next>24</next>
</phrase>
<phrase id="24">
<text>rasvet_addon_pursue_dialog_24</text>
<has_info>rasvet_add_pursue_logic_2</has_info>
<next>25</next>
</phrase>
<phrase id="2">
<text>rasvet_addon_pursue_dialog_2</text>
<has_info>rasvet_add_pursue_logic_1</has_info>
<next>4</next>
</phrase>
<phrase id="6">
<text>rasvet_addon_pursue_dialog_6</text>
<has_info>rasvet_add_pursue_story_2</has_info>
<next>8</next>
</phrase>
<phrase id="7">
<text>rasvet_addon_pursue_dialog_7</text>
<has_info>rasvet_add_pursue_story_3</has_info>
<next>8</next>
</phrase>
<phrase id="4">
<text>rasvet_addon_pursue_dialog_4</text>
<next>5</next>
<next>6</next>
<next>7</next>
</phrase>
<phrase id="5">
<text>rasvet_addon_pursue_dialog_5</text>
<has_info>rasvet_add_pursue_story_1</has_info>
<next>8</next>
</phrase>
<phrase id="8">
<text>rasvet_addon_pursue_dialog_8</text>
<next>9</next>
<next>10</next>
<next>11</next>
</phrase>
<phrase id="10">
<text>rasvet_addon_pursue_dialog_10</text>
<has_info>rasvet_add_pursue_money_2</has_info>
<next>12</next>
<next>13</next>
<next>14</next>
</phrase>
<phrase id="11">
<text>rasvet_addon_pursue_dialog_11</text>
<has_info>rasvet_add_pursue_money_3</has_info>
<next>12</next>
<next>13</next>
<next>14</next>
</phrase>
<phrase id="9">
<text>rasvet_addon_pursue_dialog_9</text>
<has_info>rasvet_add_pursue_money_1</has_info>
<next>12</next>
<next>13</next>
<next>14</next>
</phrase>
<phrase id="12">
<text>rasvet_addon_pursue_dialog_12</text>
<precondition>dialogs_rasvet_addon.rasvet_add_pursue_has_money</precondition>
<action>dialogs_rasvet_addon.rasvet_add_pursue_give_money</action>
<next>15</next>
</phrase>
<phrase id="15">
<text>rasvet_addon_pursue_dialog_15</text>
<action>dialogs_rasvet_addon.rasvet_add_pursue_reward</action>
<next>16</next>
</phrase>
<phrase id="16">
<text>rasvet_addon_pursue_dialog_16</text>
<give_info>rasvet_add_pursue_final_1</give_info>
<give_info>rasvet_add_pursue_final</give_info>
</phrase>
<phrase id="13">
<text>rasvet_addon_pursue_dialog_13</text>
<precondition>dialogs_rasvet_addon.rasvet_add_pursue_less_money</precondition>
<next>17</next>
</phrase>
<phrase id="17">
<text>rasvet_addon_pursue_dialog_17</text>
<next>18</next>
<next>19</next>
</phrase>
<phrase id="19">
<text>rasvet_addon_pursue_dialog_19</text>
<next>20</next>
<next>22</next>
</phrase>
<phrase id="22">
<text>rasvet_addon_pursue_dialog_22</text>
<has_info>rasvet_add_pursue_enemy_2</has_info>
<next>23</next>
<next>18</next>
</phrase>
<phrase id="18">
<text>rasvet_addon_pursue_dialog_18</text>
<action>dialogs_rasvet_addon.rasvet_add_pursue_grabesh</action>
<give_info>rasvet_add_pursue_final_1</give_info>
<give_info>rasvet_add_pursue_final</give_info>
</phrase>
<phrase id="23">
<text>rasvet_addon_pursue_dialog_23</text>
<give_info>rasvet_add_pursue_final</give_info>
<give_info>rasvet_add_pursue_enemy</give_info>
</phrase>
<phrase id="20">
<text>rasvet_addon_pursue_dialog_20</text>
<has_info>rasvet_add_pursue_enemy_1</has_info>
<next>21</next>
</phrase>
<phrase id="21">
<text>rasvet_addon_pursue_dialog_21</text>
<give_info>rasvet_add_pursue_final_1</give_info>
<give_info>rasvet_add_pursue_final</give_info>
</phrase>
<phrase id="0">
<text></text>
<next>1</next>
</phrase>
</phrase_list>
</dialog>[/cut]

[cut=Фразы диалога]<string id="rasvet_addon_pursue_dialog_10">
<text>20000.</text>
</string>
<string id="rasvet_addon_pursue_dialog_11">
<text>30000.</text>
</string>
<string id="rasvet_addon_pursue_dialog_12">
<text>Держи деньги.</text>
</string>
<string id="rasvet_addon_pursue_dialog_13">
<text>У меня столько нет.</text>
</string>
<string id="rasvet_addon_pursue_dialog_14">
<text>У меня своих дел полно. Разбирайтесь сами.</text>
</string>
<string id="rasvet_addon_pursue_dialog_15">
<text>Это тебе от нас в качестве благодарности.</text>
</string>
<string id="rasvet_addon_pursue_dialog_16">
<text>Благодарю.</text>
</string>
<string id="rasvet_addon_pursue_dialog_17">
<text>Тогда давай все, что есть.</text>
</string>
<string id="rasvet_addon_pursue_dialog_18">
<text>Хорошо, забирай.</text>
</string>
<string id="rasvet_addon_pursue_dialog_19">
<text>Идите, откуда пришли. Я милостыню не подаю.</text>
</string>
<string id="rasvet_addon_pursue_dialog_2">
<text>Привет, сталкер. Дело к тебе есть. Срочное.</text>
</string>
<string id="rasvet_addon_pursue_dialog_20">
<text>Не злись, приятель. Пойдем дальше.</text>
</string>
<string id="rasvet_addon_pursue_dialog_21">
<text>Бывай.</text>
</string>
<string id="rasvet_addon_pursue_dialog_22">
<text>Тогда мы обыщем твой труп. Или гони барахло.</text>
</string>
<string id="rasvet_addon_pursue_dialog_23">
<text>Ну попробуй.</text>
</string>
<string id="rasvet_addon_pursue_dialog_24">
<text>Привет, сталкер. Дело к тебе есть срочное.</text>
</string>
<string id="rasvet_addon_pursue_dialog_25">
<text>Что за дело?</text>
</string>
<string id="rasvet_addon_pursue_dialog_26">
<text>Мы идем поохотиться на мутантов. Пойдешь с нами?</text>
</string>
<string id="rasvet_addon_pursue_dialog_27">
<text>Мы идем собирать артефакты. Пойдешь с нами?</text>
</string>
<string id="rasvet_addon_pursue_dialog_28">
<text>Мы идем разбираться с нехорошими ребятами. Пойдешь с нами?</text>
</string>
<string id="rasvet_addon_pursue_dialog_29">
<text>Хорошо, пойдем.</text>
</string>
<string id="rasvet_addon_pursue_dialog_30">
<text>У меня своих дел полно.</text>
</string>
<string id="rasvet_addon_pursue_dialog_4">
<text>Что за дело.</text>
</string>
<string id="rasvet_addon_pursue_dialog_5">
<text>Наш друг пострадал в схватке с мутантами. Нужны деньги на лечение. Поможешь?</text>
</string>
<string id="rasvet_addon_pursue_dialog_6">
<text>Наш друг попал в аномалию. Серьёзно пострадал. Нужны деньги на лечение. Поможешь?</text>
</string>
<string id="rasvet_addon_pursue_dialog_7">
<text>Наш друг пострадал в перестрелке. Нужны деньги на лечение. Поможешь?</text>
</string>
<string id="rasvet_addon_pursue_dialog_8">
<text>Сколько нужно денег?</text>
</string>
<string id="rasvet_addon_pursue_dialog_9">
<text>10000.</text>
</string>[/cut]

В момент спавна сквада генерируется набор инфопорций для диалога.

[cut=Функция]function rasvet_add_pursue_global_sheme(actor,npc)
local rnd_pursue_logic=math.random(1,2)
local rnd_pursue_story=math.random(1,3)
local rnd_pursue_enemy=math.random(1,2)
local rnd_pursue_money=math.random(1,3)
if rnd_pursue_logic==1 then give_info("rasvet_add_pursue_logic_1") end
if rnd_pursue_logic==2 then give_info("rasvet_add_pursue_logic_2") end
if rnd_pursue_story==1 then give_info("rasvet_add_pursue_story_1") end
if rnd_pursue_story==2 then give_info("rasvet_add_pursue_story_2") end
if rnd_pursue_story==3 then give_info("rasvet_add_pursue_story_3") end
if rnd_pursue_enemy==1 then give_info("rasvet_add_pursue_enemy_1") end
if rnd_pursue_enemy==2 then give_info("rasvet_add_pursue_enemy_2") end
if rnd_pursue_money==1 then give_info("rasvet_add_pursue_money_1") end
if rnd_pursue_money==2 then give_info("rasvet_add_pursue_money_2") end
if rnd_pursue_money==3 then give_info("rasvet_add_pursue_money_3") end
end[/cut]

Непись подбегает к игроку и начинает диалог.

[cut=Фрагмент логики рестриктора][sr_idle@stalker_exist]
on_info = {!squad_exist(zat_stalker_pursue_squad)} sr_idle@global_timer %=rasvet_add_pursue_disable%
on_info2 = {=distance_to_obj_ge(zat_stalker_pursue_squad:225)} sr_idle@global_timer %=rasvet_add_pursue_disable =remove_squad(zat_stalker_pursue_squad)%
on_info3 = {+rasvet_add_pursue_final_1} sr_idle@postprocess_stalker %=stop_weapon_and_guidebook +rasvet_add_pursue_end%
on_info4 = {+rasvet_add_pursue_final_2} sr_idle@postprocess_stalker_teleport %=stop_weapon_and_guidebook +rasvet_add_pursue_end%
on_info5 = {!is_squad_enemy_to_actor(zat_stalker_pursue_squad) +rasvet_add_pursue_enemy} %=set_squad_goodwill(zat_stalker_pursue_squad:enemy)%

[sr_idle@postprocess_stalker]
on_game_timer = 10 | sr_idle@disable_ui_stalker %=run_postprocess(black:500021:true)%

[sr_idle@disable_ui_stalker]
on_game_timer = 10 | sr_idle@forward_game_time_stalker %=disable_ui%

[sr_idle@forward_game_time_stalker]
on_game_timer = 10 | sr_idle@enable_ui_stalker %=forward_game_time(0:30) =remove_squad(zat_stalker_pursue_squad) =rasvet_add_pursue_disable%

[sr_idle@enable_ui_stalker]
on_game_timer = 10 | sr_idle@stop_postprocess_stalker %=enable_ui%

[sr_idle@stop_postprocess_stalker]
on_game_timer = 10 | sr_idle@global_timer %=stop_postprocess(500021)%[/cut]

[cut=Логика непися][companion@companion]
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
sprint = true
meet = meet

[meet]
abuse = true
use = {=dist_to_actor_le(6) !actor_enemy -rasvet_add_pursue_final} self,false
allow_break = false
meet_on_talking = true
trade_enable = false

[hit]
on_info = {=hit_by_actor -rasvet_add_pursue_enemy} %+rasvet_add_pursue_enemy%

[death]
on_info = {=killed_by_actor -rasvet_add_pursue_enemy} %+rasvet_add_pursue_enemy%

;

[companion@1]:companion@companion
combat_ignore_cond = {=fighting_dist_ge(30)} true
on_info = {=dist_to_actor_le(30)} companion@2

[companion@2]:companion@companion
combat_ignore_cond = {=fighting_dist_ge(50)} true
on_info = {=dist_to_actor_ge(50)} companion@1

;

[remark@zat_add_pursue]
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
meet = no_meet

;

[logic@zat_add_pursue_1]
active = remark@zat_add_pursue_1
suitable = {=target_squad_name(zat_stalker_pursue_squad)} true, {=target_squad_name(zat_bandit_pursue_squad)} true
prior = 300
post_combat_time = 0,0
on_hit = hit
on_death = death

[remark@zat_add_pursue_1]:remark@zat_add_pursue
on_info = companion@1[/cut]

Диалог нормально запускается. После выдачи инфопорции rasvet_add_pursue_final_1 разговор обрывается.. Экран гаснет. Интерфейс отключается. После чего игра вылетает. Я бы понял, если бы вылет был при начале разговора. Но разговор кончается. Неписю выдается запрет говорить дальше. Он и не говорит.

В чем может быть причина?

Добавлено (26.12.2014, 22:11)
---------------------------------------------
Дополнение к предыдущему посту. С вылетом вроде разобрался.

Сразу после отключения интерфейса следует удаление сквада и сброс инфопорций диалога. После отмены сброса инфопорций вылет прекратился.

Возник новый вопрос. Сколько секунд диалог сохраняется в памяти игры?

 
makdmДата: Пт, 26.12.2014, 23:29 | Сообщение # 902
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

sergej5500, вместо

Цитата sergej5500 ()


[sr_idle@forward_game_time_stalker]
on_game_timer = 10 | sr_idle@enable_ui_stalker %=forward_game_time(0:30) =remove_squad(zat_stalker_pursue_squad) =rasvet_add_pursue_disable%

[sr_idle@enable_ui_stalker]


Попробуй так

[sr_idle@forward_game_time_stalker]
on_game_timer = 10 | sr_idle@wait_remove %=forward_game_time(0:30) =remove_squad(zat_stalker_pursue_squad)%

[sr_idle@wait_remove]
on_info = {!squad_exist(zat_stalker_pursue_squad)} sr_idle@enable_ui_stalker %=rasvet_add_pursue_disable%

[sr_idle@enable_ui_stalker]


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

О чем гласит вот такой лог? Случается частенько на Агропроме.
Код

[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:610: bad argument #1 to 'pairs' (table expected, got nil)


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


 
makdmДата: Сб, 27.12.2014, 07:13 | Сообщение # 904
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Цитата asd123 ()
О чем гласит вот такой лог?

О том, что у какого-то объекта была попытка переключится на несуществующую секцию логики.


Терпение......
И все получится!
 
denis2000Дата: Сб, 27.12.2014, 15:44 | Сообщение # 905
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата asd123 ()
для чего нужно 3 direction`a? То есть, 3 координата

Углы вращения по трем осям.

Цитата asd123 ()
И, в строке loopholes: 0 и 1 - в чем различия?

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

Цитата asd123 ()
И, как добавить созданному смарт каверу возможность принимать на себя НПС во время боя?

is_combat_cover = 1 - это и есть использовать во время боя.

Цитата asd123 ()
Как настроить, чтобы стрелял?

Не использовать боевой смарт-ковер в логике НПС.


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

А за что это отвечает тогда?

enter_min_enemy_distance = 15
exit_min_enemy_distance = 10


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




Сообщение отредактировал asd123 - Сб, 27.12.2014, 16:21
 
denis2000Дата: Сб, 27.12.2014, 17:41 | Сообщение # 907
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

asd123,
enter_min_enemy_distance - минимальная дистанция до противника для входа в укрытие
exit_min_enemy_distance - минимальная дистанция до противника для выхода их укрытия


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

Люди, а если установлю новый ствол в в игру, мне надо начинать игру заново?

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

Danny_Cross, Если не требуется выдать ствол другим НПС или выдать в торговлю, то не понадобиться.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ProphetДата: Вс, 28.12.2014, 14:16 | Сообщение # 910
Сталкер
Пользователи
Сообщений: 195
Награды: 2
Репутация: [ 25 ]

Цитата Danny_Cross ()
надо начинать игру заново

Желательно.


Я - Пророк! Запомни меня!...

Сообщение отредактировал Prophet - Вс, 28.12.2014, 14:17
 
asd123Дата: Вс, 28.12.2014, 14:24 | Сообщение # 911
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

denis2000, можете видео оформить о правильном снятии координат для smart_cover? в частности direction. А то, у меня переходящие в смарт-ковер НПС получаются растянутыми (как жвачка biggrin )

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




Сообщение отредактировал asd123 - Вс, 28.12.2014, 14:24
 
ДизельДата: Вс, 28.12.2014, 15:06 | Сообщение # 912
Сталкер
Разработчики
Сообщений: 260
Награды: 1
Репутация: [ 136 ]

denis2000, у меня мысль такая. Хотя, я не знаю, что может вылезти потом боком.
Короче, а что если уменьшить модели (весь визуал) в 10 раз. Выгода - больше карты становятся (при сохранении полигональности и качества текстур).
Соответственно увеличивается нагрузка на комп - это минус.
Какие еще минусы могут вылезти?


andreyholkin

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

asd123, Такой урок есть: Видео уроки по программе X-Ray SDK 0.4 SDK 0.7 11 и 12 часть, а если напрямую редактировать all.spawn, то только метод тыка, изменил направление и смотришь куда еще надо довернуть.

Дизель, Ограничение - не размер карты в метрах! А количество полигонов в кадре и на локации вообще. Уменьшение приведет а огромному количеству полигонов с "нулевым" размером, устранение которых потребует больших усилий в 3D редакторе, плюс редактирование многих конфигов и скриптов которые оперируют с расстояниями.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ДизельДата: Вс, 28.12.2014, 15:19 | Сообщение # 914
Сталкер
Разработчики
Сообщений: 260
Награды: 1
Репутация: [ 136 ]

denis2000, в ЗП есть ограничение даже не по количеству полигонов, а по размеру. Я убедился на опыте своём. Карты более 3км не компилируются, даже с минимум полигонов. Еще например в огф есть ограничение по габаритам, это так к слову. ОГФ высотой более 30 метров складываются во внутрь, а широкие и длинные вообще не видимы на локации. Вот такая петрушка.

andreyholkin
 
asd123Дата: Вс, 28.12.2014, 15:27 | Сообщение # 915
Mr. «Магма»
Военные сталкеры
Сообщений: 1386
Награды: 10
Репутация: [ 423 ]

Цитата denis2000 ()
Такой урок есть: Видео уроки по программе X-Ray SDK 0.4 SDK 0.7 11 и 12 часть

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


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




Сообщение отредактировал asd123 - Вс, 28.12.2014, 18:33
 
Поиск: