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

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

2 часа назад, AndrewMor сказал(а):

Если никаких других скриптов не затрагивалось, как игра видит новый биндер?

Конфиг ствола ты прописываешь в weapons.ltx: #include "твой_ствол.ltx".

В самом этом когфиге у тебя должна быть строка со сылкой на биндер, например script_binding  = название_файла_биндера.init

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


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

 

@mole venomous ,

@Marafon6540

Аа, сообразил...  Биндер аномалий таким же образом будет работать?

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

Сталкер - наше всё!

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


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

@AndreySol Ситуация такая, делаю анимационные предметы для тч. Объясняю ситуацию:допустим активен у нас 1,2,3 слот и  при использовании аптечки удаляется бинокль в 4 слоте,спавнится аптечка на базе бинокля  и попадает в 4 слот, в котором мы заранее удалили бинокль, далее я делаю активным 4 слот, запускается таймер на удаление анимационного предмета и спавн бинокля обратно в слот, так вот, хочу сделать чтобы после выполнения всего ставился обратно тот слот который был до использования аптечки?

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


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

@I am Dead 

Может не стоит такой огород городить?

Мне не интересно было такое, но вроде как имеется возможность отыграть нужную анимацию. Значит проще будет, по факту использования аптечки, задисаблить ввод(чтоб игрок не дергал ГГ), спрятать предмет текущего активного слота, отыграть анимацию и весрнуть все в исходное состояние. Но это лишь мое мнение, может кто более адекватное предложит...

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


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

@I am Dead уточни, для ТЧ или для OGSR-Engine?

Во втором случае, нет никакой нужды обращаться к костылям. Можно использовать движковый script_vars_storage.

Мод, где не бывает одинаковых путей - Судьба Зоны.

...что хотел сказать, большинству мододелов. Послушайте.

Любите орехи? А вот первая ступенька. Пути. Там еще вторая, третья, их много... я давно всем показывал но никто не видит. Все любят, шорох орехов.

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


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

@Zander_driver OGSR Engine, можно поподробней про этот самый script_vars_storage?

@AndreySol Хмм, тогда уже другой вопрос, как отыграть анимацию не прибегая к такой схеме как у меня?

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


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

Как можно проверить что актор находиться в какой либо группировке?

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


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

@Colder 

function check_community(community)
    if db.actor then
        return db.actor:character_community() == community
    end
    return false
end    

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

if check_community("actor") then 
    action 1
else
    action 2
end    

 

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, I am Dead сказал(а):

можно поподробней про этот самый script_vars_storage?

Конечно можно

Это ведь, ты ТТ2 на OGSR переносил? :) Удивительно для меня, что этого не видел. Оно и год назад было там же. Ссылка оттуда.

Мод, где не бывает одинаковых путей - Судьба Зоны.

...что хотел сказать, большинству мододелов. Послушайте.

Любите орехи? А вот первая ступенька. Пути. Там еще вторая, третья, их много... я давно всем показывал но никто не видит. Все любят, шорох орехов.

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


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

@Zander_driver Да, это я переносил тайные тропы, как раз таки войдет в обновление использование анимационных предметов. Возврат слота сделал немного иначе:

 

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

Пришлось сию конструкцию лепить через таймер, если без него то либо восстанавливается слот через который использовали предмет, либо устанавливается слот который был до использования предмета с невозможностью переключится на другой.

 

Не знаю, правильно или нет, но функция работает и лагов,багов не вызывает.

 

 

 

 -- Таймер восстановления слота
local slot_restore_timer = nil

 

             -- Запоминаем активный слот перед использованием предмета
  ogse.save_var( "store_slot", db.actor:active_slot() )
          db.actor:give_info_portion("slot_restore")

 

              -- Восстанавливаем активный слот после использования предмета
  local loaded_slot = ogse.load_var_safe( "store_slot" )
  local check_slot  = db.actor:active_slot()
  if loaded_slot and check_slot ~= loaded_slot and db.actor:has_info("slot_restore") then
    db.actor:activate_slot( loaded_slot )
  end

 

              -- Запускаем таймер на удаление поршня 

        if slot_restore_timer ~= nil then
            slot_restore_timer:stop()
        end
        slot_restore_timer = slot_timer()
        slot_restore_timer:start()

        end

 

 

function slot_restore_func()
    slot_restore_timer = nil
    db.actor:disable_info_portion("slot_restore")


end

 

-- Конструктор таймера удаления поршня
class "slot_timer"(ogse_qt.quick_timer)
function slot_timer:__init() super()
    self.limit = time_global()+3000
end
function slot_timer:condition()
    return time_global() >= self.limit
end
function slot_timer:action()
slot_restore_func()
end

 

Изменено пользователем I am Dead

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


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

--// (space-РАСТЯЖКА\X\Y\КОЛЛ-ячеек)
local btns_params = {
    inv = {space = 90, st_x = 30, st_y = 60, len_x = 4},
    slt = {space = 90, st_x = 540, st_y = 80, len_x = 4}
}

