Телепортация
|
|
lawson | Дата: Пятница, 16 Декабря 2011, 21:41:44 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| В общем столкнулся с проблемой. Оказывается что Юниты не могут одновременно использовать свиток телепортации на одно и тоже здание, даже если беру цель как координаты этого здания. Кто знает как решается эта проблема?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Ty3uK | Дата: Пятница, 16 Декабря 2011, 22:08:02 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Самый тупой ответ- делай координаты пункта назначения со смещением в 1. Должно сработать
|
|
|
|
lawson | Дата: Пятница, 16 Декабря 2011, 22:55:22 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Ty3uK) делай координаты пункта назначения со смещением в 1 Так дело в том что я делал так: брал координаты и немного GetRandomInt(0, 50) все равно не работает. Свиток он действует только на здания, и когда юнит хочет к нему портанутся здание принимает какой- то невидимый бафф и запрещает в данный момент портатся к нему. Как решить проблему без понятия.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 16 Декабря 2011, 23:13:45 |
|
|
|
Hexing | Дата: Суббота, 17 Декабря 2011, 14:10:03 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| lawson, С юнит кастует этот твой свиток Д создать даммика к которому также можно портануться(здание+тот же владелец) без модельки и с Москиты(абилка такая), указать юниту юзать свиток на этого даммика вместо цели, сделать даммику таймед лайф на время каста+пара сек и вуаля, башня готова даммика создать в позиции здания
|
|
|
|
Extremator | Дата: Суббота, 17 Декабря 2011, 14:13:43 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
| Hexing, я полагаю что то подобное проделано в доте... дяяяяяяя? ^^
|
|
|
|
Hexing | Дата: Суббота, 17 Декабря 2011, 17:36:53 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Extremator, в доте *** знает что проделано и гадать нет смысла, а ломать карты я не люблю
|
|
|
|
ogrbobr | Дата: Суббота, 17 Декабря 2011, 17:38:52 | Сообщение # 7 |
3 уровень
Группа: Пользователи
Сообщений: 42
Награды: 0
Репутация: 1
Блокировки:
| ТЕЛЕПОРТАЦИЯ В МАСЛООООООО РЕГЕНЕРАЦИЯ КАЛБАСЫЫЫЫ
|
|
|
|
Hexing | Дата: Суббота, 17 Декабря 2011, 18:20:10 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (ogrbobr) ТЕЛЕПОРТАЦИЯ В МАСЛООООООО РЕГЕНЕРАЦИЯ КАЛБАСЫЫЫЫ ИНФА 100% ПАССАНЫ!11
|
|
|
|
lawson | Дата: Суббота, 17 Декабря 2011, 18:56:41 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Hexing) С юнит кастует этот твой свиток Д создать даммика к которому также можно портануться(здание+тот же владелец) без модельки и с Москиты(абилка такая), указать юниту юзать свиток на этого даммика вместо цели, сделать даммику таймед лайф на время каста+пара сек и вуаля, башня готова даммика создать в позиции здания Дело в том что в способности свитка указаны только цели класса здания, тоесть я могу портаться только к зданиям. Поэтому с даммиком в качестве цели, твой вариант не подходит. Я думал написать тогда свою системку, но пока не знаю с чего начать.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SirNikolas | Дата: Суббота, 17 Декабря 2011, 18:57:18 | Сообщение # 10 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| В Доте сделано отдельным скиллом, чего и тебе советую, а то при стандартном свитке герой становится неуязвимым. Плюс еще время телепортации там зависит от того, сколько героев телепортируют на здание.
|
|
|
|
lawson | Дата: Суббота, 17 Декабря 2011, 18:58:49 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SirNikolas) В Доте сделано отдельным скиллом, чего и тебе советую, а то при стандартном свитке герой становится неуязвимым тЫ знаешь как, а то ковыряться с способностях времени нет. Поможешь?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SirNikolas | Дата: Суббота, 17 Декабря 2011, 19:03:01 | Сообщение # 12 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Могу на словах описать алгоритм. Делать времени нет. Вот после Нового Года я буду более-менее свободен.
|
|
|
|
lawson | Дата: Суббота, 17 Декабря 2011, 19:03:36 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SirNikolas) Могу на словах описать алгоритм Ну хоть так, я то у меня даже идей нет с чего начать.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Hexing | Дата: Суббота, 17 Декабря 2011, 19:09:40 | Сообщение # 14 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| lawson, даммику делаешь тип цели - Здание
|
|
|
|
lawson | Дата: Суббота, 17 Декабря 2011, 19:12:24 | Сообщение # 15 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Hexing) даммику делаешь тип цели - Здание Если других вариантов не будет, то придется писать код на телепортацию с даммиком.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SirNikolas | Дата: Суббота, 17 Декабря 2011, 19:13:44 | Сообщение # 16 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Триггер, срабатывающий при SPELL_EFFECT телепорта: Находим ближайшее к GetSpellTargetX/Y здание, запускаем одиночный таймер, к нему привязываем (хэш/struct) кастера, эффекты и координаты пункта назначения. К самому кастеру привязываем таймер.
Триггер, реагирующий на отмену телепорта: Если оставшееся время для таймера, привязанного к кастеру > .0 (потому что это событие сработает не только при отмене, но и при успешном завершении), удаляем эффекты, сбрасываем приказ юниту тупанул, он ведь уже отменен, уничтожаем таймер и все обнуляем.
Функция истечения таймера: Удаляем эффекты, перемещаем мага, уничтожаем таймер и все обнуляем.
Сообщение отредактировал SirNikolas - Суббота, 17 Декабря 2011, 19:20:37 |
|
|
|
lawson | Дата: Суббота, 17 Декабря 2011, 19:26:33 | Сообщение # 17 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SirNikolas) Находим ближайшее к GetSpellTargetX/Y здание ВСе понял кроме этого. Как это сделать? Через пик чтоли?
Добавлено (17 Декабрь 2011, 19:18:52) --------------------------------------------- Quote (SirNikolas) Триггер, реагирующий на отмену телепорта: И вот это, я не помню событие на прерывание. Типа: юнит закончил применение способности?
Добавлено (17 Декабрь 2011, 19:24:21) --------------------------------------------- Ладно попробую сделать через канал. Сейчас подумал, вроде как можно сделать область применения очень большую, поиск ближайшего здания + наложение эффектов и таймер на 3 секунды.
Добавлено (17 Декабрь 2011, 19:26:33) --------------------------------------------- SirNikolas, Спасибо за ответ вроде как бы понял, попробую. Хотя этим бы и закончилось, просто я думал что можно по проще, чтото поменять в сбособности свитка и все заработает как надо.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Суббота, 17 Декабря 2011, 19:27:27 |
|
|
|
SirNikolas | Дата: Суббота, 17 Декабря 2011, 19:33:34 | Сообщение # 18 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Code globals constant group PickGroup = CreateGroup() boolexpr Teleportation_Filter widget Teleportation_Target real Teleportation_Distance real Teleportation_X real Teleportation_Y endglobals
function Trig_Teleportation_Filter takes nothing returns boolean local unit u = GetFilterUnit() local real x = GetWidgetX(u) local real y = GetWidgetY(u) local real dist = (Teleportation_X - x) * (Teleportation_X - x) + (Teleportation_Y - y) * (Teleportation_Y - y) if dist < Teleportation_Distance /* А также проверки на то, является ли юнит зданием, союзником и т. д. */ then set Teleportation_Target = u set Teleportation_Distance = dist endif set u = null return false endfunction
function Trig_Teleportation_Actions takes nothing returns nothing //... set Teleportation_X = GetSpellTargetX() set Teleportation_Y = GetSpellTargetY() set Teleportation_Target = null set Teleportation_Distance = 100500. call GroupEnumUnitsInRange(PickGroup, x, y, 100500., Teleportation_Filter) //GetWidgetX/Y(Teleportation_Target) - пункт назначения //... endfunction
function InitTrig_Teleportation takes nothing returns nothing //Создаем триггер set Teleportation_Filter = Filter(function Trig_Teleportation_Filter) endfunction Добавлено (17 Декабрь 2011, 19:33:34) ---------------------------------------------
Code constant playerunitevent EVENT_PLAYER_UNIT_SPELL_ENDCAST = ConvertPlayerUnitEvent(276)
|
|
|
|
lawson | Дата: Суббота, 17 Декабря 2011, 19:33:45 | Сообщение # 19 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| SirNikolas, Ладно потом посмотрю.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Суббота, 17 Декабря 2011, 19:38:03 |
|
|
|
Hexing | Дата: Суббота, 17 Декабря 2011, 19:36:33 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (SirNikolas) constant playerunitevent EVENT_PLAYER_UNIT_SPELL_ENDCAST = ConvertPlayerUnitEvent(276) разве это не прописано в blizzard.j?
|
|
|
|
SirNikolas | Дата: Суббота, 17 Декабря 2011, 19:37:19 | Сообщение # 21 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Нет, это показывает, как найти ближайшее здание. Добавлено (17 Декабрь 2011, 19:37:19) ---------------------------------------------
Quote (Hexing) разве это не прописано в blizzard.j? Quote (lawson) И вот это, я не помню событие на прерывание.
|
|
|
|