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

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

Ответ
 
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Add Buff System
Вот выкладываю сюда одну из своих наработок. Может кому пригодится.
Система проста. Она накладывает нужный вам баф на опредленного юнита.
» Код
library buf initializer initbuffs {

private integer array Buff
private constant integer id = 'h000'

nothing buffs( unit d, integer s) {
unit b


b = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE),id,0.00,0.00,0.00)
UnitApplyTimedLife(b, 'BTLF', 0.50)
UnitAddAbility(b, Buff[s])
IssueTargetOrder( b, "bloodlust", d )
d = null
}

nothing dispel(unit u) {
call UnitRemoveBuffsEx(u, true, true, true, true, false, false, false)
u=null
}

nothing initbuffs() {
Buff[0] = 'A000'
 Buff[1] = 'A001'
Buff[2] = 'A002'
  }
}
Обновил систему. Переписал полностью с 0 на cJass. Работает нормально, утечек нет.
Для работы требуется AdicHelper.
Прикрепленные файлы
Тип файла: w3x AddBuffSytem 2.3.w3x (12.2 Кбайт, 25 просмотров )

Отредактировано Oxygen D, 07.08.2011 в 12:57.
Старый 13.06.2011, 17:05
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Посмотрите пожалуйста, кому понравится говорите. А то у меня есть идея создание такой же, только более масштабной и функциональной.
Старый 07.08.2011, 00:39
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Это не система, а просто дамми каст. Причем кривой. Не муишно, ибо TriggerSleepAction (0.3). Короче плохо.
Старый 07.08.2011, 00:52
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Использовать сжасс и не знать как пользоваться таймерами - сильно
Кому такая система понадобится? Легче и надёжней всё сделать своими руками,без сжасса,без TriggerSleepAction
Старый 07.08.2011, 12:07
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Nerevar, щас все будет. Я оказывается умею ими пользоваться. Но я щас сделаю не так.
Oxygen D добавил:
Все обновил теперь MUI изгнал TriggerSleepAction
Старый 07.08.2011, 12:34
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
банальный даммикаст. система - это нечто большее. у тебя ни бд нету, ничего.
Clamp добавил:
nothing dispel(unit u) 
{
    call UnitRemoveBuffsEx(u, true, true, true, true, false, false, false)
    u=null
}
сидел и смеялся...
Clamp добавил:
больше обнулений аргументов!!!!
Старый 07.08.2011, 12:38
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Clamp, действительно, это не то, что система это просто упрощение накладывания бафа. Вообщем сокращенный для пользования дамми каст.
Старый 07.08.2011, 12:40
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
    nothing buffs(location l, unit d, integer s)
    {
        unit b
        b = CreateUnitAtLoc(Player(PLAYER_NEUTRAL_PASSIVE), 'h000', l, 0.00)
        call UnitApplyTimedLife(b, 'BTLF', 0.50)
        UnitAddAbility(b, Buff[s])
        IssueTargetOrder( b, "bloodlust", d )
        RemoveLocation(l)
        d = null
        l = null
    }
тут тоже можно поиздеваться, но я просто скажу, что точка, мягко говоря, не нужна
Старый 07.08.2011, 12:40
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
и ты уверен, что все юзеры делают абилки на основе кровожадности?
Старый 07.08.2011, 12:41
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Clamp, да ее можно убрать и поставить для спела рендж 1000000, но мне как то лень.
Старый 07.08.2011, 12:42
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Oxygen_D:
ее можно убрать и поставить для спела рендж 1000000
из первого ни разу не следует второе.
Oxygen_D:
но мне как то лень.
тему создавать не лень же было?
Старый 07.08.2011, 12:43
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Clamp:
и ты уверен, что все юзеры делают абилки на основе кровожадности?
А причем здесь это? Это просто как дополнение, для накладки бафа. Кровожадность просто проще использовать для добавления бафа к юниту, нежели пассивки или тому подобное.
Старый 07.08.2011, 12:43
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Oxygen_D:
Это просто как дополнение, для накладки бафа.
IssueTargetOrder( b, "bloodlust", d )
говорит об обратном.
Старый 07.08.2011, 12:44
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Непонятно где использовать систему - ведь может понадобиться несбиваемый баф,или стакающийся(ведь может на цели висеть ещё один баф на основе кровожадности),точки нужно заменить на координаты
Проще сделать самому то что нужно в конкретной ситуации
Старый 07.08.2011, 12:47
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Обновил, теперь не надо указывать точку. Создается юнит по координатам x0 y0 и кастует от туда.
Старый 07.08.2011, 12:50
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Clamp, тонко

Oxygen D, ну а в общем, Clamp, прав. Система, это код который что то систематизирует, у системы как правило движок(ядро) и интерфейс с которым должен работать юзверь. Система не должна требовать допиливания под себя, а наоборот, должна быть легко настраиваемой. Т.е. должна упрощать какое то сложное действие, до использования 1 строчки, вместо 100500.
Старый 07.08.2011, 12:52
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Clamp:
IssueTargetOrder( b, "bloodlust", d )
помимо этого тебе еще надо создать того кто кастует, дать скил и потом еще его и убрать. А так все в 1 строчке. Что тебе не нравится?
Oxygen D добавил:
Faion, в моей наработке ты вместо
nothing buffs( unit d, integer s) {
unit b


b = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE),id,0.00,0.00,0.00)
UnitApplyTimedLife(b, 'BTLF', 0.50)
UnitAddAbility(b, Buff[s])
IssueTargetOrder( b, "bloodlust", d )
d = null
}
будешь писать только
call buffs(unit,  1)
это превращает 8 строк в 1. Я не говорю, что это поистине, что то крутое, но это все же упрощает работу.
Старый 07.08.2011, 12:55
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Oxygen D, ._. объясню по другому. У всех есть свои дамми касты, причем не кривые. А нубы тупо не разберутся. Т.е. это никому не пригодится.

Система бафа, это система которая будет изменять параметры юнита по средствам итемскилов и поддерживать параллельно множество "баффов", и корректно ремувать.
Старый 07.08.2011, 13:00
Ответ

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

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

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

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



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