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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Как работает и вообще что такое ExecuteFunc() (Вопрос по JASS)
Как работает и вообще что такое ExecuteFunc()
lawsonДата: Вторник, 15 Февраля 2011, 21:24:13 | Сообщение # 1
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Как работает и вообще что такое ExecuteFunc(). Я пытался его использовать писал в инициализации карты функцию которую мне надо было запустить а получился бред. В гугле гуглил в нете нетил не нашел.

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


Сообщение отредактировал lawson - Вторник, 15 Февраля 2011, 21:26:50
 

romaN-1998Дата: Вторник, 15 Февраля 2011, 21:52:35 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
lawson, execute = исполнять. Думаю, что это что-то типо исполнения функции, но какой.. сам не знаю, потому что, как я вижу, здесь нет аргументов. А собственно зачем тебе такая функция ? если её никто никогда не использовал и всё было норм.. ?
 

lawsonДата: Вторник, 15 Февраля 2011, 22:56:09 | Сообщение # 3
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (romaN-1998)
если её никто никогда не использовал

Эхх тебе еще учиться и учиться.
ExecuteFunc очень хорошая вещь чтоб вызывать функции у которых нет события или если в действии есть таймер который без события то если вызвать эту функцию с помощью execute то таймер сработает. Также полезна для функций с передачей информацци переменным. Все это я так считаю. Прочитал на xgm про execute но ни че не понял.


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

AjaccioДата: Вторник, 15 Февраля 2011, 22:56:54 | Сообщение # 4
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
Эта функция запускает другую функцию в отдельном потоке по её названию.
То есть, если мы имеем функцию MyFunc, то мы можем написать call ExecuteFunc("MyFunc").
При этом, в отличии от конструкции call MyFunc(), ExecuteFunc не может принимать параметры.
Также функция, откуда запускается MyFunc, не будет ждать завершения работы MyFunc, а пойдет работать дальше (это и значит в новом потоке).
Если указанной функции "MyFunc" не существует, то получите Fatal Error.


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


Сообщение отредактировал Ajaccio - Вторник, 15 Февраля 2011, 22:57:09
 

lawsonДата: Вторник, 15 Февраля 2011, 23:00:51 | Сообщение # 5
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
так я и так могу запускать функции в триггере call MyFunc()

Добавлено (15-02-2011, 23:00)
---------------------------------------------
Я просто вижу в некоторых картах ставиться exeuteFunc в инициализации триггера без события.


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


Сообщение отредактировал lawson - Вторник, 15 Февраля 2011, 23:01:34
 

PUVerДата: Вторник, 15 Февраля 2011, 23:07:25 | Сообщение # 6
Сухопутные крысы!
Группа: Модераторы
Сообщений: 4462
Награды: 8
Репутация: 1845
Блокировки:
Устное предупреждение автора за нарушение правила Название темы должно отражать суть вопроса
 

DragoNДата: Вторник, 15 Февраля 2011, 23:11:47 | Сообщение # 7
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
написали же, запускает в новом потоке, в отличии от call MyFunc()

El Psy Congroo
 

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

Code
function MyFunc takes nothing returns nothing
      call TriggerSleepAction(99.99)
      call BJDebugMsg("Просто сообщение")
endfunction

function Start takes nothing returns nothing
      call MyFunc()     <------ Сначала запустится и выполнится функция MyFunc.
      call DestroyTrigger(T)     <------ Триггер T уничтожится через 99.99 секунд, по окончанию работы MyFunc и вывода "Просто сообщение".
endfunction

Также пусть есть такая конструкция:

Code
function MyFunc takes nothing returns nothing
      call TriggerSleepAction(99.99)
      call BJDebugMsg("Просто сообщение")
endfunction

function Start takes nothing returns nothing
      call ExecuteFunc("MyFunc")     <------ Мы запускаем функцию MyFunc и идем дальше.
      call DestroyTrigger(T)     <------ Триггер T уничтожится сразу, через 99.99 секунд мы получим сообщение "Просто сообщение".
endfunction

То есть в 1 случае (через call) мы ждем выполнение (99.99 секунд), во 2 просто запускаем и не ожидая переходим к уничтожению.
В инициализации это обычно используется для уменьшения нагрузки и времени, ведь все идет не по очереди, а одновременно.


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

lawsonДата: Вторник, 15 Февраля 2011, 23:19:56 | Сообщение # 9
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Спасбо теперь понял.

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

FaionДата: Суббота, 26 Февраля 2011, 11:26:57 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
DragoN, Ajaccio, вы б ему еще потоки начали объяснять...
lawson, да нефига ты не понял=) Короче говоря не трогай эту вещь, сломаешь все нафиг, функция не для новичков.


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

lawsonДата: Суббота, 26 Февраля 2011, 11:51:18 | Сообщение # 11
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Faion)
Короче говоря не трогай эту вещь

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


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

SirNikolasДата: Суббота, 26 Февраля 2011, 13:07:13 | Сообщение # 12
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Faion)
вы б ему еще потоки начали объяснять...
А мне можете объяснить? :)


 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Как работает и вообще что такое ExecuteFunc() (Вопрос по JASS)
  • Страница 1 из 1
  • 1
Поиск:

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