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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Толкание и притяжение врагов
6awkaДата: Суббота, 04 Августа 2012, 09:31:39 | Сообщение # 1
5 уровень
Группа: Пользователи
Сообщений: 144
Награды: 1
Репутация: 35
Блокировки:
Часто встречаю способности где происходит толкание\притяжение вражеских юнитов. Хочу сделать такое-же, но не пойму как. Взял способность "огненный столб", создал тиггер где выбираются все юниты в радиусе 600 от точки каста, и если они нейтрально враждебны то действие. А дальше понятия не имею что делать.

Помогите, если можно наработку или статью (если есть такая)
 

protenДата: Суббота, 04 Августа 2012, 10:23:34 | Сообщение # 2
1 уровень
Группа: Пользователи
Сообщений: 7
Награды: 0
Репутация: 0
Блокировки:
слушай тут недавно была похожая тема введи в поиске крюк если не поможет то помогу тригерно просто пока лень

набираю людей в картостроительную команду подробности здесь http://vk.com/club41514351
 

kapa6acvlkДата: Суббота, 04 Августа 2012, 10:55:59 | Сообщение # 3
Группа: Проверенные
Сообщений: 612
Награды: 0
Репутация: 361
Блокировки:
почитай посты, в самом низу пример

Добавлено (04 Августа 2012, 10:55:59)
---------------------------------------------
http://warcraft3ft.info/forum/22-40889-1



Как говориться, не обязательно есть всю кучу говна, чтобы понять, что она однородна.
© Александр Зорич
 

6awkaДата: Суббота, 04 Августа 2012, 12:31:23 | Сообщение # 4
5 уровень
Группа: Пользователи
Сообщений: 144
Награды: 1
Репутация: 35
Блокировки:
kapa6acvlk, можешь дать ссылку на статьи про

function DistanceBetweenXY takes real x1, real y1, real x2, real y2 returns real
return SquareRoot((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))
endfunction

function Move takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit u = LoadUnitHandle(udg_Hash,GetHandleId(t),0)
local unit d
local unit f
local boolean b = LoadBoolean(udg_Hash,GetHandleId(t),2)
local real a
local real x
local real y
if(b)then
set d = gg_unit_ewsp_0003
set f = gg_unit_ewsp_0001
else
set d = gg_unit_ewsp_0001
set f = gg_unit_ewsp_0003
endif
if(DistanceBetweenXY(GetUnitX(d),GetUnitY(d),GetUnitX(u),GetUnitY(u))>100.)then
set a = Atan2(GetUnitY(d) - GetUnitY(u), GetUnitX(d) - GetUnitX(u))
else
call SaveBoolean(udg_Hash,GetHandleId(t),2,not(b))
endif
set x = GetUnitX(u) + 25. * Cos(a)
set y = GetUnitY(u) + 25. * Sin(a)
call SetUnitPosition(u,x,y)
set t = null
set u = null
set d = null
set f = null
endfunction

function Trig_move_Actions takes nothing returns nothing
local timer t = CreateTimer()
local unit u = CreateUnit(Player(0),'h000',GetUnitX(gg_unit_ewsp_0001),GetUnitY(gg_unit_ewsp_0001),0.)
call SaveUnitHandle(udg_Hash,GetHandleId(t),0,u)
call TimerStart(t,0.03,true,function Move)
set t = null
set u = null
endfunction

//===========================================================================
function InitTrig_move takes nothing returns nothing
set gg_trg_move = CreateTrigger( )
call TriggerRegisterTimerEventSingle( gg_trg_move, 1.00 )
call TriggerAddAction( gg_trg_move, function Trig_move_Actions )
endfunction

и тому подобное???

просто я уже много раз такое встречал, а сам ни сном ни духом. Не то что я совсем нуб (о том как пишутся программы представление имею) просто хотелось бы подробнее узнать про это.
 

L1ke_a_SiRДата: Суббота, 04 Августа 2012, 13:20:25 | Сообщение # 5
4 уровень
Группа: Проверенные
Сообщений: 99
Награды: 0
Репутация: 39
Блокировки:
Наработка магнита от Картохи (то что тебе нужно).

Сообщение отредактировал L1ke_a_SiR - Суббота, 04 Августа 2012, 13:20:35
 

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

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