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

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

Ответ
 
DmCreator

offline
Опыт: 3,205
Активность:
Cast System
Система, в которой реализованы "полуфабрикаты" абилок - стандартные способности, имеющие возможность устанавливать динамически изменяющийся урон (ну или на что угодно, если вы это добавите)
Из "полуфабрикатов" можно (да и нужно - для того и система) делать более сложные абилки.
СangeLog:
v0.6:
  1. добавлен новый тип снарядов: "Дота"
  2. добавлен новый тип снарядов: "Дамми-каст" - это простые снаряды (следующие за целью), которые при попадании накладывают на цель нужное заклинание
  3. добавлено отображение урона, использующее цвет игрока, юнит которого произнёс заклинание
  4. добавлены тестовые способности (для "Доты" и "Дамми-каста")
  5. подправлен Обработчик - теперь волны не атакуют мёртвых юнитов
  6. исправлена способность-пример "Элемент воды" - теперь урон наносится правильно
  7. теперь зависшие снаряды удаляются через некоторое время
v0.5:
  1. добавлена возможность устанавливать стан (с любым временем действия)
  2. редактированны функции созания снаряда - теперь снаряд можно создать в любой точке
  3. добавлена способность-пример "Элемент воды"
v0.4:
  1. отредактированна способность-пример "Нова"
  2. добавлена способность-пример "Веерный бросок"
  3. оптимизирован Обработчик: количество утечек снизилось на 80 - 90%
  4. добавлена функция, возвращающая расстояние между точками, заданными по координатам
  5. исправлена ошибка, из-за которой урон в системе использовался только от одного героя
v0.3:
  1. коррекция обработчика, залатано много дыр, утечек
  2. новый снаряд: "перво-встречный"
  3. исправлен снаряд "волна"
  4. новая система движения снарядов - более красивая и прямая
  5. сделаны нормальные тесты через абилки
  6. добавлена способность-пример "Нова"
  7. добавлена функция, возвращающая угол между двумя точками
v0.2:
  1. отказ от RB, новая система индексирования снарядов
  2. исправление некоторых багов
В функции передаются статистика, которая влияет на урон; множитель урона; логическая переменная, определяющая "учитывать ли бонусы хар-ки"; модель снаряда (строкой с путём к модели); масштабирование снаряда; ширина волны (ну это только для волновой абилки); ну и координаты цели и юнит-кастер/точки каста; расстояние действия (волна и "перво-встречный" снаряд)
Все на стандартном жассе, т.е. жнгп(JNGP) не нужен.
Прикрепленные файлы
Тип файла: w3x CastSystem v0.3.w3x (42.3 Кбайт, 33 просмотров )
Тип файла: w3x CastSystem v0.4.w3x (44.6 Кбайт, 21 просмотров )
Тип файла: w3x CastSystem v0.5.w3x (49.3 Кбайт, 21 просмотров )
Тип файла: w3x CastSystem v0.6.w3x (60.2 Кбайт, 163 просмотров )

Отредактировано DmCreator, 07.09.2009 в 20:38.
Старый 02.09.2009, 23:50
ZregerZ
Мы - лёд!
offline
Опыт: 7,029
Активность:
Эх в общем переустановил вар, но волны всёравно цветные) и идут не ~ 50 каста а с 10 теперь)
Старый 03.09.2009, 15:17
DmCreator

offline
Опыт: 3,205
Активность:
ZregerZ, у меня ничего подобного нету, подождём еще кого-нить, кто посмотрит у себя на компе
DmCreator добавил:
ZregerZ, а сделай скрин этих волн
Старый 03.09.2009, 15:30
ZregerZ
Мы - лёд!
offline
Опыт: 7,029
Активность:
это действительно хорошая система а не бред т.к. можно не морочиться картостроителю с триггерами а просто задать параметры.

Отредактировано ZregerZ, 03.09.2009 в 15:42.
Старый 03.09.2009, 15:34
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Если честно, то я так и не понял, зачем это нужно. Нажимаю циферку, и вбок летит непонятный кривой снаряд, который не наносит никого урона ?
Старый 03.09.2009, 15:46
DmCreator

offline
Опыт: 3,205
Активность:
PlayerDark, в бок летит снаряд, наносящий урон всем встречным юнитам, аля Волна Силы!
В триггерах так просто не рассчитать время нанесения урона, а здесь это происходит само, да и на урон можно воздействовать (а это позволяет делать нормальные предметы на spd)
вообще вся эта система сделана для того, чтобы характеристики героя, его здоровье и мана, его предметы могли влиять на заклинания

Отредактировано Hellfim, 03.09.2009 в 16:19.
Старый 03.09.2009, 15:51
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Для этого легче делеать триггерные заклинания самому. А снаряд кривой кстати, сами проверьте.
PS код весьма кривой и неоптимизированный хотя бы на вид.
Старый 03.09.2009, 15:53
DmCreator

offline
Опыт: 3,205
Активность:
PlayerDark, не снаряд кривой, а его движение - т.к. он и сам двигается и ещё подталкивается, я это убираю
где код кривой? тебе функции вара не нравятся?

