|
Dedicated Server Discuss technical issues related to hosting your own servers. |
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
Introducing PALP - PHP Altitude Log Parser
=This is my initial; still limited version of PALP, the PHP Altitude Log Parser (or Phong's Altitude Log Parser). PALP is a PHP/Mysql based log parser for altitude, which will actively maintain a mysql database of server status and player statistics. Using PALP, server admins can build from this data and easily display live server activity through their website or other means.
This initial release only supports live server status and player statistics, however, in future releases it will include many more advanced features which are listed at the bottom of this post. *There is room for much improvement on the database backend, which I intended to resolve in PALP 2 but do not plan to continue at this time.* Here is the live data that is maintained, PALP does not count bot kills/deaths/goals/etc (though this can be edited): -Server data Server Port Server Name Server Mode Server Maxplayers -Player data Player Server Player IP Player Nickname Player VaporID Player Ping Player Kills Player Deaths Player Assists Player Crashes Player Goals Player Plane Player Perks Player Team Player Skins Player StructureDamage -MOTD on player join. -Ability to restrict planes per server (ban loopys on one server, ban mirandas on another) -Session tracking (your current session playtime and statistics) Additionally, server admins can build on the existing chat parsing function within this script to build additional custom commands outside of the current altitude scope. Any input is appreciated, I'll work on cleaning up the code in future releases. *************************************** Requirements: tail php (with mysql support) mysql (or remote database) *************************************** To Install: -Download PALP from http://pond.ohjeah.net/palp.zip and extract within the altitude root directory (not required): --wget http://pond.ohjeah.net/palp.zip --tar -xvzf palp.tar.gz or unzip palp.zip -Create a mysql database with correct user permissions -Import palp.sql: --mysql -u xxxx -pPassword databasename < palp.sql -Edit palp.inc with correct settings -Stop altitude if its running -Start palp: --php palp.php > /dev/null 2>&1 & -Start altitude: --./server_launcher > /dev/null 2>&1 & You can run palp to console if you'd like to monitor what it's doing. The preferred way: I prefer to use screen sessions (requires screen installed): Create a new shell called palp: # screen -S palp # cd altitudedirectory # php palp.php Disconnect from the shell (shell will still be running in the background with palp) (While holding CTRL, press A then D) Create a new shell called alt: # screen -S alt # cd altitudedirectory # ./server_launcher Disconnect from the shell (shell will still be running in the background with altitude) (While holding CTRL, press A then D) Now you can disconnect from your server with altitude and palp running. If you need to check on them or debug, log into the server and do screen -r (palp or alt) to connect to the shell and view their output. Just make sure you disconnect properly before exiting or closing. *************************************** Planned for next release: -Log archiving -Detailed history tables (for all stats and powerups) -Ladder/Match support (and separate stats) for all game modes -Chat commands for record reporting (!stats for example will whisper you your lifetime stats) -Code updates (cleanup sql queries and de-duplicate code) I'm also building a generic php/mysql/ajax front-end for all stats, in case you just wan't to put them up on your website without any development work. Last edited by phong; 06-27-2012 at 07:01 PM. |
#2
|
|||
|
|||
Tournament mode coming along. You can specify in the config the minimum team size to allow a tournament to begin (minimum being 1v1), as well as which servers (if you have more than one) to allow tournament mode on.
Supports any 2 team based map (tbd/tdm/ball/etc). Built in load balancing features based off of existing tournament stats (elo rating), if you have no tournament rating it will base it off your non-tournament stats if there are any. Automatically starts/mapchanges/stops tournament when complete Last edited by phong; 02-18-2010 at 06:53 AM. |
#3
|
|||
|
|||
Alright ready for this
|
#4
|
|||
|
|||
New setting added to 2.0, ability to restrict plane/perk setups on a per server basis:
Currently testing in 10v10 ball. Last edited by phong; 03-09-2010 at 07:39 PM. |
#5
|
|||
|
|||
|
#6
|
|||
|
|||
AFAIK all of phong's servers are privately hosted. The only public servers are the Officials #1-3.
|
#7
|
|||
|
|||
As I said I'm currently testing this (DF Loopy restrictions) in Ohjeah! 10v10 Ball Bouncy, it's probably not permanent.
Last edited by phong; 03-10-2010 at 04:45 PM. |
#8
|
|||
|
|||
I should probably reword the error message though as it seems some people cant read... they'll keep trying to spawn in the same setup and ignore the error message.
|
#9
|
|||
|
|||
Obscenities and rude insults should get their attention
[Server] The ******* perks your **** **** is trying to ******* use are NOT ******* ALLOWED. Go pick some other ******* perks, you ***** *******. |
#10
|
|||
|
|||
as long as you add f*cktard it works.. so it should go: [SERVER] stop spawning double fire you ****tard.
but it doesnt look like theres a big issue.. theres the command list as soon as you join and if you chat !resctricted there is a whole list of what you can spawn.. this thing looks cool keep it up!! Last edited by andy; 03-10-2010 at 04:05 PM. |
#11
|
|||
|
|||
Added new command, !session
Session stats continue through rounds. !stats or !rank will be next. |
#12
|
|||
|
|||
Quote:
|
#13
|
|||
|
|||
You can use DF with capacitor/turbo not with rubber hull/heavy armor/repair drone (can use flexible wings or no green perk).
You can use DF with any green perk but not with capacitor/turbo (can use ace or no blue perk). |
#14
|
|||
|
|||
Is the new version out yet where WE can "personolize" our servers with your magic, purely awesome, genuis?
|
#15
|
|||
|
|||
Soon, just been busy lately.
|
#16
|
|||
|
|||
I like the "!session" command. Good Job phong.
|
#17
|
|||
|
|||
Links have been updated with a more recent version of PALP, this version does not include the history tables which will be available in PALP2 (long term stat tracking and ranking).
This will give you the live database with current servers, players, and player statistics and also has plane restriction, tournament, and session functions. !touranment works as followed (not sure if anyone will use this without stat tracking): Server setup: Add a server to the config with any maps you plan to use (or just enable all maps), also include tbd_palp. Set the map rotation list to ONLY tbd_palp. Config setup: Edit palp.inc tournament settings, specify the available maps you'd like to use for tournaments, a map will be randomly selected from the list. Also specify the server port you setup previously to enable the !tournament command, as well as the minimum players to start a tournament. |
#18
|
|||
|
|||
I haven't seen the Ohjeah! servers around, different name or are they gone?
|
#19
|
|||
|
|||
I have to try this servers while the loopy restrictions are still active.
|
#20
|
|||
|
|||
I removed them as I strictly host servers for other people now. I haven't had time to work on palp in forever, especially with the warmer weather.
|
#21
|
|||
|
|||
A little question.
Im curious about putting a server with a team that is just humans and other team that is just expert bots (but always balanced the teams, 1 bot per human) Is this possible with your PALP program to do something like this ? |
#22
|
|||
|
|||
It's possible but the server configuration really won't allow it as bots cannot be spawned on the fly or via commands (yet).
|
#23
|
|||
|
|||
I like it. It runs smoothly with the servers and I haven't run into a bug yet.
Im a little curious though, why does palp ping a user every ten seconds or so... In other words it works great for my volleyball server. Can't wait for Palp2 |
#24
|
|||
|
|||
Altitude pings the players then outputs it in the logs every x seconds or so, I just update the associated data in SQL so you could display player pings on a frontend if you wanted.
|
#25
|
|||
|
|||
With the recent patch I'm debating if I should use command based inquiries or chat based inquiries. Basically, with command syntax there would be no chat spam, but sometimes it's useful.
|
#26
|
|||
|
|||
Question: with your setup, is there a way to detect the amount of time a plane is carrying a ball? I understand I would have to customize it, but is there a timestamp for when a player catches and releases a ball that I could utilize? Im looking for a "kill the carrier" type thing.
|HF| Bin |
#27
|
|||
|
|||
I had planned on adding item tracking in palp2 which would log all powerup data but still haven't moved on it yet. You'd just have to make your own function to catch powerups from the log and dump it to a table. Then you'd be able to pull all kinds of stats (who carried the ball the longest etc).
|
#28
|
|||
|
|||
Ok thanks for the info. Ill see what I can do!
|HF| bin |
#29
|
|||
|
|||
Ball map teams
The following is an accurate (I think/hope) list of the ball maps with their team colors and positions. the format is MAP: LEFT(0) RIGHT(1)
BALL arcanum: yellow red asteroids: red blue atmosphere: red blue cave: yellow green cavern: blue orange colosseum: blue green core: green blue cross: red purple cube: green blue darkwar: red azure doodle: red blue excel: orange green football: red blue funnelpark: red blue grotto: yellow red labyrinth: red blue lazer: green yellow lostcity: red blue mayhem: red blue mayhem2: red blue maze: red blue ocean: yellow azure pixelized orange azure planepark: red blue risk: red blue sideshow: yellow blue skulliskland: red blue snow: red blue star: red blue superlazer: green yellow thorns: green purple woods: red purple This can be used for a teamchange/suicide command....which i am currently working on. |HF| bin |
#30
|
|||
|
|||
the colors are as follows:
SPECTATE: 2 RED: 3 BLUE: 4 GREEN: 5 YELLOW: 6 ORANGE: 7 PURPLE: 8 AZURE: 9 whichever order pink and brown are, they would be 10 and 11 |HF| bin |
#31
|
|||
|
|||
Is this a dead project? I can't download PALP via the download links provided.
|
#32
|
|||
|
|||
I will check the links (I have nothing whatsoever to do with the project) and If they are indeed dead, I will post instructions on a new location to download them.
|
#33
|
|||
|
|||
Follow the same instructions as above. The original palp files can be found at bbxp.rh.rit.edu. Sorry for the poor quality site, but it was just thrown together (Grab the maps while you are there!).
It appears that the original server is down. It is still registered, but it doesn't reply to pings. |HF| bin |
#34
|
|||
|
|||
Quote:
Looks like the download worked. Now I just have to figure out what the heck I'm doing. |
#35
|
|||
|
|||
Sorry, high winds in the area knocked power out, hence why the download links were broken and ladder/apl were down. At least my $100,000 nat gas generator quote I put together last week was approved today
|
#36
|
|||
|
|||
I've spent most of today getting all this ready on a test system, and I think I'm almost there.
I am trying to get the plane restrictions working, but I don't know how. I guess I don't understand the "array" part, and the number next to it (50006). It seems that these distinguish one server instance from another, but I don't know where these numbers come from. Could anyone clarify this for me? I have pasted the relevant section from my palp.inc file, below. Thanks in advance. Code:
// Plane restrictions // Example: $restricted = array(array('Loopy','Double Fire','Heavy Armor','Ultracapacitor'), array('Loopy','Double Fire','Heavy Armor','Turbocharger')); $restricted = array( array('50006','Loopy','Tracker','Rubberized Hull','Turbocharger'), array('50006','Loopy','Double Fire','Heavy Armor','Turbocharger') ); global $restricted; ?> |
#37
|
|||
|
|||
its the port you have your server running on. each server requires a different port. change as necessary
|
#38
|
|||
|
|||
Got it, thanks!
|
#39
|
|||
|
|||
I would stick to command based, as this is how the game is currently set up, and it also prevents others from seeing the commands you're using.
|
#40
|
|||
|
|||
true, but chat based would let other people know what the other commands ARE, since in my experience they frequently don't know.
|HF| bin |
|
|