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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
6
11 лет назад
Отредактирован Gnusik
0
nvc123,
то есть ты хочешь сказать что в твоей школе действуют другие законы физики и математики?

Или как то по другому

Значит метод забыл.Надо покопатся в тетрадках.
Не утрудит ли тебя(пишу уже в 4 раз,но код ты ещё не писал,может непонятно)
call SetUnitPositionLocFacingLocBJ( a, PolarProjectionBJ(GetUnitLoc(a), 50.00, GetUnitFacing(a)), GetUnitLoc(b) )
Напиши кодом без BJ пожалуйста.
1
28
11 лет назад
Отредактирован nvc123
1
открываешь джнгп, пишешь туда этот код, зажимаешь ctrl и лкм на функции и это я тебе 100 раз говорил
вот код где юнит u это твой юнит a,юнит u1 это твой юнит b, r это расстояние(вместо твоих 50)
function nobj takes unit u,real r,unit u1 returns nothing
real a=GetUnitFacing(u)*bj_DEGTORAD
real x=GetUnitX(u)
real y=GetUnitY(u)
real x1=GetUnitX(u1)
real y1=GetUnitY(u1)
SetUnitX(u,r*Cos(a)+x)
SetUnitY(u,r*Sin(a)+y)
SetUnitFacing(u,Atan2(y1-y,x1-x)*bj_RADTODEG)
endfunction
0
6
11 лет назад
0
nvc123:
открываешь джнгп, пишешь туда этот код, зажимаешь ctrl и лкм на функции и это я тебе 100 раз говорил
вот код где юнит u это твой юнит a,юнит u1 это твой юнит b, r это расстояние(вместо твоих 50)
function nobj takes unit u,real r,unit u1 returns nothing
real a=GetUnitFacing(u)*bj_DEGTORAD
real x=GetUnitX(u)
real y=GetUnitY(u)
real x1=GetUnitX(u1)
real y1=GetUnitY(u1)
SetUnitX(u,r*Cos(a)+x)
SetUnitY(u,r*Sin(a)+y)
SetUnitFacing(u,Atan2(y1-y,x1-x)*bj_RADTODEG)
endfunction
Да.Блин я очень тупил.Сейчас делал новый наработок попробовал опять ctrl+lkm и узрел анти BJ.А за код спасибо.И да кстати.На GUI точки не создаются.там движется юнит.Жаль нельзя 2 в 1 сделать.
Сейчас случится нечто.Я может смогу создать MYI SPELL без BJ.
Теперь ещё вопрос.Я двигаю юнита по отношению своего поворота.Не соображу код.
Скилл уже МУИ
1
28
11 лет назад
Отредактирован nvc123
1
GetUnitLoc(b) создаёт точку,полярные координаты создают точку
SetUnitFacing(u,Atan2(y1-y,x1-x)*bj_RADTODEG)
y1 x1 координаты 2 юнита,y x координаты точки где был 1 юнит до того как мы его переместили
SetUnitX(u,r*Cos(a)+x)
SetUnitY(u,r*Sin(a)+y)
это двигает юнита на расстояние r под углом a
расстояние умноженное на косинус угла + его текущая координата x=его новая координата x
расстояние умноженное на синус угла + его текущая координата y=его новая координата y
0
6
11 лет назад
Отредактирован Gnusik
0
nvc123:
это уже готовый код или переменные подгонять надо?
и пожалуйста скажи
real a=GetUnitFacing(u)*bj_DEGTORAD
real x=GetUnitX(u)
real y=GetUnitY(u)
real x1=GetUnitX(u1)
real y1=GetUnitY(u1)
SetUnitX(u,r*Cos(a)+x)
SetUnitY(u,r*Sin(a)+y)
SetUnitFacing(u,Atan2(y1-y,x1-x)*bj_RADTODEG)
как это вставить?
уже понял
хотя нет.как в 1 триггере делать?через таймер?
nvc123, скажи пожалуйста из за чего ошибка.На BJ не обращай внимания потом уберу.
код
function Trig_Black_Hole_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A002'
endfunction

