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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Бесконечное событи
lawsonДата: Воскресенье, 20 Февраля 2011, 19:52:20 | Сообщение # 1
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Как сделать бесконечное событие?
Только без этого каждую секунду 0.01.


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

SPtrueДата: Воскресенье, 20 Февраля 2011, 19:59:31 | Сообщение # 2
Mí alegre
Группа: Проверенные
Сообщений: 2732
Награды: 2
Репутация: 692
Блокировки:
Мб юнит движется? Другого варианта скорее всего нет
 

KartohaДата: Воскресенье, 20 Февраля 2011, 20:01:51 | Сообщение # 3
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
События:
Юнит умирает
Условия:
Умирающий юнит =Unit
Действия:
Боевая единица - Cоздать юнита
Установить Unit = Последний созданый юнит
Боевая единица - Убить Unit
:D
 

lawsonДата: Воскресенье, 20 Февраля 2011, 20:04:07 | Сообщение # 4
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Та я думал с помощью цикла но очень глючить начинает через минут 20.
не нужно что то альтернативное.

Добавлено (20-02-2011, 20:02)
---------------------------------------------
Kartoha
Ошибся этажом.

Добавлено (20-02-2011, 20:03)
---------------------------------------------

Quote (Kartoha)
Боевая единица - Убить Unit

Это еще хуже чем просто каждые 0.01 секунды.

Добавлено (20-02-2011, 20:04)
---------------------------------------------
Хотя можно с помощью ExecuteFucn() хмм надо попрактиковаться.


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

AjaccioДата: Воскресенье, 20 Февраля 2011, 20:59:31 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
Возможно так, если я правильно понял:

Code
function Trigger_Action takes nothing returns nothing
      call Trigger_Action()
endfunction

function InitTrig_Trigger takes nothing returns nothing
     set gg_trg_Trigger = CreateTrigger()
     call TriggerAddAction(gg_trg_Trigger, function Trigger_Action)
endfunction

Скорее всего поток грохнется, либо просто вылетит игра.
Вообще в Warcraft нельзя организовать бесконечный ход действий, это записано на уровне движка.


  • Любой слишком длинный цикл -> игра оборвёт его.
  • Создать 100500 потоков с помощью ExecuteFunc -> вылет.
  • Использовать PeriodicEvent с временем 0.0 -> не будет непрерывным по определению, ещё и тормоза появятся.

Какой выход? Можно попробовать потанцевать с бубном около некоторой integer переменной и ExecuteFunc().
Смысл в том, чтобы после, скажем, 1000 вызовов функции использовать call ExecuteFunc(MyFunc) и сбросить счётчик. Как-то так:

Code
function Trigger_Action takes nothing returns nothing
      set udg_i = udg_i + 1
      //Некие действия... чем их больше, тем меньшее число нужно поставить вместо 1000.
      if udg_i < 1000 then
           call Trigger_Action()
      else
           set udg_i = 0
           call ExecuteFunc("Trigger_Action")
      endif
endfunction

function InitTrig_Trigger takes nothing returns nothing
     set gg_trg_Trigger = CreateTrigger()
     call TriggerAddAction(gg_trg_Trigger, function Trigger_Action)
endfunction

Хотя, наверное, всё равно всё грохнется. А зачем оно нужно? Измеряем скорость работы процессора?


XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

lawsonДата: Воскресенье, 20 Февраля 2011, 22:02:40 | Сообщение # 6
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ajaccio)
А зачем оно нужно?

Да просто интересно как сделать ИИ в одном триггере где он и изучает спеллы и покупает предметы и пермещаеться. Я видел пример(карта арены) - но это не то. Хмм
где б найти хорошего учителя который бы меня научил делать ИИ в одном триггере или хотя бы карту не защищенную.


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

  • Страница 1 из 1
  • 1
Поиск:

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