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

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


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

@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

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

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

Добрый день, такая проблема: после перехода на локацию меня ждет НПС который должен вызвать на диалог: 

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

[meet@1]
use = self
use_wpn = self
meet_state = hide
meet_state_wpn = hide

Но этого не происходит. Я после перехода - просто стою и не могу пошевелиться, или сделать, что либо. Как нужно правильно написать логику? Заранее благодарен 

полная логика НПС

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

[logic]
active = walker
combat_ignore = combat_ignore

[walker]
path_walk = agr_stalker_walk
path_look = agr_stalker_look
meet = meet@1

combat_ignore_cond = always
danger = danger_condition@agr_stalker
on_info = {+agr_stalker_talk2} walker@1

[walker@1]
path_walk = agr_stalker_vihod_walk
path_look = agr_stalker_vihod_look
def_state_moving1 = rush
def_state_moving2 = rush
def_state_moving3 = rush
meet = no_meet
combat_ignore_cond = {=fighting_dist_ge(200)}
danger = danger_condition@agr_stalker_walk
on_signal = agr_stalkerend | %+agr_stalker_doshel%

[combat_ignore]
combat_ignore_cond = {=fighting_dist_ge(200)}

[danger_condition@agr_stalker]
ignore_distance = 0

[danger_condition@agr_stalker_walk]
ignore_distance = 2

[meet@1]
use = self
use_wpn = self
meet_state = hide
meet_state_wpn = hide

 

Изменено пользователем q1w2e3r4t5
Ссылка на комментарий
27 минут назад, q1w2e3r4t5 сказал:

который должен вызвать на диалог

Вернись на пару страниц назад, в этой теме есть ответ. 

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

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

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

Добавил переход "Агропром - Янтарь" метка перехода есть, он не работает, что я сделал не так? 

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

[1856]

; cse_abstract properties
section_name = level_changer
name = exit_to_yantar_102
position = -129.02766418457, 14.466649055481, 199.999008178711
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 1838

; cse_alife_object properties
game_vertex_id = 522
distance = 0.30000001
level_vertex_id = 111251
object_flags = 0xffffff3e
custom_data = <<END
[pt_move_if_reject]
path = arg_way_if_reject_to_yan
END
story_id = 9102

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

; cse_alife_space_restrictor properties
restrictor_type = 3

; cse_alife_level_changer properties
dest_game_vertex_id = 1487
dest_level_vertex_id = 15229
dest_position = -68.1646423339844, 1.66910517215729, -357.075866699219
dest_direction = 0.219999998807907, -0.349999994039536, 0.620000004768372
dest_level_name = L08_yantar
dest_graph_point = start_actor_09
 

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

                obj = sim:story_object(9102)
        if obj then
            level.map_add_object_spot(obj.id, "level_changer", "to_yantar")
        end

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

  9102          = "exit_to_yantar_102"

 

Изменено пользователем андрей дронав
Ссылка на комментарий
2 часа назад, андрей дронав сказал:

start_actor_09

Этот граф есть?

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

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

@imcrazyhoudini его нужно в game.grap заносить? 

44 минуты назад, imcrazyhoudini сказал:

start_actor_09

Это переходы от: XiANi

Пишет что только в спавне адаптация нужна... 

Вот так вот... 

А возможно заменить start_actor_09 на другое 

Изменено пользователем андрей дронав
Ссылка на комментарий
1 час назад, андрей дронав сказал:

start_actor_09 на другое

Можно.

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

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

Напомните, пожалуйста, почему при съёмке локации сверху в высоком качестве (четыре части) каждый скрин имеет разное освещение?

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

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

@imcrazyhoudiniА на какой погоде фотаешь?

Подскажите в чём причина вылета 

[error]Expression    : false
[error]Function      : CXml::Init
[error]File          : E:\stalker\sources\trunk\xrXMLParser\xrXMLParser.cpp
[error]Line          : 87
[error]Description   : XML file:gameplay\game_tasks.xml value: errDescr:Error reading end tag.

 

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

 

