Сейчас 13:26:57 Четверг, 26 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Телепортация
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. Должно сработать

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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, в доте *** знает что проделано buba
и гадать нет смысла, а ломать карты я не люблю


 

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)
И вот это, я не помню событие на прерывание.


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz