|
Модостроение. Общие вопросы и ответы
|
|
| denis2000 | Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Помощь тем кто хочет знать больше о игре и модах Если у вас появились вопросы по модостроению в игре 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]
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| denis2000 | Дата: Вт, 10.11.2015, 19:02 | Сообщение # 1531 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата STALKER_ICEBERG (  ) Где находится файл с Давидом? Азбука модмейкера. Тривиальные задачи.
Цитата STALKER_ICEBERG (  ) И как дать телохранителям фразы сталкеров? Попробуйте в script_sound.ltx вписать группировки телохранителей.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Леший | Дата: Чт, 12.11.2015, 14:12 | Сообщение # 1532 |
 Начальник разведки Долга
Долг
Сообщений: 1212
| Доброго времени суток! Подскажите пожалуйста, все основные моды устанавливаются путем замены папки Gamedata? Т.е я имея установленный оригинал, могу устанавливать разные моды не переустанавливая саму программу?
Такие моды как Солянка, Фотограф...
Агит-штаб Долга | ДОЛГокомат | Библиотека Зоны
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Леший за это полезное сообщение: |
|
|
| denis2000 | Дата: Чт, 12.11.2015, 18:41 | Сообщение # 1533 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата Mj12 (  ) Т.е я имея установленный оригинал, могу устанавливать разные моды не переустанавливая саму программу? Конечно, просто папку gamedata того мода в который не играете в данный момент переименуйте, а в папку gamedata поместите файлы мода в который собрались играть.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Наблюдатель | Дата: Чт, 12.11.2015, 21:33 | Сообщение # 1534 |
 Ветеран
Пользователи
Сообщений: 402
| Здравствуйте Всем! Уважаемые Профи, подскажите пжл, где находится худ тактического шлема? Многие мододелы имеют нетрадиционноориентированную привычку коверкать его до безобразия. Дело в том, что это мой любимый шлем в игре, можно ли как-то возвращать ему оригинальный худ из ЗП в каком-то файле?
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Наблюдатель за это полезное сообщение: |
|
|
| denis2000 | Дата: Пт, 13.11.2015, 08:37 | Сообщение # 1535 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Наблюдатель, Что вы имеете ввиду под оригинальным? Не совсем понятно, что и где нужно вернуть.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Наблюдатель | Дата: Пт, 13.11.2015, 11:31 | Сообщение # 1536 |
 Ветеран
Пользователи
Сообщений: 402
| Цитата denis2000 (  ) Наблюдатель, Что вы имеете ввиду под оригинальным? Не совсем понятно, что и где нужно вернуть. Здравствуйте Всем! Уважаемый denis2000, я хотел узнать, где меняется худ хотя бы тактического шлема. Как Вы знаете, если одеть тактический шлем на ГГ в оригинальной игре ЗП, то изображение на мониторе никак не меняется. Т.е. ГГ видит всю локацию на весь экран. Но во многих модах это изображение коверкается, т.е. ГГ видит как бы через какие-то очки, маску и т.д. В итоге при одевании того же тактического шлема часть экрана, типа "за очками", это либо тёмное пятно, либо сами очки покрыты какой либо "изморозью, либо грязью, либо трещинами", порождёнными больной фантазией автора мода. У умных и я не побоюсь этого слова, великих мододелов, типа команды SM, существуют файлы, которые возвращают классическое меню на экран. Но во многих модах изменения окончательные и одев свою любимый тактический шлем я сразу вижу только часть локации через всякие "разбитые очки" и прочие извращения. С Вашего позволения я хотел бы узнать, где можно править худ тактического шлема, что бы одев его, я видел всю локацию так же как и без него, на весь экран. Пытался выкидывать файлы из папки ui в конфигах, либо всё то же уродливое видение через типа "очки", либо вылет. На всякий случай информирую, играю в сборку модов от Dezertira.
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Наблюдатель за это полезное сообщение: |
|
|
| denis2000 | Дата: Пт, 13.11.2015, 13:34 | Сообщение # 1537 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| suhar_, Все написали, кроме одного, на какой версии игры работаете с пакетом.
Наблюдатель, Теперь понятно. Найдите файл dinamic_hud.script в самом начале отключите ненужные эффекты.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Наблюдатель | Дата: Пт, 13.11.2015, 14:40 | Сообщение # 1538 |
 Ветеран
