Сповіщення
Очистити все

Модернізація детектора Сварог


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Отже, всі ми знаємо, що в грі є супер наворочений детектор зварювань. Але! Якщо він такий наворочений, то чому ж він не може показати нам радіозони, термозони, хімзони, псизони, телепорти та хоч пекучий пух зрештою. Так ось, показувати їх він здатний, але для цього потрібно його "налаштувати". Відкриємо: gamedata\configs\misc\devices.ltx і знайдемо там опис детектора "Сварог":

 [detector_scientific]:detector_elite
 $spawn 				= "devices\detector_scientific"
 class				= DET_SCIE
 
 visual			= dynamics\devices\dev_detector_4\dev_detector_4.ogf
 
 inv_name		= st_detector4
 inv_name_short	= st_detector4
 description		= st_detector4_descr
 hud			= detector_scientific_hud
 
 inv_grid_width		= 1
 inv_grid_height		= 1
 inv_grid_x		= 19
 inv_grid_y		= 21
 cost			= 45000
 
 ; elite x="0.00096" y="0.0035"
 ui_p			= -0.02904,0.01,0.0364
 ui_r			= 0,90,0
 
 af_radius		= 20
 af_vis_radius		= 15
 
 af_class_27		= af_oasis_heart
 af_sound_27_		= detectors\art_beep1
 af_freq_27		= 0.05, 2
 
 zone_class_1		= zone_mine_acidic_weak
 zone_class_2		= zone_mine_acidic_average
 zone_class_3		= zone_mine_acidic_strong
 zone_class_4		= zone_mine_electric_weak
 zone_class_5		= zone_mine_electric_average
 zone_class_6		= zone_mine_electric_strong
 zone_class_7		= zone_mine_gravitational_weak
 zone_class_8		= zone_mine_gravitational_average
 zone_class_9		= zone_mine_gravitational_strong
 zone_class_10		= zone_mine_thermal_weak
 zone_class_11		= zone_mine_thermal_average
 zone_class_12		= zone_mine_thermal_strong
 zone_class_13		= zone_mine_steam_weak
 zone_class_14		= zone_mine_steam_average
 zone_class_15		= zone_mine_steam_strong
 zone_class_16		= zone_mine_acidic_big
 zone_class_17		= zone_mine_chemical_weak
 zone_class_18		= zone_mine_chemical_average
 zone_class_19		= zone_mine_chemical_strong
 zone_class_20		= zone_buzz_weak
 zone_class_21		= zone_buzz_average
 zone_class_22		= zone_buzz_strong
 zone_class_23		= zone_mine_static_weak
 zone_class_24		= zone_mine_static_average
 zone_class_25		= zone_mine_static_strong
 zone_class_26		= zone_witches_galantine_weak
 zone_class_27		= zone_witches_galantine_average
 zone_class_28		= zone_witches_galantine_strong
 zone_class_29		= zone_mine_gravitational_big
 zone_class_30		= zone_gravi_zone
 zone_class_31		= zone_zharka_static_weak
 zone_class_32		= zone_zharka_static_average
 zone_class_33		= zone_zharka_static_strong
 
 zone_freq_1		= 0.05, 2
 zone_freq_2		= 0.05, 2
 zone_freq_3		= 0.05, 2
 zone_freq_4		= 0.05, 2
 zone_freq_5		= 0.05, 2
 zone_freq_6		= 0.05, 2
 zone_freq_7		= 0.05, 2
 zone_freq_8		= 0.05, 2
 zone_freq_9		= 0.05, 2
 zone_freq_10		= 0.05, 2
 zone_freq_11		= 0.05, 2
 zone_freq_12		= 0.05, 2
 zone_freq_13		= 0.05, 2
 zone_freq_14		= 0.05, 2
 zone_freq_15		= 0.05, 2
 zone_freq_16		= 0.05, 2
 zone_freq_17		= 0.05, 2
 zone_freq_18		= 0.05, 2
 zone_freq_19		= 0.05, 2
 zone_freq_20		= 0.05, 2
 zone_freq_21		= 0.05, 2
 zone_freq_22		= 0.05, 2
 zone_freq_23		= 0.05, 2
 zone_freq_24		= 0.05, 2
 zone_freq_25		= 0.05, 2
 zone_freq_26		= 0.05, 2
 zone_freq_27		= 0.05, 2
 zone_freq_28		= 0.05, 2
 zone_freq_29		= 0.05, 2
 zone_freq_30		= 0.05, 2
 zone_freq_31		= 0.05, 2
 zone_freq_32		= 0.05, 2
 zone_freq_33		= 0.05, 2

