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

Ефект різноманіття артефактів


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

Давним давно читав на форумі GSC таку пропозицію: Зробіть так, щоб артефакти були більш унікальними. Тобто кожна Медуза мала відмінність від такої ж Медузи.

Чесно кажучи ідея хороша, я теж вважаю неправильним те що кожна знайдена мною Медуза важить півкілограма виводить 2 умовні одиниці радіації і коштує 4000 дерев'яних (тут звичайно є розкид цін у торговців) адже діти не народжуються з вагою рівно 3200 зі світлим волоссям . Змінювати можна впринципі будь-які параметри, але на практиці зіткнувся з тим, що доводиться піднімати загальну радіовипромінюваність артефактів до мінімуму рівного 5-6 і максисума рівного 12-13.

ПОЧНЕМО

Ось виправлений конфіг медузи:

[af_medusa]:af_base
 $spawn				= "artefacts\gravitational_1_medusa"
 class				= ARTEFACT  	; будет подпрыгивать
 visual				= dynamics\artefacts\af_medusa.ogf
 description			= st_af_medusa_descr
 inv_name			= st_af_medusa_name
 inv_name_short		= st_af_medusa_name
 inv_weight			= 0.5
 
 inv_grid_x			= 9
 inv_grid_y			= 4
 
 cost				= 4000
 
 jump_height			= .5    	; высота прыжка
 
 particles				= artefact\af_gravi_idle
 det_show_particles		= artefact\af_gravi_show
 det_hide_particles		= artefact\af_gravi_hide
 
 af_rank				= 1
 
 lights_enabled = true
 
 trail_light_color 		= 0.4,0.4,0
 trail_light_range 		= 2.0
 
 ;скорости увеличения (уменьшения)
 health_restore_speed		= 0
 radiation_restore_speed		= -0.003
 satiety_restore_speed		= 0
 power_restore_speed			= 0
 bleeding_restore_speed		= 0
 hit_absorbation_sect		= af_medusa_absorbation
 
 additional_inventory_weight		= 0
 additional_inventory_weight2	= 0
 
 artefact_activation_seq		= af_activation_bold
 
 [af_medusa_absorbation]
 burn_immunity 			= 0				;коэффициенты иммунитета
 strike_immunity 		= 0
 shock_immunity 			= 0
 wound_immunity 			= 0
 radiation_immunity 		= 0
 telepatic_immunity 		= 0
 chemical_burn_immunity 	= 0
 explosion_immunity 		= 0
 fire_wound_immunity  	= 0

Відразу ж після нього вписуємо щось на зразок:

 [af_medusa_mini]:af_medusa
 $spawn				= "artefacts\my_addon_af_medusa_mini"
 inv_weight			= 0.3
 
 cost				= 3500
 
 radiation_restore_speed		= -0.002
 
 ;------------------------------------------------------------------------------------------
 
 [af_medusa_maxi]:af_medusa
 $spawn				= "artefacts\my_addon_af_medusa_maxi"
 inv_weight			= 0.7
 
 cost				= 4500
 
 radiation_restore_speed		= -0.004
 
 ;------------------------------------------------------------------------------------------
 
 [af_medusa_super]:af_medusa
 $spawn				= "artefacts\my_addon_af_medusa_super"
 inv_weight			= 0.3
 
 cost				= 5500
 
 radiation_restore_speed		= -0.004

Я в даному випадку створив ще три артефакти які в грі будуть повністю схожі на медузу (Назва, опис, властивості) З різницею лише в тому, що всі чотири Медузи по-різному коштуватимуть, мають різну вагу, і по-різному виводять радіацію. Далі нам необхідно додати їх у гру.

1) gamedata\configs\misc\devices.ltx

Дописуємо за аналогією до секції:

af_class_40 = af_medusa_mini
af_sound_40_ = detectors\art_beep1
af_freq_40 = 0.05, 2
af_class_41 = af_medusa_maxi
af_sound_41_ = detectors\art_beep1
af_freq_41 = 0.05, 2
af_class_42 = af_medusa_super
af_sound_42_ = detectors\art_beep1
af_freq_42 = 0.05, 2

До потрібного детектора. Не забуваючи при цьому змістити номери наступних секцій у наступних детекторах, якщо приписуєте на Відгук, Ведмідь або Велес (detector_simple, detector_advanced, detector_elite)

2) gamedata\configs\ui\ui_detector_artefact.xml

Дописуємо за аналогією:

<palette  id = "af_medusa_mini"  width = "0.0015"  height = "0.0015"  stretch = "1"  alignment = "c" > 
      <texture  shader = "hud\p3d" > ui_temp_ad3_artefact </texture >
     </palette >
     <  palette = "af_medusa_maxi"  width = "0.0015"  height = "0.0015"  stretch = "1"  alignment = "c" > 
      <texture  shader = "hud\p3d" > ui_temp_ad3_artefact </texture >
     </palette >
     <palette  id = " width  = "0.0015" height = "0.0015" stretch = "1" alignment = " c " >    
      <texture  shader = "hud\p3d" > ui_temp_ad3_artefact </texture >
     </palette >
 

