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

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

Ответ
 
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
X Lightning System

X Lightning System - система, добавляющая новые возможности стандартному типу молнии, такие как:
  • привязывание молнии к двум юнитам;
  • создание молнии на промежуток времени;
  • плавное изменение цвета и прозрачности молнии;
  • создание молнии со случайным эффектом.
Может использоваться при создании триггерных спеллов, синематиков или для дополнительного декорирования.

Внимание! Для работы системы требуется JassHelper! (входит в состав Jass NewGen Pack)



История версий

» v0.2 (23 June 2008)
  • Добавлены следующие функции:
    • XLS_SetXOffset
    • XLS_SetYOffset
    • XLS_SetMoveType
    • XLS_SetLifeTime
  • Изменены названия некоторых функций:
    • XLS_ChangeUnits => XLS_SetUnits
    • XLS_ChangeCoords => XLS_SetCoords
    • XLS_ChangeZOffset => XLS_SetZOffset
    • XLS_ChangeColorTimed => XLS_SetColorTimed
    • XLS_GetRandomLightning => XLS_GetRandomLn
  • Улучшена структура хранения данных
  • Улучшен спелл-пример Magic Rope
  • Улучшена функция XLS_SetColorTimed

» v0.1 (20 June 2008)
  • Первая public версия

---
Наработка добавлена на сайт как X Lightning System.
Награда: +259 очков опыта
Оценка: 7.2/10
Прикрепленные файлы
Тип файла: w3x XLightning v0.1.w3x (40.1 Кбайт, 179 просмотров )
Тип файла: w3x XLightning v0.2.w3x (42.4 Кбайт, 263 просмотров )

Отредактировано ShadoW DaemoN, 23.06.2008 в 19:17.
Старый 20.06.2008, 13:35
ScorpioT1000
Работаем
online
Опыт: отключен
Хм, точнее для всех мейкеров требуется JassNewGenPack. А для геймеров нет.(насколько я знаю)

ShadoW DaemoN, тебе я доверяю, заливать стоит?

ScorpioT1000 добавил:
Сделать бы еще чтобы к нескольки точкам привязывалась пока идет до цели ^^
Старый 20.06.2008, 23:30
Void

offline
Опыт: 1,232
Активность:
Тоже хотел такую системку реализовать на кеше, а вот вариант по лучше.
Старый 21.06.2008, 13:18
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
ScorpioT1000, ни разу не видел систем "для игроков", т.к. они только для мейкеров. Кстати, основное возможное место применения - триггерные спеллы.
Как будет время - посижу над новой версией. А пока можно эту залить.
Цитата:
Сделать бы еще чтобы к нескольки точкам привязывалась пока идет до цели ^^

Создавай дамми в нужных точках и связывай молниями)

Хмм, такое ощущение, что ты карту и не зрил)

Отредактировано ShadoW DaemoN, 21.06.2008 в 16:17.
Старый 21.06.2008, 16:09
Arcane

offline
Опыт: 174
Активность:
Делал такую системку на кэше, чтобы можно было привязывать молнии к объектам, создание молний на время и с плавным исчезновением...
Прекрасный код, должен сказать... но с генпаком мне работать еще рано =/
Даже предложить нечего) все есть в этой системе.
Старый 21.06.2008, 18:25
J
expert
offline
Опыт: 48,747
Активность:
Цитата:
[0x00], [0x01], [0x02]
абыр, абыр...

ну, принцепи система не сложная, ну на среднем уровне, ну вообщем это не важно, хвалю за код в читаемом виде и высокий уровень доступности системы для человека с ней незнакомого

Jon добавил:
Код:
set .v[0x01] = .v[0x05]
set .v[0x02] = .v[0x06]
set .v[0x03] = .v[0x07]
set .v[0x04] = .v[0x08]
set .v[0x05] = r / 255
set .v[0x06] = g / 255
set .v[0x07] = b / 255
set .v[0x08] = a / 255

а зачем начальное и канечнное значение сохраняеш? там ведь только начального будет достаточно, в самом таймере ты же сам эти переменые (1-4) постепено приравниваеш к конечному результату...
а в том виде что сейчас вроде если поставить изменение цвета на 4 сек, а через 2 сек поставть другое изменение цвета, то цвет "моргнет" на другой..
скажи если я путаю, но мне проверять лень:)
Старый 21.06.2008, 19:34
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Jon, хмм, да кстати, можно обойтись и без них=) это вообще-то сделано, чтобы лишний раз функции не дергать (GetLightningColorR/G/B/A).
Хексушки как индексы/параметры в некоторых случаях смотрятся лучше + выравнивать пробелами не нужно ^_^
Хмм, я сейчас еще подумал, что неплохо было бы заинлайнить структуру color ^_^ Вот, уже находится материал для работы над следующей версией.
Старый 21.06.2008, 19:51
ScorpioT1000
Работаем
online
Опыт: отключен
Цитата:
Хмм, такое ощущение, что ты карту и не зрил)

Времени пока нет

