Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
if self.st.hide == true then local hud = get_hud() local custom_static = hud:GetCustomStatic("hud_timer") if custom_static ~= nil then hud:RemoveCustomStatic("hud_timer")
end end end end
она работает но теперь есть проблема таймер похоже выключается у меня в таймере в конце инфопоршень выдается для теста но теперь ничего не происходит не известно будто таймер просто выключился и все
RICK, Удалять объект созданный другим скриптом - крайне плохое решение в программировании. Почему бы в скрипт таймера sr_timer.script не ввести возможность делать его скрытым?
Файлы actor_menu.xml и actor_menu_16.xml теги убрать нельзя, но можно вынести отображение за пределы экрана. Насчет сетки: ХЗ где ее параметры (если их вообще вынесли в XML). RICK,
---------------------------------------------------------------------------------------------------- -- Таймер с выводом изображения на экран. ----------------------------------------------------------------------------------------------------
local k,v = 0,0
class "action_timer" function action_timer:__init(obj, storage) self.object = obj self.st = storage end function action_timer:update(delta) local actor = db.actor if xr_logic.try_switch_to_another_section(self.object, self.st, actor) then return end -- Высчитываем сколько времени уже работает счетчик local nn = time_global() - db.storage[self.object:id()].activation_time
-- Изменяем значение счетчика local value_time = 0 if self.st.type == "inc" then value_time = self.st.start_value + nn else value_time = self.st.start_value - nn end if value_time <= 0 then value_time = 0 end -- Формируем строку счетчика local hours = math.floor(value_time/3600000) local minutes = math.floor(value_time/60000 - hours*60) local seconds = math.floor(value_time/1000 - hours*3600 - minutes*60) local str = tostring(hours)..":"..sr_timer.time2str(minutes)..":"..sr_timer.time2str(seconds)
if self.st.show_timer then self.st.timer:TextControl():SetTextST(str) end
-- Определяем нужно ли куда то переходить. for k,v in pairs(self.st.on_value) do if (self.st.type == "dec" and value_time <= v.dist) or (self.st.type == "inc" and value_time >= v.dist) then -- Обработка значения. xr_logic.switch_to_section(self.object, self.st.ini, xr_logic.pick_section_from_condlist(db.actor, self.object, v.state)) end end end function action_timer:deactivate(delta) if self.st.show_timer then self.st.ui:RemoveCustomStatic(self.st.timer_id) if self.st.string ~= nil then self.st.ui:RemoveCustomStatic("hud_timer_text") end end end --function action_timer:save() -- xr_logic.pstor_store( self.object, "timer_value", self.state ) --end
function time2str(n) if n >= 10 then return tostring(n) else return "0"..tostring(n) end end --------------------------------------------------------------------------------------------------------------------- function add_to_binder(obj, ini, scheme, section, storage) local action = action_timer(obj, storage) xr_logic.subscribe_action_for_events(obj, storage, action) end function set_scheme(obj, ini, scheme, section, gulag_name) local st = xr_logic.assign_storage_and_bind(obj, ini, scheme, section) st.logic = xr_logic.cfg_get_switch_conditions(ini, section, obj) st.type = utils.cfg_get_string( ini, section, "type", obj, false, "", "inc") st.show_timer = utils.cfg_get_bool(ini, section, "show_timer", obj, true) if st.type ~= "inc" and st.type ~= "dec" then abort("ERROR: wrong sr_timer type. Section [%s], Restrictor [%s]", section, obj:name()) end
if st.type == "dec" then st.start_value = utils.cfg_get_number(ini, section, "start_value", obj, true) else st.start_value = utils.cfg_get_number(ini, section, "start_value", obj, false, 0) end -- Вычитываем значения перехода. st.on_value = parse_data(obj, utils.cfg_get_string(ini, section, "on_value", obj, false, "")) st.timer_id = utils.cfg_get_string( ini, section, "timer_id", obj, false, "", "hud_timer") st.string = utils.cfg_get_string( ini, section, "string", obj, false, "")
if st.show_timer then st.ui = get_hud() st.ui:AddCustomStatic(st.timer_id, true) st.timer = st.ui:GetCustomStatic(st.timer_id):wnd()
if st.string ~= nil then st.ui:AddCustomStatic("hud_timer_text", true) local timer_text = st.ui:GetCustomStatic("hud_timer_text"):wnd() timer_text:TextControl():SetTextST(st.string) end end end
function parse_data(npc,s) local t = {}
if s then for name in string.gfind( s, "(%|*%d+%|[^%|]+)%p*" ) do local dat = { dist = nil, state = nil}
local t_pos = string.find( name, "|", 1, true )
local dist = string.sub( name, 1, t_pos - 1 ) local state = string.sub( name, t_pos + 1)
dat.dist = tonumber(dist) if state then dat.state = xr_logic.parse_condlist(npc, dist, state, state) end table.insert(t, dat) end end return t end
[sr_timer@test] type = dec start_value = 45000 on_value = 0 | sr_idle@end show_timer = false
Сообщение отредактировал denis2000 - Понедельник, 22.10.2018, 11:59
makdm, Такая вот ошибка при работе с ACDC возникла на Windows 10:
D:\Games\STALKER Call of Pripyat\gamedata\spawns\ACDC>acdccop.pl -d all.spawn Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at stkutils/data_packet.pm line 32.
Compilation failed in require at D:\Games\STALKER Call of Pripyat\gamedata\spawns\ACDC\acdccop.pl line 2133. BEGIN failed--compilation aborted at D:\Games\STALKER Call of Pripyat\gamedata\spawns\ACDC\acdccop.pl line 2133.
D:\Games\STALKER Call of Pripyat\gamedata\spawns\ACDC>pause
Сообщение отредактировал PROFFESIONAL - Понедельник, 22.10.2018, 20:20
function spawn_object_dialog:OnButton_stalkers_clicked() self:FillList(stalkers_table) end function spawn_object_dialog:OnButton_monsters_clicked() self:FillList(monsters_table) end function spawn_object_dialog:OnButton_objects_clicked() self:FillList(objects_table) end
function spawn_object_dialog:OnButton_create_clicked() local dis = 45+math.random(-15,15) local dir = db.actor:direction() local pos = db.actor:position() if self.list:GetSize()==0 then return end local obj=self.list:GetSelectedItem() if not obj then return end local objname = obj.text:GetText() pos = pos:add(dir:mul(dis)) alife():create(objname, pos, db.actor:level_vertex_id(), db.actor:game_vertex_id()) end
function spawn_object_dialog:OnButton_close_clicked() self:HideDialog() _G.si_dlg = nil end
function spawn_object_dialog: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:OnButton_close_clicked() end end end
function spawn_object_dialog:AddItemToList(obj_name) local _obj = spawn_object(22) _obj.text:SetText (obj_name) self.list:AddExistingItem (_obj) end
Хочу расширить спавнер. Чтобы можно было спавнить сквады на близких смартах. Очевидно, что функция OnButton_create_clicked в текущем виде для сквадов непригодна.
Как её доработать, чтобы при выборе первых трех таблиц вызывалось alife():create(objname, pos, db.actor:level_vertex_id(), db.actor:game_vertex_id()), а при выборе четвертой create_squad?
ACDC? Ты работаешь на нём? В 2018-м? Разработчик таких ожидаемых и грандиозных проектов?
Каждый работает так, как ему УДОБНО. И не дело обычных геймеров( потребителей продукта ) учить модмейкеров ( созидателей продукта ), как ему делать свой мод. Важен результат, а способы достижения могут быть разными.
Добавлено (22.10.2018, 22:45) --------------------------------------------- PROFFESIONAL, я тебе в личку сейчас сброшу свой perl. Может он "пойдет" как нужно.
Добро. Создал уникальный ствол на базе lr-300, изменил лишь немногие характеристики:
Код
hit_power = 0.6, 0.6, 0.6, 0.6 fire_distance = 350 bullet_speed = 900 ;начальная скорость пули rpm = 500 cam_relax_speed = 4.5 ;скорость возврата в исходное положение
Прикол в том, когда ставлю на ствол прицел и гляжу в него, то могу разглядеть другой край локации, а то и до самого ЧАЭС доглядеть, короче, увеличивает не по-детски и, походу, бесконечно. Не понимаю, в чём причина такой аномалии.