Сейчас 07:41:13 Понедельник, 29 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Создание и удаление таймера (Надо ли это? Или можно пользоваться одним глобальным?)
Создание и удаление таймера
SirNikolasДата: Пятница, 05 Августа 2011, 12:41:53 | Сообщение # 26
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Тем самым мы избавляем движок от необходимости прибавлять период ко всем таймерам в массиве.

 

HexingДата: Пятница, 05 Августа 2011, 14:05:18 | Сообщение # 27
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
или это делаем мы, или движок? какая разница? Лучше уж что проще, то и юзать buba

 

FatalBladeДата: Пятница, 05 Августа 2011, 14:25:17 | Сообщение # 28
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (SirNikolas)
Можно. Заводишь для каждого скилла действительную, отвечающую за время таймера. При каждом истечении таймера прибавляешь к каждой переменной период единого таймера. Если переменная превышает период ее воображаемого таймера, выполняешь действия этого скилла и обнуляешь ее.

А если происходят 2 события однопременно, и они одновременно запускают таймер?


 

SirNikolasДата: Пятница, 05 Августа 2011, 14:47:53 | Сообщение # 29
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
if TimerGetRemaining(udg_Spell_Timer) <= .0 then
     //Запустить
endif
Либо можно еще логическую завести.


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 00:25:10 | Сообщение # 30
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (SirNikolas)
if TimerGetRemaining(udg_Spell_Timer) <= .0 then

Ну вот видишь. Надо создавать глобальные таймеры для каждого спелла. Я о том и говорю.


 

[DS]Дата: Воскресенье, 07 Августа 2011, 00:33:02 | Сообщение # 31
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
не для каждого, можно библеотеку сделать с одним таймером и его использовать.

Добавлено (07-08-2011, 00:33)
---------------------------------------------
библиотеку*


 

Banzay89Дата: Воскресенье, 07 Августа 2011, 16:57:27 | Сообщение # 32
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
имхо на гуях таймеры нах не нужны
 

[DS]Дата: Воскресенье, 07 Августа 2011, 16:59:06 | Сообщение # 33
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
да

 

FatalBladeДата: Воскресенье, 07 Августа 2011, 18:10:08 | Сообщение # 34
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (Banzay89)
имхо на гуях таймеры нах не нужны

Почему? Вейты не точны по времени. Например Wait 1 seconds, или поставить таймер на 1 секунду, время будет разным. Я проверял. Вейт на самом деле будет примерно 1.1 секунды. Таймер всегда точен. Да и это не так страшно, как например вейты по 0.33 секунд. На деле тут будет не 0.33 а минимум 0.40. Я уже не говорю про периоды меньше 0.1 секунд.


 

[DS]Дата: Воскресенье, 07 Августа 2011, 18:26:35 | Сообщение # 35
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
вейты используют время игры

Добавлено (07-08-2011, 18:26)
---------------------------------------------
если я не ошибаюсь


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 18:30:11 | Сообщение # 36
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (|DS|)
вейты используют время игры

Есть на время игры и есть на реальное время.


 

[DS]Дата: Воскресенье, 07 Августа 2011, 18:33:22 | Сообщение # 37
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
ты о чем?

 

FatalBladeДата: Воскресенье, 07 Августа 2011, 18:34:53 | Сообщение # 38
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Ну есть Wait, а есть Wait (Game-Time)

 

[DS]Дата: Воскресенье, 07 Августа 2011, 18:38:31 | Сообщение # 39
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
есть TriggerSleepAction

 

FatalBladeДата: Воскресенье, 07 Августа 2011, 18:46:09 | Сообщение # 40
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (|DS|)
есть TriggerSleepAction

и PolledWait ))


 

DragoNДата: Воскресенье, 07 Августа 2011, 20:47:04 | Сообщение # 41
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
polled wait сам на таймерах работает avtorklif



El Psy Congroo
 

SirNikolasДата: Понедельник, 08 Августа 2011, 07:30:24 | Сообщение # 42
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (FatalBlade)
Ну вот видишь. Надо создавать глобальные таймеры для каждого спелла. Я о том и говорю.
Не то написал.
Code
globals
     real array udg_SpellTime
     constant timer udg_SpellTimer = CreateTimer()
     constant integer udg_Spell_1 = 0
     constant integer udg_Spell_2 = 1
     constant integer udg_Spell_3 = 2
     //...
endglobals

if udg_SpellTime[udg_Spell_1] <= .0 then
     //...
endif


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » Создание и удаление таймера (Надо ли это? Или можно пользоваться одним глобальным?)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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