Отредактировано Hellfim, 03.09.2009 в 16:20.
Старый 03.09.2009, 15:55
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
DmCreator, юзаются ненужные (совсем !) бж функции - оболочки, сам код вобще совершенно не гибкий и как таковой системой не является, является триггерной реализацией двух спеллов.
Старый 03.09.2009, 16:00
DmCreator

offline
Опыт: 3,205
Активность:
PlayerDark, пожалуйста, объясни мне, глупому недочеловеку, где код долген "гнуться"?
как таковой системой не является, является триггерной реализацией двух спеллов.
я пишу это для АоСа, где урон от абилок динамический ! в этой системе реализованы стандартные "полуфабрикаты" абилок: они летают, наносят урон, имеют свои настройки
из этих "полуфабрикатов" я в карте делаю более сложные абилки
Например любая "Нова" легко реализуется этой системой (в след версии выложу нужный для этого полуфабрикат)
юзаются ненужные (совсем !) бж функции - оболочки
и что? что это меняет? страшно-убийственные утечки появятся? это же для способностей героев, а они не каждые 0.00001 секунды используются и эти утечки или подтормаживания никак невидны и никак не мешают. я их конечно пытаюсь избегать, но ничего плохого не вижу, можешь просто считать, что часть системы написана на GUI
а вот ты - умный, так скачай, исправь/убери и выложи (ну если тебе это надо) и скажи всем какой я глупый

Отредактировано DmCreator, 03.09.2009 в 22:46.
Старый 03.09.2009, 22:40
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
DmCreator,
1) Если пишешь только для себя - зачем выкладываешь ?
2)
Цитата:
и что? что это меняет? страшно-убийственные утечки появятся? это же для способностей героев, а они не каждые 0.00001 секунды используются и эти утечки или подтормаживания никак невидны и никак не мешают

Скажи это Адольфу.
3)зачем оставлять неоптимизированный код, если его можно легко исправить ?
Старый 04.09.2009, 14:57
DmCreator

offline
Опыт: 3,205
Активность:
PlayerDark, вот новый код выложил, с нормальными тестами, исправленный, убрал утечки, залотал много дыр, дополнил, чуть-чуть оптимизировал
насчёт неоптимизированности - я что-то поменял, но ты мне конкретно тыкни пальцем, где надо оптимизировать (и bj-функция у меня только одна использовалась - я её пока оставил, но заменить легко)
Если пишешь только для себя - зачем выкладываешь ?
  1. ну мне показалось, что эта система вполне может многим пригодиться, т.к. она расширяет возможность способностей
  2. чтобы умные люди мне говорили где дыры, которых я не заметил/не знаю
  3. да и поделиться не жалко

Отредактировано DmCreator, 04.09.2009 в 22:47.
Старый 04.09.2009, 18:47
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Там все еще остаются ненужные БЖ функции
например
IsUnitDeadBJ(u), GroupRemoveUnitSimple, UnitDamageTargetBJ итд. скачай ЖНГП и посмотри.
Старый 04.09.2009, 19:01
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
неудаляемые локации вроде
(DistanceBetweenPoints(GetUnitLoc(GetEnumUnit()), GetUnitLoc(u)) <= 75
Старый 04.09.2009, 19:01
DmCreator

offline
Опыт: 3,205
Активность:
PlayerDark, если я не ошибаюсь (что возможно), то Bj-функции - это функции, внутри которых просто вызываются другие функции и больше ничего, т.е. просто тратят время
DistancaBetweenPoints - принято, я свою функцию напишу
AngleBetweenPoints уже написан (там надо только очистку функция добавить)

Отредактировано DmCreator, 04.09.2009 в 19:16.
Старый 04.09.2009, 19:04
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
DmCreator, не это, GetUnitLoc(GetEnumUnit()), GetUnitLoc(u), вот это. Ты получаешь две точки GetUnitLoc, и не удаляешь их. Если юзать DistanceBetweenPoints то нужно так
local location l1 = GetUnitLoc(GetEnumUnit())
local location l2 = GetUnitLoc(u)
(DistanceBetweenPoints(l1, l2) <= 75
call RemoveLocation(l1)
call RemoveLocation(l2)
set l1 = null
set l2 = null
Старый 04.09.2009, 19:10
DmCreator

offline
Опыт: 3,205
Активность:
PlayerDark, эм..ну тебе лучше знать. Ладно, так и сделаю
ещё есть что-нить исправить?
Старый 04.09.2009, 19:15
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
DmCreator, да, отказаться от точек вообще и перейти на координаты.
Старый 04.09.2009, 20:01
PlayerDark
Coraline
offline
Опыт: 10,569
Активность:
Hellfim, ну это понятно, но сложнее, тк без жнгп в некоторых случаях обойтись трудно.
Старый 04.09.2009, 20:07
DmCreator

offline
Опыт: 3,205
Активность:
Hellfim, это возможно, а функция Location(x,y) не создаёт неудаляемой точки?
Старый 04.09.2009, 20:08
Ответ

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

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

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

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



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