Сповіщення
Очистити все

Створення нового досягнення


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
2 роки тому
 

Для початку потрібно розпакувати гру анпакером.

Після розпакування йдемо в наступні директорії та шукаємо наступні файли:

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 . Вдалої гри!


   
Цитата