Перейти к содержанию

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

 
 
41 минуту назад, WolfHeart сказал:

Все что угодно. Лог вылета предоставь, тогда можно будет о чем то думать.

Если бы был лог - сразу бы предоставил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 минуты назад, Gerbys сказал:

Если бы был лог - сразу бы предоставил.

47 минут назад, Gerbys сказал:

Декомпилировал локацию из стандартного ЗП, при попытке открыть в Level Editor - мгновенный вылет

Ты пытаешся открыть локу в Level Editor, а это значит, что LE у тебя запущен, а раз так, то лог обязан быть.

 

 


EaRLNb6.gif
AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 минуты назад, WolfHeart сказал:

Ты пытаешся открыть локу в Level Editor, а это значит, что LE у тебя запущен, а раз так, то лог обязан быть.

 

 

Сразу всё закрывается. Если открыть лог в Editor,е последняя строка, перед которой происходит вылет: "Loading objects..."

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Значит ты что то не так декомпельнул.

Ты уверен, что конвертер отработал без ошибки? Что было написано в конце коммандной строки?


EaRLNb6.gif
AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
6 минут назад, WolfHeart сказал:

Значит ты что то не так декомпельнул.

Ты уверен, что конвертер отработал без ошибки? Что было написано в конце коммандной строки?

Спойлер

D:\x_ray_sdk\editors\converter>converter -level collector22 -out collector22 -mode le -with_lods
log started (console and converter.log)
level name: collector22
loading level.ltx
loading level.geom
loading level
...visuals
...shaders/textures
...sectors
...portals
...lights
...glows
loading level.cform
loading level.ai
loading level.game
loading level.spawn
bad section reference '' at prefetch_mp.ltx:129
ignoring trailing garbage at m_dog.ltx:402
ignoring trailing garbage at m_pseudodog.ltx:323
ignoring trailing garbage at m_poltergeist.ltx:352
ignoring trailing garbage at w_sig550_up.ltx:183
ignoring trailing garbage at w_vintorez_up.ltx:100
loading level.wallmarks
loading level.env_mod
loading level.fog_vol
loading build.lights
loading gamemtl.xr
scene name: collector22
substituting shaders/textures
re-indexing shaders/textures
building sector.part
selected sector #0 (of 1) as default
building portal.part
building scene_object.part
calculating subdivisions
calculating external meshes
collecting subdivisions
collecting external meshes
compacting 908122 verts, 819282 faces
got 454698 points, 167258 normals, 107025 uvs in 0.573s
cleaning geometry
removed 0 duplicate faces in 0.102s
removed 6299 back faces in 0.235s
cleaning cform
mapping 422924 CFORM verts to 454698 visual
got 422894 matches
matching edges/faces
propagating game materials
restoring fake colliders
separating models (by merged edge-linked groups)
building edge-connected submeshes
immediate fake/MU joins: 0
submeshes (MU): 0
submeshes (fake): 5
submeshes (regular): 12770
reordering faces
accounting submeshes
creating collision models (MU)
creating collision models (fake)
merging fake/MU submeshes
non-fake (residue) submeshes: 0
cross-merging fake submeshes
assigning contact groups (fake)
total groups (fake): 5
creating collision models (regular)
merging submeshes (regular)
contacts (with redundancy): 42712
assigning contact groups (regular)
total groups (regular): 717
building regular models
merging 6 orphan(s)
nearest: 16 (0.00)
nearest: 5 (0.00)
nearest: 161 (0.00)
nearest: 5 (0.00)
nearest: 278 (0.00)
nearest: 306 (0.00)
exporting visuals
materials\fake -> prop\prop_fake_kollision, def_shaders\def_vertex, def_shaders\def_kolizion
saving error list
building ai_map.part
found 122 (of 5414) no-return nodes
building glow.part
building light.part
building wallmark.part
building spawn.part (entities)
saving scene
total time: 21.381s

D:\x_ray_sdk\editors\converter>pause
Для продолжения нажмите любую клавишу . . .

Попробовал декомпельнуть другой левел (не из оригинала) - то же самое.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Gerbys для вопросов по СДК есть специальная тема, пишите туда, пожалуйста: 

 

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Есть ли мод на потребность сна у ГГ? Желательно на версию 1.6.02

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Del


Дополнено 2 минуты спустя

Подскажите пожалуйста, как Запретить выбросить придмет из инвентаря

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Kalambur в секции предмета прописать

quest_item = true

 

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Можно ли посмотреть количество заспавненых в игре объектов через скрипты? Вроде такого только без сохранения

* Saving spawns...
* Saving objects...
* 23631 objects are successfully saved

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Первое, что приходит в голову, так это перебрать все объекты:

function get_spawn_objects_count()
    local count = 0
    for i = 0, 65535 do
        if alife():object(i) ~= nil then
            count = count + 1
        end
    end
    return count
end

Потести.

 


c01570bf2e07524.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Overfirst сейчас так и делаю, но это удар по производительности. Хотелось бы знать точное число, чтобы не молотить скрипты в пустоту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Можно перебирать таблицу db.storage, но она хранит только онлайновые объекты и только те, у которых есть биндер.


c01570bf2e07524.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
15 минут назад, Overfirst сказал:

Можно перебирать таблицу db.storage, но она хранит только онлайновые объекты

Нет, нужны все объекты, даже за пределами уровня. А вообще у всех них есть story_id с space_restrictor в названии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Chiliaz Такие объекты попадают в таблицу db.zone_by_name

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 23.09.2020 в 09:03, Winzor сказал:

Есть ли мод на потребность сна у ГГ? Желательно на версию 1.6.02

Я делал так. Взял функции из СГМ.

 

Спойлер


_g.scripts

-- 'Прибавить к pstor-счетчику цифру.
function Inc_Counter(counter_name,add_value)
    if Read_Variable(counter_name)==nil then Write_Variable(counter_name,0) end
    if add_value==nil then add_value=1 end
    if Read_Variable(counter_name)~=nil then
        local counter=Read_Variable(counter_name)
        Write_Variable(counter_name,counter+add_value)
    end
end

-- 'Отнять от pstor-счетчика цифру.
function Dec_Counter(counter_name,add_value)
    if Read_Variable(counter_name)==nil then Write_Variable(counter_name,0) end
    if add_value==nil then add_value=1 end
    if Read_Variable(counter_name)~=nil then
        local counter=Read_Variable(counter_name)
        Write_Variable(counter_name,counter-add_value)
    end
end

-- 'Запись pstor переменной.
function Write_Variable(params_name,value)
    if value==nil then
        Clear_Variable(params_name)
    else
        local opt=Reload_Params(params_name)
        Pstor_Store(db.actor,opt,value)
    end
end

-- 'Чтение pstor переменной.
function Read_Variable(params_name)
    local opt=Reload_Params(params_name)
    return Pstor_Retrieve(db.actor,opt)
end

-- 'Удаление pstor переменной.
function Clear_Variable(params_name)
    local opt=Reload_Params(params_name)
    if db.storage[db.actor:id()].pstor[opt] then
        db.storage[db.actor:id()].pstor[opt]=nil
    end
end

function Pstor_Store(obj,varname,val)
    if obj==nil then return nil end
    local sub_id=obj:id()
    if db.storage[sub_id].pstor==nil then
        db.storage[sub_id].pstor={}
    end
    db.storage[sub_id].pstor[varname]=val
end
function Pstor_Retrieve(obj,varname)
    if obj==nil then return nil end
    local sub_id=obj:id()
    if db.storage[sub_id].pstor~=nil then
        local val=db.storage[sub_id].pstor[varname]
        if val~=nil then
            return val
        end
    end
    return nil
end
function Reload_Params(params)
    return params
end

2. bind_stalker.scripts

Вызов всего процесса.

    self:check_detective_achievement()
    self:check_mutant_hunter_achievement()

    self:actor_universal_binder()

function actor_binder:actor_universal_binder()
    if self.actor_universal_binder_time == nil then
        self.actor_universal_binder_time = game.get_game_time()
    end
    if game.get_game_time():diffSec(self.actor_universal_binder_time) > 10 then
        actor_sleep_control()
        self.actor_universal_binder_time = game.get_game_time()
    end
end

function actor_sleep_control()
    if Read_Variable("actor_active_time") == nil then
        Write_Variable("actor_active_time",0)
    else
        Inc_Counter("actor_active_time")
    end
    actor_sleep_control2()
end

