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

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

Закрытая тема
 
ScorpioT1000
Работаем
offline
Опыт: отключен
prog уже ответил, почему не стоит юзать глобалки из bj =) могу только добавить, что bj может быть импортировано собственное, абсолютно с иными функциями и глобальными переменными.
ScorpioT1000 добавил:
проще создать способность пустышку с аттачем и выдавать ее.
а если их тысяча?
Старый 24.04.2012, 12:24
prog

offline
Опыт: 32,865
Активность:
ScorpioT1000, кого тысяча, необходимых аттачей или юнитов, к которым надо крепить аттач? В вопросе автора было четко обозначено сколько у него вариантов аттача - ровно два, также автор явно не блещет пока знаниями jass, поэтому я посчитал возможным высказать предположение что автору будет проще воспользоваться способностями чем крепить аттач через эффект.
Для гипотетической ситуации когда вариантов аттача неопределенное количество, как и количество различных и одинаковых одновременных аттачей к одному юниту, потребуется куда более сложная система чем просто запоминание эффекта по его модели. К примеру, одну модель можно прикрепить несколько раз к одному юниту, благо, точек крепления хватает. В таком случае сохранение эффекта по имени модели оказывается несостоятельным ввиду потери информации об аттачах с одинаковой моделью, прикрепленным к разным точкам крепления.
Старый 24.04.2012, 12:43
ScorpioT1000
Работаем
offline
Опыт: отключен
prog, это решается дописыванием пары слов =)
ScorpioT1000 добавил:
т.е. вот, не вижу ничего "гораздо более сложного", всегда надо стремиться к тому, "что юзер знает"

function AddEffect takes unit u, string model, string attach returns nothing
    call SaveEffectHandle(hash,GetHandleId(u),StringHash(model+attach),AddSpecialEffectTarget(model,u,attach)​)
endfunction

function RemoveEffect takes unit u, string model, string attach returns nothing
    call DestroyEffect(LoadEffectHandle(hash,GetHandleId(u),StringHash(model+attach)))
    call RemoveSavedHandle(hash,GetHandleId(u),StringHash(model+attach))
endfunction

Отредактировано ScorpioT1000, 24.04.2012 в 12:57.
Старый 24.04.2012, 12:52
prog

offline
Опыт: 32,865
Активность:
ScorpioT1000, а как на счет составных аттачей, включающих в себя несколько моделей? каждый раз прописывать добавление и удаление всех составляющих это с ума сойти можно.
Старый 24.04.2012, 13:35
ScorpioT1000
Работаем
offline
Опыт: отключен
можно сделать уборку мусора:
globals
    effect AddEffectAndRemoveGarbageCollectorEffectId = null
    real AddEffectAndRemoveGarbageCollectorEffectDelay = 1.0
endglobals

function AddEffectAndRemoveGarbageCollector takes nothing returns nothing
    local effect fx = AddEffectAndRemoveGarbageCollectorEffectId
    call TriggerSleepAction(AddEffectAndRemoveGarbageCollectorEffectDelay)
    call DestroyEffect(fx)
endfunction

function AddEffectAndRemove takes unit u, string model, string attach, real timeToLife returns nothing
    set AddEffectAndRemoveGarbageCollectorEffectId = AddSpecialEffectTarget(model,u,attach)
    call SaveEffectHandle(hash,GetHandleId(u),StringHash(model+attach),AddEffectAndRemoveGarbageCollectorEffe​ctId)
    set AddEffectAndRemoveGarbageCollectorEffectDelay = timeToLife
    call ExecuteFunc("AddEffectAndRemoveGarbageCollector")
endfunction
это кстати не баловство, я реально применял данную технологию много раз, может и пригодится кому
Старый 24.04.2012, 13:42
prog

offline
Опыт: 32,865
Активность:
ScorpioT1000, хорошая штука, тоже так делал, но бесполезна для постоянных аттачей, не имеющих времени жизни, а временные аттачи и в хештаблицу записывать смысла нет.
И вообще, предлагаю завязывать с этим - еще несколько допущений и конструктивное обсуждение грозит перейти в оффтопик.
Старый 24.04.2012, 14:14
ScorpioT1000
Работаем
offline
Опыт: отключен
А вы в курсе что автор тролль?)
Старый 24.04.2012, 14:22
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Судя по всему автор еще слишком слабо освоил триггеры
Читать здесь
Далее автору(если он будет уверен в своих знаниях и захочет познать светлую сторону силы) можно ознакомиться со статьей, обучающей основам джасса
Читать здесь
Затем в целях создания "локальных эффектов знака вопроса\восклицания" автор может ознакомиться с данной статьей
Как только он вкурит вышеперечисленные статьи,он сможет приступить к неспешному раскуриванию вышеприведенных в теме примеров реализации заданного автором вопроса
Т.к. этот процесс будет небыстрым и в основном рассчитан на самостоятельное изучение(ибо все что надо дано выше),закрываю тему во избежание оффтопа
Старый 24.04.2012, 20:26
Закрытая тема

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

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

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

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



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