SOC. Новый ранг — S.T.A.L.K.E.R. Inside Wiki

SOC. Новый ранг

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

(перенаправлено с «SOC:Новый ранг»)
Перейти к: навигация, поиск

Для начала зайдем в 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