Добавлен , не публикуется
Переделанная версия моей прошлой наработки.
Изменения:Все сделано на Jass.Переделана пассивная способность.Добавлена новая способность.Оптимизированы некоторые утечки.Убрано GUI.Исправлены недочёты с иконками.Теперь карта открывается у всех и без JNGP.Вес карты уменьшен.
Описание способностей:
1)Резка клинками:Герой производит серию ударов по врагу с разных точек нанося незначительный урон,после чего мгновенно разрезает его со спины нанеся огромный урон.
2)Быстрые атаки:Герой перемещается в случайные точки в радиусе 650 от начала способности нанося урон попадающимся рядом противникам.
3)Искуство Ассасина:Герой имеющий эту способность становится невидимым.При атаке он наносит серию ударов по врагу нанося урон.Через 4 секунды после атаки герой вновь становится невидимым.
4)Цепь:Герой крутит цепь вокруг себя.Каждые 0.02 секунды цепь наносит 20 урона.Количество сцепленных частей 12.Расстояние между частями 75.Длина цепи 1200.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
Gnusik, я говорю не про тип карты а про дуэль спелмейкеров
или конкурс
когда главное красота спела
а не его практическое применение
6
nvc123:
Gnusik, я говорю не про тип карты а про дуэль спелмейкеров
или конкурс
когда главное красота спела
а не его практическое применение
Я нашел статью и постараюсь сделать муи спелл.Сейчас полярные координаты заменить чем нибудь бы.И все.
nvc123, Как перевести действие "позиция кастера смещение на 50 по отношению угол поворота кастер градусов" в полярные координаты.
28
геометрия
прямоугольный треугольник
где 1 угол это кастер,2 угол это точка в которую он смотрит,гипотенуза это расстояние между ними,1 катет этот разница координаты x кастера и координаты x точки а второй катет это разница координаты y кастера и координаты y точки
6
nvc123:
геометрия
прямоугольный треугольник
где 1 угол это кастер,2 угол это точка в которую он смотрит,гипотенуза это расстояние между ними,1 катет этот разница координаты x кастера и координаты x точки а второй катет это разница координаты y кастера и координаты y точки
А можно в код конверт.Просто это единственное BJ которое мне осталось устранить чтобы спелл был муи.
я хочу попробовать через 1 триггер с таймером по примеру
code
function SpellDamage takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer h = GetHandleId(t)
    local unit caster = LoadUnitHandle(udg_hash,h,1)
    local unit target = LoadUnitHandle(udg_hash,h,2)
    local integer counter = LoadInteger(udg_hash,h,3)
    
    if counter>0 then
        call UnitDamageTarget(caster,target,1.0,true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,null)
        call SaveInteger(udg_hash,h,3,counter-1)
    else
        call DestroyTimer(t)
        call FlushChildHashtable(udg_hash,h)
    endif
    
    set caster = null
    set target = null
    set t = null
endfunction

function Spell takes nothing returns nothing
    local unit caster = GetSpellAbilityUnit()
    local unit target = GetSpellTargetUnit()
    local timer t = CreateTimer()
    local integer h = GetHandleId(t)
    
    call SaveUnitHandle(udg_hash,h,1,caster)
    call SaveUnitHandle(udg_hash,h,2,target)
    call SaveInteger(udg_hash,h,3,125)
    
    call TimerStart(t,0.04,true,function SpellDamage)
    
    set caster = null
    set target = null
    set t = null
endfunction

function SpellCond takes nothing returns boolean
    return GetSpellAbilityId()=='A000'
endfunction

//===========================================================================
function InitTrig_Spell takes nothing returns nothing
    set gg_trg_Spell = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(gg_trg_Spell,Player(0),EVENT_PLAYER_UNIT_SPELL_CAST,null)
    call TriggerAddCondition(gg_trg_Spell,Condition(function SpellCond))
    call TriggerAddAction(gg_trg_Spell,function Spell)
    
    set udg_hash = InitHashtable()
endfunction
только изменить под свои нужды.
28
там хэш,лучше юзать структуры как я показывал
6
nvc123:
там хэш,лучше юзать структуры как я показывал
Скинь статьи точные если не трудно.Не могу найти просто.И я не собирался использовать хеш.Я собирался делать через таймер.
Но увы не получилось
28
хэш тоже через таймер
про мой способ статей нету
там типо для про
вернее там баг варика
используется
смотри мой пример
там и полярок нету и муи и без хэша
6
nvc123:
хэш тоже через таймер
про мой способ статей нету
там типо для про
вернее там баг варика
используется
смотри мой пример
там и полярок нету и муи и без хэша
вот блин.вот тока я каст переделал.Вроде я перезаливал.
там не он вокруг цели движется а с целью вместе 8-ку делает или закручивается просто.Я хз как так получилось xD
6
nvc123:
Gnusik, код в студию
сейчас закину.
студия кодов xD
function Trig_Sword_Attack_2_Actions takes nothing returns nothing
    local unit a=udg_caster
    local unit b=udg_cell_cast
    call SetUnitPathing( a, false )
    call SetUnitPathing( b, false )
    call SetUnitPositionLocFacingLocBJ( b, PolarProjectionBJ(GetUnitLoc(a), 45.00, GetUnitFacing(a)), GetUnitLoc(a) )
    call SetUnitPositionLocFacingLocBJ( a, PolarProjectionBJ(GetUnitLoc(a), 50.00, GetUnitFacing(a)), GetUnitLoc(b) )
    call SetUnitAnimation( udg_caster, "attack" )
    call SetUnitAnimation( udg_cell_cast, "death" )
    call UnitDamageTargetBJ( a,b, 25.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
    call AddSpecialEffectLocBJ( GetUnitLoc(udg_caster), "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
    call AddSpecialEffectLocBJ( GetUnitLoc(udg_caster), "Objects\\Spawnmodels\\Undead\\UndeadDissipate\\UndeadDissipate.mdl" )
    call AddSpecialEffectLocBJ( GetUnitLoc(udg_caster), "Abilities\\Spells\\Other\\HowlOfTerror\\HowlCaster.mdl" )
endfunction

//===========================================================================
function InitTrig_Sword_Attack_2 takes nothing returns nothing
    set gg_trg_Sword_Attack_2 = CreateTrigger(  )
    call DisableTrigger( gg_trg_Sword_Attack_2 )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Sword_Attack_2, 0.05 )
    call TriggerAddAction( gg_trg_Sword_Attack_2, function Trig_Sword_Attack_2_Actions )
endfunction
Ураааа.Твой муи спелл работает.За нормальный компьютер сел и норм стало.Осталось тольео переделать на моё движение.
28
call SetUnitPositionLocFacingLocBJ( a, PolarProjectionBJ(GetUnitLoc(a), 50.00, GetUnitFacing(a)), GetUnitLoc(b) )
этой строкой ты двигаешь юнита кастера
call SetUnitPositionLocFacingLocBJ( b, PolarProjectionBJ(GetUnitLoc(a), 45.00, GetUnitFacing(a)), GetUnitLoc(a) )
этой строкой ты двигаешь цель
и да это бж а бж надо оптимизировать
и двигай не в точку а по координатам ибо функция GetUnitLoc создаёт точку и не удаляет,то есть при частом использование точек станет так много что игра будет лагать а то и вобще повиснет
Gnusik, мой спел это просто пример,чтобы было совсем правильно надо делать через апдейт
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.