PDA

View Full Version : [APP] Abyll's Super App



Aßyll
April 9th, 2009, 01:54 PM
Here it is: the first Public Beta Release of my SUPERAPP!!!!!!!!

Read the readme to find out anything about it, and THEN post any questions.

Simplified Details:
This adds numerous custom commands, most notably teamswap, and cmdfile (to load numerous commands from a file),
and also has (CUSTOMIZABLE) admin levels to allow commands to be done from chat (with a / prefixing it)

Simplified Instructions:
-1: Have a haloce dedi server, that is SAPP patched
0: download/extract to wherever.
1: move superapp folder, and the 2 RegEx dlls into HaloCE program directory (next to haloceded.exe)
2(optional): use the included start.bat which will load the server (on port 2304) and then run the SuperApp. (it assumes you used Load in your init.txt)
2(other): start server, and make sure it loaded SAPP,
3(other): run "Start SuperApp.exe" and watch "manager" or "server loaded" show up in the console, then feel free to close the popup window

4: join the server, and "admin 1 25" (to add yourself as admin), and then re-read the readme to find out what you can do!

AbyllsSuperApp.zip (http://abyll.game-host.org/downloads/AbyllsSuperApp.zip) (Curr version 1.18)
Latest revisions: you can now save/load teleport locations, and nicknames

Limited
April 9th, 2009, 03:29 PM
Sounds interesting, whether or not it will be as good as rec0s, I dunno.

Btw, does it include a chat log (pure text I mean). None of the log with all the times etc.

Also maybe we could collab, I have a concept for a chat service that I'm currently working on.

Sabre
April 9th, 2009, 03:36 PM
Interesting Abyll, I remember you saying you were making a better one, didn't think it'd get finished tbh :P
Can't wait to see this in the Zombie Server.

Sabre
April 9th, 2009, 03:45 PM
Can it modify player speed?

Since Abyll has stated his app is better than rec0's, which already has that ability, obviously this app has it as well.

Aßyll
April 9th, 2009, 05:33 PM
You want speed? You got speed.
You want seperate chatlogging? You got it.

But... there's a few other things along with that... Do you want the log to be rotated whenever it's over some size? If you don't mind it just being one single file, than I can finish that in seconds.

supersniper
April 9th, 2009, 05:53 PM
tiz nice abyll.
Glad you finally made a public appearance with this.

Aßyll
April 9th, 2009, 06:00 PM
And yes, I'm totally open to any ideas anyone can contribute! (I'll only put in good ones, but I'll hear all of them. :) )

NullZero
April 9th, 2009, 07:47 PM
Good job on the app :D

I remember this for HIV forums, I don't know if this could give you any potential ideas: http://www.hivclan.net/forums/viewtopic.php?f=4&t=779

Syuusuke
April 9th, 2009, 08:05 PM
Call it Appyll or Apyll

Aßyll
April 9th, 2009, 08:56 PM
Call it Appyll or Apyll

Boooooo...


But suggestions are certainly welcome... I guess SuperApp isn't too great. (but App-yll isn't good either :p)

Limited
April 9th, 2009, 09:06 PM
Box-o-Tricks || Box-o-Trix

Looking good Abyll, although I havent had chance to test it yet.

Sel
April 9th, 2009, 09:19 PM
Call it Appyll or Apyll

oh my god

yes hahaah

jables
April 9th, 2009, 10:28 PM
does this work on gameserver servers?

Aßyll
April 9th, 2009, 10:52 PM
nope. The only thing stopping it from working though, is just how the dll is injected. If someone had their own injector that worked on gameservers, then you could just use that. I have a plan to do something similar to SAPP's load cmd.. but that's for a later version.

Cortexian
April 9th, 2009, 11:10 PM
nope. The only thing stopping it from working though, is just how the dll is injected. If someone had their own injector that worked on gameservers, then you could just use that. I have a plan to do something similar to SAPP's load cmd.. but that's for a later version.
I was under the impression that you got dll injection working for gameservers... Or was that supposed to be a secret?

Aßyll
April 9th, 2009, 11:17 PM
Nah, I don't know how to yet. I have ideas planned, like I said - using a load cmd like sapp.

jcap
April 11th, 2009, 11:27 PM
There's two or three things I want to see supported in here:

1. Support for multiple playlists. Have a way of setting up multiple playlist files you can name anything (just plain txt files with sv_mapcycle_add in it). Then you can type in-game /play "playlist1" and it will load the playlist's instructions and sv_mapcycle_begin it. Optionally, another command could be /loadpl which could load a playlist during a game, but not start it until /beginpl initiated (sv_mapcycle_begin).

2. !vote. There probably isn't a feature I miss more than !vote (why wasn't this app ever released!??). Any player could initiate a !vote which would poll the players in the server for a vote and then, if a majority rules for it, initiates the command voted on. !vote kick, !vote ban, !vote map, !vote mapnext, and any others that would be suitable for voting on.

3. This one is a little more complex, but it is something I've had my eyes on for about a year and a half. It would be absolutely amazing for Halo CE to have a global banlist, especially with the condition the game is in now with all the aimbotters and other assholes. The app could check a database hosted on Modacity a couple of times a day and update a table in your app's database for disallowed users. Each time a new connection is attempted, it would check against the table for disallowed users and either allow or deny them. Note that this would NOT interfere with the banlist file, because that would probably cause more problems than it's worth with both merging and managing (like having to restart the server to update it). Talk to me about this.

Aßyll
April 12th, 2009, 01:25 AM
1. Support for multiple playlists. Have a way of setting up multiple playlist files you can name anything (just plain txt files with sv_mapcycle_add in it). Then you can type in-game /play "playlist1" and it will load the playlist's instructions and sv_mapcycle_begin it. Optionally, another command could be /loadpl which could load a playlist during a game, but not start it until /beginpl initiated (sv_mapcycle_begin).

Use cmdfiles for that: make any text file and put in the commands that you know are needed to change the mapcycle, i.e. a file named 'zombiecycle.txt':

sv_mapcycle_del 0
sv_mapcycle_del 0
sv_mapcycle_del 0
sv_mapcycle_del 0
sv_mapcycle_add cmt_snow_grove zombies
sv_mapcycle_add putput zombies
sv_mapcycle_add no_remorse zombies
sv_mapcycle_begin
and then ctfcycle.txt:


sv_mapcycle_del 0
sv_mapcycle_del 0
sv_mapcycle_del 0
sv_mapcycle_del 0
sv_mapcycle_add timberland ctf
sv_mapcycle_add bloodgulch super_ctf
sv_mapcycle_add wtc3 other_ctf
sv_mapcycle_begin
so if you want to go to zombies mapcycle, do "cmdfile zombiecycle.txt"
All that you have to do with cmdfiles is type up the series of commands in a file in the superapp folder, and then run it. (I think I'll type up some sort of tutorial on that, to go along with the readme.)



2. !vote. There probably isn't a feature I miss more than !vote (why wasn't this app ever released!??). Any player could initiate a !vote which would poll the players in the server for a vote and then, if a majority rules for it, initiates the command voted on. !vote kick, !vote ban, !vote map, !vote mapnext, and any others that would be suitable for voting on.

I'm not too sure about how to make a voting system, but I know it'd be easy to put into my app. I could figure it out eventually, but I won't focus on it right now... I'd be glad to get any help with it if someone feels like it - I'm still looking for a team.



3. ... Global banlist file ...
I could certainly add in such functionality, though I don't know how I could do it... I do know where the banlist is in the haloceded memory, and I was looking at trying to give some ability to live-edit the banlist without needing to reload the banned.txt. Your help would be welcome though: I don't know much about network programming yet.

jcap
April 12th, 2009, 08:28 AM
I haven't used this because I'm not home yet. How are the players managed (names, total count)?

Really, you should manage all the players and settings in an Access database, like rec0's app. It's one file for easy management and you can add/remove from the database easily. It keeps the mess of files clean too.

I do think you should just keep the banlist separate, though. If you start getting into the updating of a banlist, you could end up with duplicates or some random issues by merging with memory. How does Halo reject players before even joining the game? In the logs, it just says QUIT.

