0
6
9 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123, Уже не надо,сам разобрался
0
6
9 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123, Привет,если есть время,не мог бы мне про структуры рассказать?
Сейчас уже хорошо пишу код,на cJass
nvc123, может не вспомнишь,ты мне показывал как спелл делать,в наработке этой темы.
Так вот,для чего нужна эта часть:
>>
function TimerStartEx takes timer whichTimer, real period, code handlerFunc, integer userData returns nothing
    call TimerStart(whichTimer, I2R(userData), false, null) // timer exploit, xgm 2007
    call PauseTimer(whichTimer)
    call TimerStart(whichTimer, period,false, handlerFunc ) // start timer
endfunction

function TimerGetUserData takes timer whichTimer returns integer
    return R2I(TimerGetRemaining(whichTimer )+0.5) // get user data from timer
endfunction
<<
0
6
10 лет назад
0

» WarCraft 3 / Интерфейс

Praytic, Хорошо,спасибо.Как с тобой связаться поудобнее?
0
6
10 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
вджасс это диалект
кидай заявку
хорошо
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123, Против вджасс я не имею ничего против.Но мне бы сначала выучить обычный джасс)
1
6
11 лет назад
1

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123, проблема в том что там vJass.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123, Короче мне ещё учиться и учиться.
1
6
11 лет назад
Отредактирован Gnusik
1

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
не надо точки,если ты не заметил то все действия происходят с координатами
проще использовать x/y чем точки
спел без структур/массивов получается не муи
читай,надеюсь поймёшь
спасибо за статью пойду читать.
nvc123, Немного сложно,но всё же внятно.Буду экспериментировать.Мне как раз наработку делать новую.Единственное я там не увидел таймер где все вместе.То есть его нужно будет после поставить после структур?
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123, Спасибо.Статью на таймеры когда напишешь я смогу скилл "Sword Attack" завершить без структур.
Вот пример.
"Установить:Point=Позиция Caster смещение на 50""
"Установить:Point2=Позиция Target смещение на 45""
После таймер и он двигает цели.
Таймер закончился.
Точки удаляем и все.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
Gnusik, я как нибудь напишу статью
С нетерпением буду ждать!!!
nvc123, Кстати посмотри код получился муи?
code
function Trig_Assasin_Invisible_Conditions takes nothing returns boolean
return GetUnitAbilityLevel(GetAttacker(),'Apiv') >= 1
endfunction

