Для початку зайдемо в gamedata/config/creatures/game_releations.ltx і там змінимо:
реальний поділ на групи репутацій на шкали rating = novice, 300 , experienced, 600 , veteran, 900 , master, 1200 , legend
і потім рядок з найменуванням рангів:
;шкали для виведення назв замість чисел ;рейтингів, репутацій та прихильності в інтерфейсі rating_names = novice, 300 , experienced, 600 , veteran, 900 , master, 1200 , legend
Потім там же шукаємо цей рядок і змінюємо його:
[ rank_relations ] ; novice, experienced, veteran, master, legend ;========================================= =========================== novice = 0 , 0 , 0 , 0 , 0 experienced = 0 , 0 , 0 , 0 , 0 veteran = 0 , 0 , 0 , 0 , 0 master = 0 , 0 , 0 , 0 , 0 legend = 0 , 0 , 0 , 0 , 0
Потім там змінюємо один рядок. Не впевнений у її працездатності, але краще не ризикувати:
;очки рейтингу, одержувані за вбивство персонажа ;з певним статусом [ rank_kill_points ] novice = 0 experienced = 0 veteran = 0 master = 0 legend = 0
З конфігами начебто розібралися. Ліземо в скрипти. gamedata/scripts/_g.script :
function set_actor_rank ( rank ) if rank == "novice" then db.actor:set_character_rank ( 0 ) elseif rank == "stalker" then db.actor:set_character_rank ( 300 ) elseif rank == "veteran" then db . ( 600 ) elseif rank == "master" then db.actor:set_character_rank ( 900 ) elseif rank == "legend" then db.actor:set_character_rank ( 1200 ) end end
Замість 1200 можете поставити будь-яке значення. Цей скрипт відповідає або за те, коли ранг виходить у actor`a, або, якщо змінюєш через скрипт ранг у останнього, то окуляри його рангу рівні тому, що ми тільки що підставили (тобто 1200).
Потім міняємо gamedata/scripts/xr_info.script :
local info_ru_rank = { novice = { " encyclopedy_zone_artifact_af-medusa" , "encyclopedy_zone_artifact_af-cristall-flower" , "encyclopedy_zone_artifact_af-vyvert " , "encyclopedy_zone_artifact_af , " encyclopedy_zone_artifact_af -soul" , "encyclopedy_zone_zone-story_story- 2006" , "encyclopedy_zone_anomalies_bald" , "encyclopedy_zone_anomalies_gravi" , "encyclopedy_zone_anomalies_meat" , "encyclopedy_zone_anomalies_electra" , "encyclopedy_zone_anoyes , " encyclopedy_zone_locations_garbage " , " encyclopedy_mutant_crow_general " , " encyclopedy_mutant_rat_general" , "encyclopedy_mutant_flesh_general" , "encyclopedy_mutant_blind_general" , "encycloped , "encyclopedy_social_military_army" , "encyclopedy_social_stalker-clans_duty" , "encyclopedy_social_stalker-clans_bandits" } , stalker = { "encyclopedy_zone_artifact_af-medusa" , "encyclopedy_zone_artifact_af-cristall-flower" , "encyclopedy_zone_artifact_af-night-star" , "encyclopedy_zone_artifact_af-vyvert" , "encyclopedy_zone_artifact_af-vyvert" , "encyclopedy_zone_artifact_af-medusa" _zone_artifact_af-gold-fish" , "encyclopedy_zone_artifact_af-blood" , "encyclopedy_zone_artifact_af-mincer-meat" , "encyclopedy_zone_artifact_af-soul" , "encyclopedy_zone_zone-story_story-2008" , " encyclopedy_zone_anomalies_fuzz" , "encycloped _anomalies_electra " , " encyclopedy_zone_anomalies_ameba " , "encyclopedy_zone_locations_escape" , "encyclopedy_zone_locations_garbage" , "encyclopedy_zone_locations_agroprom" , "encyclopedy_zone_locations_darkdolina" , "encyclopedy_zone_locations_bar" , "encyclopedy_zone_locations_rostok" , "encyclopedy_mutant_tushkano " , "encyclopedy_mutant_pseudodog_general" , " encyclopedy_mutant_pseudodog_general" mutant_burer_general " , " encyclopedy_mutant_snork_general " , " encyclopedy_mutant_flesh_general" , "encyclopedy_mutant_blind_general" , "encyclopedy_mutant_boar_general" , "encyclopedy_social_stalom" , "encyclopedy_social_stalker-clans_monolith" , "encyclopedy_social_stalker-clans_killers" , "encyclopedy_social_stalker-clans_zomstalkers" , " encyclopedy_social_scientists_mobile-labs" , " encyclopedy _stalker-clans_duty" , "encyclopedy_social_stalker-clans_bandits" , "stalker_story_2" , "stalker_story_3" , "stalker_story_7" , "stalker_story_11" , "stalker_story_12" , "stalker_story_16" , "stalker_story_17" , "stalker_story_18" , "stalker_story_19" , "stalker_story_20" } , veteran = { "encyclopedy_zone_artifact_af-electra-sparkler" , "encyclopedy_zone_artifact_af-electra-flash" , "encyclopedy_zone_artifact_af-rusty- thorn " , "encyclopedy_zone_artifact_af-clo gravi" , "encyclopedy_zone_artifact_af-gold-fish " , " encyclopedy_zone_artifact_af-blood" , "encyclopedy_zone_artifact_af-mincer-meat" , "encyclopedy_zone_artifact_af-soul" , "encyclopedy_zone_artifact_af-electra-sparkler" , " encyclopedy _zone_artifact_af - electra - moonlight" , "encyclopedy_zone_artifact_af-ameba-slime" , "encyclopedy_zone_artifact_af-ameba-slug" , "encyclopedy_zone_zone-story_story-2010" , " encyclopedy_zone_zone -story_story-raid" , "encyclopedy_zone_anomalies_fuzzy " y_zone_anomalies_electra" , "encyclopedy_zone_anomalies_ameba " , "encyclopedy_zone_locations_agroprom" , "encyclopedy_zone_locations_darkdolina" , " encyclopedy_zone_locations_bar" , "encyclopedy_zone_locations_rostok" , "encyclopedy_zone_locations_military-loc" , "encyclopedy_zone_locations_yantar" , "encyclopedy_zone_locations_radar" , "encycloped _poltergeist_general" , " encyclopedy_mutant_controller_general " , "encyclopedy_mutant_bloodsucker_general" , " encyclopedy_mutant_burer_general" , " encyclopedy_mutant_snork_general " , "encyclopedy_ns , "encyclopedy_social_military_milstalkers" , "encyclopedy_social_stalker-clans_freedom" , "encyclopedy_social_stalker-clans_monolith" , "encyclopedy_social_stalker-clans_killers" , "encyclopedy_social_stalker-clans_zomstalkers" , "encyclopedy_social_scientists_mobile-labs" , "stalker_story_2" , "stalker_story_3" , "stalker_story_7" , "stalker_story_10" , "stalker_story_11" , "stalker_story_12" , "stalker_story_13 " , "stalker_story_14 " , " stalker_story_16 " , " stalker story_19" , "stalker_story_20" } , master = { "encyclopedy_zone_artifact_af-electra-sparkler" , "encyclopedy_zone_artifact_af-electra-flash" , "encyclopedy_zone_artifact_af-electra-moonlight" , " encyclopedy_zone_artifact_af - crus rusty - kristall" , "encyclopedy_zone_artifact_af-rusty-sea- urchin" , "encyclopedy_zone_artifact_af-drops" , "encyclopedy_zone_artifact_af-fireball" , "encyclopedy_zone_artifact_af-cristall" , "encyclopedy_zone_zone- story_story -raid" , "encyclopedy_zone_zone-story_story-raid" zone_anomalies_radioactive " , " encyclopedy_zone_anomalies_electra " , "encyclopedy_zone_anomalies_ameba" , "encyclopedy_zone_locations_yantar" , " encyclopedy_zone_locations_radar" , "encyclopedy_zone_locations_pripiat" , "encyclopedy_zone_locations_stancia" , "encyclopedy_mutant_pseudogiant_general" , "encyclopedy_mutant_poltantgeist_general " , "encyclopedy_mutant_polantgeist_general" _stalker-clans_loners" , "encyclopedy_social_military_milstalkers" , "stalker_story_6 " , " stalker_story_9" , "stalker_story_10" , "stalker_story_13" , " stalker_story_14" , "stalker_story_16" , "stalker_story_17" , "stalker_story_18" , "stalker_story_19" , "stalker_story_20" } , legend = { "encyclopedy_zone_artifact_af-electra-sparkler" , "encyclopedy_zone_artifact_af-electra-flash" , "encyclopedy_zone_artifact_af-electra-moonlight" , " encyclopedy_zone_artifact_af - crus rusty - kristall" , "encyclopedy_zone_artifact_af-rusty-sea- urchin" , "encyclopedy_zone_artifact_af-drops" , "encyclopedy_zone_artifact_af-fireball" , "encyclopedy_zone_artifact_af-cristall" , "encyclopedy_zone_zone- story_story -raid" , "encyclopedy_zone_zone-story_story-raid" zone_anomalies_radioactive " , " encyclopedy_zone_anomalies_electra " , "encyclopedy_zone_anomalies_ameba" , "encyclopedy_zone_locations_yantar" , " encyclopedy_zone_locations_radar" , "encyclopedy_zone_locations_pripiat" , "encyclopedy_zone_locations_stancia" , "encyclopedy_mutant_pseudogiant_general" , "encyclopedy_mutant_poltantgeist_general " , "encyclopedy_mutant_polantgeist_general" _stalker-clans_loners" , "encyclopedy_social_military_milstalkers" , "stalker_story_6 " , " stalker_story_9" , "stalker_story_10" , "stalker_story_13" , " stalker_story_14" , "stalker_story_16" , "stalker_story_17" , "stalker_story_18" , "stalker_story_19" , "stalker_story_20" } }
Цей скрипт відповідає за історії, почуті від сталкерів (що залишаються у щоденнику). Я в скриптах не сильний, але можна спробувати поєднати інформацію у майстра і легенди в 1 рядок, додавши в скрипт оператор or. Тобто має виглядати так (не перевірено!):
master or legend = { "encyclopedy_zone_artifact_af-electra-sparkler" , "encyclopedy_zone_artifact_af-electra-flash" , "encyclopedy_zone_artifact_af-electra-moonlight" , " encyclopedy_zone_artifact fact_af - rusty - kristall " , "encyclopedy_zone_artifact_af-rusty- sea-urchin" , " encyclopedy_zone_artifact_af-drops" , "encyclopedy_zone_artifact_af-fireball" , "encyclopedy_zone_artifact_af-cristall" , " encyclopedy_zone_zone-story_story-raid" _zone_anomalies_radioactive " , "encyclopedy_zone_anomalies_electra" , "encyclopedy_zone_anomalies_ameba" , "encyclopedy_zone_locations_yantar" , "encyclopedy_zone_locations_radar" , "encyclopedy_zone_locations_pripiat" , "encyclopedy_zone_locations_stancia" , "encyclopedy_mutant_pseudogiant_general" , " encyclopedy_mutant_poltergeist_general " " _social_stalker-clans_loners" , "encyclopedy_social_military_milstalkers" , "stalker_story_6" , " stalker_story_9" , "stalker_story_10" , "stalker_story_13" , "stalker_story_14" , "stalker_story_16" , "stalker_story_17" , "stalker_story_18" , "stalker_story_19" , "stalker_story_20" }
Потім ліземо в gamedata/scripts/xr_statistic.script :
local killCountProps = { neutral_novice = 1 , neutral_experienced = 2 , neutral_veteran = 3 , neutral_master = 4 , neutral_legend = 5 , monolith_novice = 1 , monolith_experienced = 2 , monolith_veteran = 3 , monolith_master = 4 , monolith_legend = 5 , military_novice = 1 , military_experienced = 2 , military_veteran = 3 , military_master = 4 , military_legend = 5 , killer_novice = 1 , killer_experienced = 2 , killer_veteran = 3 , killer_master = 4 , killer_legend = 5 , ecolog_novice = 1 , ecolog_experienced = 2 , ecolog_veteran = 3 , ecolog_master = 4 , ecolog_legend = 5 , dolg_novice = 1 , dolg_experienced = 2 , dolg_veteran = 3 , dolg_master = 4 , dolg_legend = 5 , freedom_novice = 1 , freedom_experienced = 2 , freedom_veteran = 3 , freedom_master = 4 , freedom_legend = 5 , bandit_novice = 1 , bandit_experienced = 2 , bandit_veteran = 3 , bandit_master = 4 , bandit_legend = 5 , zombied_novice = 1 , zombied_experienced = 2 , zombied_veteran = 3 , zombied_master = 4 , zombied_legend = 5 ,
Замість 5 можна підставити будь-яке число. Це скільки капає в ранг очок коли вбиваєш людей із рангом легенда...
Лезем далі в gamedata/scripts/se_respawn.script :
- Таблиця обмежень на спаун: всього в симуляції не повинно бути більше, ніж зазначено. local simMaxCount = { stalker_novice = 43 , stalker_regular = 48 , stalker_veteran = 43 , stalker_master = 20 , stalker_legend = 5 , monolith_novice = 0 , monolith_regular = 30 , monolith_veteran = 35 , monolith_master = 30 , monolith_legend = 10 , military_novice = 0 , military_regular = 32 , military_veteran = 22 , military_master = 5 , military_legend = 2 , killer_novice = 0 , killer_regular = 18 , killer_veteran = 17 , killer_master = 10 , killer_legend = 2 , ecolog_novice = 1 , ecolog_regular = 1 , ecolog_veteran = 1 , ecolog_master = 1 , ecolog_legend = 0 , dolg_novice = 0 , dolg_regular = 33 , dolg_veteran = 36 , dolg_master = 17 , dolg_legend = 13 , freedom_novice = 50 , freedom_regular = 20 , freedom_veteran = 26 , freedom_master = 21 , freedom_legend = 13 , bandit_novice = 40 , bandit_regular = 50 , bandit_veteran = 18 , bandit_master = 10 , bandit_legend = 2 zombied_novice = 20 , zombied_regular = 15 , zombied_veteran = 10 , zombied_master = 10 , zombied_legend = 10 ,
Ну тут, я думаю, зрозуміло. Залишився останній штрих, відображення рангу у текстовому значенні. Тобто залазимо в config\text\rus і відкриваємо будь-який файл, наприклад ui_st_mm.xml і додаємо туди:
<string id = "legend" > <text > Легенда </text > </string >
Щоб протестувати, ліземо в config\gameplay\character_desc_general.xml і міняємо ранг у актора. Поставимо, наприклад, 1201:
<specific_character id = "actor" no_random = "1" > <name > actor_name </name > <icon > ui_npc_u_actor </icon > <map_icon x = "2" y = "5" > </map_icon > <team > Actor </team > <supplies > [spawn] \n device_torch \n </supplies > <class > actor </class > <community > actor </community > <rank > 1201 </rank > <reputation > 0 </reputation > <visual > actors\hero\stalker_novice </visual > </specific_character >
Заходимо у гру та перевіряємо. І так! У ГГ тепер ранг Легенда!