Cockos REAPER v7.37 x64 [2025, ENG + RUS]

Страницы :   Пред.  1, 2, 3 ... 10, 11, 12
Ответить
 

vallt 1952

Стаж: 2 года 6 месяцев

Сообщений: 3


vallt 1952 · 01-Май-25 08:20 (11 дней назад)

Хрипят пресеты Serum 2. Какие могут быть причины. Благодарю за подсказку.
[Профиль]  [ЛС] 

Евангелie вiд Луки

Стаж: 1 год

Сообщений: 185


Евангелie вiд Луки · 03-Май-25 20:30 (спустя 2 дня 12 часов)

vallt 1952 писал(а):
87723287Хрипят пресеты Serum 2. Какие могут быть причины. Благодарю за подсказку.
Не только с Серум такое. Среди пресетов синтов попадаются класно многослойно звучащие. Но ресурсов они уже хотят не кушать, а жрать. Но по результату все оправданно.
Уменьшайте задержку (Latency, если что) звуковухи, увеличивайте буфер.
[Профиль]  [ЛС] 

sllssllsslls

Стаж: 14 лет 8 месяцев

Сообщений: 220

sllssllsslls · 10-Май-25 08:25 (спустя 6 дней, ред. 10-Май-25 08:25)

Вопрос к знатокам, как сделать хронометраж на часах только в минутах?
60
65
70
80
90
123
В таком духе...
[Профиль]  [ЛС] 

vkDanilov

Стаж: 9 лет 3 месяца

Сообщений: 1813


vkDanilov · 11-Май-25 04:32 (спустя 20 часов, ред. 12-Май-25 01:07)

sllssllsslls
Если вы имеете ввиду встроенные часы Big Clock, то никак.
Даже после того, как их снабдили расширенными настройками в последних версиях и переименовали в Big Clock Plus.
Остаётся только сделать "правильные" часы своими руками.
Можно, например, взять за основу скрипт Людвига по фамилии Frühschütz, который реализовал в своих часах отсчёт времени от начала текущего региона под курсором, а также от ближайшего маркера перед курсором. Правда формат отображения тот же самый - после цифры 60 "минуты" превращаются в "часы и минуты".
Поэтому, чтобы получить нужный результат, необходимо включить режим программиста.
BigClockExtra_mod.lua
Код:
-- Requires: Reaper 6.11+
local timeSinceProject = true
local timeSinceMarker = false
local timeSinceRegion = false
local timeUnitHMS = false
local timeUnitMS = true
local timeUnitMeasures = false
function class(base, init)
   local c = {}
   if not init and type(base) == 'function' then
      init = base
      base = nil
   elseif type(base) == 'table' then
      for i,v in pairs(base) do
         c[i] = v
      end
      c._base = base
   end
   c.__index = c
   local mt = {}
   mt.__call = function(class_tbl, ...)
   local obj = {}
   setmetatable(obj,c)
   if init then
      init(obj,...)
   else
      if base and base.init then
      base.init(obj, ...)
      end
   end
   return obj
   end
   c.init = init
   c.is_a = function(self, klass)
      local m = getmetatable(self)
      while m do
         if m == klass then return true end
         m = m._base
      end
      return false
   end
   setmetatable(c, mt)
   return c
end
local Menu =
  class(
    function(menu, id)
      menu.id = id
      menu.items = {}
      menu.items_str = ""
      menu.curr_item_pos = 1
    end
  )
function Menu:get_item_from_id(id)
  for i=1, #self.items do
    if self.items[i].id == id then
      return self.items[i]
    end
  end
  return false
end
function Menu:update_item(item_table)
  local t = item_table
  t._has_submenu = false
  t._last_item_in_submenu = false
  t.id = self.curr_item_pos
  if string.sub(t.label, 1, 1) == ">" or
     string.sub(t.label, 1, 2) == "<>" or
     string.sub(t.label, 1, 2) == "><" then
    t._has_submenu = true
    t.id = -1
    self.curr_item_pos = self.curr_item_pos - 1
  elseif string.sub(t.label, 1, 1) == "<" then
    t._has_submenu = false
    t._last_item_in_submenu = true
  end
  self.curr_item_pos = self.curr_item_pos + 1
