SOC. Новый ранг — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

SOC. Новый ранг — различия между версиями

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

Перейти к: навигация, поиск
(оформление, стилевые правки, орфография)
 
Строка 1: Строка 1:
Здраствуйте.Хочу сегодня вместе с вами рассмотреть создание нового ранга!(Для тех кто забыл что такое ранг это:новичок,опытный,ветеран,мастер)
+
Для начала зайдем в '''gamedata/config/creatures/game_releations.ltx''' и там изменим:
Для начала зайдем в gamedata/config/creatures/game_releations.ltx
+
 
и там изменим:
+
<ini>
<lua>
+
 
;реальное разделение на группы репутаций на шкалы
 
;реальное разделение на группы репутаций на шкалы
rating = novice, 300, experienced, 600, veteran, 900, master, 1200, legenda
+
rating = novice, 300, experienced, 600, veteran, 900, master, 1200, legend
</lua>
+
</ini>
 +
 
 
и затем строчку с наименованием рангов:
 
и затем строчку с наименованием рангов:
<lua>
+
 
 +
<ini>
 
;шкалы для вывода названий вместо чисел  
 
;шкалы для вывода названий вместо чисел  
 
;рейтингов, репутаций и благосклонности в интерфейсе
 
;рейтингов, репутаций и благосклонности в интерфейсе
rating_names = novice, 300, experienced, 600, veteran, 900, master, 1200, legenda
+
rating_names = novice, 300, experienced, 600, veteran, 900, master, 1200, legend
</lua>
+
</ini>
 +
 
 
Затем там же ищем эту строчку и изменяем ее:
 
Затем там же ищем эту строчку и изменяем ее:
<lua>
+
 
 +
<ini>
 
[rank_relations]
 
[rank_relations]
;   novice, experienced, veteran, master, legenda
+
;                       novice, experienced, veteran, master, legend
;================================================================
+
;===================================================================
 
novice =  0,      0,        0,        0,        0
 
novice =  0,      0,        0,        0,        0
 
experienced =  0,      0,        0,        0,        0
 
experienced =  0,      0,        0,        0,        0
 
veteran =  0,      0,        0,        0,        0
 
veteran =  0,      0,        0,        0,        0
 
master =  0,      0,        0,        0,        0
 
master =  0,      0,        0,        0,        0
legenda =  0,      0,        0,        0,        0
+
legend =  0,      0,        0,        0,        0
</lua>
+
</ini>
Затем там же изменяем одну строчку.Не уверен в ее работоспособности но лучше не рисковать :) :
+
 
<lua>
+
Затем там же изменяем одну строчку. Не уверен в ее работоспособности, но лучше не рисковать:
 +
 
 +
<ini>
 
;очки рейтинга, получаемые за убийство персонажа
 
;очки рейтинга, получаемые за убийство персонажа
 
;с определенным статусом
 
;с определенным статусом
 
[rank_kill_points]
 
[rank_kill_points]
 
novice =        0
 
novice =        0
experienced = 0
+
experienced =       0
 
veteran =        0
 
veteran =        0
 
master =        0
 
master =        0
legenda =        0
+
legend =        0
</lua>
+
</ini>
С этим вроде разобрались.Лезем в скрипты:
+
 
gamedata/scripts/_g.script
+
С конфигами вроде разобрались. Лезем в скрипты. '''gamedata/scripts/_g.script''':
 +
 
 
<lua>
 
<lua>
 
function set_actor_rank(rank)
 
function set_actor_rank(rank)
Строка 46: Строка 52:
 
elseif rank == "master" then
 
elseif rank == "master" then
 
db.actor:set_character_rank(900)
 
db.actor:set_character_rank(900)
elseif rank == "legenda" then
+
elseif rank == "legend" then
 
db.actor:set_character_rank(1200)
 
db.actor:set_character_rank(1200)
 
end
 
end
 
end
 
end
 
</lua>
 
</lua>
Заместо 1200 можете поставить свое любое значение.Этот скрипт отвечает либо за то когда ранк получаеться у actor`a либо если меняешь через скрипт ранг у последнего,то очки его ранга ровны тому что мы только что подставили(Тобишь 1200)...
+
 
Затем меняем gamedata/scripts/xr_info.script:
+
Вместо 1200 можете поставить любое свое значение. Этот скрипт отвечает либо за то, когда ранг получается у actor`a, либо, если меняешь через скрипт ранг у последнего, то очки его ранга ровны тому, что мы только что подставили (то бишь 1200)...
 +
 
 +