Пользователи
Сообщений: 402
| Цитата denis2000 (  ) Наблюдатель, Теперь понятно. Найдите файл dinamic_hud.script в самом начале отключите ненужные эффекты. Уважаемый denis2000 а Вы бы не могли указать папку, в которой находится этот файл? А то ни в папке gamedata мода, ни в папке gamedata оригинальной ЗП, я не нашёл файла dinamic_hud.script ?
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Наблюдатель за это полезное сообщение: |
|
|
| roma_uf | Дата: Пт, 13.11.2015, 14:43 | Сообщение # 1539 |
|
Гражданский
Пользователи
Сообщений: 17
| День добрый. Есть одна модификация, добаляющая новые сквады группировок на локации (немники, Ученый, монолит и т.д.). В самом моде (ссылку на него будет снизу) приложено много файлов, половина из которых просто не затрагивалась. Мне нужно знать, какие файлы нужные. Ссылка: http://stalker-mods.clan.su/load/0-0-1-391-20
Сообщение отредактировал roma_uf - Пт, 13.11.2015, 14:44 |
| |
|
| Эти 0 пользователя(ей) поблагодарили roma_uf за это полезное сообщение: |
|
|
| alex_xp_77 | Дата: Пт, 13.11.2015, 15:32 | Сообщение # 1540 |
|
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
| Рома я добавляю логикой в sdk, вроде даже элементарно, компиляция, играешь, если вы хотите просто там от куда то взять и куда то вставить, обычно это не работает, нужна более трудоемкая работа!
|
| |
|
| Эти 0 пользователя(ей) поблагодарили alex_xp_77 за это полезное сообщение: |
|
|
| denis2000 | Дата: Пт, 13.11.2015, 15:38 | Сообщение # 1541 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Наблюдатель, Папка scripts естественно. Я скачал Зимнюю сборку модов от Dezertira и там был именно этот файл отвечающий за динамический ХУД. Если у вас другие сборки-солянки, то мне о них ничего не известно.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Наблюдатель | Дата: Пт, 13.11.2015, 16:16 | Сообщение # 1542 |
 Ветеран
Пользователи
Сообщений: 402
| Цитата denis2000 (  ) Я скачал Зимнюю сборку модов от Dezertira и там был именно этот файл отвечающий за динамический ХУД. Нет, я скачал просто сборку модов от Дезертира, её осенний вариант. Там в папке scripts есть просто файл huds. Он начинается словами: "Худы на шлемы и бронь" Это оно?
|
| |
|
| Эти 0 пользователя(ей) поблагодарили Наблюдатель за это полезное сообщение: |
|
|
| suhar_ | Дата: Пт, 13.11.2015, 16:22 | Сообщение # 1543 |
 Бывалый
Пользователи
Сообщений: 106
| Цитата denis2000 (  ) на какой версии игры работаете с пакетом Извиняюсь. ЗП.
|
| |
|
| Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
| denis2000 | Дата: Пт, 13.11.2015, 19:21 | Сообщение # 1544 |
 Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| suhar_, Значит нужно использовать нетпакет НПС для ЗП: [cut=Что-то типа такого]Код --makdm© function net_packet_func(npc_id) local cl_object = level.object_by_id( npc_id ) local s_obj = alife():object( npc_id ) if cl_object then local packet = net_packet() packet:w_begin( 0 ) s_obj:STATE_Write( packet ) packet:r_seek( 2 ) local money = packet:r_s32() local specific_character = packet:r_stringZ() local trader_flags = packet:r_s32() local character_profile = packet:r_stringZ() local community_index = packet:r_s32() local rank = packet:r_s32() local reputation = packet:r_s32() local checked_characters = packet:r_stringZ() local cse_alife_trader_abstract__unk2 = packet:r_u8() local cse_alife_trader_abstract__unk3 = packet:r_u8() local game_vertex_id = packet:r_u16() local distance = packet:r_float() local direct_control = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local spawn_story_id = packet:r_s32() local visual_name = packet:r_stringZ() local visual_flags = packet:r_u8() local g_team = packet:r_u8() local g_squad = packet:r_u8() local g_group = packet:r_u8() local health = packet:r_float() local dynamic_out_restrictions = readvu32u16( packet ) local dynamic_in_restrictions = readvu32u16( packet ) local killer_id = packet:r_u16() local game_death_time = readvu8u8( packet ) local base_out_restrictors = packet:r_stringZ() local base_in_restrictors = packet:r_stringZ() local smart_terrain_id = packet:r_u16() local smart_terrain_task_active = packet:r_u8() local equipment_preferences = readvu32u8( packet ) local main_weapon_preferences = readvu32u8( packet ) local skeleton_name = packet:r_stringZ() local skeleton_flags = packet:r_u8() local source_id = packet:r_u16()
