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

Язык Lua. Общие вопросы программирования


Malandrinus

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

xStream,

Но для меня главное, что ты понимаешь, что такое псевдо-ООП. Смею на это надеяться.
благодаря тебе - уже понимаю :) и да, все дело в уже приевшихся привычках :)

 

Gun12, как я заметил(по "своим" таймерам) будет довольно таки весомым... Смотри пример:

код простенький, но тут суть не столько в коде, как хоть каком-то наглядном примере...
ЗЫ подправил код заметил, что пример фиговый)))
local TimerTrigger=time_global()+1000
function aaa()
    if TimerTrigger-time_global()==0 then
        ...
    end
end

вот в таком виде, походу, все что после проверки условия "проиграется" только в 10% случаев, а то вообще не "проиграется", а это значит. что всегда гарантировано опоздание вызова, по примеру таймеров тех, что я выкладывал, я не спроста поставил вывод в лог разници между секундами после условия, а именно c целью отслеживать на сколько опаздывает функция, и это время всегда разное... в игровых секундах я получаю примерно такие значения -0,15*; - 0,25; к тому же не исключены фризы в игре при этом вызов опаздывает примерно на столько -7,00015* и тп и это все на 1 апдейте, если же еще считать, то что таймер вызовится на 1 апдейт позже, то смело можно умножать эти цифры на 2, ато и больше...

 

ЗЫЫ пример приведен на основе глобального времени, цифры приведены на выводах основаных на игровом времени... но это не так важно, так как что так что так опоздание будет всеравно....в глобальном времени например к 1000 мс прибавляется до 100мс при работе без подвисаний, если было подвисание, то может быть и такое к 1000 мс около еще 3000 мс

Изменено пользователем Viнt@rь

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


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

xStream, вот в таких случаях, ИМХО, и лучше использовать цикл, так как все прогоняется на 1 апдейте, НО! "голый" цикл на апдейте может быть причиной тех же фризов и тп, мое предожение сделать тип функций, в смысле "важная/неважная" функция, тоесть, если был запущен таймер функции с флагом "важная", то постоянно проверять истечение таймера для нее, если же неважная, то тогда всеравно, как часто ее проверять, можно хоть и раз в 5 сек(глобального времени, к примеру)

 

ЗЫ идею берег для себя, но всетаки решил поделиться, заодно и узнаю, насколько она хороша)

Изменено пользователем Viнt@rь

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


Ссылка на сообщение
При срабатывании таймера, не только находим тот, который будет выполнен в следующий раз, но еще и смотрим, есть ли еще такие, что должны сработать сейчас

кстати было такое в мыслях, но как-то отложил "на потом" вместе с идеей о флаге...

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


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

Если есть возможность, то попрошу вас обсуждать принцип реализации луабинд в этом топике, мне интересно почитать)

 

Добавлено через 73 мин.:

Вопрос, в том лаунчере функций(таймере), что я выкладывал, на апдейте висит "голый цикл"(ну или вот код функции апдейта лаунчера), это может повлиять на игру?, в смысле не будет ли лагов/фризов/подтормаживаний изза него? Информация в догонку: обычно в массиве self.aLauncher 1 постоянный таймер(сна, скоро добавится еще 1 постоянный таймер) и иногда разовые таймера запускаются...

function CSpLauncher:UpdateFuncs()
    if self.iTblSize < 1 then return end
    
    for sName, aFnc in pairs(self.aLauncher) do
        if aFnc.oTime:diffSec(game.get_game_time()) <= 0 then
            _log("CSpLauncher:UpdateFuncs:=Func:[%s] diffSec(%s):", sName, aFnc.oTime:diffSec(game.get_game_time()))
            local oFunction = loadstring(aFnc.sValue)
            self:DelFunc(sName)
            oFunction() --exemple    
        end
    end    
end

 

Изменено пользователем Viнt@rь

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


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

Возможно не по теме топика пишу, но все же...

1. К примеру, уважаемая xStream, вот почему ты ограничиваешь себя стандартным обьемом для сохраняемых данных, в смысле почему бы не написать что-то на подобии лаунчера от Алпета: написать функции, которые бы сохраняли/загружали/удаляли данные в отдельный файл, в итоге не пришлось бы себя ограничивать тем мизерным обьемом для сохранения данных...

ЗЫ это касается не только xStream :ny_smile:

2. malandrinus, по поводу x-ray extensions, не знаю говорили ли тебе про это или нет, но если врезать: "0x1022398D 5 global_space_ext" в xrGame.dll, то оно приводит к битым сейвам...

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


Ссылка на сообщение
Vano_Santuri ВОТ! все что осталось из таймеров-хранилищ от xStream, все остальные паки/скрипты на хостингах были удалены, в том числе и наработки malandrinus

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


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

Ребят вопрос, возможно ли в LUA такое:

...

for i=1,3 do

local vName_..i = "vName_"..i

end

...

Изменено пользователем Viнt@rь

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


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

Artos, есть одна идейка, сделать свой дебаггер/отладчик так сказать, точнее, усовершенствовать его, и выложить в люди, облегчить конечному пользователю использование данной вещички, вот с помощью таких "извратов" не надо будет создавать там к примеру 300 строк(каких то) за ранее и заставлять пользователя вписывать все под себя(к примеру в окне опций вкл выдачу/запись логовых функций из данного скрипта или нет(я имею ввиду инициализацию кнопок и тп)), сделать, так сказать, автономность, от пользователя останиться лишь закинуть скрипт куда надо и добавить в табличку, или в список в *.ltx(пока не определился), да и для себя тоже интересно, получиться ли такое или нет))

Изменено пользователем Viнt@rь

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


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

ColR_iT, Artos, спс :) В принципе, я догадывался, что с полями таблиц можно такое творить, мне интересно было узнать, можно ли такое делать именно с такой формой обьявления переменной(local vName="vName"; vName="vName").

 

ЗЫ Artos, да, чет не подумал заглянуть в твои скрипты)) обычно оттуда и тяну все интересное/полезное/нужное, а тут совсем вылетело из головы)

Изменено пользователем Viнt@rь

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


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

Ради интереса, можно ли в Lua реализовать такое, к примеру:

local n = 1
n++

 

на подобии С++?

Изменено пользователем Viнt@rь

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


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

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