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 1543 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

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

1 [System] Single Target para Área of Effect em Qui Ago 08, 2013 11:43 am

Hisoka

avatar
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



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