supersniper
April 13th, 2009, 06:42 PM
I had HSE set up on my server and I got the vote commands to work... but a poll was never started... it just automatically changed to the next map or kicked/banned the player.

Kaishounashi
April 14th, 2009, 10:14 AM
And yes, I'm totally open to any ideas anyone can contribute! (I'll only put in good ones, but I'll hear all of them. :) )

Would it be feasible to add the ability to do recurring announcements with the app? I think this would be great for announcing custom map nights or custom map downloads. This is something I (stupidly) tried doing with SAPP by adding multiple event_join commands followed by different 'wait' intervals but it would either just cause the server to crap out (I guess all the event_join events loaded each time a player joined was too much for it).

----------

I read both readme files included in the download, but I still have a couple of questions that i'd like clarified :

1) In the readme file(s) you state that the app relies on things from SAPP (so SAPP needs to be loaded beforehand). I'm dumb, so I didn't understand this part. Does that mean sapp.dll also needs to be included alongside the server executable or are the SAPP commands included inside your AbyllsSuperApp.dll file? Also, does this mean your app supports most (if not all) of SAPP's commands?

2) Your readme file(s) also mention your access to SAPP's (older) source. Does this mean that the some of the issues inherent with it (the sporadic mass booting triggered by the 'event' commands) can happen with this app too? I know the app is still BETA, but depending on whether this app is using part of SAPP's source in it I figured maybe you went through it and made some fixes Termy missed.


I can't use your app yet since I have a GameServers dedi, but i'm looking forward to getting to play with it eventually. Keep up the good work and thanks for releasing this to the public. :D

Aßyll
April 14th, 2009, 02:58 PM
To Jcap:
A: How playerfiles work: The idea was to have only players that are non-default to be saved to a seperate INI file. I didn't store anything about names, or number of players. (However, I might do something seperate with my PlayerStats tracker instead, and just have the 2 programs work together slightly.)
I don't know how to do anything with an Access database (there's not exactly anything included with vc++ to do with that). Instead, I know how to do ordinary file IO, and I also figured that INI files would make it readable by humans.

B: I really don't know how I would get that to work. But I guess you have an idea, so feel free to join up and help with it (read below).

To Kaishounashi:
Recurring announcements? I could probably do that... *tacks it on the to-do list*

1) Yes, as in literally, it needs SAPP to work. That means your server needs to have the SAPP already set up and loaded (with load command) before you can even run mine. No, I don't have all of the commands from the SAPP in my app itself, so use the SAPP's commands instead. I'm just working on reproducing most of those commands in my own app (I only have a few done right now), and eventually your server won't need the SAPP at all.

2) I just mean that I did take some ideas, or small, rather useful code snippets from Termy's source - only concerning custom commands. I don't even have an event system yet, but when I do, it'll be made up by me, and also driven by codecaves so it won't have as many troubles.

3) Both readmes?... lol, oops... *runs off to delete the duplicate*


And, for everyone's information: This app is actually open source! (I just didn't reveal the location while it was in heavy development). If anyone is truly interested in helping out with it - giving ideas is okay, but I'd want help with actual coding - contact me so I can add you to the membership at the GoogleCode project: http://code.google.com/p/halo-super-app/

supersniper
April 14th, 2009, 06:38 PM
This compatible with rec0's app yet abyll?

Aßyll
April 14th, 2009, 08:02 PM
No, and I don't think it will be: rec0's app uses that different haloceded.exe to work.

jcap
April 14th, 2009, 08:09 PM
What is so different about that haloceded? I know it enables devmode, but what else does it do?

Syuusuke
April 14th, 2009, 09:38 PM
It crashes on sv_say.

The way it was coded is definitely different.

