Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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]
 
ДжагерДата: Вт, 23.07.2013, 16:01 | Сообщение # 121
Вольный сталкер
Вольные сталкеры
Сообщений: 3549
Награды: 19
Репутация: [ 532 ]

Цитата (sergej5500)
спавн-секцию сталкера из spawn_sections_

Код
#include "sh_stalkers.ltx"


Сообщение отредактировал Сталкер_Джагер - Вт, 23.07.2013, 16:01
 
sergej5500Дата: Вт, 23.07.2013, 16:08 | Сообщение # 122
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Сталкер_Джагер,
Спавн-секция это код типа:
[cut=Код][agr_b1_base_commander]:quest_stalker_heavy
$spawn = "respawn\agr_b1_base_commander"
character_profile = agr_b1_base_commander
story_id = agr_b1_base_commander
avail_release = false
corpse_money = 1000
spec_rank = master
community = mercenary[/cut]
Прописывается в один из файлов spawn_sections_.ltx в папке creatures.
Файл character_desc_sh_zat должен быть прописан в строке specific_characters_files = character_desc_general, character_desc_zaton, character_desc_pripyat, character_desc_jupiter, character_desc_underpass в system.ltx
 
ДжагерДата: Вт, 23.07.2013, 16:11 | Сообщение # 123
Вольный сталкер
Вольные сталкеры
Сообщений: 3549
Награды: 19
Репутация: [ 532 ]

Цитата (sergej5500)
[ Код ]

У меня на называется sh_stalkers.ltx (написано в КМБ):
[zat_sh_jager_skadovsk]:stalker_trader
Код
$spawn = "respawn\zat_sh_jager_skadovsk"  
character_profile = zat_sh_jager_skadovsk  
spec_rank = master  
community = stalker  
custom_data = scripts\sh\zat_sh_jager_skadovsk.ltx


Цитата (sergej5500)
Файл character_desc_sh_zat должен быть прописан в строке specific_characters_files = character_desc_general, character_desc_zaton, character_desc_pripyat, character_desc_jupiter, character_desc_underpass в system.ltx

Он там и прописан.
 
sergej5500Дата: Вт, 23.07.2013, 16:17 | Сообщение # 124
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Сталкер_Джагер,
Покажите текст файла character_desc полностью.
 
ДжагерДата: Вт, 23.07.2013, 16:23 | Сообщение # 125
Вольный сталкер
Вольные сталкеры
Сообщений: 3549
Награды: 19
Репутация: [ 532 ]

[cut=Вот ]
Код
<specific_character id="zat_sh_jager_skadovsk" team_default = "1">
   <name>zat_sh_jager_skadovsk_name</name>
   <icon>ui_inGame2_merc_2</icon>
   <map_icon x="1" y="0">
   </map_icon>
   <bio>Опытный сталкер. Детальная информация отсутствует.</bio>
   <class>zat_sh_jager_skadovsk</class>
   <community>stalker</community>
   <terrain_sect>stalker_terrain</terrain_sect>
   <snd_config>characters_voice\human_03\stalker\</snd_config>
   <rank>50</rank>
   <reputation>0</reputation>
   <visual>actors\stalker_merc\stalker_merc_2</visual>
   <supplies>
                 [spawn] \n
   wpn_l85 \n
   ammo_5.56x45_ap  = 1 \n
   wpn_sig220 \n
   ammo_11.43x23_fmj  = 1 \n
   grenade_f1 = 1 \n
#include "gameplay\character_items_nd.xml"
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs_3.xml"
#include "gameplay\character_drugs_sci.xml"
                 </supplies>
   <start_dialog>jup_b47_merc_guards_start</start_dialog>
#include "gameplay\character_criticals_4.xml"
#include "gameplay\character_dialogs_no_guide.xml"
</specific_character>
[/cut]

Добавлено (23.07.2013, 16:23)
---------------------------------------------
У него в имени скадовск прописано, он только на скадовске спавнится?

 
sergej5500Дата: Вт, 23.07.2013, 16:28 | Сообщение # 126
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Сталкер_Джагер,
Спавнится он туда, куда прописано в скрипте спавна. Выложите все правки, относящиеся к данному сталкеру: конфиги, скрипт спавна, логику. Последний лог говорит, что игре чем-то не нравится профиль сталкера
 
ДжагерДата: Вт, 23.07.2013, 16:37 | Сообщение # 127
Вольный сталкер
Вольные сталкеры
Сообщений: 3549
Награды: 19
Репутация: [ 532 ]

[cut=Персонаж]
Код
<specific_character id="zat_sh_jager_skadovsk" team_default = "1">
     <name>zat_sh_jager_skadovsk_name</name>
     <icon>ui_inGame2_merc_2</icon>
     <map_icon x="1" y="0">
     </map_icon>
     <bio>Опытный сталкер. Детальная информация отсутствует.</bio>
     <class>zat_sh_jager_skadovsk</class>
     <community>stalker</community>
     <terrain_sect>stalker_terrain</terrain_sect>
     <snd_config>characters_voice\human_03\stalker\</snd_config>
     <rank>50</rank>
     <reputation>0</reputation>
     <visual>actors\stalker_merc\stalker_merc_2</visual>
     <supplies>
                   [spawn] \n
     wpn_l85 \n
     ammo_5.56x45_ap  = 1 \n
     wpn_sig220 \n
     ammo_11.43x23_fmj  = 1 \n
     grenade_f1 = 1 \n
#include "gameplay\character_items_nd.xml"
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs_3.xml"
#include "gameplay\character_drugs_sci.xml"
                   </supplies>
     <start_dialog>jup_b47_merc_guards_start</start_dialog>