Затем меняем '''gamedata/scripts/xr_info.script''':
 +
 
 
<lua>
 
<lua>
 
local info_by_rank = {
 
local info_by_rank = {
Строка 217: Строка 226:
 
},
 
},
 
 
legenda = { "encyclopedy_zone_artifact_af-electra-sparkler",
+
legend = { "encyclopedy_zone_artifact_af-electra-sparkler",
 
"encyclopedy_zone_artifact_af-electra-flash",
 
"encyclopedy_zone_artifact_af-electra-flash",
 
"encyclopedy_zone_artifact_af-electra-moonlight",
 
"encyclopedy_zone_artifact_af-electra-moonlight",
Строка 253: Строка 262:
 
}
 
}
 
</lua>
 
</lua>
Этот скрипт отвечает за получаемые истории из сталкеров(Которые еще остаються в дневнике).Я в скриптах не силен но можно попробовать объеденить информацию у мастера и легенды в 1 строчку добавив в скрипт or(Оператор значения:Или).Тобишь должно выглядеть так(Не проверено!):
+
 
 +
Этот скрипт отвечает за истории, услышанные от сталкеров (которые остаются в дневнике). Я в скриптах не силен, но можно попробовать объединить информацию у мастера и легенды в 1 строчку, добавив в скрипт оператор or. То бишь должно выглядеть так (не проверено!):
 +
 
 
<lua>
 
<lua>
master or legenda = { "encyclopedy_zone_artifact_af-electra-sparkler",
+
master or legend = { "encyclopedy_zone_artifact_af-electra-sparkler",
 
"encyclopedy_zone_artifact_af-electra-flash",
 
"encyclopedy_zone_artifact_af-electra-flash",
 
"encyclopedy_zone_artifact_af-electra-moonlight",
 
"encyclopedy_zone_artifact_af-electra-moonlight",
Строка 290: Строка 301:
 
}
 
}
 
</lua>
 
</lua>
Затем лезем в gamedata/scripts/xr_statistic.script:
+
 
 +
Затем лезем в '''gamedata/scripts/xr_statistic.script''':
 +
 
 
<lua>
 
<lua>
 
