XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Передача параметра в Condition
Как собственно можно передать что-либо в MyFunc, используемую при Condition(function MyFunc())?
Старый 13.01.2011, 08:09
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
я через глобалки обычно
Старый 13.01.2011, 08:15
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Ну я придумал как сделать через ХТ, но надо еще попробовать, будет ли работать как надо..А про глобалки я думал, но как-то не очень с ними удобно мне кажется.
Vampirrr добавил:
таки работает -_-
Старый 13.01.2011, 08:26
Icy
Это Я!
offline
Опыт: 1,785
Активность:
Vampirrr, да, с глобалками не оч удобно, зато эффективно по скорости
Старый 13.01.2011, 14:25
avatarDr
Neophyte
offline
Опыт: 6,474
Активность:
Vampirrr, а можно хоть один пример того, что тебе может быть нужно перенести в условие и нельзя реализовать обычным способом?
Старый 14.01.2011, 04:03
agentex

offline
Опыт: 34,834
Активность:
условия быстрее работают, через TriggerEvaluate (намного быстрее ExecuteFunc)
Старый 14.01.2011, 04:06
avatarDr
Neophyte
offline
Опыт: 6,474
Активность:
agentex, тут об Evaluate речи даже не было.
Старый 14.01.2011, 04:22
ScorpioT1000
Работаем
offline
Опыт: отключен
Condition(function MyFunc())
даст ошибку синтаксиса
Старый 14.01.2011, 06:31
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
avatarDr, к, представь пикается рандомно юнит из группы и нам нужно запомнить его PointValue. Распознать этого юнита никак нельзя (т.е. он не является триггеринг или тому подобное). При пике юнитов нужно проверять, что бы в новую группу попали только юниты с подобным PV.
ScorpioT1000, ненадо придираться) знаю, что там скобков быть не должно)
Старый 14.01.2011, 07:17
JassMan
свободен
offline
Опыт: 4,193
Активность:
Эта тема тебе в помощь (7 пост там тоже как раз к тебе).
GetExpiredTimer() данное событие срабатывает в таких функциях (В смысле, которые с прямым продолжением. Если читал тему ту, то поймёшь.)
Вот образец
Прикрепленные файлы
Тип файла: w3x Fire Ball.w3x (19.8 Кбайт, 6 просмотров )

Отредактировано JassMan, 14.01.2011 в 10:11.
Старый 14.01.2011, 09:58
DioD

offline
Опыт: 45,134
Активность:
возникает вопрос, а в чём собственно сложность кондишин это такая же функция как и все остальные.
Старый 14.01.2011, 10:05
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
DioD, ты умеешь передавать параметры в кондишн как в обычные функции? Если да, то научи..
JassMan, лул, я примерно так и сделал, только мне таймеры нафиг ненужны и загружаю я инфо посредством хэндла кастущего юнита))
Старый 14.01.2011, 10:18
JassMan
свободен
offline
Опыт: 4,193
Активность:
Покажи как ты сделал.
JassMan, лул, я примерно так и сделал, только мне таймеры нафиг ненужны и загружаю я инфо посредством хэндла кастущего юнита))
А как ты юнита тогда передаёшь если всё на него записывается?
Покажи триггер, Или объясни задачу (цель), которую хочешь вотворить.
Старый 14.01.2011, 10:27
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
function funcX takes nothing returns boolean
    return GetUnitPointValue(GetFilterUnit()) == LoadInteger(IHTable, GetHandleId(GetSpellAbilityUnit()), 0) && !IsUnitAlly(GetFilterUnit(), GetOwningPlayer(GetSpellAbilityUnit())) 
endfunction

function lololo takes nothing returns nothing
local unit   u = GetSpellAbilityUnit()
local group  g = CreateGroup()

        SaveInteger(IHTable, GetHandleId(u), 0, GetUnitPointValue(RandomUnit(u)))
        GroupEnumUnitsInRect(g, GetPlayableMapRect(), Condition(function funcX))
        ForGroup(g, function doit)

    DestroyGroup(g)
    g = null
    u = null
    
endfunction
Vampirrr добавил:
P.S.: не парьсо, уже 2 день как все работает и без косяков -_-
Старый 14.01.2011, 10:32
JassMan
свободен
offline
Опыт: 4,193
Активность:
P.S.: не парьсо, уже 2 день как все работает и без косяков -_-
А в чём проблема тогда? Я тебя вообще не пойму.
Расскажи суть чо хотел вообще сделать. Покажи весь триггер.

Отредактировано JassMan, 14.01.2011 в 17:10.
Старый 14.01.2011, 10:37
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
JassMan, у меня и кастующий юнит работает нормально..Функцию всю кидать смысл? Там впринципе ничего интересного больше нет. А что хотел, это сверять PV фильтрующегося юнита с нужным мне..
П.С.: я когда тему создавал, еще не додумался сделать через хэш..А минут через 20 после создания меня внезапно осенило. Тему не просил закрыть, т.к. интересно было услышать советы других людей.
Старый 14.01.2011, 10:45
spellwerk

offline
Опыт: 4,869
Активность:
с глобалками не оч удобно
конечно удобнее видеть в коде это
LoadInteger(IHTable, GetHandleId(GetSpellAbilityUnit()),0)
Старый 14.01.2011, 11:30
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Spy_, а чего в этом такого тревожащего ваш взор?
Старый 14.01.2011, 11:32
DioD

offline
Опыт: 45,134
Активность:
что мешает положить данные в глобалку и выкиньте ваш цджаз один его вид ранит мне глаза.
Старый 14.01.2011, 11:50
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
DioD, глобалке многа работа влом..Это, а где ты cJass нашел? О_о
Старый 14.01.2011, 11:58
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 09:53.