function Trig_Assasin_Invisible_Actions takes nothing returns nothing
    local unit Attack=GetAttacker()
    local unit Unit=GetTriggerUnit()
    call PauseUnit(Attack,true)
    call PauseUnit(Unit,true)
    call DisableTrigger(gg_trg_Assasin_Spell)
    call UnitRemoveAbility(Attack,'Apiv')
    call SetUnitAnimation(Attack,"attack")
    call SetUnitAnimation(Unit,"death")
    call UnitDamageTarget(Attack,Unit,75.00,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call TriggerSleepAction(0.20)
    call SetUnitAnimation(Attack,"attack")
    call SetUnitAnimation(Unit,"death")
    call UnitDamageTarget(Attack,Unit,75.00,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call TriggerSleepAction(0.20)
    call SetUnitAnimation(Attack,"attack")
    call SetUnitAnimation(Unit,"death")
    call UnitDamageTarget(Attack,Unit,75.00,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call TriggerSleepAction(0.20)
    call SetUnitAnimation(Attack,"attack")
    call SetUnitAnimation(Unit,"death")
    call UnitDamageTarget(Attack,Unit,75.00,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call TriggerSleepAction(0.20)
    call SetUnitAnimation(Attack,"attack")
    call SetUnitAnimation(Unit,"death")
    call UnitDamageTarget(Attack,Unit,75.00,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call TriggerSleepAction(0.20)
    call SetUnitAnimation(Attack,"attack")
    call SetUnitAnimation(Unit,"death")
    call UnitDamageTarget(Attack,Unit,75.00,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    call TriggerSleepAction(0.20)
    call PauseUnit(Attack,false)
    call PauseUnit(Unit,false)
    call DisableTrigger(GetTriggeringTrigger())
    call TriggerSleepAction(4.00)
    call EnableTrigger(GetTriggeringTrigger())
    call EnableTrigger(gg_trg_Assasin_Spell)
endfunction

//===========================================================================
function InitTrig_Assasin_Invisible takes nothing returns nothing
    local integer index=0
    set gg_trg_Sword_Attack = CreateTrigger(  )
        loop
            call TriggerRegisterPlayerUnitEvent(gg_trg_Assasin_Invisible, Player(index),EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
            set index = index + 1
            exitwhen index == 15
        endloop
    call TriggerAddCondition(gg_trg_Assasin_Invisible, Condition( function Trig_Assasin_Invisible_Conditions ) )
    call TriggerAddAction(gg_trg_Assasin_Invisible, function Trig_Assasin_Invisible_Actions )
endfunction
nvc123, вот вопрос что такое:
1)source
2)dist
3)angle
В коде
local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD)
nvc123, И ещё одна просьба.Поможешь мне сделать из того скила что ты мне кинул "Sword Attacl" немного переделать в "Speed Attack".Я перезалил карту посмотри её.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
Gnusik, таймер+структуры в результате и муи и в 1 триггере
Таймер я не могу применять.Код не знаю.Структуры и подавно.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
утечен
само определение расстояния между юнитами в гуи утечно
жаль.Стоп до меня сейчас дошло.Можно сделать все в 1 триггере как.Вот тока я не смогу релиз.До сих пор функции плохо понимаю.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
что за ошибка ибо разбираться в бж коде очень сложно
локальные переменные должны быть объявлены в начале функции
код читается с верху вниз то есть например
функция а
бла бла бла
endfunction
функция б
бла бла бла
endfunction
из функции б ты можешь вызвать функцию а так как а выше
из функции а ты не можешь вызвать функцию б так как б ниже
это то что я вижу
в принципе идеалом было бы делать через апдейт
так
локальные переменные действуют в пределах 1 функции а ты пытаешься в Trig_Black_Hole_Func007Func001A
использовать локалки из Trig_Black_Hole_Actions
надо либо параллельные массивы либо структуры(в принципе это 1и тоже только в структурах короче получается)
я в структурах не АС
Может делать через таймер и хэш?
Кстати спелл без кода jass не утечен.но он не муи:(
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

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
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

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.
Теперь ещё вопрос.Я двигаю юнита по отношению своего поворота.Не соображу код.
Скилл уже МУИ
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123,
то есть ты хочешь сказать что в твоей школе действуют другие законы физики и математики?

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

Значит метод забыл.Надо покопатся в тетрадках.
Не утрудит ли тебя(пишу уже в 4 раз,но код ты ещё не писал,может непонятно)
call SetUnitPositionLocFacingLocBJ( a, PolarProjectionBJ(GetUnitLoc(a), 50.00, GetUnitFacing(a)), GetUnitLoc(b) )
Напиши кодом без BJ пожалуйста.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123, В принципе да.Я такой способ вроде в школе проходил.Или как то по другому.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
ну я точно не уверен но возможно если умножить число само на себя то получится квадрат этого числа
да это так.Но как убрать квадрат гипотенузы?
Можно попробовать числа взять вдвое меньше и тогда будет искомое сразу.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
1 угол это 1 юнит,2 угол это 2 юнит,расстояние между ними это гипотенуза,разница x это 1 катет,разница y второй катет
и если открыть эти бж то в них написаны формулы о которых я говорю
блин квадраты как я их вычислю.
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
сумма квадратов катетов равна квадрату гипотенузы
Спс вспомнил.
~(по этой теореме находят расстояние между юнитами)
Каким боком о_О
оуууууу.я понял но это сложновато.
Но остался вопрос.По отношению угол поворота
call SetUnitPositionLocFacingLocBJ( b, PolarProjectionBJ(GetUnitLoc(a), 45.00, GetUnitFacing(a)), GetUnitLoc(a) )
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
Gnusik, синусы,косинусы и теорему Пифагора проходили?
кроме этих 3 вещей тебе нечего не надо
Проходили.Но я был в это время в плохой школе и нифига не понял.Мдеееееее.Туго будет.
Синус отношение противолежащего катета к гипотенузе,Косинус прилежащего в гипотенузе.Теорему Пифагора поздабыл.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
Ёлки-иголки.Мне надо сначала 9 класс закончить.Геометрию я изучил а терь тригенометрия.Ужас.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
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, мой спел это просто пример,чтобы было совсем правильно надо делать через апдейт
А вот как через координаты двигать.Именно в по отношению(угол поворота,позиция юнита и т.д.)?
0
6
11 лет назад
Отредактирован Gnusik
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

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
Ураааа.Твой муи спелл работает.За нормальный компьютер сел и норм стало.Осталось тольео переделать на моё движение.
0
6
11 лет назад
0

» WarCraft 3 / Наработка персонажа Ассасин (ReNew)

nvc123:
хэш тоже через таймер
про мой способ статей нету
там типо для про
вернее там баг варика
используется
смотри мой пример
там и полярок нету и муи и без хэша
вот блин.вот тока я каст переделал.Вроде я перезаливал.
там не он вокруг цели движется а с целью вместе 8-ку делает или закручивается просто.Я хз как так получилось xD