local killCountProps = {
 
local killCountProps = {
neutral_novice = 1, neutral_experienced = 2, neutral_veteran = 3, neutral_master = 4, neutral_legenda = 5,
+
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_legenda = 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_legenda = 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_legenda = 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_legenda = 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_legenda = 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_legenda = 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_legenda = 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_legenda = 5,
+
zombied_novice = 1, zombied_experienced = 2, zombied_veteran = 3, zombied_master = 4, zombied_legend = 5,
 
</lua>
 
</lua>
Заместо 5 можно подставить любое число.Это сколько капает в ранг очков когда убиваешь людей с рангом легенда...
+
 
Лезем далее в gamedata/scripts/se_respawn.script
+
Вместо 5 можно подставить любое число. Это сколько капает в ранг очков когда убиваешь людей с рангом легенда...
 +
 
 +
Лезем далее в '''gamedata/scripts/se_respawn.script''':
 +
 
 
<lua>
 
<lua>
 
-- Таблица ограничений на спаун: всего в симуляции не должно быть больше, чем указано.
 
-- Таблица ограничений на спаун: всего в симуляции не должно быть больше, чем указано.
 
local simMaxCount = {
 
local simMaxCount = {
stalker_novice = 43, stalker_regular = 48, stalker_veteran = 43, stalker_master = 20, stalker_legenda = 5,
+
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_legenda = 10,
+
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_legenda = 2,
+
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_legenda = 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_legenda = 0,
+
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_legenda = 13,
+
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_legenda = 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_legenda = 2,
+
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_legenda = 10,
+
zombied_novice = 20, zombied_regular = 15, zombied_veteran = 10, zombied_master = 10, zombied_legend = 10,
 
</lua>
 
</lua>
Ну тут я думаю понятно
+
 
Остался последний штрих,отображение ранга в текстовом значении.Тобишь залезаем в config\text\rus и открываем любой файл,например ui_st_mm.xml и добавляем туда:
+
Ну, тут, я думаю, понятно. Остался последний штрих, отображение ранга в текстовом значении. То бишь залезаем в ''config\text\rus'' и открываем любой файл, например '''ui_st_mm.xml''' и добавляем туда:
 +
 
 
<xml>
 
<xml>
<string id="legenda">
+
<string id="legend">
 
<text>Легенда</text>
 
<text>Легенда</text>
 
</string>
 
</string>
 
</xml>
 
</xml>
Чтобы протестировать лезем в config\gameplay\character_desc_general.xml и меняем ранг у актора.Поставим например 1201 тобишь заменяем на это:
+
 
 +
Чтобы протестировать, лезем в '''config\gameplay\character_desc_general.xml''' и меняем ранг у актора. Поставим, например, 1201:
 +
 
 
<xml>
 
<xml>
 
<specific_character id="actor" no_random = "1">
 
<specific_character id="actor" no_random = "1">
Строка 346: Строка 365:
 
</specific_character>
 
</specific_character>
 
</xml>
 
</xml>
Заходим в игру и проверяем.И да!У гг теперь ранг Легенда!
+
 
Всем спасибо за внимание,автор статьи:'''Fireman3000'''
+
Заходим в игру и проверяем. И да! У ГГ теперь ранг Легенда!
 +
 
 +
Всем спасибо за внимание,автор статьи: '''Fireman3000'''.
 +
 
 
Спасибо '''kuperday''' за то что нашел мои ошибки в статье :)
 
Спасибо '''kuperday''' за то что нашел мои ошибки в статье :)
 +
 +
[[Категория:Скрипты]]

Текущая версия на 13:27, 5 марта 2011

Для начала зайдем в 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.actor:set_character_rank(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_by_rank = {
		novice = {	"encyclopedy_zone_artifact_af-medusa", 
					"encyclopedy_zone_artifact_af-cristall-flower", 
					"encyclopedy_zone_artifact_af-vyvert", 
					"encyclopedy_zone_artifact_af-gravi", 
					"encyclopedy_zone_artifact_af-blood", 
					"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_anomalies_radioactive",
					"encyclopedy_zone_locations_escape",
					"encyclopedy_zone_locations_garbage",
					"encyclopedy_mutant_crow_general",
					"encyclopedy_mutant_rat_general",
					"encyclopedy_mutant_flesh_general",
					"encyclopedy_mutant_blind_general",
					"encyclopedy_mutant_boar_general",
					"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-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_zone-story_story-2008",
					"encyclopedy_zone_anomalies_fuzz",
					"encyclopedy_zone_anomalies_radioactive",
					"encyclopedy_zone_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_bloodsucker_general",
					"encyclopedy_mutant_burer_general",
					"encyclopedy_mutant_snork_general",
					"encyclopedy_mutant_flesh_general",
					"encyclopedy_mutant_blind_general",
					"encyclopedy_mutant_boar_general",
					"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",
					"encyclopedy_social_military_army",
					"encyclopedy_social_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-rusty-kristall",
					"encyclopedy_zone_artifact_af-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-flash",
					"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_fuzz",
					"encyclopedy_zone_anomalies_radioactive",
					"encyclopedy_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",
					"encyclopedy_mutant_pseudogiant_general",
					"encyclopedy_mutant_poltergeist_general",
					"encyclopedy_mutant_controller_general",
					"encyclopedy_mutant_bloodsucker_general",
					"encyclopedy_mutant_burer_general",
					"encyclopedy_mutant_snork_general",
					"encyclopedy_social_stalker-clans_loners",
					"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_17",
					"stalker_story_18",
					"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-rusty-thorn",
					"encyclopedy_zone_artifact_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",
					"encyclopedy_zone_anomalies_fuzz",
					"encyclopedy_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",
					"encyclopedy_mutant_controller_general",
					"encyclopedy_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"
					},
 
		legend = {	"encyclopedy_zone_artifact_af-electra-sparkler",
					"encyclopedy_zone_artifact_af-electra-flash",
					"encyclopedy_zone_artifact_af-electra-moonlight",
					"encyclopedy_zone_artifact_af-rusty-thorn",
					"encyclopedy_zone_artifact_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",
					"encyclopedy_zone_anomalies_fuzz",
					"encyclopedy_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",
					"encyclopedy_mutant_controller_general",
					"encyclopedy_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"
					}
		}
 

Этот скрипт отвечает за истории, услышанные от сталкеров (которые остаются в дневнике). Я в скриптах не силен, но можно попробовать объединить информацию у мастера и легенды в 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_af-rusty-thorn",
					"encyclopedy_zone_artifact_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",
					"encyclopedy_zone_anomalies_fuzz",
					"encyclopedy_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",
					"encyclopedy_mutant_controller_general",
					"encyclopedy_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>
 

Заходим в игру и проверяем. И да! У ГГ теперь ранг Легенда!

Всем спасибо за внимание,автор статьи: Fireman3000.

Спасибо kuperday за то что нашел мои ошибки в статье :)

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