Сейчас 23:28:03 Воскресенье, 5 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Задержка (Аналог Wait)
Задержка
FatalBladeДата: Воскресенье, 24 Июля 2011, 02:57:29 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Если ли в джассе функция которая является задержкой, способной принимать любое значение, и не быть ущербной как Wait?
Дело в том что есть таймеры, но для них значит нужно создавать триггер, с событием Timer Expires, и там продолжать все действия. А это ужасно не удобно. Меня интересует есть ли что нибудь типа:

Действие...
Действие...
Задержка на 0.33 секунд
Действие...
Действие...


 

IncludeДата: Воскресенье, 24 Июля 2011, 03:41:03 | Сообщение # 2
2 уровень
Группа: Пользователи
Сообщений: 20
Награды: 0
Репутация: 0
Блокировки:
FatalBlade, таймеры
 

FatalBladeДата: Воскресенье, 24 Июля 2011, 03:47:24 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Include)
FatalBlade, таймеры

Quote (FatalBlade)
Дело в том что есть таймеры, но для них значит нужно создавать триггер, с событием Timer Expires, и там продолжать все действия.


 

IncludeДата: Воскресенье, 24 Июля 2011, 04:19:09 | Сообщение # 4
2 уровень
Группа: Пользователи
Сообщений: 20
Награды: 0
Репутация: 0
Блокировки:
FatalBlade, таймеры лучше вейта. аналогов нет.
 

H_A_PKДата: Воскресенье, 24 Июля 2011, 08:49:22 | Сообщение # 5
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
FatalBlade,
Code

function action takes nothing returns nothing
\\Действия
endfunction

local timer t = CreateTimer()
call TimerStart(t,время задержки, false, function action)

можно ещё
Code
call PolledWait(time)
но это бред


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец
 

FatalBladeДата: Воскресенье, 24 Июля 2011, 12:08:44 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Include)
FatalBlade, таймеры лучше вейта. аналогов нет.

А можно как то в одном триггере это делать? Т.е. что бы не надо было начинать новый триггер с событием TimerExpires?

Quote (H_A_PK)
local timer t = CreateTimer()
call TimerStart(t,время задержки, false, function action)

А сразу после call TimerStart в том же триггере я могу писать дальнейшие действия, и это будет как бы действия после паузы?

Quote (H_A_PK)
call PolledWait(time)
но это бред

Почему бред?


 

FaionДата: Воскресенье, 24 Июля 2011, 12:45:02 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
Quote (FatalBlade)
Почему бред?


Потому что :

Code
function PolledWait takes real duration returns nothing
     local timer t
     local real  timeRemaining

     if (duration > 0) then
         set t = CreateTimer()
         call TimerStart(t, duration, false, null)
         loop
             set timeRemaining = TimerGetRemaining(t)
             exitwhen timeRemaining <= 0

             // If we have a bit of time left, skip past 10% of the remaining
             // duration instead of checking every interval, to minimize the
             // polling on long waits.
             if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then
                 call TriggerSleepAction(0.1 * timeRemaining)
             else
                 call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
             endif
         endloop
         call DestroyTimer(t)
     endif
endfunction


Никто не использует вейты.


О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL
 

FatalBladeДата: Воскресенье, 24 Июля 2011, 13:50:22 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Во спс работает



Сообщение отредактировал FatalBlade - Воскресенье, 24 Июля 2011, 14:15:02
 

lawsonДата: Воскресенье, 24 Июля 2011, 15:05:36 | Сообщение # 9
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Faion)
set timeRemaining = TimerGetRemaining(t)              
exitwhen timeRemaining <= 0

Вот что самое интересное в этой функции.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Задержка (Аналог Wait)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz