Cистема атаки с разных сторон
|
|
pirat9629 | Дата: Четверг, 11 Ноября 2010, 09:03:14 | Сообщение # 26 |
7 уровень
Группа: Проверенные
Сообщений: 422
Награды: 0
Репутация: 102
Блокировки:
| удар справа >= 45 <= 135 удар в лицо >= 135 <=225 удар слева >= 225 <= 315 удар сзади >=315 <= 45
сделаю минекрафт сервер на заказ. платно
|
|
|
|
DarkVader | Дата: Четверг, 11 Ноября 2010, 16:32:54 | Сообщение # 27 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| Ну что наконец то представляю вашему вниманию обновленную функцию определения стороны атаки. Немного отличается от превоначальной, функция корректно работает для юнитов с дальней атакой, позволяет создавать уникальные диапазоны значений для каждой стороны атаки, по сути эта функциия имеет более расширенное применение нежели преведущая. Схема практически таже, но вместо угла поворота атакующего используется угол между атакуемым и атакующим, то есть атака воспринимается как вектор от атакующего к атакуемому, в результате возможно для применения спелов с Аое или других схожих с атакой не по углу поворота атакующего. Пример настроен на углы атаки для каждой стороны в 90 градусов. Для изменения углов необходим небольшой несложный пререрасчет=) Code
function BackStab takes unit caster , unit target returns integer local real a = GetUnitFacing( target ) local real b = Atan2( GetUnitY( caster ) - GetUnitY( target ), GetUnitX( caster ) - GetUnitX( target ) ) * bj_RADTODEG local real angle = a - b // следующие условия определяют удар в лицо if( angle >= -45 and angle <= 0) then return 1 elseif ( angle > 0 and angle <= 45 ) then return 1 elseif ( angle >= 315 and angle <= 405 ) then return 1 // следующие условия определяют удар справа elseif ( angle > 45 and angle < 135 ) then return 2 elseif ( angle >= 405 and angle < 495 ) then return 2 // следующие условия определяют удар слева elseif ( angle > -135 and angle < -45 ) then return 4 elseif ( angle > 225 and angle < 315 ) then return 4 // следующие условия определяют удар в спину elseif ( angle >= 135 and angle <= 225 ) then return 3 elseif ( angle >= 495 and angle <= 540 ) then return 3 elseif ( angle >= -180 and angle <= -135 ) then return 3 endif endfunction
ну и пример. BackStab 0.3b пожалуйста тестируйте, по моим тестам все отлично=)
|
|
|
|
pirat9629 | Дата: Четверг, 11 Ноября 2010, 20:03:04 | Сообщение # 28 |
7 уровень
Группа: Проверенные
Сообщений: 422
Награды: 0
Репутация: 102
Блокировки:
| DarkVader, благодарю!
сделаю минекрафт сервер на заказ. платно
|
|
|
|
Kartoha | Дата: Четверг, 11 Ноября 2010, 22:02:30 | Сообщение # 29 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| Отличная система. DarkVader твой коммент мне в репу улыбнул, спасибо.
|
|
|
|
DarkVader | Дата: Пятница, 12 Ноября 2010, 02:31:12 | Сообщение # 30 |
7 уровень
Группа: Проверенные
Сообщений: 357
Награды: 0
Репутация: 95
Блокировки:
| Если найдете ошибки или баги сообщите пожалуйста в лс=)
|
|
|
|
Smartaros | Дата: Вторник, 31 Января 2012, 23:24:57 | Сообщение # 31 |
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
| Народ, а можете на гуи, а то я с джасом не дружу еще....
|
|
|
|
sonwarrior | Дата: Среда, 01 Февраля 2012, 04:03:51 | Сообщение # 32 |
3 уровень
Группа: Проверенные
Сообщений: 57
Награды: 0
Репутация: 16
Блокировки:
| Smartaros, Зачем тему то из недр поднимать? На гуи такое на вряд ли получится
|
|
|
|
SirNikolas | Дата: Среда, 01 Февраля 2012, 11:51:07 | Сообщение # 33 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Kartoha) Что займет больше ячеек памяти, число 0 или число 556? 0 - 1 знак, 556 - 3 знака. Что займет больше ячеек пямяти, число 0x00000000 или число 0x0000022c? И то, и другое - 32 знака.
|
|
|
|
Smartaros | Дата: Пятница, 03 Февраля 2012, 01:36:14 | Сообщение # 34 |
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
| Я просто делаю способность как у рикимару, только у меня она - пассивка, когда герой атакован то получает шанс оказаться за спиной атакующего Добавлено (03 Февраль 2012, 01:36:14) --------------------------------------------- Как отследить сторону, с которой появится мой герой?
|
|
|
|
Ty3uK | Дата: Пятница, 03 Февраля 2012, 07:56:38 | Сообщение # 35 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Через Atan2 получить угол между двумя юнитами и умножить его на 57.295
|
|
|
|
Novice998 | Дата: Пятница, 03 Февраля 2012, 08:06:39 | Сообщение # 36 |
8 уровень
Группа: Проверенные
Сообщений: 693
Награды: 0
Репутация: 86
Блокировки:
| Smartaros, тут же наработка на сайте есть -_-
|
|
|
|
Smartaros | Дата: Суббота, 04 Февраля 2012, 08:05:26 | Сообщение # 37 |
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
| Ty3 uK, я в джасе не разбираюсь
|
|
|
|