System CommandParser

Jesus4Lyf

Good Idea™
Reaction score
397
>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
 

quraji

zap
Reaction score
144
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
 

quraji

zap
Reaction score
144
v1.32
The system should now match player colors ("red", "green", etc.) to the proper players even if player colors are changed in-game.
 

quraji

zap
Reaction score
144
Can you match part of a player's name? :p

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.
 

quraji

zap
Reaction score
144
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). :)

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)
 

Darthfett

Aerospace/Cybersecurity Software Engineer
Reaction score
615
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)

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.
 

quraji

zap
Reaction score
144
>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.
 

quraji

zap
Reaction score
144
Bump.

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

quraji

zap
Reaction score
144
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.
 

quraji

zap
Reaction score
144
>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.
 

Narks

Vastly intelligent whale-like being from the stars
Reaction score
90
Is there a way I can modify this, so I can emulate commands by other players?

e.g. I simulate Red typing something
 

quraji

zap
Reaction score
144
Is there a way I can modify this, so I can emulate commands by other players?

e.g. I simulate Red typing something

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?
 

Azlier

Old World Ghost
Reaction score
461
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
 

Narks

Vastly intelligent whale-like being from the stars
Reaction score
90
@ 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?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top