function ui_assembly:NewBtnCreate(type,i,sect,kol,pos)
    local tbl
    if type == "inv" then tbl = self.tbl_buttons
    else tbl = self.tbl_buttons_s end
    local b
    local tb = btns_params[type]
    local sizes = give_icon_params(sect)
    local pl_x = tb.st_x+(tb.space*math.mod(pos-1,tb.len_x))
    local pl_y = tb.st_y+(tb.space*math.floor((pos-1)/tb.len_x))
    local but_x = pl_x+(100-(sizes.width/2))
    local but_y = pl_y+(100-(sizes.height/2))
    b = tbl
    if not b and kol>0 then
    tbl = CUIButton()
    b = tbl
    b:SetWindowName("btn_"..type..i)
    b:SetAutoDelete(true)
    b:InitTexture("ui\\ui_icon_equipment")
    b:SetOriginalRect(sizes.x,sizes.y,sizes.width,sizes.height)
    if kol and kol>1 then
    b:SetText("x"..kol)
    else
    b:SetText("")
end
    b:SetTextColor(255,240,165,25)
    b:SetFont(GetFontGraffiti19Russian())
    b:Init(but_x,but_y,sizes.width,sizes.height)
    self:AttachChild(b)
    self:AddCallback(b:WindowName(), ui_events.BUTTON_CLICKED, loadstring("axr_assembly.btn_"..type.."_click("..i..")"), self)
    b:Show(kol>0)
    elseif b and kol==0 then
    b:Show(false)
    elseif b then
    b:SetWndPos(but_x,but_y)
    if kol>1 then b:SetText("x"..kol)
    else b:SetText("") end
    b:Show(true)
end
    if type == "inv" then self.tbl_buttons = tbl
    else self.tbl_buttons_s = tbl end
end

--// размер иконок
function give_icon_params(sect)
    local ini = system_ini()
    local t = {}
    if ini and ini:section_exist(sect) then
    t.width = ini:r_float(sect, "inv_grid_width")*50
    t.height = ini:r_float(sect, "inv_grid_height")*50
    t.x = ini:r_float(sect, "inv_grid_x")*50
    t.y = ini:r_float(sect, "inv_grid_y")*50
    else
    mylog("give_icon_params: section ["..sect.."] not exist")
    t.width = 20
    t.height = 20
    t.x = 20
    t.y = 20
end
    return t
end

Парни помогите уменьшить иконки в GUI окне.

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


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

@Colder ,

b:SetStretchTexture(true)

и

b:Init(but_x,but_y,sizes.width*0.7,sizes.height*0.7)

Вместо 0.7 можно другой масштаб поставить, смотря какой нужен.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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


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

Здравствуйте. Можно ли сделать так чтобы длительность эффекта (или сама эффективность предметов могла ухудшаться или улучшаться) восстановления здоровья после приёма, например, аптечки, мог быть другим в зависимости от, например, насыщения ГГ?

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

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


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

@DibokDibokin 

Все эти расчеты находятся в движке, соответственно - правка движка.

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


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

@AndreySol а в оригинальном движке из скрипта нельзя получить параметры сытости, например?
Если возможно, то так-то ведь никто не запрещает получить этот параметр, и после "полноценного" приема аптечки и завершения эффекта ее действия  чутка испортить актору здоровье в зависимости от выше полученной "сытости"? Ну костыль, конечно, но если вариантов других нет, то...
Или есть противопоказания? 
 

След от кругов на воде - это тоже след (с)

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


Ссылка на сообщение
Поделиться на других сайтах
50 минут назад, Okichi сказал(а):

Или есть противопоказания? 

Для костылей противопоказаний обычно нет. Но они костылями и останутся.

Конкретно по сытости: local actor_satiety = db.actor.satiety, ну и дальше делай что тебе хотца.

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


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

Приветствую всех, как удалить или убить объект заспавненный через all.spawn не прибегаю к началу новой игры?

 

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

[6520]

; cse_abstract properties
section_name = lights_hanging_lamp
name = light_uglovaya_1_glass_0006
position = -107.088996887207, -11.6824464797974, -5.0175313949585
direction = 3.14159274101257, -3.45578122138977, -1.57079589366913
id = 65535
version = 118
script_version = 6
spawn_id = 6520

; cse_alife_object properties
game_vertex_id = 703
level_vertex_id = 172
object_flags = 0xffffffba
custom_data = <<END
[collide]
ignore_static
END

; cse_visual properties
visual_name = physics\light\new_light\light_uglovaya_1_glass

; cse_ph_skeleton properties

; cse_alife_object_hanging_lamp properties
main_color = 0xffffffff
main_brightness = 0.80000001
main_color_animator = light\light_omni_white_idle
main_range = 12
light_flags = 0x3a
lamp_fixed_bones = link
health = 0
main_virtual_size = 0.1
ambient_radius = 3.5
ambient_power = 0.40000001
main_texture = lights\lights_spot_wire_02
main_bone = bone_lamp
main_cone_angle = 2.0943952
glow_radius = 0.69999999
ambient_bone = bone_omni

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 

 

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


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

@I am Dead 

local sim = alife()

local s_obj = sim:object(light_uglovaya_1_glass_0006)

if s_obj then

     sim:release(s_obj, true)

end

будет работать только в ТЧ, в ЗП нет ф-ции получения объекта по имени.

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


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

@AndreySol Вчера пробовал таким образом удалить, не вышло..

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


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

@AndreySol Если берется имя из аллспавна - его в кавычки нужно

local s_obj = sim:object( "light_uglovaya_1_glass_0006" )
И вот что-то не уверена, что можно так удалять источники света. Для physic_object и physic_destroyable_object - сработает, для источника света - вопрос...
 

След от кругов на воде - это тоже след (с)

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


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

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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