І

<palette  id = "af_medusa_mini"  width = "0.0011"  height = "0.0011"   
      stretch = " 1" alignment = "c" > <texture  shader = "hud\p3d" > ui_inGame2_Detector_icon_artefact </ 
    texture 
    > <  / = "af_medusa_maxi"  width = "0.0011"  height = "0.0011"  
       stretch = " 1" alignment = "c" > < texture  shader = "hud\p3d" > ui_inGame2_Detector_icon_artefact </texture >
     < /palette >
     < width = "0.0011" height = "0.0011" stretch = "1" alignment = " c " > <texture shader = "hud\p3d" > ui_inGame2_Detector_icon_artefact </texture > </palette >     
       
    

3) gamedata\configs\scripts\локація\anomaly\аномалія.ltx

Робимо з:

[anomal_zone]
 layers_count = 1
 respawn_tries = 2
 max_artefacts = 3
 ;applying_force_xz = 200
 ;applying_force_y = 200 
 artefacts = af_medusa
 start_artefact = af_medusa
 coeff = 3
 artefact_ways = zaton_zanaveska_af_way

Ось це

 [anomal_zone]
 layers_count = 1
 respawn_tries = 2
 max_artefacts = 3
 ;applying_force_xz = 200
 ;applying_force_y = 200 
 artefacts = af_medusa, af_medusa_mini, af_medusa_maxi, af_medusa_super
 start_artefact = af_medusa_mini
 coeff = 3, 3, 2, 1
 artefact_ways = zaton_zanaveska_af_way

Ось власне і все (залишилося тільки додати до торгівлі)

Та як же все =)

Можливо хтось захоче провернути таке з усіма артефактами (у мене пішло близько 7-8 годин (довго шукав БАГ).

Так от у випадку з Медузою ми не використовували секцію імунітетів, які дає артефакт: hit_absorbation_sect

Наприклад:

hit_absorbation_sect = af_cristall_flower_mini_absorbation

Ось тут є правило що якщо ми використовуємо імунітети, то вони повинні вписуватися ось так:

[af_cristall_flower_mini]:af_cristall_flower
 $spawn				= "artefacts\my_addon_af_cristall_flower_mini"
 inv_weight			= 0.4
 
 cost				= 2500
 
 radiation_restore_speed		= 0.006
 hit_absorbation_sect		= af_cristall_flower_mini_absorbation
 
 [af_cristall_flower_mini_absorbation]
 burn_immunity 			= 0
 strike_immunity 		= 0
 shock_immunity 		= 0
 wound_immunity 		= 0
 radiation_immunity 		= 0
 telepatic_immunity 		= 0.01
 chemical_burn_immunity 	= 0
 explosion_immunity 		= 0
 fire_wound_immunity  		= 0

А не так:

[af_cristall_flower_mini]:af_cristall_flower
 $spawn				= "artefacts\my_addon_af_cristall_flower_mini"
 inv_weight			= 0.4
 
 cost				= 2500
 
 radiation_restore_speed		= 0.006
 hit_absorbation_sect		= af_cristall_flower_mini_absorbation
 
 [af_cristall_flower_mini_absorbation]
 telepatic_immunity 		= 0.01

У другому випадку при спавне артефакту гра вилетить з помилкою типу не знайдено burn_immunity в af_cristall_flower_mini_absorbation тобто af_cristall_flower_mini_absorbation повинен містити всі імунітети навіть якщо їх значення нуль.

Хоча в принципі можна створити у файлі секцію:

[af_bla_bla_bla_absorbation]
 burn_immunity 			= 0
 strike_immunity 		= 0
 shock_immunity 		= 0
 wound_immunity 		= 0
 radiation_immunity 		= 0
 telepatic_immunity 		= 0
 chemical_burn_immunity 	= 0
 explosion_immunity 		= 0
 fire_wound_immunity  		= 0

А всі наступні імунітети писати так:

 [af_cristall_flower_mini]:af_cristall_flower
 $spawn				= "artefacts\my_addon_af_cristall_flower_mini"
 inv_weight			= 0.4
 
 cost				= 2500
 
 radiation_restore_speed		= 0.006
 hit_absorbation_sect		= af_cristall_flower_mini_absorbation
 
 [af_cristall_flower_mini_absorbation]:af_bla_bla_bla_absorbation
 telepatic_immunity 		= 0.01

У результаті якщо створити для кожного артефакту 3 можна і більше дублів і додати їх все в аномалії та торгівлю, то складеться враження, що кожен конкретний артефакт може бути різним.


   
Цитата