CoP. Создание нового достижения — S.T.A.L.K.E.R. Inside Wiki

CoP. Создание нового достижения

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

Перейти к: навигация, поиск

Для начала нужно распаковать игру анпакером.

После распаковки идём в следующие директории и ищем следующие файлы:


info_x.xml ---> configs\gameplay\ (где "x" название локации на которой хотим получить достижение например jupiter) этот файл нужен для просмотра списка квестов на локации, зачем нам это вы узнаете позже.
achievements.ltx ---> configs\misc\
st_achievement.xml ---> configs\text\rus\
ui_actor_achivments.xml ---> configs\ui\textures_descr\
xr_statistic.script ---> scripts\
ui_actor_achivments.dds ---> textures\ui\
xr_conditions.script ---> scripts\

И так, приступаем к работе.

Откроем файл achievements.ltx и ищем такую вот запись:

[achievements]
pioneer
mutant_hunter
detective
one_of_the_lads
kingpin
herald_of_justice
seeker
battle_systems_master
high_tech_master
skilled_stalker
leader
diplomat
research_man
friend_of_duty
friend_of_freedom
balance_advocate
wealthy
keeper_of_secrets
marked_by_zone
information_dealer
friend_of_stalkers

добавим в конце название_достижения_на_английском. Пример:

[achievements]
pioneer
mutant_hunter
detective
one_of_the_lads
kingpin
herald_of_justice
seeker
battle_systems_master
high_tech_master
skilled_stalker
leader
diplomat
research_man
friend_of_duty
friend_of_freedom
balance_advocate
wealthy
keeper_of_secrets
marked_by_zone
information_dealer
friend_of_stalkers
all_stalkers_your_friend

Идём в конец файла и добавляем следующее:

["Название_достижения_на_английском_без_кавычек"]
icon        = ui_inGame2_имя_иконки_на_английском
hint        = st_sp_achievement_22_hint <--- То, что будет выводиться в КПК при наведении на иконку достижения (надо оставлять так же меняя только числа, чтоб они шли по порядку)
name        = st_sp_achievement_22_name <--- Имя достижения
desc        = st_sp_achievement_22_descr <--- Описание достижения
functor        = xr_statistic.название_достижения_на_английском_functor <--- функция для получения нашего достижения

закрываем сохраняя изменения в файле

Далее откроем файл st_achievement.xml и добавим между:

	<string id="st_sp_achievement_21_name">
		<text>Друг сталкеров</text>
	</string>

и

	<string id="st_sp_achievement_1_hint">
		<text>Совокупность новых данных позволила профессорам Герману и Озёрскому синтезировать в условиях Зоны экспериментальный анабиотик.</text>
	</string>

Следующее:

	<string id="st_sp_achievement_22_hint">
		<text>Ваш текст который будет высвечиваться в КПК при наведении мышки на иконку достижения.</text>
	</string>
	<string id="st_sp_achievement_22_descr">
		<text>Полное описание достижения.</text>
	</string>
	<string id="st_sp_achievement_22_name">
		<text>Имя достижения</text>
	</string>

Закрываем с подтверждением на сохранение изменений

Открываем xr_statistic.script идём в самый конец и добавляем следующее:

function название_вашей_функции()
	if not has_alife_info("пишем_что_хотим_на_английсокм") then  --- проверка на раннее получение этого достижения
		if has_alife_info("название_квеста_или_действия")  --- квест или действие после которого будет получено достижение. Для этого нам как раз и понадобится info_x.xml о котором я писал в начале.
				and has_alife_info("название_квеста_или_действия")  --- эта функция если квестов несколько
			db.actor:give_info_portion("пишем_что_писали_в_проверке_на_получение_ранее_достижения")
			news_manager.send_tip(db.actor, "st_ach_название_вашего_достижения_на_английском", nil, "название_вашего_достижения_на_английском", nil, nil)
			xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"stalker", 100})  --- прибавление репутации сталкеров при получении данного достижения (если - то убавление), можно вписать любую другую группировку (использовать несколько команд если хотите прибавить или убавить репутацию у нескольких группировок)
		end
	end
	return has_alife_info("пишем_что_писали_в_проверке_на_получение_ранее_достижения")
end

Закрываем с подтверждением на сохранение изменений.

Откроем xr_conditions.script найдём:

friend_of_stalkers_functor = xr_statistic.friend_of_stalkers_functor

и после пишем:

название_вашей_функции = xr_statistic.название_вашей_функции

Закрываем с подтверждением на сохранение изменений.

Рисуем в ui_actor_achivments.dds иконку для нашего достижения (можно взять и старую).

Открываем файл ui_actor_achivments.xml и добавляем там:

<texture id="ui_inGame2_название_вашей_иконки" x="0" y="0" width="121" height="121" />

Если рисовали собственную иконку то вписываем её координаты (по x и y осям), если решили взять уже имеющуюся то вписывайте её координаты (координаты определяются по левому верхнему углу иконки достижения) координаты можно посмотреть через WTV (Windows Texture Viewer), или, например, известную программу дял редактирования иконок "Сталкера" - Stalker Icon Editor. Удачной игры

Автор: WillsherT

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