A-STOP 1.23 Support added! Check the download link for the newest version.
Ohai everyone, wKtK here.
As suggested by Gry in this thread, I made a client-side program that provides you with a public, ingame countdown before a stop command.
This enables people to stop the game without annoying others who fall to their doom, plummel into a pit, or end up next to an opponent when the game stops.
Countdown periods are adjustable, and a seperate countdown for CTO-ers is included.
Because I should be sleeping now, I'll copypasta a long text from the programs help here after providing you with the download link.
Using this program is really simple. First, let me list here what you need:
Requirements:
- Jazz2; (1.23 or 1.24, YOU NEED PLUS)
- This program (duh )
- Cake
Well, once you have this you're good to go!
[-] First you want to run your Jazz2.exe, or however it's called on your
system.
[-] Then, select your instance of Jazz2 from the drop-down box at the top of
the application. If you're in-game, the level-title will be displayed.
[-] If everything is alright, ASTOP will echo a test message in Jazz2. (this is
only visible for you)
Ok, once you got through there the program is ready for use. Everytime you
want to stop, you can start a countdown after which the program will chat
the jj2+ command '/stop'.
The countdown can be started by clicking the huge 'STOP!' button, or by
issueing an ingame command. more on those later.
If you accidently fire a countdown, click the huge 'Cancel' button to, well,
cancel it.
A different countdown with a message about someone cto-ing can be started
by clicking the 'CTO!' button. It's up to you wheter you use this, or use the
plain function.
Using the 2 input fields, you can adjust the amount of seconds for each
countdown. Keep these low to avoid spamming too much.
Ok, next up is the cool part. Ladies and Gentlerabbits, fasten your seatbelts
for INGAME COMMANDS *applause*
Ingame commands can be launched by typing the command in Jazz2,
>WITHOUT ACTUALLY CHATTING IT<. In other words, you DON'T press
enter after you type it. ASTOP autochanges your typed text to blank once it
picks up the command.
Commands:
/cstop : Starts an automated countdown to a '/stop' command.
/ccto : The same as /cstop, but with a different message stating that
someone CTO'd.
/astop : Excat copy of /cstop, for people who accidently use the programs
name as a command.
/ccan : Cancels the current cowntdown. (Only for the one who started it)
------------
Known Issues:
[-] No 1.20, Avalon, Battery Check, AGA, or Minecraft support.
[-] 1.23 support not tested, but should work. (Switch to 1.24. NOW.)
[size=24]A-STOP[/size]
[color=lime][i]1.23 Support added! Check the download link for the newest version.[/i][/color]
Ohai everyone, wKtK here.
As suggested by Gry in [url=http://jazzjackrabbit.net/index.php?league=1&season=1&op=com&id=337]this[/url] thread, I made a client-side program that provides you with a public, ingame countdown before a stop command.
This enables people to stop the game without annoying others who fall to their doom, plummel into a pit, or end up next to an opponent when the game stops.
Countdown periods are adjustable, and a seperate countdown for CTO-ers is included.
Because I should be sleeping now, I'll copypasta a long text from the programs help here after providing you with the download link.
DOWNLOAD LINK: [url=http://lun4rsoft.info/content/p_astop.html]Click me![/url]
[url=http://www.youtube.com/watch?v=nGvwMQ75PCE]Youtube example, watch at 480p![/url]
[size=16]Detailed info:[/size]
[quote]Using this program is really simple. First, let me list here what you need:
Requirements:
- Jazz2; (1.23 or 1.24, YOU NEED PLUS)
- This program (duh :P)
- Cake
Well, once you have this you're good to go!
[-] First you want to run your Jazz2.exe, or however it's called on your
system.
[-] Then, select your instance of Jazz2 from the drop-down box at the top of
the application. If you're in-game, the level-title will be displayed.
[-] If everything is alright, ASTOP will echo a test message in Jazz2. (this is
only visible for you)
Ok, once you got through there the program is ready for use. Everytime you
want to stop, you can start a countdown after which the program will chat
the jj2+ command '/stop'.
The countdown can be started by clicking the huge 'STOP!' button, or by
issueing an ingame command. more on those later.
If you accidently fire a countdown, click the huge 'Cancel' button to, well,
cancel it.
A different countdown with a message about someone cto-ing can be started
by clicking the 'CTO!' button. It's up to you wheter you use this, or use the
plain function.
Using the 2 input fields, you can adjust the amount of seconds for each
countdown. Keep these low to avoid spamming too much.
Ok, next up is the cool part. Ladies and Gentlerabbits, fasten your seatbelts
for INGAME COMMANDS *applause*
Ingame commands can be launched by typing the command in Jazz2,
>WITHOUT ACTUALLY CHATTING IT<. In other words, you DON'T press
enter after you type it. ASTOP autochanges your typed text to blank once it
picks up the command.
Commands:
/cstop : Starts an automated countdown to a '/stop' command.
/ccto : The same as /cstop, but with a different message stating that
someone CTO'd.
/astop : Excat copy of /cstop, for people who accidently use the programs
name as a command.
/ccan : Cancels the current cowntdown. (Only for the one who started it)
------------
Known Issues:
[-] No 1.20, Avalon, Battery Check, AGA, or Minecraft support.
[-] 1.23 support not tested, but should work. (Switch to 1.24. NOW.)
[/quote]
(This post has been helpful to 2 of the forumers.)
Good job wKtk. I tested it a bit and it seems to work very well. The options are nice and the design of the program looks also very good, well done. Only had some problems here and there when I set a new countdown for stopping (/cstop). Also 3 seconds for the countdown seems to fit best, however maybe 2 seconds is also worth trying out. Thanks wKtk!
Good job wKtk. I tested it a bit and it seems to work very well. The options are nice and the design of the program looks also very good, well done. Only had some problems here and there when I set a new countdown for stopping (/cstop). Also 3 seconds for the countdown seems to fit best, however maybe 2 seconds is also worth trying out. Thanks wKtk!
Thanks for your feedback, it is really appreciated.
[quote]Also 3 seconds for the countdown seems to fit best, however maybe 2 seconds is also worth trying out.[/quote]
I'm at school and on Linux atm, but when I get home I'll update the minimum countdown to 2 instead of 3.
Because I should be sleeping now, I'll copypasta a long text from the programs help here after providing you with the download link.
Copypasta, copyspaghetti?
I got the program working although my anti virus hates it, however the drop down menu to select the JJ2 window doesn't find anything. That said, it doesn't work for me. Tried with all kinds of JJ2s, administrator mode etc etc.
1.23 crashes immediately, AV
[quote]Because I should be sleeping now, I'll copypasta a long text from the programs help here after providing you with the download link.
[/quote]
Copypasta, copyspaghetti?
I got the program working although my anti virus hates it, however the drop down menu to select the JJ2 window doesn't find anything. That said, it doesn't work for me. Tried with all kinds of JJ2s, administrator mode etc etc.
1.23 crashes immediately, AV
What antivirus and OS do you use? My avast thought it a bit suspicious, I guess it doesn't like progs that change things in other processes ;)
Dumb question, but do you click the reload button to fill the drop down?
EDIT: It could also be your anti-virus blocking 'sandboxing' it, causing it unable to see Jazz2...
Updated my post, 1.23 crashes immediately (access violation) while TSF works now. Windows 7 professional 64 bit.
The anti virus I use is (obviously) Norton cause that's the only shit anti virus that blocks literally every program they don't know.
Updated my post, 1.23 crashes immediately (access violation) while TSF works now. Windows 7 professional 64 bit.
The anti virus I use is (obviously) Norton cause that's the only shit anti virus that blocks literally every program they don't know.
[s]Ah, well that means it works now. I haven't tested 1.23 myself yet, so if TSF works it's safe to assume the prog is working.
I'll test+update astop for 1.23 as soon as I get home.
EDIT: Just checked the source code on my Dropbox, and found the bug (i think). Will be easy to fix :)[/s]
[color=lime]UPDATE: The program now really works with 1.23. I just tested it :)[/color]
There's just one problem that is trivially easy to fix (GMR used to have it too): the window has a small caption bar, which prevents it from showing up in the alt-tab list or the panel's window list when using Wine, so once it loses focus, you'll have to minimize other windows until you find it again. Switching the window type to a standard "non-toolbar" type window should fix the issue.
Also, this is something pretty minor, but I suggest resetting the chat cursor position (it's inside plus.dll's memory) to zero and closing the chatbox (no need for CRT, just set the variable whether it should display to 0) whenever a command is executed (in addition to clearing the chat string), so you don't have this empty chatbox and misplaced cursor floating around after entering a command.
This is looking very useful, great job wKtK!
There's just one problem that is trivially easy to fix (GMR used to have it too): the window has a small caption bar, which prevents it from showing up in the alt-tab list or the panel's window list when using Wine, so once it loses focus, you'll have to minimize other windows until you find it again. Switching the window type to a standard "non-toolbar" type window should fix the issue.
Also, this is something pretty minor, but I suggest resetting the chat cursor position (it's inside plus.dll's memory) to zero and closing the chatbox (no need for CRT, just set the variable whether it should display to 0) whenever a command is executed (in addition to clearing the chat string), so you don't have this empty chatbox and misplaced cursor floating around after entering a command.
Yeah, good idea.
Ill change the windowtype, and Gry asked me to see if i could check for an [enter] press after a command, so I'm trying that first.
Thanks for the feedback :)
Intercepting the enter press is not going to be easy, you might end up having to use a hook to prevent the "/cstop" text from actually being sent to the server.
Intercepting the enter press is not going to be easy, you might end up having to use a hook to prevent the "/cstop" text from actually being sent to the server.
Yes, so I might go with your method. However I'm traveling this weekend, and I haven't got my Windoze development box with me. So I can code it when I return next Monday.
Yes, so I might go with your method. However I'm traveling this weekend, and I haven't got my Windoze development box with me. So I can code it when I return next Monday.
Intercepting the enter press is not going to be easy, you might end up having to use a hook to prevent the "/cstop" text from actually being sent to the server.
Thats not really important... after all, in the long run this should be a server side command
[quote]Intercepting the enter press is not going to be easy, you might end up having to use a hook to prevent the "/cstop" text from actually being sent to the server.[/quote]Thats not really important... after all, in the long run this should be a server side command
It will eventually be remade into a serverside command, I am already planning this. Too bad it can't be integrated with plus though...
While I'm on that topic, does anyone of the coders here knows how exactly to read the chat? (not the typed chatsting, but chat the server recieved?). I tried getting the address a few times with cheatengine, but only found it unstable in the chatloggers process...
Anyway, as soon as school quiets down a bit, which will be in <2 moths i hope, I'm finishing the fukkatsu network engine stuff which will give me the needs to make an easy, commandline cross-platform dedicated server thingy. Until than, I'm gonna make a Windows/Wine tool like this one.
It will eventually be remade into a serverside command, I am already planning this. Too bad it can't be integrated with plus though...
While I'm on that topic, does anyone of the coders here knows how exactly to read the chat? (not the typed chatsting, but chat the server recieved?). I tried getting the address a few times with cheatengine, but only found it unstable in the chatloggers process...
Anyway, as soon as school quiets down a bit, which will be in <2 moths i hope, I'm finishing the fukkatsu network engine stuff which will give me the needs to make an easy, commandline cross-platform dedicated server thingy. Until than, I'm gonna make a Windows/Wine tool like this one.
If I remember correctly, JJ2 stores the currently displayed on-screen chat in an array of dynamically allocated memory, so you should probably chat some stuff, perfectfreeze the server, search for the displayed string/strings, and then find a pointer, or possibly a pointer to a pointer to the start of the displayed string.
If I remember correctly, JJ2 stores the currently displayed on-screen chat in an array of dynamically allocated memory, so you should probably chat some stuff, perfectfreeze the server, search for the displayed string/strings, and then find a pointer, or possibly a pointer to a pointer to the start of the displayed string.