Like, the commands that do not use devmode have been coded in too (I think speed and team-changing aren't devcommands?)

Aßyll
April 14th, 2009, 09:38 PM
I really don't know... I just know that my app didn't work with it, so some of the modifications must have had to around my command codecave.

FluffyDucky™
April 15th, 2009, 02:22 AM
The fuck? When I tried to open it, it said regularexpressiondivvc9d.dllis missing from my computer?

StankBacon
April 15th, 2009, 02:29 AM
when i open the injector nothing happens.

Aßyll
April 15th, 2009, 09:39 AM
Sorry! I forgot to include the file that's needed for the RegEx engine... Well, I updated and included those!
The most notable additions are the /pl command to find player indices with chat commands, and also player name matching on sv_kick and sv_ban if done from a chat command. Moderation is now more powerful!

FluffyDucky™
April 15th, 2009, 11:56 AM
Still, nothing happens...

e: wait nvm?

ee: admin 1 25 doesn't do anything.. when i try other things it says cmd failed.. wtf? So admin 1 25 does nothing for me tbh.

Aßyll
April 15th, 2009, 04:41 PM
Did you load SAPP? I found the same thing if SAPP isn't loaded.

FluffyDucky™
April 16th, 2009, 08:51 PM
Still doesn't work.

Aßyll
April 16th, 2009, 09:27 PM
Hmm... well I know it needs a few things.. Did you try putting all of it next to the haloceded and not in a seperate folder? I'm not sure whether or not the app loads the RegEx dlls from the directory it was injected from, or the executable it injects to.
E: Did I mention it absolutely won't work with the rec0 modded haloceded.exe? Cuz it won't.

EE: Update! Teleport system is now totally vamped out! The most notable new ability: Jump. Now, instead of needing to know your coords, or even the map's axes to be able to use /j, you can just teleport relative to where you're looking. So, [jump abyll -2 2 1] will teleport me exactly 2 forward, 2 to the left, and then 1 up.

Cortexian
April 16th, 2009, 10:22 PM
Still doesn't work.
Ducky, there's something wrong with your PC. This doesn't work, AND Rec0's doesn't work... Chances are it's your fault.

flyingmonkey3
April 16th, 2009, 11:27 PM
Try reinstalling .NET Framework again. Here's the link (http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=en).

Aßyll
April 17th, 2009, 01:19 AM
Another update: I touched up cmdfiles (there was a small glitch), and I also included a few demo cmdfiles, one to show the Parameters ability, and also an example as to how to rotate through a mapcycle. (Unfortunately, the sv_mapcycle_begin command didn't work from the cmdfile - But you can just follow it up with sv_mapcycle_begin yourself to get it to work. :D)

Kornman00
April 17th, 2009, 05:33 AM
I may be able to help you in some areas Abyll. I have the original source to devinator (I'm not going to release it, so no one even ask), plus was originally working on doing a port to C++/clr (as rec0 did it all in C#). I noticed you used c++/clr for your player window source, or were working on it anyway. Since you're using an injected dll, I don't think you'll be able to get a mixed (managed and unmanaged) dll to work too swell in some cases.
You would benefit more by using .NET instead of the STD library provided with C++ and outside libs (ie, regex is apart of .NET). You'd also be able to perform database queries and edits just like rec0's with .NET. An option to use an outside app which interacts with the injected dll may be a viable option. This way you can keep the power of .NET while still using C++. There are a few ways to perform the IPC between the outside program and injected dll.

FluffyDucky™
April 17th, 2009, 05:48 AM
If you won't release (understandable) would you help to make another? :(


Ducky, there's something wrong with your PC. This doesn't work, AND Rec0's doesn't work... Chances are it's your fault.

:(

Aßyll
April 17th, 2009, 10:01 AM
Sounds cool if you know about that stuff; I don't have a clue about managed/unmanaged, or clr... or much about .NET either. I was able to use a form in a dll with another thing: VCL from c++ builder, but I figured that VC++ was more widely used so I moved over to it.

But if you could help out, that'd be great. :D Even if it was just to do the database, and help me figure out how to do extra windows.

Aßyll
April 20th, 2009, 12:15 AM
Update: I (think that I) fixed a sort of nasty problem if player indexes get mixed up from joining/leaving/mapchanging. I also fixed up some commands, and added a few more: ammo and health.

{XG}Gijs007
September 5th, 2009, 08:16 AM
the injector does not work for me!
it keeps saying waiting for halo ce to run...
btw I got windows 7 professional rtm but have admin and xp compat mode on... didnt work

btw 2 I use an script to first start the server I want to have the program hooked up to and then start the program and then the other servers.
the script uses server doc to restart the server

btw can you include the halo anti lag fix?
http://www.halomods.com/forums/viewtopic.php?f=93&t=11930&sid=95f25e93cdf3483cc55ca2d4bac81f79

supersniper
September 5th, 2009, 11:46 AM
sorry pal this was dropped.

Aßyll
October 5th, 2009, 03:59 AM
Update! I decided to pick this back up, and I'm gonna work at making this gameservers compatible. To start with, I replaced that silly regex engine with boost's regex.
I noticed d3dx9_41.dll is needed if noone saw that before, but you all should be able to get that easily enough.

I tried IGM Bitidork's dll injector thing, but that didn't seem to work for Gameservers... but I'm still looking for some way to get it running.

Edit: Minor update - I disabled several things that apparently gave troubles, such as admin join messages.

and linky: http://abyll.game-host.org/downloads/AbyllsSuperApp.zip (v1.18)
(http://abyll.game-host.org/downloads/AbyllsSuperApp.zip)

TitanNoBitchingHost
October 5th, 2009, 02:36 PM
Glad to see you're back working on the project! I have followed along a bit on the google code page. It will be interesting to see if Termy releases a new SAPP version this year. That could change everything!

{XG}Gijs007
October 5th, 2009, 03:00 PM
yea, awesome that you are working on this again:D

Dwood
October 13th, 2009, 05:51 AM
[01:58] Aβyll: SUPERAPP IS NOW ON GAMESERVEr!

Aßyll
October 13th, 2009, 02:16 PM
[01:58] Aβyll: SUPERAPP IS NOW ON GAMESERVEr!
This is so. (What I did was make it replace the SAPP, so it uses the sapp-patched haloceded, and load command)

'Cept it's still the same thing as before, so it still has some bugs and I'm working on it.

Cortexian
October 13th, 2009, 02:46 PM
So does it have a text based command system that's on par with Rec0's Devicator yet? That's what's been setting all the apps apart imo.

Aßyll
October 13th, 2009, 03:02 PM
Yes, chat commads do work for now. AND it has seperated admin levels! Just there are several commands that don't work (nickname being one), though I haven't tested all of it yet.

Really though, I want to get this much more stable (or at least disable broken stuff), and with Zombification, before releasing anything.

Cortexian
October 13th, 2009, 03:56 PM
What do you use to store all the players? Database? Text file?

Aßyll
October 13th, 2009, 06:01 PM
Textfiles - I don't really know how to do a database. And, after trying to learn how to... I don't know if it's really advantageous since it's more complicated (I don't even know if it's more efficient), and you can't edit it as easily outside of the game (esp. if you don't have microsoft access. :P).
(And if you got something confused, it only saves and loads from textfiles; it doesn't repeatedly check the files as the server is running. The players' info is kept in RAM.)

If someone else knows how to change what i have to a database interface, please do.

Kornman00
October 14th, 2009, 08:03 AM
Using a database API would provide a simpler system if implemented properly. You wouldn't have to deal with the load/store routines (and for text files at least, parsing), just the query and set mechanisms. Since you'd just be querying data you could then get live updates from the database in case of outside modification.

With a database storage too, end users could use existing programs to edit the data (ie, Access or even Excel I think) and won't have to deal with such low level editing like that of bare text files which just raises the user error level.

Cortexian
October 14th, 2009, 10:31 PM
Free MDB Viewer works as well, or whatever that free MDB program is...

Aßyll
October 15th, 2009, 11:36 PM
KM, can you point me to where I ought to start to learn how to work with databases? Generic google searching failed for the most part, so I really have no clue where to start.
Though, I read that the mdb (Jet) database that rec0 used is supposed to be decrepit.

Kornman00
October 16th, 2009, 03:57 AM
I believe you were only using native C++ but the google search (http://www.google.com/search?hl=en&source=hp&q=c%2B%2B+database+api&aq=f&oq=&aqi=) for it isn't all that hard. Third result is a start.

rec0's app and Synapse used the .NET framework's System.Data namespace for database interaction.