ScorpioT1000 добавил:
Залито. см п.п.
Старый 21.06.2008, 23:57
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Залил версию 0.2, смотреть первый пост.
Старый 23.06.2008, 19:23
J
expert
offline
Опыт: 48,747
Активность:
У меня есть хорошая идея...
Почему бы тебе не модернизировать структуру pos?

Правдо прийдется менять почти все основательно, но мне кажется так будет лучше...

Зделать привязывание молнии не к юнитам/точкам, а именно к обьектам pos.
А вот самим pos сделать кучу методов их упровляния, как например привязывание к юнитам, изменение расположения и т.д.

к томуже можно будет сделать дополнительные функции типа SetPosNewPositionTimed(pos, X, Y, Z, timed), т.е. pos будет постепено перемещатся в эту точку за это время (или альтернативу с функцией, но на скорость), и не только на точку, а также на любой widget

В глобальном таймере сначало через цикл обновляй все pos, также используй какуюнит бул переменую в структуре pos чтобы значть изменилось состояние обьекта или нет, а потом у молний проверяй, если одна из двух pos изменилась - перемещай молнию

ну и все в такомже духе, сам придумаеш...

да и сама pos уже будет весьма полезна не только для молний но и для обычных вне библиотечных кодов... т.е. посути зделалаеш свою мини прожектил системку...

Отредактировано Jon, 23.06.2008 в 21:42.
Старый 23.06.2008, 21:32
ScorpioT1000
Работаем
online
Опыт: отключен
Один вопрос - нахрена? Чтобы не зависило от левых объектов?
Старый 23.06.2008, 23:37
J
expert
offline
Опыт: 48,747
Активность:
ScorpioT1000 ты это про саму систему или про мое предложение?
если про саму систему, то примерно да, в том виде что щас никому это ненужно, молнии не шибко часто используемый обьект...
если насчет моего предложения то это кокраз расширяет сферу применения системы, позволяет вшить в нее не только молнии но и какиенибудь другие левые фичи)

Я кстате уже начинал делать чтото подобное в таком виде, только начинал с реализации физики, т.е. отдельно стрктурами матрицы, квантернионы, боксы, полегоны, сферы, и приатаченые к ним юниты или т.п. ... но не закончил только из-за нехватки времени, опыта и лени
Старый 23.06.2008, 23:58
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Jon, скорее всего, он высказался относительно твоего поста (см. второе предложение).

Хмм, это довольно интересно. С виджетами, кстати, достаточно заменить в системе пару переменных и названия ф-ий, но есть проблема в виде определения высоты юнита (я не проверял поведение функции GetUnitFlyHeight() с параметром типа виджет, скорее всего работать не будет).
Насчет переноса всего стаффа в класс pos - я над этим еще успею подумать...
Каких-то левых фич не нужно, нужны такие фичи, которых нету у обычной молнии, но нравятся юзерам ^^

Сейчас более важным проектом занят, так что в ближайшее время обновлений системы не намечается. Планирую в следующих версиях добавить рисование кривых и фигур с помощью молний и прикрутить систему индексирования (чтобы привязать индекс х-молний к юниту).
Старый 24.06.2008, 19:19
ScorpioT1000
Работаем
online
Опыт: отключен
Jon, ты не закончил из-за ацкой оболочки - 100% =)

ScorpioT1000 добавил:
Обновлено!
Старый 30.06.2008, 03:46
ChaosVortex

offline
Опыт: 21
Активность:
скажате когда система будет доработана на 1.24+ ?
Старый 27.08.2010, 22:57
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Оу, не думал, что система будет кому-нибудь нужна) Обновлю в ближайшем будущем (если не забуду).
Старый 28.08.2010, 14:26
XOR

offline
Опыт: 38,284
Активность:
добавь привязку к коордам)
Старый 28.08.2010, 14:30
ChaosVortex

offline
Опыт: 21
Активность:
я обнаружил баг, при значении
Код:
public constant real    TIMER_PERIOD     = .02
или .03 в таком коде
Код:
local unit caster = GetTriggerUnit()
local group g=CreateGroup()
local unit un
call GroupEnumUnitsInRange(g , GetSpellTargetX() , GetSpellTargetY() , 400 , null)
loop
    set un = FirstOfGroup(g)
    exitwhen un == null
    if IsUnitEnemy(un , GetOwningPlayer(caster)) and IsUnitDeadBJ(un) == false then
    call XLS_CreateOnUnits(XLS_LIFE_STEAL, caster, un, 1.10)
        call GroupRemoveUnit(g , un)
    else
        call GroupRemoveUnit(g , un)
    endif
    call PolledWait(0.10)
    endloop
call GroupClear(g)
call DestroyGroup(g)
вылетает фатал когда исчезает последняя созданная молния, при значении .04 все норм, баг как-то связан с
Код:
call MoveLightningEx(xl.ln, false, p_1.x, p_1.y, p_1.z, p_2.x, p_2.y, p_2.z)
. Во время дебага спамится сообщение Double free of type: xlight

Отредактировано ChaosVortex, 11.09.2010 в 14:29.
Старый 29.08.2010, 10:41
RSQR

offline
Опыт: 29,316
Активность:
да да обновляй ^.^ посмотреть давно хотел в действии
Старый 30.03.2011, 19:46
Ответ

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

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

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

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



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