#include "gameplay\character_criticals_4.xml"
#include "gameplay\character_dialogs_no_guide.xml"
</specific_character>
[/cut]

[cut=Файл описания классов]
Код
<character id="zat_sh_jager_skadovsk">    
<class>zat_sh_jager_skadovsk</class>    
</character>
[/cut]

[cut=Вставил эти два файла в параметры]
Код
[profiles]
files =  npc_profile, extended_profiles, sh_profiles
specific_characters_files = character_desc_general, character_desc_zaton, character_desc_pripyat, character_desc_jupiter, character_desc_underpass, character_desc_darkvalley, character_desc_military, character_desc_agroprom, character_desc_agroprom_underground, character_desc_x18, character_desc_escape, character_desc_marsh, character_desc_red_forest, character_desc_extended, character_desc_sh_zat
[/cut]

[cut=Секция спавна]
Код
#include "spawn_sections_general.ltx"
#include "spawn_sections_zaton.ltx"
#include "spawn_sections_pripyat.ltx"
#include "spawn_sections_jupiter.ltx"
#include "spawn_sections_labx8.ltx"
#include "spawn_sections_underpass.ltx"
#include "spawn_sections_extended_stalkers.ltx"
#include "spawn_sections_extended_monsters.ltx"
#include "spawn_sections_darkvalley.ltx"
#include "spawn_sections_military.ltx"
#include "spawn_sections_agroprom.ltx"
#include "spawn_sections_agroprom_underground.ltx"
#include "spawn_sections_x18.ltx"
#include "spawn_sections_escape.ltx"
#include "spawn_sections_marsh.ltx"
#include "spawn_sections_red_forest.ltx"
#include "sh_stalkers.ltx"
[/cut]

[cut="Вживил" в игру]
Код
[zat_sh_jager_skadovsk]:stalker_trader    
$spawn = "respawn\zat_sh_jager_skadovsk"    
character_profile = zat_sh_jager_skadovsk    
spec_rank = master    
community = stalker    
custom_data = scripts\sh\zat_sh_jager_skadovsk.ltx
[/cut]


Сообщение отредактировал Сталкер_Джагер - Вт, 23.07.2013, 16:38
 
FantomICWДата: Вт, 23.07.2013, 16:40 | Сообщение # 128
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

Цитата (Сталкер_Джагер)
У него в имени скадовск прописано, он только на скадовске спавнится?

Нет конечно! id может быть любое.



 
sergej5500Дата: Вт, 23.07.2013, 16:50 | Сообщение # 129
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Сталкер_Джагер,
Пока не видно никаких ошибок. Покажите еще содержимое файла логики scripts\sh\zat_sh_jager_skadovsk и скриптовую функцию спавна.
 
ДжагерДата: Вт, 23.07.2013, 17:50 | Сообщение # 130
Вольный сталкер
Вольные сталкеры
Сообщений: 3549
Награды: 19
Репутация: [ 532 ]

Цитата (sergej5500)
Покажите еще содержимое файла логики scripts\sh\zat_sh_jager_skadovsk

[cut]
Код
[logic]  
active = remark@trader  

[remark@trader]  
invulnerable           = true  
combat_ignore_cond     = true  
combat_ignore_keep_when_attacked = true
[/cut]

Цитата (sergej5500)
криптовую функцию спавна.

[cut=Эту?]
Код
if dik==DIK_keys.DIK_Q then
      --/self:OnMessageQuitWin()
   elseif db.actor~=nil and dik==DIK_keys.DIK_F6 then  
                       local p=vector(),lv,gv  
                       p.x=db.actor:position().x+3  
                       p.y=db.actor:position().y  
                       p.z=db.actor:position().z  
                       lv=db.actor:level_vertex_id()  
                       gv=db.actor:game_vertex_id()  
                       alife():create("zat_sh_jager_skadovsk",p,lv,gv)  
[/cut]
 
sergej5500Дата: Вт, 23.07.2013, 18:38 | Сообщение # 131
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Сталкер_Джагер,
Я попробовал воспроизвести Ваши правки. У меня всё получилось. Правда, я пробовал на чистой игре.

Проба


Сообщение отредактировал sergej5500 - Вт, 23.07.2013, 18:38
 
ДжагерДата: Вт, 23.07.2013, 18:43 | Сообщение # 132
Вольный сталкер
Вольные сталкеры
Сообщений: 3549
Награды: 19
Репутация: [ 532 ]

sergej5500, Сейчас проверю на СГМ 2.2.

Добавлено (23.07.2013, 18:43)
---------------------------------------------
Вообще не запускается. biggrin На чистом ЗП потом попробую. Вот у вас на скрине английское имя. А как его русским "Джагер" сделать?

 
sergej5500Дата: Вт, 23.07.2013, 18:48 | Сообщение # 133
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Сталкер_Джагер,
Можно просто строку
<name>zat_sh_jager_skadovsk_name</name>
поменять на строку
<name>Джагер</name>.

Для удобства русские имена вынесены в файл st_characters в gamedata\configs\text\rus. Там можно добавить код:
<string id="zat_sh_jager_skadovsk_name">
<text>Джагер</text>
</string>
 
ДжагерДата: Вт, 23.07.2013, 18:59 | Сообщение # 134
Вольный сталкер
Вольные сталкеры
Сообщений: 3549
Награды: 19
Репутация: [ 532 ]

На чистом ЗП получилось, а вот ник русским не становится.
 
sergej5500Дата: Вт, 23.07.2013, 19:22 | Сообщение # 135
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Сталкер_Джагер,
Имя можно менять только до спавна НПС.
 
Поиск: