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

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


Halford

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

Вопрос по инвентарю - как определить, что у ГГ отрыт худ инвентаря в режиме перекладывания или продажи (не в режиме просмотра инвентаря)?

 

Из того, что нашел сообразил такое:

 

local inventory = level.main_input_receiver()
if inventory and inventory:WindowName() == "бла-бла-бла" and inventory:IsShown() then
    --- режим открытого инвентаря
end

 

Если это правильно - то нужны имена инвентаря в разных режимах...

 

P.S. Код поправил.

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

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


Ссылка на сообщение

lekzd, суть вопроса не в моменте открытия худа, а в проверке при ондропе на то, не открыт ли инвентарь для перекладывания (это чтобы не делать определённые действия в ондропах разных модов в Солянке).

Или есть железный способ узнать, что объект выброшен на землю, а не переложен куда-то в ящик ? Мои мысли по этому поводу есть здесь. Если те мысли не верны, то конечно придется инфопорциями обозначать открытость/закрытость худа.

 

=======

db.actor:has_info("ui_inventory") - это инвентарь открытый именно на просмотр (не на перекладывание или продажу) ?

 

Спасибо огромное! :)

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

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


Ссылка на сообщение

Чтобы не дублировать сообщение, приведу лишь ссылку. Там два вопроса - по использованию .parent_id и alife():object("имя объекта"). Можете прокомментировать ?

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

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


Ссылка на сообщение

IQDDD,

local map=alife():level_name(game_graph():vertex(sobj.m_game_vertex_id):level_id())

и желательно сначала проводить проверку

if game_graph():valid_vertex_id(sobj.m_game_vertex_id) then

P.S. Хотя это больше в "Скриптование и спаун".

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

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


Ссылка на сообщение

malandrinus, перешли на использование такого:

function game_milliseconds()
    if StartTime == nil then
        getStartTime()
        if StartTime == nil then
            return 0
        end
    end
    local gtime = game.get_game_time()
    local seconds = gtime:diffSec(StartTime)
    local y,m,d,h,min,sec,ms = gtime:get()
    return (seconds * 1000 + ms)
end

function game_seconds()
    if StartTime == nil then
        getStartTime()
        if StartTime == nil then
            return 0
        end
    end
    return game.get_game_time():diffSec(StartTime)
end

function game_minutes()
    return math_floor(game_seconds() / 60)
end

function game_hours()
    return math_floor(game_seconds() / 3600)
end

function game_days()
    return math_floor(game_seconds() / 86400)
end

 

Косяки могут остаться только если где-то этот переход не сделали или время сохраняется ещё по-старому. Например в xr_gulag.script. Всё руки никак не дойдут переделать сохранение/чтение там...

 

malandrinus, сообщение Kolmogor-а (в его тему отправил кто-то из забредших в тему Солянки) ну и тот факт, что в CTime используется 64-разрядный счетчик.

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

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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