Нам понадобятся файлы:
info_zaton.xml . . . . .. . . . \configs\gameplay\
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\
Чтобы их найти - нужен распаковщик ресурсов игры. Открываем файл "achievements.ltx" и добавляем в конец секцию нашего ачивмента:
Код
[sucker] <----- В рамке любое название
icon = ui_inGame2_lopuh <------ Иконка
hint = st_sp_achievement_22_hint <------ Описание в ПДА при наведении на ачивку.
name = st_sp_achievement_22_name <---- Название
desc = st_sp_achievement_22_descr <----- Описание
functor = xr_statistic.sucker_functor <----- Функция получения
Открываем "st_achievement.xml" и пишем:
Код
<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 sucker_functor() <--- Название
if not has_alife_info("sucker_achievement_gained") then <--- Проверка, получили ли вы уже этот ачивмент ранее.
if has_alife_info("zat_b14_give_item_stalker") <---- Инфопоршень получения ачивмента
then
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"stalker", 200}) <----- Прибавление репутации по отношению сталкеров к ГГ. Если написать -200 то репа будет отрицательной.
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"freedom", 200}) <---- Прибавление репутации по отношению свободы к ГГ.
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"dolg", 200}) <--- Прибавление репутации по отношению долга к ГГ.
xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"bandit", 200}) <---- Прибавление репутации по отношению бандосов к ГГ.
news_manager.send_tip(db.actor, "st_ach_diplomat", nil, "diplomat", nil, nil) <--- Сообщить о получении ачивмента на ПДА
db.actor:give_info_portion("sucker_achievement_gained") <--- Выдать ачивмент
end
end
return has_alife_info("sucker_achievement_gained")
end
В ui_actor_achivments.dds рисуем нашу иконку.
В ui_actor_achivments.xml пишем координаты текстуры.
Статью допишу позже, когда будет время.