Давним давно читав на форумі 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 можна і більше дублів і додати їх все в аномалії та торгівлю, то складеться враження, що кожен конкретний артефакт може бути різним.