function actor_sleep_control2()
    if Read_Variable("actor_active_time") == nil then
        Write_Variable("actor_active_time",0)
    end
    if Read_Variable("actor_active_time") > 20*60*6 and Read_Variable("actor_active_time") < 21*60*6 then
        local rnd_ppe11=math.random(1,12)
        local rnd_ppe12=math.random(1,12)
        if rnd_ppe11==1 then
            level.add_pp_effector("shock_hit.ppe",91350,false)
        end
        if rnd_ppe12==1 then
            level.add_pp_effector("surge_shock.ppe",331510,false)
        end
        if db.actor.power > 0.8 then db.actor.power = 0.8 - db.actor.power end
    end
    if Read_Variable("actor_active_time") > 21*60*6 and Read_Variable("actor_active_time") < 22*60*6 then
        local rnd_ppe21=math.random(1,10)
        local rnd_ppe22=math.random(1,10)
        if rnd_ppe21==1 then
            level.add_pp_effector("actor_hit.ppe",91350,false)
        end
        if rnd_ppe22==1 then
            level.add_pp_effector("surge_shock.ppe",331510,false)
        end
        if db.actor.power > 0.6 then db.actor.power = 0.6 - db.actor.power end
    end
    if Read_Variable("actor_active_time") > 22*60*6 and Read_Variable("actor_active_time") < 23*60*6 then
        local rnd_ppe31=math.random(1,8)
        local rnd_ppe32=math.random(1,8)
        local rnd_ppe33=math.random(1,8)
        if rnd_ppe31==1 then
            level.add_pp_effector("actor_hit.ppe",510,false)
        end
        if rnd_ppe32==1 then
            level.add_pp_effector("shock_hit.ppe",91350,false)
        end
        if rnd_ppe33==1 then
            level.add_pp_effector("deimos1.ppe",11315,false)
        end
        if db.actor.power > 0.4 then db.actor.power = 0.4 - db.actor.power end
    end
    if Read_Variable("actor_active_time") > 23*60*6 and Read_Variable("actor_active_time") < 24*60*6 then
        local rnd_ppe41=math.random(1,6)
        local rnd_ppe42=math.random(1,6)
        local rnd_ppe43=math.random(1,6)
        if rnd_ppe41==1 then
            level.add_pp_effector("shock_hit.ppe",91350,false)
        end
        if rnd_ppe42==1 then
            level.add_pp_effector("actor_hit.ppe",510,false)
        end
        if rnd_ppe43==1 then
            level.add_pp_effector("deimos1.ppe",11315,false)
        end
        if db.actor.power > 0.2 then db.actor.power = 0.2 - db.actor.power end
    end
    if Read_Variable("actor_active_time") > 24*60*6 then
        xr_effects.disable_ui(db.actor, nil)
        level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "bind_stalker.dream_callback")
        level.add_pp_effector("sleep_fade.ppe", 11, false)
        db.actor:give_info_portion("actor_is_sleeping")
        _G.mus_vol = get_console():get_float("snd_volume_music")
        _G.amb_vol = get_console():get_float("snd_volume_eff")
        get_console():execute("snd_volume_music 0")
        get_console():execute("snd_volume_eff 0")
        surge_manager.resurrect_skip_message()
        Write_Variable("actor_active_time",19*60*6)
    end
end

function dream_callback()
    level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "bind_stalker.dream_callback2")
    local hours = math.random(6,10)
    level.change_game_time(0,hours,0)
    level_weathers.get_weather_manager():forced_weather_change()
    surge_manager.get_surge_manager().time_forwarded = true
    if (surge_manager.is_started() and level_weathers.get_weather_manager().weather_fx) then
        level.stop_weather_fx()
--        level_weathers.get_weather_manager():select_weather(true)
        level_weathers.get_weather_manager():forced_weather_change()
    end
    db.actor.power = 1
    printf("dream_callback: time forwarded on [%d]", hours)
    Write_Variable("actor_active_time",0)
end

function dream_callback2()
    xr_effects.enable_ui(db.actor, nil)
    get_console():execute("snd_volume_music "..tostring(_G.mus_vol))
    get_console():execute("snd_volume_eff "..tostring(_G.amb_vol))
    _G.amb_vol = 0
    _G.mus_vol = 0
    db.actor.power = 1
    db.actor:give_info_portion("tutorial_sleep")
    disable_info("actor_is_sleeping")
    disable_info("sleep_active")
end

3. ui_sleep_dialog.scripts

function dream_callback()
    level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "ui_sleep_dialog.dream_callback2")
    local hours = sleep_control.time_track:GetIValue()
    level.change_game_time(0,hours,0)
    level_weathers.get_weather_manager():forced_weather_change()
    surge_manager.get_surge_manager().time_forwarded = true
    if (surge_manager.is_started() and level_weathers.get_weather_manager().weather_fx) then
        level.stop_weather_fx()
