Среда, 14.11.2018, 21:20
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » S.T.A.L.K.E.R. Модострение » S.T.A.L.K.E.R. Shadow of Chernobyl » Создание ремонт комплекта (Пример создания ремонт комплекта для костюмов...)
Создание ремонт комплекта
Vavilov8Дата: Воскресенье, 09.09.2012, 17:52 | Сообщение # 1
VIP
Группа: Администраторы
Сообщений: 42
Репутация: 0
Статус: Offline
Я опишу пример создания ремонт комплекта для костюмов, а для оружия в конце статьи сделаю пару заметок. Дело в том, что различия в создании ремонт комплектов почти нет.

1. Для начала нам нужно создать сам ремонт комплект, то есть предмет, а уже потом вешать на него функцию при использование. Для этого в config\misc\items.ltx в конец добавляем конфиг нашего предмета:

Code

[repair_kit_outfit]:identity_immunities  
GroupControlSection    = spawn_group  
discovery_dependency    =  
$spawn    = "food and drugs\repair kit outfit"  
$prefetch   = 32  
class   = II_ANTIR ;класс не трогаем!  
cform                   = skeleton  
visual                  = equipments\item_merger.ogf ;модель  
description  = enc_equipment_repair_kit_outfit ;ссылка на описание в config\text\rus\....xml  

inv_name  = repair_kit_outfit_name ;ссылка на название в config\text\rus\....xml  
inv_name_short  = repair_kit_outfit_name ;тоже самое, что и inv_name  
inv_weight  = 6.0 ;вес  

inv_grid_width  = 2 ;ширина иконки  
inv_grid_height  = 1 ;высота иконки  
inv_grid_x  = 8 ;координата x иконки  
inv_grid_y  = 18 ;координата y иконки  
cost   = 10000 ;цена  
;всё ниже написанное не трогаем, оно нам и не нужно  
eat_health = 0  
eat_satiety = 0  
eat_power = 0  
eat_radiation = 0  
wounds_heal_perc = 0  
eat_portions_num = 1  
animation_slot = 4  
hud = wpn_vodka_hud  


2. Теперь добавим название и описание. Для этого в файле config\text\rus\string_table_enc_equipment.xml в конец между и добавляем строки по аналогии с уже написсанными:

Code

<string id="repair_kit_outfit_name">  
  <text>Ремонт комплект ДПК</text>  
       </string>  
<string id="enc_equipment_repair_kit_outfit">  
  <text>Новинка от Вани Болта - ремонт комплект ДПК для быстрой и эффективной починки костюмов. При его создании были учтены все недочёты и, следовательно, удалены. Благодаря улучшенным инструментам и деталям, а также облегченному весу весьма ценен. С его помощью можно увеличить состояние костюма до 100%, если он повреждён не больше 30%. Незаменимая вещь во время вылазки.    </text>  
  </string>  


Отлично, с предметом закончили. Теперь приступим к самому главному - скриптам.

1. Вешаем функцию починки при использовании нашего ремонт комплекта. Для этого в файле scripts\bind_stalker.script находим функцию:
function actor_binder:reinit() и после строки:
Code

self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self)


Вставляем:
Code

self.object:set_callback(callback.use_object, self.repair_outfit_start, self)


Теперь в папке scripts создаёте свой скриптовой фаил ваше_название_скрипта.script. Но! Название должно быть написано на английском языке и вместо пробелов должен стоять знак "_". Опять открываем bind_stalker.script и в самый конец добавляем эту функцию:

Code

function actor_binder:repair_outfit_start(obj, who)  
       if obj then    
           if obj:section() == "repair_kit_outfit" then --здесь указываем предмет, при использование которого будет срабатывать функция ниже  
           ваше_название_скрипта.repair_outfit() --здесь указываем ссылку на функцию. Сначала скрипт, в котором она написана, потом название самой функции  
           end  
       end  
end  


2. Добавляем саму функцию ремонта. Для этого в файле ваше_название_скрипта.script пишем:
Code

-- Ремонт комплект для костюмов  
function repair_outfit()  
  local item_s6 = db.actor:item_in_slot(6) --объявляем переменную (item_s6)  
if item_s6 ~= nil and item_s6:condition() >=0.30 and item_s6:condition() ~=1 then --когда костюм можно чинить (состояние больше или равно 30%)  
item_s6:set_condition(1)  
  local snd_obj = xr_sound.get_safe_sound_object([[interface\inv_detach_addon]])  
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)  
  local news_text = "%c[255,160,160,160]Ремонт комплект:\\n%c[255,0,255,0]Ремонт костюма завершен."  
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(83,470,83,47), 1000, 5000)
elseif item_s6 == nil then --когда костюма нет  
  local news_text = "%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: нужно одеть коcтюм."  
  db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(83,470,83,47), 1000, 5000)
alife():create("repair_kit_outfit", db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())  
elseif item_s6:condition() <0.30 then --когда костюм нельзя чинить (состояние меньше 30%)  
  local news_text = "%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: костюм слишком сильно повреждён."  
  db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(83,470,83,47), 1000, 5000)
alife():create("repair_kit_outfit", db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())  
  elseif item_s6:condition() ==1 then --когда костюм в отличном состояние  
  local news_text = "%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: %c[255,0,255,0]костюм в отличном состояние."  
  db.actor:give_game_news(news_text, "ui\\ui_iconsTotal", Frect():set(83,470,83,47), 1000, 5000)
alife():create("repair_kit_outfit", db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())  
end  


1.Чтобы сделать ремонт комплект для оружия проделываем тоже самое, только переименовываем всё вместо outfit на weapon и в функции починки ставим слот 1 или 2 (оружейные слота) вместо 6 (слот костюмов). Ещё нужно заменить переменную item_s6 например на item_s1 или item_s2.

2. Число 0.30 - минимальное состояние костюма, следовательно его можно менять на любое вам угодное. Простите за такое оформление, это моя вторая статья. В будущем, если будет больше свободного времени, постораюсь расписать все моменты подробно. Автор статьи: Бага.
 
Форум » S.T.A.L.K.E.R. Модострение » S.T.A.L.K.E.R. Shadow of Chernobyl » Создание ремонт комплекта (Пример создания ремонт комплекта для костюмов...)
  • Страница 1 из 1
  • 1
Поиск: