Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Sleep


CJloHuK

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

Здравствуйте, хотел бы узнать, возможно ли как-то реализовать функцию sleep в аддоне для аллодов.

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

Найденные монеты можно использовать только на отлове кнопки.

Так же не хочется загружать процессор на 100% в цикле. хочется сделать задержку между использованием монет( sleep).

Вот, есть ли возможность каким-то образом приостановить выполнение скриптовой части не вылезая из обработки действия нажатия кнопки( как например вызов процедуры PlayFadeEffect и далее в EVENT_EFFECT_FINISHED писать продолжение).

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

I haven't tested this yet, as I don't have time right now, but you can try it:

local clock = common.GetLocalDateTime
function sleep(n)
local t0 = clock().overallMs
while clock().overallMs - t0 <= n do end
end

n will be the time you want it to sleep for in miliseconds.

I don't guarantee it will work. I'll try it myself later.

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

Боюсь, что этот пустой цикл, так же загрузит процессор на 100%, а не даст ему отдохнуть.

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

You're right, this does eat CPU time (or so I've read). But I also read that making a sleep function that doesn't eat CPU time is not possible in pure LUA.

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

не сработает для монеток, заюзает 1-3 и всё

саму задержку в 1 секунду можно сделать через eventsecondtimer с булевой переменной которая каждую секунду будет менятся с true на false и по кругу, т.е.

local clock = true

function sleep() -- EVENT_SECOND_TIMER
clock = not clock
if clock == true then
usecoinfunction()
end
end

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

Хм.. ну usecoinfuntion из Event_Second_timer не получится вызвать, если я правильно понимаю. Точнее она не отработает, т.к. будет вызвана не по RegisterReactionHandler.

В тот же момент, а почему не получится для монеток, из-за чего заюзает 1-3 и всё?

Изменено пользователем CJloHuK
Ссылка на комментарий
Поделиться на другие сайты

Ты хоть сам то понял чего захотел?

Чтобы тебе разрешили сделать то, что всегда запрещалось делать в Лолодах

Удачичо

Может и получится с ней то

while clock().overallMs - t0 <= n do end

А это ваще какой то бесконечный или невыполняемый цикл.

Все 3 переменные в нем никогда не меняются

==

Читаем документацию-нет?

В дальнейшем управление передается скрипту только на время обработки событий, инициируемых движком игры. Скрипт обязан провести необходимую обработку и вернуть управление игре. Есть два основных класса событий: игровые события и реакции системы Widgets - нажатие кнопок, ввод с клавиатуры и т.д. Скрипт сам определяет (регистрирует) те события и реакции, которые он хочет обрабатывать.

Пока выполняется скрипт в событии/реакции. От начала и до конца клиент нифига не делает, ждет окончания

Запусти бесконечный цикл в скрипте и твой клиент умрет.

Изменено пользователем Nikon
Ссылка на комментарий
Поделиться на другие сайты

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

Изменено пользователем CJloHuK
Ссылка на комментарий
Поделиться на другие сайты

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

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

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

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

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

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

Важная информация

Пользуясь сайтом, вы принимаете Условия использования