--        level_weathers.get_weather_manager():select_weather(true)
        level_weathers.get_weather_manager():forced_weather_change()
    end
    db.actor.power = 1
    printf("dream_callback: time forwarded on [%d]", hours)
    if Read_Variable("actor_active_time") == nil then
        Write_Variable("actor_active_time",0)
    end
    if hours >= 6 then
        Write_Variable("actor_active_time",0)
    else
        if Read_Variable("actor_active_time") > hours*60*6 then
            Dec_Counter("actor_active_time",hours*60*6)
        else
            Write_Variable("actor_active_time",0)
        end
    end
end


4. xr_effects.scripts


function set_game_time(actor, npc, p)
    local real_hours = level.get_time_hours()
    local real_minutes = level.get_time_minutes()
    local hours = tonumber(p[1])
    local minutes = tonumber(p[2])
    if p[2] == nil then
        minutes = 0
    end
    local hours_to_change = hours - real_hours
    if hours_to_change <= 0 then
        hours_to_change = hours_to_change + 24
    end
    local minutes_to_change = minutes - real_minutes
    if minutes_to_change <= 0 then
        minutes_to_change = minutes_to_change + 60
        hours_to_change = hours_to_change - 1
    elseif hours == real_hours then
        hours_to_change = hours_to_change - 24
    end
    level.change_game_time(0,hours_to_change,minutes_to_change)
    level_weathers.get_weather_manager():forced_weather_change()
    surge_manager.get_surge_manager().time_forwarded = true
    printf("set_game_time: time changed to [%d][%d]", hours_to_change, minutes_to_change)
    if Read_Variable("actor_active_time") == nil then
        Write_Variable("actor_active_time",0)
    end
    Inc_Counter("actor_active_time",hours_to_change*60*6+minutes_to_change*6)
end

function forward_game_time(actor, npc, p)
    if not p then
        abort("Insufficient or invalid parameters in function 'forward_game_time'!")
    end

    local hours = tonumber(p[1])
    local minutes = tonumber(p[2])

    if p[2] == nil then
        minutes = 0
    end
    level.change_game_time(0,hours,minutes)
    level_weathers.get_weather_manager():forced_weather_change()
    surge_manager.get_surge_manager().time_forwarded = true
    printf("forward_game_time: time forwarded on [%d][%d]", hours, minutes)
    if Read_Variable("actor_active_time") == nil then
        Write_Variable("actor_active_time",0)
    end
    Inc_Counter("actor_active_time",hours*60*6+minutes*6)
end

function sleep(actor, npc)
    local sleep_zones = {
        "zat_a2_sr_sleep",
        "jup_a6_sr_sleep",
        "pri_a16_sr_sleep",
        "actor_surge_hide_2"
    }
    for k,v in pairs (sleep_zones) do
        if utils.npc_in_zone(db.actor, db.zone_by_name[v]) then
            if Read_Variable("actor_active_time") == nil then
                Write_Variable("actor_active_time",0)
            end
            if Read_Variable("actor_active_time") > 12*60*6 then
                ui_sleep_dialog.sleep()
                give_info("sleep_active")
            else
                game.start_tutorial("actor_no_sleep_use")
            end
        end
    end
end
 

 

Изменено пользователем Сергей Шубин
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как прочитать иконку предмета, показать её в размерах не превыщающих 83х47? (Хочу сделать так, чтобы при  появлении сообщения вместо иконки ui_inGame2_Predmet_otdan была иконка предмета, которая уменьшается\увеличивается до размеров 83х47. В ОП 2.1 видел подобное, поискал в файлах, я не нашёл функции get_item_icon, наверное, функция в движке.)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Winzor Да функция get_item_icon явно движковая, но никто не мешает создать иконки предметов нужных размеров и отображать их скриптово.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, denis2000 сказал:

Winzor Да функция get_item_icon явно движковая, но никто не мешает создать иконки предметов нужных размеров и отображать их скриптово.

Но это же так долго, и так много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Парни, как в логику рестриктора вписать проверку на N предмет. У меня записка лежит, надо чтобы после ее подбора пришло сообщение секунд через 30 на ПДА. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

detoxe =actor_has_item(секция_айтема)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Добрый вечер! Существует ли функция на подсчет найденных игроком артефактов (таблица с проверкой перечня артефактов (и если есть способ туда затащить в исключения квестовые предметы)), то есть проверка на то, что каждый артефакт побывал в инвентаре у гг хотя бы раз?
П.С. идеально бы привести какой-либо пример, пошло бы полегче.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, Winzor сказал:

