SoC. Сигаретная зависимость — S.T.A.L.K.E.R. Inside Wiki

SoC. Сигаретная зависимость

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

Перейти к: навигация, поиск

Автор: Xmk

Для этого нам понадобятся файлы (AMK Mod):

config/misc/items.ltx

config/text/rus/string_table_enc_equipment.xml

scripts/amk.script

script/amk_mod.script

1. Создаём файл ваше_название_скрипта.script в папке gamedata/scripts и пишем в него:

snd = sound_object([[ambient\underground\rnd_giant]])
 
-- Проверяем нужно ли покурить. Вызывается каждые 6 игровых минут
function test_for_need_kur()
    amk.save_variable("kur",amk.load_variable("kur",0)+1)
    amk.g_start_timer("kur",0,0,6)
    kur_reduce_health()
end
 
-- Уменьшение здоровья, если долго не курил
function kur_reduce_health()
    local tmp = amk.load_variable("kur",0)
    if tmp > 150 then
        if db.actor.health > 0.15 then
            db.actor.health = - 0.15
        end
        if not snd:playing() then
            snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
        end
    end
end
-- Курение
function kur_item(oid, time)
    if alife():object(oid)==nil then
        local tmp = amk.load_variable("kur",0) - time*10
        if tmp < 0 then tmp = 0 end
        amk.save_variable("kur", tmp)
        kur_reduce_health()
    end
end

2. Открываем файл amk.script:

после:

function __do_timer_action(select_string,params_string)

пишем:

if select_string=="kur" then
название_вашего_скрипта.test_for_need_kur()
end

3. Открываем файл amk_mod.script в функции first_run пишем:

amk.g_start_timer("kur",0,0,6)

затем в функции check_sleep_item(obj) после

  elseif section=="treasure_item" then
        stype="tr_item"
 

но перед end пишем:

  elseif section == "sigaret" then
    stype = "sgr"

4. Открываем файл items.ltx

[sigaret]:identity_immunities
GroupControlSection  = spawn_group
discovery_dependency =
$spawn               = "food and drugs\antirad"
$prefetch            = 32
class                = II_ANTIR
cform                = skeleton
visual               = weapons\sigaret\sigaret.ogf
inv_name             = sigareta
inv_name_short       = sigareta
description          = enc_food_sigareta
inv_weight           = 0.02
inv_grid_width       = 1
inv_grid_height      = 2
inv_grid_x           = 10
inv_grid_y           = 24
cost                 = 50
; eatable item
eat_health           = 0
eat_satiety          = 0
eat_power            = 0
eat_radiation        = 0
eat_alcohol          = 0
wounds_heal_perc     = 0
eat_portions_num     = 1
; food item
animation_slot       = 4
;hud item
hud                  = wpn_vodka_hud

5. Открываем файл string_table_enc_equipment.xml

<string id="sigareta">
    <text>Сигарета</text>
</string>
<string id="enc_food_sigareta">
    <text>Пишем любое описание сигареты, мне че то в голову ниче не приходит</text>
</string>
Другие места
LANGUAGE