Сейчас 15:21:16 Пятница, 3 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Bru  
Форум о Warcraft 3 » Прочее » Отвал » Точки и линии
Точки и линии
SunCreepДата: Воскресенье, 29 Мая 2011, 19:44:39 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
Пара вопросиков по точкам и линия:
1)как определить что на пути от точки А до точки Б есть повышение высоты,и установить на сколько выше.
2)где точка применения способности.Точка,в которую её применили,блинк к примеру.
3)как регистрировать вход вектор.Глупость сказал.Вот пример,поймёте сами.У меня молния натянута от точки А до точки Б,как регистрировать что юнит пересёк молнию.
 

AjaccioДата: Воскресенье, 29 Мая 2011, 19:58:39 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
1) С помощью GetLocationZ(location where) можно найти высоту нужной точки, а также сравнить её с любой другой.
2) Функции GetSpellTargetX() и GetSpellTargetY()... вроде их аналоги присутствуют и в GUI. Ещё есть GetSpellTargetLoc().
3) Самый очевидный вариант - много групп с небольшой периодичностью вдоль этой линии.


XOR EAX, EAX
MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
 

SunCreepДата: Воскресенье, 29 Мая 2011, 20:04:01 | Сообщение # 3
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
Ajaccio, это всё конечно хорошо,но если это jass то я его не знаю.Если это можно "пихнуть" в CS то как с этим работать потом?
 

[DUОS]Дата: Воскресенье, 29 Мая 2011, 20:10:58 | Сообщение # 4
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (SunCreep)
1)как определить что на пути от точки А до точки Б есть повышение высоты,и установить на сколько выше.

Code
function GetZDifference takes real x1, real y1, real x2, real y2 returns real
     local location loc1 = Location(x1,y1)    
     local location loc2 = Location(x2,y2)  
     local real z1 = GetLocationZ(loc1)
     local real z2 = GetLocationZ(loc2)
      
     call RemoveLocation(loc1)
     call RemoveLocation(loc2)
      
     set loc1 = null
     set loc2 = null
      
     if z1 >= z2 then
         return z1 - z2
     else
         return z2 - z1
     endif     
endfunction

Эта функция поможет тебе определить разницу высот двух точек.
Quote (SunCreep)
где точка применения способности.Точка,в которую её применили,блинк к примеру.

GetSpellTargetX() и GetSpellTargetY() получают координаты этой точки.
Quote (SunCreep)
У меня молния натянута от точки А до точки Б,как регистрировать что юнит пересёк молнию.

Определённой извращённой функцией:
Code
function TriggerRegisterUnitLineCross takes trigger trig, boolexpr filter, real x1, real y1, real x2, real y2 returns nothing
     local region r = CreateRegion()
     local real x = x1
     local real y = y1
     local boolean b == false

     loop
         exitwhen b == true
         call RegionAddCell(r,x,y)
         if x1 > x2 then
             set x = x - .01
         else
             set x = x + .01
         endif
         if y1 > y2 then
             set y = y - .01
         else
             set y = y + .01
         endif
         set b = (x == x2 and y == y2)
     endloop
      
     call TriggerRegisterEnterRegion(trig,r,filter)     
       
     set r = null
endfunction


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

CHLSNДата: Воскресенье, 29 Мая 2011, 20:13:03 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1627
Награды: 0
Репутация: 132
Блокировки:
SunCreep, ну, как бы довольно просто...
Юнит находится в области Длина_молнии точка_А
И
Юнит находится в области Длина_молнии точка_Б
И
Абс( Угол между Координаты_точки_Б и Координаты_юнита ) == 180 - Абс( Угол между Координаты_точки_А и Координаты_юнита )

Это условие нахождения юнита в молнии... Это если нужно отследить проход через молнию и в ту, и в другую сторону.




Я в контакте и на warcraft3ft.info.
Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?


Сообщение отредактировал CHLSN - Воскресенье, 29 Мая 2011, 20:15:45
 

SunCreepДата: Воскресенье, 29 Мая 2011, 20:22:54 | Сообщение # 6
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
[DUОS], мне нужно не разницу двух высот,а определить все перепады на пути от одной точки до другой.Вот пример.
Лучник стреляет стрелой.Включаем логику,стрела не может лететь и обогнуть гору сверху.Она должна лететь над ней.Следовательно нужно знать что там есть склон чтоб правильно устанавливать ей высоту.Вообще я хотел для этого)).
А вот с функцией поподробнее.Я уже говорил что из джасса я могу 2 вещи:Либо перевести триггер гуи на джасс,либо заменить цыферку,то бишь нечего.Но мне стало интересно если на джассе это сделать можно одной функцией.
Нужно просто вписать данный код,создать переменные типа Регион,и 2 реальные.А дальше у меня только догадки,хотя и до этого я не особо уверен))
И что касается
Quote (|DUОS|)
GetSpellTargetX() и GetSpellTargetY()

Это в cs можно употребить?И если да то как потом ссылаться на эту точку.
 

Форум о Warcraft 3 » Прочее » Отвал » Точки и линии
  • Страница 1 из 1
  • 1
Поиск:

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