CoP. Эффект разнообразия артефактов — S.T.A.L.K.E.R. Inside Wiki

CoP. Эффект разнообразия артефактов

Материал из S.T.A.L.K.E.R. Inside Wiki

Версия от 13:33, 28 июля 2013; 91.218.192.254 (обсуждение)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Давным давно читал на форуме 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 id="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="af_medusa_super" 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>
    </palette>
    <palette id="af_medusa_maxi" width="0.0011" height="0.0011" stretch="1" alignment="c">
      <texture shader="hud\p3d">ui_inGame2_Detector_icon_artefact</texture>
    </palette>
    <palette id="af_medusa_super" 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 можно и больше дублей и добавить их все в аномалии и торговлю то сложится впечатление что каждый конкретный артефакт может быть разным.

--Rekongstor 11:30, 13 января 2011 (UTC) Я смотрю на это и предлагаю сделать кое-что. Ведь есть возможность записи в консоль параметров и в итоге можно сделать для каждого артефакта свой разброс параметров.

--WincentDark69 Можно сделать и разброс, но. К примеру мы используем: Стоимость, Восстановление здоровья, Насышение организма радиацией, Вес. Во первых я не вкурсе как сделать расброс веса. Во вторых если даже прописать расброс цен от 5000 до 25000 то, где при этом будем влияние получившегося артефакта на стоимость (может получится что то типа "суперский арт (Медузу) торговец купит за 5361 а за совершенно бесполезный арт ("Медузу") предложит 23787" к примеру)


Автор: WincentDark69

Другие места
LANGUAGE