DotCastle BR™

[System] Single Target para Área of Effect Lion_shield
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.


Participe do fórum, é rápido e fácil

DotCastle BR™

[System] Single Target para Área of Effect Lion_shield
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™
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
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 3954 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

[System] Single Target para Área of Effect

Ir para baixo  Mensagem [Página 1 de 1]

Hisoka

Hisoka
Administrador
Administrador

Descrição:
Sistema muito simples que permite converter spells de alvo único para spells com área de efeito.

Requisitos:
 - JNGP + USMWE (clique aqui)

Código:
//! textmacro SPELLNAME_SETUP

    public constant function MAIN_SPELL_RAW takes nothing returns integer
        return 'A000'
    endfunction

    public constant function DUMMY_SPELL_RAW takes nothing returns integer
        return 'A001'
    endfunction

    public constant function MAIN_SPELL_AREA takes nothing returns real
        return 512.00
    endfunction

    public constant function DUMMY_UNIT_RAW takes nothing returns integer
        return 'dumm'
    endfunction

    public constant function DUMMY_SPELL_ORDER takes nothing returns string
        return "firebolt"
    endfunction

//! endtextmacro
Código:
scope SPELLNAME initializer ini

    //! runtextmacro SPELLNAME_SETUP()

    private function config takes nothing returns nothing
        local unit u = null
        local player p = null
        local integer i = 0
        local group g = null
        local location l = null
        local unit U = null
        local unit d = null
        if GetSpellAbilityId()==MAIN_SPELL_RAW() then
            set u = GetTriggerUnit()
            set p = GetOwningPlayer(u)
            set i = GetUnitAbilityLevel(u,GetSpellAbilityId())
            set g = CreateGroup()
            set l = GetSpellTargetLoc()
            call BJDebugMsg(I2S(GetUnitTypeId(u)))
            call GroupEnumUnitsInRangeOfLoc(g,l,MAIN_SPELL_AREA(),null)
            loop
                set U = FirstOfGroup(g)
                if GetUnitState(U,ConvertUnitState(0))>0 and IsUnitEnemy(U,p) and not IsUnitType(U,ConvertUnitType(15)) and not IsUnitType(U,ConvertUnitType(2)) then
                    set d = CreateUnit(p,DUMMY_UNIT_RAW(),GetUnitX(u),GetUnitY(u),0.)
                    call UnitApplyTimedLife(d,'BTLF',1.5)
                    call UnitAddAbility(d,DUMMY_SPELL_RAW())
                    call SetUnitAbilityLevel(d,DUMMY_SPELL_RAW(),i)
                    call IssueTargetOrder(d,DUMMY_SPELL_ORDER(),U)
                    set d = null
                endif
                call GroupRemoveUnit(g,U)
                exitwhen U == null
            endloop
            call RemoveLocation(l)
            call DestroyGroup(g)
            set l = null
            set g = null
            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 config)
        set t = null
    endfunction

endscope
Download (Demo Map)
 - Open Source: Pode ser aberto com o World  Editor.
 - Upado no MediaFire

https://dotcastlebr.forumeiros.com

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos