Snippet AutoFly

Dest

New Member
Just one question, does this snippet works very well with spells, like, ie the hero casts a spell that makes the unit to fly back and then hits onto the ground.

Not requesting a spell, just being curious :p
 

Azlier

Old World Ghost
It's meant for spells. It's better than adding and removing Crow Form every time a spell is cast. :p
 

Jesus4Lyf

Good Idea™
How lame can I be...
Hm.
JASS:
        local integer i = 16
        call RegionAddRect(r, re)
        call TriggerRegisterEnterRegion(CreateTrigger(), r, Filter(function Actions))
        call RemoveRect(re)
        set re = null
        
        loop
            exitwhen i == 0
            set i = i - 1
            call GroupEnumUnitsOfPlayer(g, Player(i), Filter(function Actions))
        endloop

-->
JASS:
        local integer i = 15
        call RegionAddRect(r, re)
        call TriggerRegisterEnterRegion(CreateTrigger(), r, Filter(function Actions))
        call RemoveRect(re)
        set re = null
        
        loop
            call GroupEnumUnitsOfPlayer(g, Player(i), Filter(function Actions))
            exitwhen i == 0
            set i = i - 1
        endloop

That exitwhen comparison and subtract 1 should cut thy load time by 4.2 minutes. :rolleyes:

To be honest, I'd use yours and switch [LJASS]local integer i=16[/LJASS] with [LJASS]local integer i=bj_MAX_PLAYERS[/LJASS]. :)
It's just kind of nicer not to have magic numbers.

PS. Err, very nicely done. :) Good script.
PPS. You could use a static if to look for boolexpr utils for using the enum group. :)
Edit: This? Lol.
 

Azlier

Old World Ghost
Like this? Insanity.

JASS:
// Autofly - by Azlier
//  Requires a vJass preprocessor

// How to import:
//  1. Create a new trigger called AutoFly.
//  2. Convert the trigger to custom script, and replace all the code inside with this.

library AutoFly requires optional GroupUtils, optional GlobalGroup

private function Actions takes nothing returns boolean
    if UnitAddAbility(GetFilterUnit(), 'Amrf') then
        call UnitRemoveAbility(GetFilterUnit(), 'Amrf')
    endif
    return false
endfunction

private struct Hack extends array

    static method onInit takes nothing returns nothing
        local region r = CreateRegion()
        local rect re = GetWorldBounds()
        local group g
        local integer i = 15
        call RegionAddRect(r, re)
        call TriggerRegisterEnterRegion(CreateTrigger(), r, Filter(function Actions))
        call RemoveRect(re)
        set re = null
        
        static if LIBRARY_GroupUtils then
             set g = ENUM_GROUP
        elseif LIBRARY_GlobalGroup then
             set g = GROUP
        else
             set g = CreateGroup()
        endif
        loop
            call GroupEnumUnitsOfPlayer(g, Player(i), Filter(function Actions))
            exitwhen i == 0
            set i = i - 1
        endloop
        static not (if LIBRARY_GroupUtils or LIBRARY_GlobalGroup) then
             call DestroyGroup(g)
        endif
        set g = null

endmethod

endstruct

endlibrary
 

Romek

Super Moderator
Staff member
> [ljass]static not (if LIBRARY_GroupUtils or LIBRARY_GlobalGroup) then[/ljass]
I'm sure that doesn't compile... :rolleyes:
 

Azlier

Old World Ghost
Well, duh. It doesn't make any sense. Did you know that [lJASS]then[/lJASS] can be omitted with static ifs? Unless Vex fixed that.
 

Azlier

Old World Ghost
I made it use library_once. Not that it matters much, but you can copy and paste it onto every spell or something without negative effects. Yes, I know that's evil. :p
 

Azlier

Old World Ghost
You tested that, Narks?

If it really does break Medivh, it's Romek's fault because I had it set up in a way that wouldn't break Medivh originally.
 

Narks

Vastly intelligent whale-like being from the stars
oh, wait, my mistake

damn you azlier, you have all your bases covered
 

Romek

Super Moderator
Staff member
> If it really does break Medivh, it's Romek's fault because I had it set up in a way that wouldn't break Medivh originally.
You're welcome. :)
 

Troll-Brain

You can change this now in User CP.
I don't see how it could break the 'Amrf' ability since the ability is added/removed only when the unit enter the map and doesn't already have this ability.
 

Kenny

Back for now.
Can I ask why this doesn't use AIDS? Is there a specific reason or something? Otherwise, this could be done in like 10 lines.

Edit:

Something like this:

JASS:
library AutoFly
    private struct AutoFly extends array
        //! runtextmacro AIDS()
        private method AIDS_onCreate takes nothing returns nothing
            if UnitAddAbility(this.unit,'Amrf') then
                call UnitRemoveAbility(this.unit,'Amrf')
            endif
        endmethod
    endstruct
endlibrary
 

Kenny

Back for now.
Yeah fair enough. I just love how simple AIDS makes things, I've become use to using it all the time.

Off topic: Is there an ETA on an update for AIDS?
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    The old shoutbox wasn't supported anymore. We updated xenForo, so it had to be replaced.
  • jonas jonas:
    let's see if everyone finds it... the nice thing about the shoutbox was I could check on it even while logged out, but the existence of this one is hidden when you're not logged in
  • Ghan Ghan:
    We can fix that.
  • Ghan Ghan:
    Chat should show on the sidebar when not logged in now.
  • Ghan Ghan:
    (You'll still need to log in to post messages)
  • Ghan Ghan:
    Test!
  • tom_mai78101 tom_mai78101:
    I must be in a test server.
  • tom_mai78101 tom_mai78101:
    Nice, Twitter tweets embedding now works
  • Wizard Wizard:
    Yup.
  • Ghan Ghan:
    Excellent.
  • Ghan Ghan:
    @tom_mai78101 Hello there.
  • Ghan Ghan:
    Tagging works in the chat too.
  • tom_mai78101 tom_mai78101:
    @Ghan Missed it.
  • Wizard Wizard:
    Still fixing things here and there. Added widgets to the portal, will make it match the ones here on the forum index tomorrow.
  • Ghan Ghan:
    The venerable World Editor Tutorials site has been converted to HTTPS at last.
  • jonas jonas:
    cool
  • jonas jonas:
    and I can even edit my messages, nice
  • seph ir oth seph ir oth:
    GENERAL CHIT CHAT, YOU ARE A BOLD ONE
  • Ghan Ghan:
    Hello there
  • The Helper The Helper:
    this new chatbox is great and the forum software update is great too
    +1
  • The Helper The Helper:
    upgrade has fixed forum registration spam problem
  • tom_mai78101 tom_mai78101:
    Something tells me we might be able to customize the chatbox a bit, considering that there's a gap under every message.
  • Wizard Wizard:
    Going to deploy a fix soon, just had to take some time for myself this weekend.
  • Varine Varine:
    Unbelievable. Time for yourself? How dare you!

    Members online

    No members online now.

    Affiliates

    Hive Workshop
    Top