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

SoC. Сигаретная зависимость — различия между версиями

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

Перейти к: навигация, поиск
 
Строка 1: Строка 1:
'''Автор: Xmk'''
+
'''Автор: <big>Xmk</big>'''
  
 
Для этого нам понадобятся файлы (AMK Mod):
 
Для этого нам понадобятся файлы (AMK Mod):
Строка 113: Строка 113:
 
     <text>Пишем любое описание сигареты, мне че то в голову ниче не приходит</text>
 
     <text>Пишем любое описание сигареты, мне че то в голову ниче не приходит</text>
 
</string></pre>
 
</string></pre>
 +
 +
[[Категория:Скрипты]]

Версия 14:30, 19 мая 2010

Автор: 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