end
function Menu:add_item(...)
  local t = ... or {}
  self.items[#self.items+1] = t
  for i,v in pairs(t) do
    if i == "label" then
      t.label = v
    elseif i == "selected" then
      t.selected = v
    elseif i == "active" then
      t.active = v
    elseif i == "toggleable" then
      t.toggleable = v
    elseif i == "command" then
      t.command = v
    end
  end
  if t.label == nil or t.label == "" then
    t.label = tostring(#self.items)
  end
  if t.selected == nil then
    t.selected = false
  end
  if t.active == nil then
    t.active = true
  end
  if t.toggleable == nil then
    t.toggleable = false
  end
  return t, #self.items
end
function Menu:get_item(index)
  if self.items[index] == nil then
    return false
  end
  return self.items[index]
end
function Menu:show(mx, my)
  gfx.x = mx
  gfx.y = my
  for i=1, #self.items do
    if self.items[i].on_menu_show ~= nil then
      self.items[i].on_menu_show()
    end
    self:update_item(self.items[i])
  end
  self.items_str = self:table_to_string() or ""
  self.val = gfx.showmenu(self.items_str)
  if self.val > 0 then
    self:update(self.val)
  end
  self.curr_item_pos = 1
end
function Menu:update(menu_item_index)
  for i=1, #self.items do
    if self.items[i].id == menu_item_index then
      menu_item_index = i
      break
    end
  end
  local i = menu_item_index
  if self.items[i].toggleable then
    self.items[i].selected = not self.items[i].selected
  end
  if self.items[i].command ~= nil then
    self.items[i].command()
  end
end
function Menu:table_to_string()
  if self.items == nil then
    return
  end
  self.items_str = ""
  for i=1, #self.items do
    local temp_str = ""
    local menu_item = self.items[i]
    if menu_item.selected then
      temp_str = "!"
    end
    if not menu_item.active then
      temp_str = temp_str .. "#"
    end
    if menu_item.label ~= "" then
      temp_str = temp_str .. menu_item.label .. "|"
    end
    self.items_str = self.items_str .. temp_str
  end
  return self.items_str
end
local script_path
local gui = {}
local quit = false
local sws_present = false
local mouse = {
                  LB = 1,
                  RB = 2,
                  CTRL = 4,
                  SHIFT = 8,
                  ALT = 16,
                  cap = function (mask)
                          if mask == nil then
                            return gfx.mouse_cap end
                          return gfx.mouse_cap&mask == mask
                        end,
                  uptime = 0,
                  last_x = -1, last_y = -1,
                  dx = 0,
                  dy = 0,
                  ox_l = 0, oy_l = 0,
                  ox_r = 0, oy_r = 0,
                  capcnt = 0,
                  last_LMB_state = false,
                  last_RMB_state = false
               }
function storeExtState()
    if timeSinceProject then
        reaper.SetProjExtState(0, 'bigclock_extra', 'timeSinceProject', '1')
    else
        reaper.SetProjExtState(0, 'bigclock_extra', 'timeSinceProject', '0')
    end
    if timeSinceMarker then
        reaper.SetProjExtState(0, 'bigclock_extra', 'timeSinceMarker', '1')
    else
        reaper.SetProjExtState(0, 'bigclock_extra', 'timeSinceMarker', '0')
    end
    if timeSinceRegion then
        reaper.SetProjExtState(0, 'bigclock_extra', 'timeSinceRegion', '1')
    else
        reaper.SetProjExtState(0, 'bigclock_extra', 'timeSinceRegion', '0')
    end
    if timeUnitMeasures then
      reaper.SetProjExtState(0, 'bigclock_extra', 'timeUnit', 'measures')
    elseif timeUnitHMS then
      reaper.SetProjExtState(0, 'bigclock_extra', 'timeUnit', 'hms')
    else
      reaper.SetProjExtState(0, 'bigclock_extra', 'timeUnit', 'ms')
    end
    reaper.SetProjExtState(0, 'bigclock_extra', 'dockState', gfx.dock(-1))
end
function get_script_path()
  local info = debug.getinfo(1,'S');
  local script_path = info.source:match[[^@?(.*[\/])[^\/]-$]]
  return script_path
end
function gui_init()
  script_path = get_script_path()
  package.path = package.path .. ";" .. script_path .. "?.lua"
  rc_menu = Menu("rc_menu")
  rc_menu:add_item({label = "Время от начала проекта",
                    toggleable = true,
                    selected = timeSinceProject})
  rc_menu:add_item({label = "Время от предыдущего маркера",
                    toggleable = true,
                    selected = timeSinceMarker})
  rc_menu:add_item({label = "Время от начала текущего региона|",
                    toggleable = true,
                    selected = timeSinceRegion})
  rc_menu:add_item({label = "Часы : Минуты : Секунды : Кадры",
                    toggleable = true,
                    selected = timeUnitHMS})
  rc_menu:add_item({label = "Минуты : Секунды . Миллисекунды",
                    toggleable = true,
                    selected = timeUnitMS})
  rc_menu:add_item({label = "Такты : Доли . Проценты доли|",
                    toggleable = true,
                    selected = timeUnitMeasures})
  rc_menu:add_item({label = "Закрыть"})
  rc_menu.items[1].command = function()
                                if rc_menu.items[1].selected then
                                    timeSinceProject = true
                                    timeSinceMarker = false
                                    timeSinceRegion = false
                                    rc_menu.items[2].selected = false
                                    rc_menu.items[3].selected = false
                                else
                                    rc_menu.items[1].selected = true;
                                end
                                storeExtState()
                            end
    rc_menu.items[2].command = function()
                                if rc_menu.items[2].selected then
                                    timeSinceProject = false
                                    timeSinceMarker = true
                                    timeSinceRegion = false
                                    rc_menu.items[1].selected = false
                                    rc_menu.items[3].selected = false
                                else
                                    rc_menu.items[2].selected = true;
                                end
                                storeExtState()
                            end
    rc_menu.items[3].command = function()
                                if rc_menu.items[3].selected then
                                    timeSinceProject = false
                                    timeSinceMarker = false
                                    timeSinceRegion = true
                                    rc_menu.items[1].selected = false
                                    rc_menu.items[2].selected = false
                                else
                                    rc_menu.items[3].selected = true;
                                end
                                storeExtState()
                            end
    rc_menu.items[4].command = function()
                              if rc_menu.items[4].selected then
                                  timeUnitHMS = true
          timeUnitMS = false
                                  timeUnitMeasures = false
                                  rc_menu.items[5].selected = false
          rc_menu.items[6].selected = false
                              else
                                  rc_menu.items[4].selected = true;
                              end
                              storeExtState()
                          end
rc_menu.items[5].command = function()
                              if rc_menu.items[5].selected then
                                  timeUnitHMS = false
          timeUnitMS = true
                                  timeUnitMeasures = false
                                  rc_menu.items[4].selected = false
          rc_menu.items[6].selected = false
                              else
                                  rc_menu.items[5].selected = true;
                              end
                              storeExtState()
                          end
    rc_menu.items[6].command = function()
                            if rc_menu.items[6].selected then
                              timeUnitHMS = false
         timeUnitMS = false
                              timeUnitMeasures = true
                              rc_menu.items[4].selected = false
         rc_menu.items[5].selected = false
                            else
                              rc_menu.items[6].selected = true;
                            end
                            storeExtState()
                        end
    rc_menu.items[7].command = function() quit = true end
end
function drawGui()
    local retval = 0
    local val
    local timeRaw
local ProjectTimeOffset
    local timeDisplay
    local timeDisplayMinutes
    local timeDisplaySeconds
local markerRegionRelative = false
    local markerId
    local regionId
    local isRegion
    local markerRegionPos
    local regionEnd
    local markerRegionName
    local markerRegionNumber
local TransportStates = reaper.GetAllProjectPlayStates(0)
    if TransportStates == 0 or (TransportStates&2) == 2  then
      timeRaw = reaper.GetCursorPosition()
    else
      timeRaw = reaper.GetPlayPosition()
    end
if not TimeSyncProject then
  markerId, regionId = reaper.GetLastMarkerAndCurRegion(0, timeRaw)
  if timeSinceMarker then
    retval, isRegion, markerRegionPos, regionEnd, markerRegionName, markerRegionNumber = reaper.EnumProjectMarkers(markerId)
  elseif timeSinceRegion then
    retval, isRegion, markerRegionPos, regionEnd, markerRegionName, markerRegionNumber = reaper.EnumProjectMarkers(regionId)
  end
end
    if retval > 0 then
    timeRaw = timeRaw - markerRegionPos
    markerRegionRelative = true
    end
ProjectTimeOffset = reaper.GetProjectTimeOffset(0, false)
    if timeUnitMeasures then
     timeDisplay = reaper.format_timestr_pos(timeRaw,"", 2) -- 2 = Measures:Beats
    elseif timeUnitHMS then
   if markerRegionRelative then timeRaw = timeRaw - ProjectTimeOffset end
      timeDisplay = reaper.format_timestr_pos(timeRaw,"", 5) -- 5 = h:m:s:f
    else
   if not markerRegionRelative then timeRaw = timeRaw + ProjectTimeOffset end
   local NegativeOffset = (timeRaw<0) and true or false
   if NegativeOffset then timeRaw = math.abs(timeRaw) end
      timeDisplayMinutes = math.floor(timeRaw/60)
      timeDisplaySeconds = timeRaw%60
      timeDisplay = string.format("%.1d : %s",timeDisplayMinutes, reaper.format_timestr_pos(timeDisplaySeconds - ProjectTimeOffset, "", 3)) -- 3 = seconds
   if NegativeOffset then timeDisplay = "-" .. timeDisplay end
    end
    local r,g,b = reaper.ColorFromNative(reaper.GetThemeColor('col_main_bg2', 0))
    gfx.clear = r+g*256+b*65536
    gui.settings.font_size = gfx.h / 1.4
    gfx.setfont(1, 'Arial', math.max(gui.settings.font_size, 13))
    local str_w, str_h = gfx.measurestr(timeDisplay)
    gfx.x = (gfx.w - str_w) / 2
    gfx.y = (gfx.h - str_h) / 2
    while (gfx.x < 5) and (gui.settings.font_size > 12) do
      gui.settings.font_size = gui.settings.font_size / 1.1
      gfx.setfont(1,"Arial", gui.settings.font_size)
      str_w, str_h = gfx.measurestr(timeDisplay)
      gfx.x = (gfx.w - str_w) / 2
      gfx.y = (gfx.h - str_h) / 2
    end
    gfx.printf(timeDisplay)
end
function onExit()
  storeExtState()
end
function init()
  if reaper.NamedCommandLookup('_SWS_ABOUT') > 0 then sws_present = true end
  local retval
  local val
  retval, val = reaper.GetProjExtState(0, 'bigclock_extra', 'timeSinceProject')
  if retval > 0 then
    if tonumber(val) > 0 then
      timeSinceProject = true
    else
      timeSinceProject = false
    end
  end
  retval, val = reaper.GetProjExtState(0, 'bigclock_extra', 'timeSinceMarker')
  if retval > 0 then
    if tonumber(val) > 0 then
      timeSinceMarker = true
    else
      timeSinceMarker = false
    end
  end
  retval, val = reaper.GetProjExtState(0, 'bigclock_extra', 'timeSinceRegion')
  if retval > 0 then
    if tonumber(val) > 0 then
      timeSinceRegion = true
    else
      timeSinceRegion = false
    end
  end
  retval, val = reaper.GetProjExtState(0, 'bigclock_extra', 'timeUnit')
  if retval > 0 then
    if val == 'measures' then
      timeUnitMeasures = true
      timeUnitHMS = false
   timeUnitMS = false
    elseif val == 'hms' then
      timeUnitMeasures = false
      timeUnitHMS = true
   timeUnitMS = false
    else
      timeUnitMeasures = false
      timeUnitHMS = false
   timeUnitMS = true
    end
  end
  gui_init()
  gui.settings = {}
  gui.settings.font_size = 50
  gui.settings.docker_id = 0   -- try 0, 1, 257, 513, 1027 etc.
  gfx.init("Big Clock Extra", 350, 100, gui.settings.docker_id)
  gfx.setfont(1,"Arial", gui.settings.font_size)
  local r,g,b = reaper.ColorFromNative(reaper.GetThemeColor('col_main_bg2', 0))
  gfx.clear = r+g*256+b*65536
  retval, val = reaper.GetProjExtState(0, 'bigclock_extra', 'dockState')
  if retval > 0 then
    gfx.dock(val)
  end
end
function mainloop()
  local RMB_state = mouse.cap(mouse.RB)
  local LMB_state = mouse.cap(mouse.LB)
  local mx = gfx.mouse_x
  local my = gfx.mouse_y
  if not mouse.last_RMB_state and gfx.mouse_cap&2 == 2 then
    rc_menu:show(mx, my)
    if sws_present then
      reaper.Main_OnCommand( reaper.NamedCommandLookup('_BR_FOCUS_ARRANGE_WND'), 0 )
    end
  end
  if not mouse.last_LMB_state and gfx.mouse_cap&1 == 1 then
    if sws_present then
      reaper.Main_OnCommand( reaper.NamedCommandLookup('_BR_FOCUS_ARRANGE_WND'), 0 )
    end
  end
  mouse.last_RMB_state = RMB_state
  mouse.last_LMB_state = LMB_state
  drawGui()
  gfx.update()
  if gfx.getchar() >= 0  and not quit then reaper.defer(mainloop) end
end
reaper.atexit(onExit)
init()
mainloop()
Теперь двое часов: заводские и самодельные. Самодельные показывают честные минуты.
Показуха
[Профиль]  [ЛС] 

shamagov

Стаж: 15 лет 4 месяца

Сообщений: 2477


shamagov · 11-Май-25 09:51 (спустя 5 часов, ред. 11-Май-25 09:51)

vkDanilov
vkDanilov
Цитата:
BigClockExtra_mod.lua
Ого, вот это круто! Мне бы пригодились такие часы,
но, к сожалению, они у меня не работают,
точнее сказать, вызывают ошибку (ошибок может быть больше)
когда кликаю по ним правой кнопкой мыши.
_______________________________________________________
[Профиль]  [ЛС] 

vkDanilov

Стаж: 9 лет 3 месяца

Сообщений: 1813


vkDanilov · 11-Май-25 12:13 (спустя 2 часа 21 мин.)

shamagov
Простите, не правильно вставил сюда текст скрипта - BBCode съел часть текста. Исправил.
[Профиль]  [ЛС] 

shamagov

Стаж: 15 лет 4 месяца

Сообщений: 2477


shamagov · 11-Май-25 12:45 (спустя 32 мин.)

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

vkDanilov

Стаж: 9 лет 3 месяца

Сообщений: 1813


vkDanilov · 11-Май-25 14:26 (спустя 1 час 41 мин.)

shamagov писал(а):
87766990у вас тоже есть расхождение в одну тысячную ?
Заменил для секунд стандартную string.format на родную reaper.format_timestr_pos.
Теперь одинаково округляют.
[Профиль]  [ЛС] 

semiono

Стаж: 13 лет 8 месяцев

Сообщений: 1979

semiono · 11-Май-25 20:54 (спустя 6 часов, ред. 11-Май-25 20:54)

BTW а у меня тоже был вопрос который я так и не решил, на мастер-микшере уровень отображаемый цифрами,
так вот пики показываются максимальные пока их не перебьёт более сильный сигнал, для меня это очень неудобно.
В Sound Forge было так, каждый новый playback измерялся новым макси-уровнем...
Просто смотришь думаешь там такой уровень, по привычке, а там гораздо тише сигнал. Сам не смог настроить, хотя может и нельзя никак :\
[Профиль]  [ЛС] 

vkDanilov

Стаж: 9 лет 3 месяца

Сообщений: 1813


vkDanilov · 11-Май-25 22:37 (спустя 1 час 42 мин.)

Если вы про эти пики: То они будут сами сбрасываться каждый раз, когда вы начинаете воспроизведение или во время воспроизведения перемещаете курсор.
Просто надо поставить галочку здесь:
[Профиль]  [ЛС] 

shamagov

Стаж: 15 лет 4 месяца

Сообщений: 2477


shamagov · 11-Май-25 22:55 (спустя 18 мин.)

vkDanilov
vkDanilov писал(а):
87767375Теперь одинаково округляют.
А у меня что-то хуже стало.
_______________________
vkDanilov писал(а):
87770539Просто надо поставить галочку здесь:
Тоже себе поставил эту галочку... так удобнее... спасибо!
[Профиль]  [ЛС] 

vkDanilov

Стаж: 9 лет 3 месяца

Сообщений: 1813


vkDanilov · 11-Май-25 23:21 (спустя 26 мин., ред. 11-Май-25 23:21)

shamagov
У вас на разных часах разные форматы.
На встроенных - часы:минуты:секунды:кадры
На самодельных - минуты:секунды.миллисекунды
Одна миллисекунда - это одна тысячная секунды, а один кадр, это одна шестидесятая секунды, например (если скорость смены кадров -frame rate равна 60, задаётся в настройках проекта на вкладке Video). И даже если бы эти сотые-тысячные были одинаковыми, то при определённых условиях разница в показаниях между этими двумя форматами может быть шокирующая.
Дело в том, что у видео формата время может идти вспять, то есть курсор воспроизведения как ему и положено движется вправо, а показания часов уменьшаются (и это не шутка, в руководстве к риперу этот момент освещается).
[Профиль]  [ЛС] 

shamagov

Стаж: 15 лет 4 месяца

Сообщений: 2477


shamagov · 11-Май-25 23:36 (спустя 14 мин.)

vkDanilov
vkDanilov писал(а):
87770647Одна миллисекунда - это одна тысячная секунды, а один кадр, это одна шестидесятая секунды, например (если скорость смены кадров -frame rate равна 60, задаётся в настройках проекта на вкладке Video). И даже если бы эти сотые-тысячные были одинаковыми, то при определённых условиях разница в показаниях между этими двумя форматами может быть шокирующая.
Дело в том, что у видео формата время может идти вспять, то есть курсор воспроизведения как ему и положено движется вправо, а показания часов уменьшаются (и это не шутка, в руководстве к риперу этот момент освещается).
Вот блин, я даже не заметил... не подумал.. да и не знал про эти кадры -- спасибо за информацию!
В данном случае, на мой взгляд, было бы логичнее На встроенных - часы:минуты:секунды:миллисекунды - ведь всё-таки это в первую очередь аудио редактор... и тогда бы не возникала эта путаница в голове (какие кадры... сколько их.. 24, 25, 30, 60... где искать настройки этих кадров... и зачем они нужны, если работаю со звуком, а не с видео), а для видео - действительно лучше подошёл бы такой формат часов - часы:минуты:секунды:кадры. Жаль, что такие гениальные разработчики, которые занимаются Рипером, не делают видео редактор - не сомневаюсь, что он был бы на голову выше по производительности и функциональности многих существующих видео редакторов.
Округление иногда совпадает, а иногда не совпадает (может быть, нужно было во всех случаях заменить на reaper.format_timestr_pos) - впрочем, разница на миллисекунду, возможно, отразилась бы на пиковом компрессоре (в его коде), а для меня в данном случае эти миллисекунды вообще не нужны... лучше, как говорил sllssllsslls - хронометраж на часах только в минутах... то есть возможность детального отображения (показывать только часы, только минуты, только секунды)... ну может в будущих версиях Рипера и такое сделают )
[Профиль]  [ЛС] 

vkDanilov

Стаж: 9 лет 3 месяца

Сообщений: 1813


vkDanilov · 12-Май-25 00:15 (спустя 38 мин., ред. 12-Май-25 00:15)

shamagov писал(а):
87770757Округление иногда совпадает, а иногда не совпадает
Скрипт-то надо пересохранить, у вас старый работает.
[Профиль]  [ЛС] 

shamagov

Стаж: 15 лет 4 месяца

Сообщений: 2477


shamagov · 12-Май-25 01:12 (спустя 56 мин., ред. 12-Май-25 01:12)

vkDanilov
Для чистоты эксперимента... удалил тот скрипт... копировал из вашего комментария и создал новый скрипт... в Рипере, разумеется, в листе экшенов тоже удалил старый скрипт, а новый (с вашего позволения) подредактировал название "Clock_vkDanilov" (мне так больше нравится), но по итогу опять рандом в синхронизации... странно (у вас то всё нормально).. а вы скрипт обновляли в своём комментарии, или мне самому нужно заменять для секунд стандартную string.format на родную reaper.format_timestr_pos. ?
_________________
[Профиль]  [ЛС] 

vkDanilov

Стаж: 9 лет 3 месяца

Сообщений: 1813


vkDanilov · 12-Май-25 02:03 (спустя 51 мин.)

shamagov
Нет, заменять не нужно.
в виде файла, если что
[Профиль]  [ЛС] 

shamagov

Стаж: 15 лет 4 месяца

Сообщений: 2477


shamagov · 12-Май-25 09:30 (спустя 7 часов)

vkDanilov
vkDanilov
Наверное, у меня винда борохлит (какой-нибудь системный таймер), или что-то ещё чего я не знаю.
Скачал ваш скрипт, но у меня он работает точно также
______________________________________________
[Профиль]  [ЛС] 

semiono

Стаж: 13 лет 8 месяцев

Сообщений: 1979

semiono · 12-Май-25 14:38 (спустя 5 часов, ред. 12-Май-25 14:38)

Спасибо, vkDanilov! Посмотрю, наверное оно!
Надо бы здесь систему лайков чтоб не флудить)
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error