<?xml version='1.0' encoding="windows-1251"?>
<game_tasks_data>
#include "gameplay\tasks_escape.xml"
#include "gameplay\tasks_garbage.xml"
#include "gameplay\tasks_agroprom.xml"
#include "gameplay\tasks_bar.xml"
#include "gameplay\tasks_military.xml"
#include "gameplay\tasks_darkvalley.xml"
#include "gameplay\tasks_deadcity.xml"
#include "gameplay\tasks_radar.xml"
#include "gameplay\tasks_aes.xml"
#include "gameplay\tasks_yantar.xml"
#include "gameplay\tasks_sarcofag.xml"
#include "gameplay\game_tasks_by_vendor.xml"

    <game_task id="user_task">
        <title>My map task</title>
        <objective>
            <text>user defined map location</text>
            <icon x="350" y="50" width="50" height="50">ui\ui_icons_task</icon>
        </objective>
    </game_task>
    
    <!----------DELME:for andy-------------------->
    
    <game_task id="pl_task_1" prio="3">
        <title>task_1</title>
        <objective>
            <text>objective_1</text>
            <icon>ui_iconsTotal_find_item</icon>
            <infoportion_complete>yan_labx16_switcher_3_off</infoportion_complete>
        </objective>
        <objective>
            <text>objective_1</text>
            <infoportion_complete>yan_labx16_switcher_1_off</infoportion_complete>
        </objective>
        <objective>
            <text>objective_1</text>
            <infoportion_complete>yan_labx16_switcher_2_off</infoportion_complete>
        </objective>
    </game_task>
    <game_task id="pl_task_2" prio="2">
        <title>task_2</title>
        <objective>
            <text>objective_1</text>
            <icon>ui_iconsTotal_find_item</icon>
            <infoportion_complete>yan_labx16_switcher_2_off</infoportion_complete>
        </objective>
        <objective>
            <text>objective_1</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>yan_labx16switcher_lamp2</object_story_id>
            <infoportion_complete>yan_labx16_switcher_2_off</infoportion_complete>
        </objective>
    </game_task>
    <game_task id="pl_task_3" prio="1">
        <title>task_3</title>
        <objective>
            <text>objective_1</text>
            <icon>ui_iconsTotal_find_item</icon>
            <infoportion_complete>yan_labx16_switcher_3_off</infoportion_complete>
        </objective>
        <objective>
            <text>objective_1</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>yan_labx16switcher_lamp3</object_story_id>
            <infoportion_complete>yan_labx16_switcher_3_off</infoportion_complete>
        </objective>
    </game_task>

<!-- temporary for andy, do not delete !!! -->
    <game_task id="task_1" prio="1">
        <title>task_1_title</title>
        <objective>
            <text>task_1_0</text>
            <icon x="0" y="0" width="50" height="50">ui\ui_icons_task</icon>
        </objective>
        <objective>
            <text>task_1_1</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>Escape_Trader</object_story_id>
        </objective>
        <objective>
            <text>task_1_2</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>Escape_Tutorial_Artefact</object_story_id>
        </objective>
    </game_task>

    <game_task id="task_2" prio="2">
        <title>task_2_title</title>
        <objective>
            <text>task_2_0</text>
            <icon x="0" y="0" width="50" height="50">ui\ui_icons_task</icon>
        </objective>
        <objective>
            <text>task_2_1</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>Escape_anomaly_field</object_story_id>
        </objective>
        <objective>
            <text>task_2_2</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>Escape_blockpost_case</object_story_id>
        </objective>
    </game_task>

    <game_task id="task_3" prio="3">
        <title>task_3_title</title>
        <objective>
            <text>task_3_0</text>
            <icon x="0" y="0" width="50" height="50">ui\ui_icons_task</icon>
        </objective>
        <objective>
            <text>task_3_1</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>Escape_bridge_stalkers</object_story_id>
        </objective>
        <objective>
            <text>task_3_2</text>
            <map_location_type>green_location</map_location_type>
            <object_story_id>Escape_dinamite</object_story_id>
        </objective>
    </game_task>

</game_tasks_data>

 


 

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

А на какой погоде фотаешь?

map, но дело не в ней.

 

 

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

Подскажите в чём причина вылета 

Ошибка к тэгами, скорее всего не в этом файле, а в том, который ты редактировал.

  • Спасибо 1

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

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

Подскажите настройку следующей логики
 

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

 

[logic]
active = ph_idle


[ph_idle]
on_use = spawn

[spawn]

чтобы тут чё нить спавнилось

 

в сдк это inventory box с логикой, написанной выше.

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

@Hind для inventory box не поддерживается ph_idle, если я не ошибаюсь.

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

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

Всем привет, понимаю, что тема старая, но не могу разобраться в ней. Кто подскажет как исправить респавн бандитов на Кордоне, в ДТ, на Свалке при каждом перезаходе на локацию? Совет Kolmogor с правкой se_respawn.script не помогает. Хочется "зачистить" локацию, и забыть про НПС на ней на время респавна, но игра игнорит границы респавна в 48-52 часа, и респавнит НПС раз за разом

 

Я вообще животных люблю. Кто-то там кошек любит, или собак, а я всех люблю без разбора. Людей только не люблю. Надоели, блин. Носятся и бегают, орут друг на друга, суетятся, злые все какие-то!

 

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

@DarkFace там в респавнерах вроде есть строка про экстренный респавн, что-то такое.

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

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

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

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

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

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

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

Войти

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

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

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...