Создание костюма с автоматическим приёмом медикаментов — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Создание костюма с автоматическим приёмом медикаментов — различия между версиями

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

Перейти к: навигация, поиск
(Новая страница: «Нам понадобится: '''bind_stalker.script''' Для начала создадим свой скрипт (у меня будет '''kfs.script'''). И в...»)
 
(Удалил ненужные ссылки. Подправил код: всё слиплось, новички не поймут а опытные сами такое напишут за 3 секунды)
Строка 6: Строка 6:
 
Copyright: © KFS Team 2011
 
Copyright: © KFS Team 2011
 
]]--
 
]]--
local kFlag=0
+
local kFlag = 0
 
function vvod_medkit()
 
function vvod_medkit()
local act_it=db.actor:item_in_slot(6)
+
local act_it = db.actor:item_in_slot(6)
   if act_it~=nil then
+
   if act_it ~= nil then
       if db.actor.health <= 0.6 and db.actor:object"medkit_army" and act_it:section()=="novice_outfit" then
+
       if db.actor.health <= 0.6 and db.actor:object"medkit_army" and act_it:section() == "novice_outfit" then
 
       local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Выполняю:%c[255,230,0,0]Ввожу в организм препарат Армейская аптечка %c[default]"  
 
       local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Выполняю:%c[255,230,0,0]Ввожу в организм препарат Армейская аптечка %c[default]"  
 
       db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000)
 
       db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000)
 
       db.actor:eat(db.actor:object("medkit_army"))
 
       db.actor:eat(db.actor:object("medkit_army"))
  if kFlag==1 then kFlag=0 end
+
  if kFlag == 1 then kFlag = 0 end
     elseif db.actor.health <= 0.6 and act_it:section()=="novice_outfit" then
+
     elseif db.actor.health <= 0.6 and act_it:section() == "novice_outfit" then
  if kFlag==0 then
+
  if kFlag == 0 then
 
         local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Внимание:%c[255,230,0,0]Минимальное количество препаратов...Отказ%c[default]"  
 
         local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Внимание:%c[255,230,0,0]Минимальное количество препаратов...Отказ%c[default]"  
 
         db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000)
 
         db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000)
kFlag=1
+
kFlag = 1
 
  end
 
  end
 
end
 
end
Строка 54: Строка 54:
  
 
Вот и всё, можно идти тестить.
 
Вот и всё, можно идти тестить.
Статья написана by '''$T@RT$''' © '''KFS Team'''
+
Статья by '''$T@RT$''' © '''KFS Team'''
Ссылки: http://kfs-team.ru/ http://www.stalker-rfs.ru/
+

Версия 07:23, 13 марта 2011

Нам понадобится: bind_stalker.script Для начала создадим свой скрипт (у меня будет kfs.script). И вставим туда вот такой код:

--[[
Authors: $T@RT$
Copyright: © KFS Team 2011
]]--
local kFlag = 0
function vvod_medkit()
local act_it = db.actor:item_in_slot(6)
if act_it ~= nil then
if db.actor.health <= 0.6 and db.actor:object"medkit_army" and act_it:section() == "novice_outfit" then
local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Выполняю:%c[255,230,0,0]Ввожу в организм препарат Армейская аптечка %c[default]"
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000)
db.actor:eat(db.actor:object("medkit_army"))
if kFlag == 1 then kFlag = 0 end
elseif db.actor.health <= 0.6 and act_it:section() == "novice_outfit" then
if kFlag == 0 then
local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Внимание:%c[255,230,0,0]Минимальное количество препаратов...Отказ%c[default]"
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000)
kFlag = 1
end
end
end
end


Теперь разберём подробно каждую строчку.

local kFlag=0 — Создаём локальную переменную (у нас будет флаг)
local act_it=db.actor:item_in_slot(6) — создаём локальную переменную act_it которая проверяет что в 6 слоте (В ТЧ это костюм)
if act_it≈nil then — Если act_it существует
if db.actor.health <= 0.6 and db.actor:object"medkit_army" and act_it:section()=="novice_outfit" then – Если у ГГ хп < 60% и есть армейская аптечка и надет костюм новичка
local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Выполняю:%c[255,230,0,0]Ввожу в организм препарат Армейская аптечка%c[default]"  -- Создаём локальную переменную news_text с текстом
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000) – получаем игровые новости с текстом news_text 
db.actor:eat(db.actor:object(«medkit_army»)) — съесть армейскую аптечку
if kFlag==1 then  kFlag=0 end – если флаг == 1 то флаг присвоить 0
elseif db.actor.health <= 0.6 and act_it:section()=="novice_outfit" then — Иначе если у ГГ хп <60 % и надет костюм новичка
if kFlag==0 then – Если флаг == 0
local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Внимание:%c[255,230,0,0]Минимальное количество препаратов...Отказ%c[default]" – Создаём локальную переменную с текстом news_text
db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 5000) – Получаем сообщение с текстом news_text
kFlag=1 — флаг пристоить 1


Теперь откроем bind_stalker.script и найдём function actor_binder:update(delta) сразу после неё ставим kfs.vvod_medkit() Теперь у нас каждый раз будет идти проверка этой функции.

Вот и всё, можно идти тестить. Статья by $T@RT$ © KFS Team

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