Перейти к контенту
Halford

[SoC] Ковыряемся в файлах

Рекомендуемые сообщения

3 часа назад, Ворон545 сказал:

Параметры артефактов в окошке инвентаря перестали отображаться

 

параметры артов настраиваются в файле af_params.xml

для отображения в инвентаре - в файле inventory_item.xml  должен быть инклюд вида  #include "ui\af_params.xml"

такой же инклюд должен быть и в файле trade_item.xml для отображения параметров в окне торговли,

тоже самое и с файлом carbody_item.xml  -  проверь эти файлы на наличие отсутствия инклюда,

так же проверь файлы ***_item_16.xml

  • Спасибо 1
Ссылка на комментарий

Подскажите, как сделать так, чтобы была метка для рестриктора? Интересует способ  с стори ид (если он вообще существует).. Если есть гайд скиньте плз

Ссылка на комментарий

@Hind Попробуй так

Вешаем метку в pda по Sid'у

local obj = alife():story_object( 016 ) 
local obj_id = obj.id
function add_spot_on_map(obj_id,type,text)
    if obj_id then
        if not text then text = "no_text" end
        level.map_add_object_spot_ser(obj_id, type, text)
    end
end 

Вызываем:

function add_spot_on_map(obj_id,type,text)
    имя_файла.add_spot_on_map(obj.id,"green_location","Текст")
end 

  • Спасибо 1

Pir%40t%40s.gif

Ссылка на комментарий

Что надо сделать: через noe время вызов ГГ по ПДА, где будет даваться задание на вход в рестриктор (т.е. рестриктор будет активен только после получения инфы).

Как сделать так, чтобы логика рестриктора (вернее, основная её часть) не была активна до получения инфы?

Ссылка на комментарий
39 минут назад, Hind сказал:

Как сделать так, чтобы логика рестриктора (вернее, основная её часть) не была активна до получения инфы?

on_actor_inside = {+info}
{+info} - до получения этого инфопоршня твой инфопоршень не будет выдаваться.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@imcrazyhoudini

 

Скрытый текст

 

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = %+dmb_1_karaul_start% {+dmb_actor_on_post}

 


Тут получается если чувак в рестрикторе и есть инфа dmb_1_karaul_start даётся инфа dmb_actor_on_post. Так должно быть?

Ссылка на комментарий

@Hind 
 

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {+dmb_actor_on_post} nil %+dmb_1_karaul_start%

Вот так.

 

1 минуту назад, Hind сказал:

dmb_1_karaul_start даётся инфа dmb_actor_on_post.

Да.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

Решил сделать выдачу инфы при старте игры. Чтобы при заходе в рестриктор давалась другая инфа
Прописал все инфы...

Скрытый текст

    <info_portion id="esc_kill_gunslinger">
        <task>storyline_eliminate_gunslinger</task>
        <article>about_enciclopedia</article>
        <article>sl_beginning</article>
        <action>dmb_test.davalka</action>
<action>dmb_test.on_point</action>
    </info_portion>



 

Скрытый текст


function on_point()
if has_alife_info("dmb_actor_on_post") then
news_manager.send_tip(db.actor, "%c[255,0,255,0]".."Автор сообщения:".."\\n".."%c[255,255,255,0] Текст сообщения.".."".."\n", nil, nil, 30000)
end
end

function davalka()
db.actor:give_info_portion("dmb_1_karaul_start")
end

Скрытый текст

 

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {+dmb_actor_on_post} nil %+dmb_1_karaul_start%

 


Захожу в игру - а ничё не происходит! Т.е при входе в рестриктор, нет сообщения (заглушка в качестве проверки)

Ссылка на комментарий

del

Изменено пользователем mole venomous
  • Сомнительно 1

Здесь могла быть ваша реклама.

Ссылка на комментарий
Скрытый текст

[logic]
active = sr_idle
[sr_idle]
on_actor_inside = %=krot.way_to_rostok_closed%

 

  • Спасибо 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

@mole venomous не работает, ловлю вылет:

 

Скрытый текст

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...a.l.k.e.r. Òåíü ×åðíîáûëÿ\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)


 

Скрытый текст

