Форум

Воскресенье, 29.06.2025, 07:20 Приветствую Вас Гость
Главная | Регистрация | Вход | RSS
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: [Try]DiGGeR225  
Создание нового достижения в ЗП
[Try]DiGGeR225Дата: Воскресенье, 05.06.2011, 12:21 | Сообщение # 1
Прибывший
Группа: Администраторы
Сообщений: 501
Награды: 5
Репутация: 4
Статус:
Для начала нужно распаковать игру анпакером.

После распаковки идём в следующие директории и ищем следующие файлы:
Code
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 и ищем такую вот запись:
Code
[achievements]
pioneer
mutant_hunter
detective
one_of_the_lads
kingpin
herald_of_justice
seeker
battle_systems_master
high_tech_master
skilled_s    talker
leader
diplomat
research_man
friend_of_duty
friend_of_freedom
balance_advocate
wealthy
keeper_of_secrets
marked_by_zone
i nf  ormation_dealer
friend_of_stalkers


добавим в конце название_достижения_на_английском. Пример:
Code
[achievements]
pioneer
mutant_hunter
detective
one_of_the_lads
kingpin
herald_of_justice
seeker
battle_systems_master
high_tech_master
skilled_s    talker
leader
diplomat
research_man
friend_of_duty
friend_of_freedom
balance_advocate
wealthy
keeper_of_secrets
marked_by_zone
i nf  ormation_dealer
friend_of_stalkers
all_stalkers_your_friend

Идём в конец файла и добавляем следующее:
Code
["Название_достижения_на_английском_без_кавычек"]
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 и добавим между:
Code
<string id="st_sp_achievement_21_name">
      <text>Друг сталкеров</text>
     </string>


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


Следующее:
Code
<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 идём в самый конец и добавляем следующее:
Code
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 найдём:
Code
friend_of_stalkers_functor = xr_statistic.friend_of_stalkers_functor


и после пишем:
Code
название_вашей_функции = xr_statistic.название_вашей_функции


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

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

Открываем файл ui_actor_achivments.xml и добавляем там:
Code
<texture id="ui_inGame2_название_вашей_иконки" x="0" y="0" width="121" height="121" />


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

Автор: WillsherT



 
  • Страница 1 из 1
  • 1
Поиск:

Чат доступен только пользователям сайта
Зарегистрироваться

ТОП самых общительных:

[Try]DiGGeR225
Репутация:4
Постов: 501
Файлов: 43
Krendelyok
Репутация:0
Постов: 108
Файлов: 0
Sniper
Репутация:0
Постов: 82
Файлов: 0
Инквизитор
Репутация:0
Постов: 27
Файлов: 0
[K715]
Репутация:0
Постов: 22
Файлов: 0
Конструктор сайтовuCoz