DotCastle BR™


Olá Visitante!, seja bem-vindo ao fórum oficial DotCastle BR™️.

Nosso fórum é dedicado á criadores e editores de mapas para Warcraft III através do World Editor.

Aqui você encontrará spells, systems, tutoriais e muito mais ao alcance de um clique.

Conecte-se agora mesmo para acessar livremente o nosso conteúdo.

Nossos 35 usuários já postaram um total de 92 mensagens.
DotCastle BR™

Conecte-se e apresente-se para receber 25 pontos!
Nossos 35 usuários já postaram o total de 92 mensagens!
O DotCastle BR™ está ativo a 1602 dias.
Ei Convidado, você postou 0 de 92 mensagens!
Participe postando suas dúvidas. Compartilhe seus projetos. O DotCastle BR™ tem prazer em ajudar!
Não deixe de conferir as regras do fórum.

Você não está conectado. Conecte-se ou registre-se

[Spell] Crush Tornado

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 [Spell] Crush Tornado em Dom Ago 18, 2013 7:00 pm

Hisoka

avatar
Administrador
Administrador

Descrição:
O herói (Blademaster) gira freneticamente causando danos á todos os inimigos próximos e lançando ondas destrutivas em todas as direções, causando mais danos á todos os inimigos atingidos.

Requisitos:
JNGP v5d (ou superior) + USMWE

Setup:
Código:
    globals
        // Main Spell Rawcode
        private constant integer SPELL_RAWCODE      = 'A000'
        // Dummy Spell Rawcode
        private constant integer DUMMY_RAWCODE      = 'A001'
        // Dummy Unit Rawcode
        private constant integer DUMMY_UNIT_RAWCODE = 'dumm'
        // Spell Duration
        private constant real SPELL_DUR             = 7.00
    endglobals

Script Inteiro:

Código:
scope CrushTornado initializer ini

    globals
        // Main Spell Rawcode
        private constant integer SPELL_RAWCODE      = 'A000'
        // Dummy Spell Rawcode
        private constant integer DUMMY_RAWCODE      = 'A001'
        // Dummy Unit Rawcode
        private constant integer DUMMY_UNIT_RAWCODE = 'dumm'
        // Spell Duration
        private constant real SPELL_DUR             = 7.00
    endglobals

    private function ProjectionX takes real realX,real whichDist,real whichAngle returns real
        local real x = realX + whichDist * Cos(whichAngle * 3.14159 / 180.)
        return x
    endfunction

    private function ProjectionY takes real realY,real whichDist,real whichAngle returns real
        local real y = realY + whichDist * Sin(whichAngle * 3.14159 / 180.)
        return y
    endfunction
    
    private function spell_config takes nothing returns nothing
        local unit u = null
        local unit U = null
        local player p = null
        local integer i = 0
        local real r = 0.
        local boolean b = false
        local timer t = null
        if GetSpellAbilityId()==SPELL_RAWCODE then
            set u = GetTriggerUnit()
            set p = GetOwningPlayer(u)
            set i = GetUnitAbilityLevel(u,GetSpellAbilityId())
            set t = CreateTimer()
            call TimerStart(t,SPELL_DUR,false,null)
            loop
                if r == 360. and TimerGetRemaining(t)>0. then
                    set r = 0.
                elseif TimerGetRemaining(t)== 0. then
                    set b = true
                    call PauseTimer(t)
                    call DestroyTimer(t)
                    set t = null
                endif
                set r = r + 45.
                set U = CreateUnit(p,DUMMY_UNIT_RAWCODE,GetUnitX(u),GetUnitY(u),0.)
                call UnitApplyTimedLife(U,'BTLF',1.1)
                call UnitAddAbility(U,DUMMY_RAWCODE)
                call SetUnitAbilityLevel(U,DUMMY_RAWCODE,i)
                call IssuePointOrder(U,"carrionswarm",ProjectionX(GetUnitX(u),128.,r),ProjectionY(GetUnitY(u),128.,r))
                set U = null
                call TriggerSleepAction(.5)
                exitwhen b == true
            endloop
            set p = null
            set u = null
        endif
    endfunction

    private function ini takes nothing returns nothing
        local trigger t = CreateTrigger()
        local integer i = 0
        loop
            call TriggerRegisterPlayerUnitEvent(t,Player(i),ConvertPlayerUnitEvent(274),null)
            set i = i + 1
            exitwhen i == 12
        endloop
        call TriggerAddAction(t,function spell_config)
        set t = null
    endfunction

endscope

Atenção:

Edite apenas os dados exibidos na seguinte imagem:

Download (Demo Map)
 - Arquivo ZIP
 - Open Source: pode ser aberto no World Edit
 - Arquivo upado no MediaFire



Ver perfil do usuário http://dotcastlebr.forumeiros.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum