Digital Paint Discussion Board
Development => Mapping => Topic started by: sk89q on September 14, 2007, 01:06:49 AM
-
Submit your FINAL map to DP Resource's map database at:
http://maps.digitalpaint.therisenrealm.com/
What advantages do you get?
* Position in a comprehensive map database
* Ability for others to search specifically for maps like yours
* Great page to give detailed information on your map
* Allow others to comment on your map and give ratings
* Post your mapinfo/locs files
* Post your map source file, if you want, to help others learn how to make great maps
How do you submit your map?
Easy. Register an account (http://digitalpaint.therisenrealm.com/user/register)/login with your account (http://digitalpaint.therisenrealm.com/user/login) for DP Resource, and then click "Map Database."
Can you submit the maps of other people's?
Entirely. You just must make sure you have all the information correct and you give credit where it's due.
If my map really sucks, will it be deleted?
You can bet on it.
===============================
- Did someone else upload your map?
That means you can't edit it. However, if you contact us (the site), we can change the submitter to you, and you can freely change the information for the map.
-
Used! :D This definitely should be stickied.
More to come.
EDIT: And Pimp's maprating should be de-stickied. <_<
-
Nicely done again but please get the voting working because I can't vote!
-
Nice!
Nicely done again but please get the voting working because I can't vote!
You have to log in to vote.
Edit: Hm, I see what you mean, yeah I cant vote either.
-
Whoops. Fixed >_>
-
If anyone wants to add a ton of maps easily (say, you're bored)...
You can get PHP, install the script below, and then easily get map information. It's kind of hacky if you bother to read it.
Thanks to sort for giving me the offset to the position about the entities. =]
<?php
// By sk89q
// Available under GPLv2
$map_info_dir = "C:/Games/Paintball2/pball/maps/mapinfo";
///////////////
$file = $argv[1];
$filename = substr(basename($file), 0, -4);
// Entity parser
$contents = file_get_contents($file);
$contains_ctp = strpos($contents, "ctp1/") !== false ? "yes" : "no";
$entities_offset = unpack("Voffset", substr($contents, 8, 4));
$entities_offset = $entities_offset['offset'];
preg_match_all('#^{$(.*?)^\}$#sim', trim(substr($contents, $entities_offset)), $matches);
$matches = $matches[1];
unset($contents);
$entities = array();
for($i = 0; $i < count($matches); $i++)
{
if(strpos($matches[$i], "classname") === false)
continue;
$data = explode("\n", $matches[$i]);
$entity = array();
foreach($data as $line)
{
$line = trim($line);
preg_match('#^["\']([^"]+)["\'] ["\'](.*)["\']$#', $line, $m);
if(!$m[2])
continue;
$entity[strtolower($m[1])] = $m[2];
}
$entities[] = $entity;
}
unset($matches);
if(count($entities) == 0)
{
echo "ERROR: No entities parsed!\n";
exit;
}
//print_r($entities);
// Process
$guns = array('pgp' => 0,
'trracer' => 1,
'stingray' => 2,
'vm68' => 3,
'carbine' => 4,
'spyder' => 5,
'autococker' => 6,
'automag' => 7,
'low' => 2,
'medium' => 5,
'high' => 7);
$guns_to = array('pgp', 'trracer', 'stingray', 'vm68', 'carbine', 'spyder', 'autococker', 'automag');
$map_name = "";
$starting_best_gun = 0;
$best_gun = 0;
$has_dsm = "no";
$has_jail = "no";
$sky_type = "";
$teams = array();
$flags = array();
$worldspawn_entity = array();
foreach($entities as $entity)
{
// Map name, teams, sky
if($entity['classname'] == "worldspawn")
{
$worldspawn_entity = $entity;
$map_name = $entity['message'];
foreach($entity as $key => $value)
{
if(preg_match("#^team[0-9]$#", $key))
{
$teams[$key] = 1;
}
}
if(in_array($entity['sky'], array("", "pbsky2", "pbsky4", "riverscape1", "arctic1")))
{
$sky_type = "daytime";
}
else if(in_array($entity['sky'], array("unit1_")))
{
$sky_type = "orange";
}
else if(in_array($entity['sky'], array("pbsky1")))
{
$sky_type = "gloomy";
}
else if(in_array($entity['sky'], array("pbsky3")))
{
$sky_type = "night";
}
}
// Flags
if($entity['classname'] == "flag")
{
if(in_array($entity['gamemode'], array(4, 8, 0, "")))
{
if(intval($flag['teamnumber']) != 0)
{
$flags[$flag['teamnumber']]++;
}
else
{
for($i = 1; $i <= 4; $i++)
{
$flags[$i]++;
}
}
}
}
// Best starting gun, jail
if($entity['classname'] == "info_player_deathmatch")
{
if($entity['GiveGun'])
{
if($guns[strtolower($entity['GiveGun'])] > $starting_best_gun)
$starting_best_gun = $guns[strtolower($entity['GiveGun'])];
}
if($entity['jail'])
{
$has_jail = "yes";
}
}
// Best gun
if($entity['classname'] == "weapon_pballgun")
{
if($entity['group'])
{
}
else if($entity['type'])
{
if($guns[strtolower($entity['type'])] > $best_gun)
$best_gun = $guns[strtolower($entity['type'])];
}
else
{
$best_gun = 7;
}
}
// DSM
if($entity['classname'] == "func_dsm")
{
$has_dsm = "yes";
}
}
// Change format
$team_count = count($teams);
$flag_array_keys = array_keys($flags);
$flag_count = count($flags[$flag_array_keys[0]]);
// Other facts
$filesize = number_format(round(filesize($file)/1024))."kb";
$md5_checksum = md5_file($file);
// Game modes
$modes = array();
if($worldspawn_entity['gamemode'] & 1)
$modes[] = "dm";
if($worldspawn_entity['gamemode'] & 2)
$modes[] = "1-flag";
if($worldspawn_entity['gamemode'] & 4)
$modes[] = "2-flag";
if($worldspawn_entity['gamemode'] & 8)
$modes[] = "siege";
if($worldspawn_entity['gamemode'] & 16)
$modes[] = "koth";
if($worldspawn_entity['gamemode'] & 64)
$modes[] = "pong";
$modes_list = implode(" ", $modes);
// Map info
if(file_exists("$map_info_dir/$filename.txt"))
{
$map_info = file_get_contents("$map_info_dir/$filename.txt");
// Min players
preg_match("#minplayers ([0-9]+)#i", $map_info, $m);
$min_players = $m[1];
// Max players
preg_match("#maxplayers ([0-9]+)#i", $map_info, $m);
$max_players = $m[1];
// Max players
preg_match("#^supports (.+)$#im", $map_info, $m);
$modes_list2 = $m[1];
}
echo "* guessed\n";
echo "Map name: $map_name\n";
echo "Filesize: $filesize\n";
echo "MD5 checksum: $md5_checksum\n";
echo "Game modes: $modes_list\n";
echo "Game modes (mapinfo): $modes_list2\n";
echo "Min players: $min_players\n";
echo "Max players: $max_players\n";
echo "Contains CTP*: {$contains_ctp}\n";
echo "Teams: $team_count\n";
echo "Flags per team: $flag_count\n";
echo "Best starting gun*: {$guns_to[$starting_best_gun]}\n";
echo "Best gun: {$guns_to[$best_gun]}\n";
echo "Has DSM: $has_dsm\n";
echo "Has jail: $has_jail\n";
echo "Sky type: $sky_type\n";
fread(STDIN, 1024);
?>
-
I was/am developing something just like this for a larger based DP site, nice job! :D
-
I was/am developing something just like this for a larger based DP site, nice job! :D
You missing a noun in that sentence? :O
==
On another note, the entities parser in that script above is potentially faulty. It was code I used before I used the offset to extract just the entities data from the file, and I was a little too lazy to write an actual tokenizer parser.
-
Post removed
-
Can I edit the errors on the maps of mine already submitted?
I have set the author of the maps you created/edited to you so you can edit them.
Also, unique gameplay really should be a text field. If you're only trying to distinguish catapult type maps from regular CTF maps then you need to make that category MUCH more specific than 'unique gameplay.'
For example, under zsiege it says 'no' for unique gameplay. zsiege in fact does have quite a unique gameplay from any other siege maps primarily because it has two flags as well as multiple routes into the base area.
Unique gameplay only refers to maps that don't follow the usual conventions of Paintball maps overall. While zsiege might have two flags and multiple routes (not that siegecastle doesn't), this is nothing too new. There are many maps with two flags, if you consider every Paintball map in existence. What the site classifies is unique gameplay is truly unique gameplay, like using a completely different type of play. Take, for example, gwars: you shoot grenades through a cannon to eradicate the other team. This is quite unusual for a Paintball map. As for "partial unique gameplay," this would refer to, for example, one of the paths being a sky lift. Generally, the rule of thumb is that if the map uses entities to make a part of the flow of the map, it involves unique gameplay elements somehow. A rotating fan for visual appeal is not considered unique gameplay, as it does not affect the gameplay, while a map with rotating floors between path forks is considered "partially unique." It would be truly unique if you won the game in a slightly different way other than CTF, etc.
Also I've been trying to submit pbcup_renoir and I'm getting
"The connection was reset
The connection to the server was reset while the page was loading."
when i hit submit.
Try again later. Sometimes the servers start to hiccup.
-
You missing a noun in that sentence? :O
Uhh, no?
I mean, I developed a map rating site like this also, but as a sub-area to a larger web site.
-
I was/am developing something just like this for a larger based DP site, nice job! :D
"I was/am developing something just like this for a larger DP-based site, nice job! :D"
Eh?
-
Im no expert but I do not see a mistake :s
-
Bah. I don't think "larger based" is an appropriate term, since you don't "base" something on "large."
-
dont need to get all technical sk89q
-
I didn't understand what he said, so I naturally asked. Didn't get technical for no reason.
-
I have set the author of the maps you created/edited to you so you can edit them.
Unique gameplay only refers to maps that don't follow the usual conventions of Paintball maps overall. While zsiege might have two flags and multiple routes (not that siegecastle doesn't), this is nothing too new. There are many maps with two flags, if you consider every Paintball map in existence. What the site classifies is unique gameplay is truly unique gameplay, like using a completely different type of play. Take, for example, gwars: you shoot grenades through a cannon to eradicate the other team. This is quite unusual for a Paintball map. As for "partial unique gameplay," this would refer to, for example, one of the paths being a sky lift. Generally, the rule of thumb is that if the map uses entities to make a part of the flow of the map, it involves unique gameplay elements somehow. A rotating fan for visual appeal is not considered unique gameplay, as it does not affect the gameplay, while a map with rotating floors between path forks is considered "partially unique." It would be truly unique if you won the game in a slightly different way other than CTF, etc.
Try again later. Sometimes the servers start to hiccup.
How about different areas of the map opening up depending on how many players are in the server? :P
Good job on this tho, looks good.
I didn't understand what he said, so I naturally asked. Didn't get technical for no reason.
(lol at not knowing what larger based means :P)
-
Good idea lekky +1.
P.S. Check your PMs lekky.
-
How about different areas of the map opening up depending on how many players are in the server? :P
Good job on this tho, looks good.
Pfft. DSM is not that special. There's already a field for it anyway.
(lol at not knowing what larger based means :P)
PFFT. Bad grammar is confusing!
-
site is down?
-
Domain expired, that sucks. eR33t.com was held hostage by our registrar for something like $500.
-
Updated Date: 09-oct-2007
Creation Date: 07-oct-2003
Expiration Date: 07-oct-2008
>>> Last update of whois database: Tue, 09 Oct 2007 07:47:01 EDT <<<
It wasn't up a minute ago, but after a refresh, it's back.
-
yup
domain name needs renewing
-
Domain expired, that sucks. eR33t.com was held hostage by our registrar for something like $500.
Did you pay? :O
-
EDIT: And Pimp's maprating should be de-stickied. <_<
right!
-
===
Last night we upgraded from PHP4 to PHP5, so if any errors show up, drop me a line.
-
sk89q, I tried to get you a little closer to 500 maps by uploading y_soffice_b1, but to no avail...
I was uploading ../y_soffice_b1.bsp and received this message:
An error has occurred
An error has occurred: Go back and upload a map file.
What am I doing wrong?
-
Looks like the temp directory for the uploads on my server may be unwritable. I'll have to check that out.
-
Error code 101 now
-y
-
Indeed. I changed the error message so I wouldn't be confused next time (and so it wouldn't be confusing to uploaders).
-
I assumed so, I just thought I'd try again since I was bored waiting for VS 2008 to install (finally got around to downloading it from MSDN)
I'm not sure if I've said this, but I like the map database, it's definitely the best and most populated we've had for this game, thanks sk89q.
-
Uploads work again, finally.
-
Nice of you to keep this updated.
-
Maybe you could have the download link next to the map rather than having to click on the map title and then click on the link?
-
There's a lot of things I would like to change, but only JeeJee uses it, and this community is on the crap side of things, so I haven't really been motivated to update the site.
-
sk89q is genius!
-
for anyone interested you may have noticed sk89q's site has gone. and the link on the 'links' section is wrong but after a bit of looking i found it ;)
http://dp.tetsunosuke.co.cc/
-
for anyone interested you may have noticed sk89q's site has gone. and the link on the 'links' section is wrong but after a bit of looking i found it ;)
http://dp.tetsunosuke.co.cc/
Thanks sooo much. I was looking for this.
wyZe
-
Theres just 1 problem blindthing that site hasn't been updated since build 23! Sure, there are some useful guides but nothing great enough to actually help someone in deperate need.
wyZe
-
i think so
-
yeh, sry wyze, i just found it and thought it mite stil b quite useful, but th map database and quite a few other sections are not working, its not my site so idk...
-
The link you posted no longer exists.