function on_post()
news_manager.send_tip(db.actor, "%c[255,0,255,0]".."Автор сообщения:".."\\n".."%c[255,255,255,0] Текст сообщения.".."".."\n", nil, nil, 30000)
end

 

Скрытый текст

 

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = %=dmb_test.on_post%

 


 

Ссылка на комментарий

Да что ж такое. 

Скрытый текст

61SypidX.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2023-10-2022%2011:55:23.jpg

Тип рестриктора? http://stalkerin.gameru.net/wiki/index.php?title=Resrtictor_type

Скрытый текст

[18909]

; cse_abstract properties
section_name = space_restrictor
name = finder_space_restrictor
position = 106.643165588379, 1.87906730175018, 449.530731201172
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 4702

; cse_alife_object properties
game_vertex_id = 223
level_vertex_id = 407733
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_idle
[sr_idle]
on_actor_inside = %=krot_ui_action.t%
END

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 5

; cse_alife_space_restrictor properties
restrictor_type = 3

 

Здесь могла быть ваша реклама.

Ссылка на комментарий

@mole venomous настроил так: Ссылка

UPD создал новый скрипт dmb_karual.script, туда запихнул ф-ию post

 

Скрытый текст

function post()
news_manager.send_tip(db.actor, "%c[255,0,255,0]".."Автор сообщения:".."\\n".."%c[255,255,255,0] Текст сообщения.".."".."\n", nil, nil, 30000)
end

 

Ещё вопрос...

Вот как может подскажете, с помощью инфопоршня запускать функцию. Хочу использовать "костыльный метод" для реста (запустить функцию с самого начала, где при выдаче инфы начинается действие). Нужно ли ставить её на апдейт?

Ссылка на комментарий

Как ускорить выброс? После сирены, 3 мин реального времени начинается, и около 5 мин длится.

Скрытый текст

-- Начало алгоритма выброса --

-- 1. Настало время выброса.
    if select_string=="bl1" then
        if ogsm_options.t_surge == 0 or ogsm_surge.bad_loc() then
            g_start_timer("bl1",0,2,0)
        else
        db.actor:give_info_portion("pre_blowout")
        if news_main_new then news_main_new.vubros_msg() end  -- новость о выбросе
            if sleep_manager.is_sleep_active() then sleep_manager.stopper() end
            start_timer("bl2",0,0,5)
               art_mgr.spawn_arts()
        end
    end

-- 2. Сирена, первые визуальные признаки выброса
    if select_string=="bl2" then
            db.actor:give_info_portion("blowout")
        if ogsm_surge.bad_loc() then
            g_start_timer("bl1",0,2,0)
        else
            db.Flag2 = 1
            save_variable("blt", 1)
            level.set_weather("stancia")
            wfx1 = "p_surge_day_"..tostring(level.get_time_hours())
            level.set_weather_fx(wfx1)
            level.add_pp_effector("vibros_p.ppe", 1974, false)    
            local snd_obj = xr_sound.get_safe_sound_object([[surge\dezodor]])
            snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
            g_start_timer("bl3",0,0,8)
        end
    end

-- 3. Проигрываем промежуточные эффекты
    if select_string=="bl3" then
        if ogsm_surge.bad_loc() then
            ogsm_surge.emerg_stop()
        if news_main_data then news_main_data.on_disconnect_vbs() end -- выдаем сообщение о дисконнекте
        db.actor:give_info_portion("no_net_signal") --нет связи
        else
            level.set_weather("stancia")
            level.set_weather_fx(wfx1)
            g_start_timer("bl4",0,0,5)
        end
    end

-- 4. Спустя 5 минут затишья начинаем выброс
    if select_string=="bl4" then
            local snd_obj = xr_sound.get_safe_sound_object([[surge\dezodor_2]])
        snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
        if ogsm_surge.bad_loc() then
            ogsm_surge.emerg_stop()
        else
            xr_sound.set_actor_sound("")
            level.set_weather("stancia")
            local snd_obj = xr_sound.get_safe_sound_object([[ambient\earthquake]])
            snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
            level.add_cam_effector("camera_effects\\earthquake.anm", 1974, true, "")
            wfx2 = "surge_day_"..tostring(level.get_time_hours())
            level.set_weather_fx(wfx2)
            level.add_pp_effector ("vibros.ppe", 1974, false)
            local snd_obj = xr_sound.get_safe_sound_object([[anomaly\blowout]])
            snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
            ogsm_surge.play_sounds()
            g_start_timer("bl5",0,0,4)
        end
    end