function Trig_Black_Hole_Actions takes nothing returns nothing
    local unit Caster=GetSpellAbilityUnit()
    set udg_Cast_Point = GetOrderPointLoc()
    call CreateNUnitsAtLoc( 1,'h002',GetOwningPlayer(Caster),GetSpellTargetLoc(),bj_UNIT_FACING)
    local unit Dummy=bj_lastCreatedUnit
    call AddSpecialEffectLoc("T_baqixiaoguo.mdx",GetUnitLoc(Dummy))
    local effect Effect=bj_lastCreatedEffect
    set bj_forLoopAIndex = 1
    set bj_forLoopAIndexEnd = 16
    loop
        exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
        call ForGroupBJ(GetUnitsInRangeOfLocMatching(250.00,GetUnitLoc(Dummy),Condition(function Trig_Black_Hole_Func007Func001001003)),function Trig_Black_Hole_Func007Func001A)
        call TriggerSleepAction(0.20)
        set bj_forLoopAIndex = bj_forLoopAIndex + 1
    endloop
    call RemoveUnit(Dummy)
    call DestroyEffect(whichEffect)
    call RemoveLocation(Cast_Point)
endfunction

function Trig_Black_Hole_Func007Func001001003 takes nothing returns boolean
    return ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(Caster)) == true )
endfunction

function Trig_Black_Hole_Func007Func001A takes nothing returns nothing
    call SetUnitPositionLocFacingBJ( GetEnumUnit(), PolarProjectionBJ(GetUnitLoc(Dummy), -8.00, AngleBetweenPoints(GetUnitLoc(Dummy), GetUnitLoc(GetEnumUnit()))),GetUnitFacing(Dummy))
endfunction


//===========================================================================
function InitTrig_Black_Hole takes nothing returns nothing
    set gg_trg_Black_Hole = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Black_Hole, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Black_Hole, Condition( function Trig_Black_Hole_Conditions ) )
    call TriggerAddAction( gg_trg_Black_Hole, function Trig_Black_Hole_Actions )
endfunction
1
28
11 лет назад
1
что за ошибка ибо разбираться в бж коде очень сложно
локальные переменные должны быть объявлены в начале функции
код читается с верху вниз то есть например
функция а
бла бла бла
endfunction
функция б
бла бла бла
endfunction
из функции б ты можешь вызвать функцию а так как а выше
из функции а ты не можешь вызвать функцию б так как б ниже
это то что я вижу
в принципе идеалом было бы делать через апдейт
так
локальные переменные действуют в пределах 1 функции а ты пытаешься в Trig_Black_Hole_Func007Func001A
использовать локалки из Trig_Black_Hole_Actions
надо либо параллельные массивы либо структуры(в принципе это 1и тоже только в структурах короче получается)
0
6
11 лет назад
0
nvc123:
что за ошибка ибо разбираться в бж коде очень сложно
локальные переменные должны быть объявлены в начале функции
код читается с верху вниз то есть например
функция а
бла бла бла
endfunction
функция б
бла бла бла
endfunction
из функции б ты можешь вызвать функцию а так как а выше
из функции а ты не можешь вызвать функцию б так как б ниже
это то что я вижу
в принципе идеалом было бы делать через апдейт
так
локальные переменные действуют в пределах 1 функции а ты пытаешься в Trig_Black_Hole_Func007Func001A
использовать локалки из Trig_Black_Hole_Actions
надо либо параллельные массивы либо структуры(в принципе это 1и тоже только в структурах короче получается)
я в структурах не АС
Может делать через таймер и хэш?
Кстати спелл без кода jass не утечен.но он не муи:(
0
28
11 лет назад
0
утечен
само определение расстояния между юнитами в гуи утечно
0
6
11 лет назад
0
nvc123:
утечен
само определение расстояния между юнитами в гуи утечно
жаль.Стоп до меня сейчас дошло.Можно сделать все в 1 триггере как.Вот тока я не смогу релиз.До сих пор функции плохо понимаю.
0
28
11 лет назад
0
Gnusik, таймер+структуры в результате и муи и в 1 триггере
0
6
11 лет назад
0
nvc123:
Gnusik, таймер+структуры в результате и муи и в 1 триггере
Таймер я не могу применять.Код не знаю.Структуры и подавно.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.