packet:w_begin( 0 ) packet:w_s32( money ) packet:w_stringZ( specific_character ) packet:w_s32( trader_flags ) packet:w_stringZ( character_profile ) packet:w_s32( community_index ) packet:w_s32( rank ) packet:w_s32( reputation ) packet:w_stringZ( checked_characters ) packet:w_u8( cse_alife_trader_abstract__unk2 ) packet:w_u8( cse_alife_trader_abstract__unk3 ) packet:w_u16( game_vertex_id ) packet:w_float( distance ) packet:w_s32( direct_control ) packet:w_s32( level_vertex_id ) packet:w_s32( object_flags ) packet:w_stringZ( custom_data ) packet:w_s32( story_id ) packet:w_s32( spawn_story_id ) packet:w_stringZ( new_visual ) packet:w_u8( visual_flags ) packet:w_u8( g_team ) packet:w_u8( g_squad ) packet:w_u8( g_group ) packet:w_float( health ) writevu32u16( packet, dynamic_out_restrictions ) writevu32u16( packet, dynamic_in_restrictions ) packet:w_u16( killer_id ) writevu8u8( packet, game_death_time ) packet:w_stringZ( base_out_restrictors ) packet:w_stringZ( base_in_restrictors ) packet:w_u16( smart_terrain_id ) packet:w_u8( smart_terrain_task_active ) writevu32u8( packet, equipment_preferences ) writevu32u8( packet, main_weapon_preferences ) packet:w_stringZ( skeleton_name ) packet:w_u8( skeleton_flags ) packet:w_u16( source_id ) packet:r_seek( 2 ) s_obj:STATE_Read( packet, packet:w_tell() )
alife ():set_switch_online ( npc_id, false ) alife ():set_switch_offline ( npc_id, true ) local make_offline = function() if not s_obj.online then return true end end local make_online = function() alife ():set_switch_online ( npc_id, true ) alife ():set_switch_offline ( npc_id, false ) end
level.add_call( make_offline, make_online ) end end function readvu8u8( packet ) local v = {} local len = 8 for i = 1, len, 1 do table.insert( v, packet:r_u8() ) end return v end
function writevu8u8( packet, v ) local len = 8 for i = 1, len, 1 do packet:w_u8( v[ i ] ) end end
function readvu32u16( packet ) local v = {} local len = packet:r_s32() for i = 1, len, 1 do table.insert( v, packet:r_u16() ) end return v end
function writevu32u16( packet, v ) local len = table.getn( v ) packet:w_s32( len ) for i = 1, len, 1 do packet:w_u16( v[ i ] ) end end
function readvu32u8( packet ) local v = {} local len = packet:r_s32() for i = 1, len, 1 do table.insert( v, packet:r_u8() ) end return v end
function writevu32u8( packet, v ) local len = table.getn( v ) packet:w_s32( len ) for i = 1, len, 1 do packet:w_u8( v[ i ] ) end end
[/cut]
Цитата Наблюдатель (  ) Там в папке scripts есть просто файл huds. Он начинается словами: "Худы на шлемы и бронь" Это оно? А полный текст файла?
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
| |
|
| Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
| Наблюдатель | Дата: Пт, 13.11.2015, 19:32 | Сообщение # 1545 |
 Ветеран
Пользователи
Сообщений: 402
| Прошу простить великодушно, уважаемый denis2000, не могу запихнуть сообщение в спойлер! :( [cut] --ХУДЫ на ШЛЕМЫ и Бронь
local helms = {{"helm_respirator", "helm_respirator_joker", "helm_hardhat", "helm_hardhat_snag", "helm_protective", "helm_tactic", "helm_battle", "exo_outfit", "scientific_outfit", "dolg_scientific_outfit", "monolit_scientific_outfit", "dolg_exo_outfit", "svoboda_exo_outfit", "naim_exo_outfit", "monolith_exo_outfit" }, {"protivogaz_hud", "protivogaz_hud", "stalnoy_hud", "stalnoy_hud", "nauchniy_hud", "tactic_hud", "sfera12_hud", "sfera12_hud", "nauchniy_hud", "nauchniy_hud", "nauchniy_hud", "sfera12_hud", "sfera12_hud", "sfera12_hud", "sfera12_hud" }}
local nohud_helms = {"novice_outfit","stalker_outfit","svoboda_light_outfit","dolg_outfit","cs_heavy_outfit","svoboda_heavy_outfit","specops_outfit","military_outfit","dolg_heavy_outfit","stalker_outfit_barge","stalker_naim_outfit","stalker_monolith_outfit",nil}
function helms_huds() actor = db.actor helm = actor:item_in_slot(12)or actor:get_current_outfit() section=nil if helm then section = helm:section() end for a=1,15 do if section==helms[1][a] then add_static(helms[2][a]) end end for b=1,13 do if section==nohud_helms[b] then del_static() end end end
function add_static(static) local hud = get_hud() if hud:GetCustomStatic(static)~=nil then return end del_static() hud:AddCustomStatic(static, true) end
function del_static() local hud = get_hud() for a=1,15 do if hud:GetCustomStatic(helms[2][a])~=nil then hud:RemoveCustomStatic(helms[2][a]) end end end[/cut] Не могу понять что где править, если это тот файл?
Сообщение отредактировал Наблюдатель - Пт, 13.11.2015, 19:45 |
| |
|
| Эти 0 пользователя(ей) поблагодарили Наблюдатель за это полезное сообщение: |
|
|
|