System CommandParser

Discussion in 'Systems and Snippets' started by quraji, Nov 21, 2009.

  1. Jesus4Lyf

    Jesus4Lyf Good Idea™

    Ratings:
    +394 / 0 / -0
    >don't even talk about auto-recycling or something... :p
    You mean this?
    JASS:
    module Magic
        private static method callThing takes Args X returns nothing
            call thistype.onCommand(X)
            call X.destroy() // OMG autodestroy.
        endmethod
        private static method onInit takes nothing returns nothing
            call YourSysInitializerThingie(thistype.callThing) // use function interface, call with .execute when event fires, passing Args.
        endmethod
    endmodule
    
    
    
    struct MyStruct extends array
        private method onCommand takes Args args returns nothing
            call TriggerSleepAction(1.0)
            call DoThingsAndStillWorkAndAutomaticallyDestroyLaterAsWell(args)
        endmethod
        implement CallThing // must be below your onCommand method.
    endstruct

    Oops. :D
     
  2. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    I think I like it as an event response best :D

    v1.31 (man I'm really kicking these out...)
    -Now uses .execute to call command functions (thus allowing use of waits)
    -Now can register multiple functions to one command
     
  3. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    v1.32
    The system should now match player colors ("red", "green", etc.) to the proper players even if player colors are changed in-game.
     
  4. Jesus4Lyf

    Jesus4Lyf Good Idea™

    Ratings:
    +394 / 0 / -0
    Can you match part of a player's name? :p
     
  5. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    You know it doesn't :p

    I thought of adding that at first but decided I was too lazy and I didn't want the system doing everything (you can easily get the string argument yourself and call your own get player argument). But, I suppose I should since I've already got it returning players based on name..

    I'll add it sometime.
     
  6. Jesus4Lyf

    Jesus4Lyf Good Idea™

    Ratings:
    +394 / 0 / -0
    Oh, I knew it didn't. I think this is one of those wonderful functionalities which really rocks. Like I said, pinch Fett's algorithm or somethin' (credit it). :)
     
  7. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    To be honest I didn't really like Darth's Advanced Strings stuff very much, it was kinda sloppy and I spotted a few errors (that I was too lazy to mention, I should post them), so I stopped looking at it and wrote my own player color thing. I already have my own string library (I believe I posted it even) for finding strings and that stuff so I'll just steal one of my own for matching a portion of a player's name :p

    (no offense meant to Darth)
     
  8. Darthfett

    Darthfett Super Mod

    Ratings:
    +614 / 0 / -0
    None taken, and you're right. I have just been having small spurts of free time, and trying to get whatever I can done in that amount of time. The result.. is updates with long breaks in-between.

    I'm planning on breaking up the Advanced Strings library into snippets. Since I have competition, it no longer makes sense to group them all together.

    However, to be really honest with you, the S2P and S2PI functions are pretty solid. The only real problems with them right now, is the lack of efficiency in support for changing colors (it works, but it's not optimal speed). I plan on changing the algorithm to use hooks.
     
  9. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    >I'm planning on breaking up the Advanced Strings library into snippets. Since I have competition, it no longer makes sense to group them all together.

    I think there should be a post that contains all string functions (independent if possible) that would be commonly used. Or something.

    >However, to be really honest with you, the S2P and S2PI functions are pretty solid. The only real problems with them right now, is the lack of efficiency in support for changing colors (it works, but it's not optimal speed).

    Yeah it seems like I came up with the same thing you did. I guess I could have just used yours but the function itself isn't system independent and I would rather not require the whole thing for the one function.

    Speaking of those functions being pretty solid, I know they contained one of the issues I saw, so I'll point it out before I forget it :p

    >I plan on changing the algorithm to use hooks.

    I originally was going to try this (much simpler than the search), but me and hooks have had a falling out...guess I should see if it works fine.
     
  10. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    Bump.

    Note to self:
    -Make .getPlayer() match player name substrings instead of whole strings.
     
  11. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    Bump. Any more input?

    v1.33
    -Now matches substrings of player names (if they start the string). Ex: "qur" matches player "quraji".
    -Renamed some functions and added a couple others.
    -Other stuff.
     
  12. Jesus4Lyf

    Jesus4Lyf Good Idea™

    Ratings:
    +394 / 0 / -0
    Beautiful!
    Sounds really good. ;)

    I need to get some editor time before I can review this properly, though. :)
     
  13. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    Bump.

    You've had a week, J4L :p
     
  14. Jesus4Lyf

    Jesus4Lyf Good Idea™

    Ratings:
    +394 / 0 / -0
    Also had a 3,000 word essay to write.

    Approved! Fantastic. :)
     
  15. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    >Also had a 3,000 word essay to write.

    Excuses.

    >Approved! Fantastic. :)

    "Beautiful", "Fantastic"...I know it's a pretty good thing, but to leave you on the verge of speechlessness.. :p
    No other comments?

    Thanks for the approval.
     
  16. Narks

    Narks Vastly intelligent whale-like being from the stars

    Ratings:
    +92 / 0 / -0
    Is there a way I can modify this, so I can emulate commands by other players?

    e.g. I simulate Red typing something
     
  17. quraji

    quraji zap

    Ratings:
    +143 / 0 / -0
    What do you mean exactly? Do you want to use the args[x].whatever interface for something else? Or you want to be able to make a command fire for a player even if they didn't type it?
     
  18. Jesus4Lyf

    Jesus4Lyf Good Idea™

    Ratings:
    +394 / 0 / -0
    He means...
    JASS:
    call LetsMakeYourSysPretendPlayerTyped(Player(0),"-give wood 3")

    :p
     
  19. Azlier

    Azlier Old World Ghost

    Ratings:
    +461 / 0 / -0
    The only reason he needs that is to make his map even more messed up than it already is, by the way. He likes to annoy the public. :p
     
  20. Narks

    Narks Vastly intelligent whale-like being from the stars

    Ratings:
    +92 / 0 / -0
    @ Azlier: Fade filter.

    I managed to do this myself (inconsistencies between vJASS and Zinc = :mad:), but its kind of limited to this strange format:

    JASS:
     Command["-gold"].emulatePlayer(Player(4), "-gold 40")



    also how to do jass tags without a box?
     

Share This Page