І припишемо до нього два нові рядки, наприклад:

 
 zone_class_34		 = zone_teleport 
 zone_freq_34		 = 0.05 , 2 
 

Поясню, цим ми говоримо движку, що аксесуар визначає ще одну (34-ю) аномальну зону. У разі телепорт. Але ось невдача, він її визначає, але не показує на дисплеї. А ось тут і починається цікаве. У конфізі детектора ім'я аномалії береться з файлу gamedata\configs\ui\ui_detector_artefact.xml файл містить імена аномальних зон і посилання на ID текстури для відображення цих самих зон. Для кожної зони використано 2 імені, для прикладу:

 
<palette  id = "zone_mine_acidic_weak"  width =    
" 0.004" height = "0.004" stretch = "1" alignment = "c" > <texture  shader = " hud\p3d" > ui_inGame2_Detector_icon_acid_big < 
/
 
<palette  id = "zone_mine_acidic_weak"  width = "0.0065"  height = "0.0065"  stretch = "1"  alignment = "c" > 
<texture  shader = "hud\p3d" > ui_temp_ad4_mine_acidic </texture 
> < /
 

Створимо в ньому нові секції:

 
<palette  id = "zone_teleport"  width = "0.004"  height = "0.004"  stretch = "1"  alignment = "c" > 
<texture  shader = "hud\p3d" > ui_inGame2_Detector_icon_acid_big < / texture >
 </palette
 
<palette  id = "zone_teleport"  width = "0.0065"  height = "0.0065"  stretch = "1"  alignment = "c" > 
<texture  shader = "hud\p3d" > ui_temp_ad4_mine_acidic </texture >
 </palette >
 

Тепер наш детектор показуватиме телепорти, але вони відображатимуться значком хімічної аномалії. А це як мінімум тупо. Коригуємо наші нові рядки:

 
<palette  id = "zone_teleport"  width = "0.004"  height = "0.004"  stretch = "1"  alignment = "c" > 
<texture  shader = "hud\p3d" > ui_inGame2_Detector_icon_teleport </texture >
 </palette >
 
<palette  id = "zone_teleport"  width = "0.0065"  height = "0.0065"  stretch = "1"  alignment = "c" > 
<texture  shader = "hud\p3d" > ui_temp_ad4_mine_acidic </texture >
 </palette >
 

Другу секцію не чіпаємо, тому що вона не використовується (але обов'язкова (х.з. може бути в мультиплері)

Тепер нам потрібно намалювати іконку для відображення телепорту

Записуємо на папірці =) і відкриваємо файлик gamedata\configs\ui\textures_descr\ui_actor_pda_icons.xml і після рядка:

 
<texture  id = "ui_inGame2_Detector_icon_gravity_big"  x = "105"  y = "532"  width = "34"  height = "34"  />
 

вставляємо:

 
<texture  id = "ui_inGame2_Detector_icon_teleport"  x = "139"  y = "530"  width = "34"  height = "34"  />
 

Ось, власне, і все. Тепер детектор відображатиме телепорт стрілочкою. До речі: розмір іконки на екрані детектора змінюється

 
<palette  id = "zone_teleport"  width = "0.004"  height = "0.004"  stretch = "1"  alignment = "c" > 
<texture  shader = "hud\p3d" > ui_inGame2_Detector_icon_teleport </texture >
 </palette >
 

Змінюємо 0.004 на 0.006 або 0.008 нижче наведений скрін із використаним значенням 0.008


   
Цитата