Главная » Файлы » Наруто файлы для Warcraft 3 » Готовые спеллы\техники для Warcraft 3

Чидори волк by War3I4i
[Жалоба на файл] 27.08.2013, 16:01

Вы клацаете заклинанием в точку куда-нить, перед вами появляется волк и сразу же начинает бежать в направлении до точки заклинания(красиво бежит), если волк встретится с врагом, он нацепит на него печать, враг не сможет двигатся и атаковать, тем временем герой (уже с чидори в руке) будет быстро и плавно передвигатся до захваченного врага, как только Какаши(ну герой наш) добежит до врага он нанесёт ему урон. У скила 3 уровня но вы спокойно можете делать хоть 10, т.к скилл наносит урон 90* на уровень скила. Ну, как по мне так получилось норм, а там уже вам решать

Категория: Готовые спеллы\техники для Warcraft 3 | Добавил: War3I4i
Просмотров: 1034 | Загрузок: 176 | Комментарии: 4 | Рейтинг: 0.0/0


Похожие файлы:

Инструкция по скачиванию и загрузке файлов

Всего комментариев: 4
4 War3I4i   (27.08.2013 17:18) [Материал]
Скилл написан с нуля на чистом jass'е, есть вопросы - пишите, всегда отвечу

3 _Mussa_   (28.08.2013 09:53) [Материал]
Как скопировать твою Спелы я не понил как скопировать Трейгере скопировал 3 тригера потом волк пехотинца в свою карту скопировал потом не знаю по конкретне не можеш писать или этот спел зделан другой прогой ?

2 Sannin   (28.08.2013 09:54) [Материал]
Слишком часто вызывается GetHandleId(t), занеси её в переменную.

Вместо:
local real x = GetLocationX(GetUnitLoc(a))+60*Cos(angle*bj_DEGTORAD)
надо бы:
local real x = GetWidgetX(a)+60.*Cos(angle*.017)

Вместо:
local real angle = bj_RADTODEG * Atan2(GetLocationY(GetSpellTargetLoc()) - GetLocationY(GetUnitLoc(a)), GetLocationX(GetSpellTargetLoc()) - GetLocationX(GetUnitLoc(a)))
это:
local real angle = 57.295*Atan2(GetSpellTargetY() - GetWidgetY(a), GetSpellTargetX()- GetWidgetX(a))

Вместо:
set bj_lastCreatedUnit = CreateUnitAtLoc(GetOwningPlayer(a), YourDummy, Location(x,y), angle)
вот это:
set bj_lastCreatedUnit = CreateUnit(GetTriggerPlayer(), YourDummy, x, y angle)

И вместо ForGroup() лучше бы циклом пробегаться.

и лучше использовать для сохранения юнитов и эффектов call SaveAgentHandle(), а не те, что сейчас. вместо GetSpellAbilityUnit() можно GetTriggerUnit()
мелочи жизни, но вроде быстрей работает)

И не совсем понятно, зачем делать так: set dammy = bj_lastCreatedUnit, ведь ты юнита уже определил. дальше незачем в новую переменную заносить)

И странно, что таймер в функции Trig_spell_Actions запускается раньше, чем на него сохранятся данные:) да и интервала таймера .04, в целом, достаточно. .01 слишком часто, мне кажется. хотя, это уже кому как нравится)

RectContainsLoc(bj_mapInitialPlayableArea, Location(x1,y1)) желательно бы раскрыть)

function condfordead takes nothing returns boolean
local timer t = GetExpiredTimer()
local unit dammy = LoadUnitHandle(hash,GetHandleId(t),1)
if(not( GetUnitState(dammy, UNIT_STATE_LIFE) <= 0 == true)) then
return false
endif
return true
endfunction
- лучше вообще убрать и перейти на перебор юнита циклом, а не через ForGroup(), а то тут и таймер висячий остаётся и его хендл не очищается.

кстати, вообще не видел действия FlushChildHashtable(). Получается, у тебя после того, как прошли все действия с таймером, его хендл в памяти торчит и засоряет её.

да, и вместо:
function Trig_Die_debug_Conditions takes nothing returns boolean
if ( not ( GetUnitTypeId(GetDyingUnit()) == YourDummy ) ) then
return false
endif
return true
endfunction

это:
function Trig_Die_debug_Conditions takes nothing returns boolean
return GetUnitTypeId(GetTriggerUnit()) == YourDummy
endfunction

в общем, переходи на координаты, не используй точки, не используй ForGroup(), раскрывай бж, оптимизируй код. удачи)

рекомендую почитать статьи про оптимизацию кода на хгм. там хоть и старенькие они, но кое-чем помогут.

1 Sannin   (28.08.2013 09:58) [Материал]
Он ведь писал, что нужно поменять равкоды на свои.

avatar