-- 5. Начинаем расколбас
    if select_string=="bl5" then
        if ogsm_surge.bad_loc() then
            ogsm_surge.emerg_stop()
        else
            save_variable("blt", 2)
            level.remove_cam_effector(1974)
            db.Dead2 = 1
            if db.FlagEsc == 0 then
                local snd_obj = xr_sound.get_safe_sound_object([[actor\pain_3]])
                snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
                level.add_cam_effector("camera_effects\\head_shot.anm", 1975, false, "")
                ogsm_surge.g_R_Vibros:Run()
            end
            g_start_timer("bl6",0,0,5)
        end
    end


-- 6. Выброс близится к концу
    if select_string=="bl6" then
        if ogsm_surge.bad_loc() then
            ogsm_surge.emerg_stop()
        else
            level.set_weather_fx(wfx1)
            g_start_timer("bl7",0,0,5)
        end
    end

-- 7. Завершаем выброс, устанавливаем время следующего
    if select_string=="bl7" then
        if ogsm_surge.bad_loc() then
            ogsm_surge.emerg_stop()
        else
            ogsm_surge.g_R_Vibros:Stop()
            if db.FlagEsc == 0 then
                level.add_cam_effector("camera_effects\\shell_shock.anm", 1974, false, "")
                local snd_obj = xr_sound.get_safe_sound_object([[actor\breath_1]])
                snd_obj:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
            end
            level.add_pp_effector ("teleport.ppe", 2009, false)
            local snd_obj2 = xr_sound.get_safe_sound_object([[surge\dezodor_3]])
            snd_obj2:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)
            if has_alife_info("freeplay") then
                art_mgr.spawn_arts()
                level.set_weather(ogsm_options.weather)
            else
                level.set_weather(wthr)
            end
            del_variable("blt")
            local period
            if ogsm_options.t_surge < 5 then period = 5 else period = ogsm_options.t_surge end
            g_start_timer("bl1", 0, period + math.random(-4,4), 0)
            ogsm_respawn.level_spawn()
            ogsm_anomaly.blow_flags()
            ogsm_anomaly.add_anom(level.name(), true)
            ogsm_anomaly.need_disable_anomaly = true
            if not has_alife_info("freeplay") then
            ogsm_surge.spawn_arts()
            end
            ogsm_respawn.level_spawn()
            if has_alife_info("freeplay") then
                fp_respawn.spawn_in_fp()
        end
        anomaly_holder.enumerate_anoms()
            db.Dead2 = 0
            db.Flag2 = 0
            if not has_alife_info("first_blowout") then db.actor:give_info_portion("first_blowout") end
        
            db.actor:disable_info_portion("blowout")
                db.actor:disable_info_portion("pre_blowout")
        if news_main_data then news_main_data.on_connect_vbs() end -- выдаем сообщение о коннекте
        if news_main_new then news_main_new.vubros_out_msg() end  -- сообщение о завершении выброса
        db.actor:disable_info_portion("no_net_signal") -- связь восстановлена
        end

 

Ссылка на комментарий
7 часов назад, Hind сказал:

Вот как может подскажете, с помощью инфопоршня запускать функцию. Хочу использовать "костыльный метод" для реста (запустить функцию с самого начала, где при выдаче инфы начинается действие).

Ничего не понял.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@imcrazyhoudiniвкратце история:

Надо чтобы при входе в рестриктор, выполнялась функция. Всё сделал, а при входе вылет. Ну, почитай выше тама всё.

Просто если решится проблема с вылетом рестриктора, то как бы и этот "костыльный" способ и не нужен.

Ссылка на комментарий

Это что ли?

Скрытый текст

<info_portion id="can_install_scope">   
    <action>krot.can_install_scope_message</action>
</info_portion>

 

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Ссылка на комментарий

@mole venomous пытался сделать так.. При входе ничё не происходит. Код всё тот же, что выше.

Отбой, заработало. С помощью неведомой силы.

  • Жуть! 1
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

AMK-Team.ru

×
×
  • Создать...