Но это же так долго, и так много.

Согласен, лучше править движек.


Дополнено 4 минуты спустя
3 часа назад, Hoperise сказал:

Существует ли функция на подсчет найденных игроком артефактов

xr_statistic.inc_founded_artefacts_counter(art_id)

3 часа назад, Hoperise сказал:

таблица с проверкой перечня артефактов

xr_statistic.taken_artefacts


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Я создал кнопку на GUI, но если на неё не нажимать, то ничего не происходит. Но я добавил кнопку относительно self.oBackground (это окно). GUI вызывается при нажатии кнопки в настройках игры. Код под спойлером.
 

Спойлер

class "CSelectHudWindow" (CUIScriptWnd)
function CSelectHudWindow:__init() super()
    self:InitControls()
    self:InitCallBacks()
end
function CSelectHudWindow:__finalize() end

function CSelectHudWindow:InitControls()
    
    local oCXml = CScriptXmlInit()
    oCXml:ParseFile("ui_mm_select_hud_wnd.xml")
        self.oBackground = oCXml:InitStatic("background",self)
            
        self.oBtnQuit     = oCXml:Init3tButton("background:btn_quit",self.oBackground)
        self:Register    (self.oBtnQuit, "OnBtnQuit")
            
        self.oHudBtn1      = oCXml:Init3tButton("background:button_1_default",self.oBackground)
        self:Register    (self.oHudBtn1, "OnBtn1Clicked")
            
        self.oPicture     = oCXml:InitStatic("background:picture",self.oBackground)

    self.bWide = utils.is_widescreen()
end

function CSelectHudWindow:InitCallBacks()
    self:AddCallback("OnBtnQuit",         ui_events.BUTTON_CLICKED,     self.OnQuit,    self)
    self:AddCallback("OnBtn1Clicked",     ui_events.BUTTON_CLICKED,     self.OnBtn1Clicked,    self)
end

function CSelectHudWindow:OnBtn1Clicked()
    
    local oSelectedItem = self.oListItem:GetSelectedItem()
    if not oSelectedItem then return end
    
    self.oPicture:Show(true)
    self.oPicture:InitTexture("ui_mm_hud_default")
        
    if self.bWide then
        self.oPicture:SetWndPos(vector2():set(264,159))
    else
        self.oPicture:SetWndPos(vector2():set(265,159))
    end
end

function CSelectHudWindow:OnKeyboard(dik, keyboard_action)
    CUIScriptWnd.OnKeyboard(self, dik, keyboard_action)
    if keyboard_action==ui_events.WINDOW_KEY_PRESSED then
        if dik==DIK_keys.DIK_ESCAPE then
            self:OnQuit()
        end
    end
    return true
end

function CSelectHudWindow:OnQuit()
    self.oPicture:Show(false)
    self:HideDialog()
end

Также и ui файл:
 

Спойлер

    <background x="102" y="0" width="819" height="768" stretch="1">
        <texture>ui_inGame2_Mp_screen_main_window</texture>
        
        <btn_quit x="472" y="17" width="86" height="25">
            <text align="c" font="letterica16">ui_mm_back</text>
            <texture>ui_inGame2_button</texture>
            <text_color>
                <e r="210" g="210" b="210"/>
            </text_color>
        </btn_quit>
        
        <button_1_default x="156" y="430" width="101" height="27">
            <text align="c" font="letterica16">ui_mm_default</text>
            <texture>ui_inGame2_button</texture>
            <text_color>
                <e r="210" g="210" b="210"/>
            </text_color>
        </button_1_default>
        
        <picture x="422" y="200" width="256" height="128" stretch="1">
            <texture width="256" height="128">ui\ui_noise</texture>
        </picture>
        
    </background>

Я из спойлера убрал <w>, </w>

Как решить эту проблему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Написал такую логику. При входе в рестриктор должно приходить сообщение на ПДА.
Ловлю вылет:

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : d:\games\farthest edge\gamedata\scripts\_g.script:489: bad argument #2 to 'format' (string expected, got nil)

[logic]
active = sr_idle
 
[sr_idle]
on_actor_inside = sr_tip
 
[sr_tip] 
name = story_talk_tihiy_1
type = tips
cond = {+pok_sotka_dialog_done} 
sender = default
on_actor_inside = nil
timeout = 100000
showtime = 10000

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   3 пользователя онлайн