diff --git a/changelog.txt b/changelog.txt
new file mode 100644
index 0000000..1a8a231
--- /dev/null
+++ b/changelog.txt
@@ -0,0 +1,140 @@
+DRAGON SCOURGE
+Changelog
+
+***** BETA TWO *****
+12.10.2005 - Build 12 (Eggs):
+- Members can now leave the Guild without requiring an officer to demote them to zero.
+- Rank 5 members can now edit/update Guild settings.
+- # of Members is now set to 1 when a Guild is created, and updated correctly when an application is approved.
+- The Guild founder is now notified via the Post Office when someone applies to join.
+- Members can now arbitrarily deposit money to the Guild bank.
+- You can no longer send guild money to yourself. Checks and balances, man!
+- Fixed image format selection so that it actually works.
+- Removed Language selection from account registration/settings.
+
+12.02.2005 - Build 11 (Chopsticks):
+- Added guilds/clans.
+- Fixed bug with 0 or 1 shouts.
+- Removed an unused table row from extended profile.
+- Users can now select PNG or GIF formats for item/monster images in their Account Settings.
+- Added $controlrow option to enable/disable item/monster images (setting up for the Premium/Standard versions).
+- New set of item images in town (to replace the ones I stole from Diablo II).
+- Items in town are now created based on min/max levels for the town, instead of the user's exact level.
+- Greatly expanded the list of base items.
+- Fighting now has chances for excellent hit (double damage) and monster dodging (zero damage).
+
+
+***** BETA ONE *****
+
+11.10.2005 - Build 10 (Fingers):
+- Map image has now been replaced with a fully dynamic Flash movie to prevent cache issues.
+- Babblebox now refreshes itself every 45 seconds.
+
+11.07.2005 - Build 09 (Billiards):
+- Fixed spell return bug that would cause SQL errors in PVP.
+- Removed hard-coded avatar image sizes.
+- Fixed the "death by 0hp monster" bug.
+- Fixed reply bug in the Post Office.
+- Post Office should now check for sent gold AND postage when calculating for the error message.
+- Entering pvp.php and ending up in the dowait() function properly shows fightrow variables.
+- Monsters no longer have magic defense. (This is for balance testing. Some monsters will still end up with some eventually.)
+
+11.02.2005 - Build 08 (Magic):
+- Spending level points now increments current hp/mp as well as max hp/mp.
+- Improved error handling in users.php.
+- Character creation screen now properly displays max avatar filesize.
+- Challenging for duels is now moved to town.php, so that pvp.php can *never* run without a valid currentpvp number in $userrow.
+- You no longer get stranded in the duel screen if the other player declines the challenge.
+- You can no longer challenge yourself (or any other character on your account) to a duel.
+- The "No" button on the Inn screen now works properly.
+- Removed "jewel" slot from onlinechar, since jewels are not currently implemented.
+- Shields and helmets now display properly in profile and onlinechar.
+- $controlrow is now properly retrieved while a user is not logged in.
+- Hall of Fame experience points are now run through number_format().
+- Fixed addslashes_deep() to actually add slashes, instead of strip them.
+
+10.24.2005 - Build 07 (Lucky):
+- Increased error checking to prevent pvp.php from running without the proper variables in place.
+- Closed up travel/map loophole that lets you jump to places without owning the map.
+- Fixed a possible error in an empty Post Office outbox.
+- All "Please go back and try again" error messages now link back to index.php.
+- Avatar system changes:
+ * External avatars are no longer allowed.
+ * Max avatar size (bytes) is now a changeable controlrow variable.
+ * Uploading a new avatar now deletes your old one to save server space.
+ * File extensions are no longer case sensitive.
+- Botcheck system changes:
+ * Closed up loophole that let you keep exploring without verifying the image text.
+ * Images are now generated with random filenames to prevent old images from showing up.
+ * Images are now deleted after successful verification.
+
+10.22.2005 - Build 06 (Courtney):
+- Added Spells.
+- Added PVP.
+- Various minor bugfixes/changes that I can't remember cuz I wasn't updating this as I went along.
+- Intra-account money transfers are limited to 10% of the user's gold.
+- Increased size of pop-up map.
+
+***** ALPHA TWO *****
+
+5.6.2005 - Build 05 (Lifesavers):
+- Added live image map with town/player locations.
+- Added Babblebox.
+- Added Who's Online.
+- Fixed improper table with for IE6.
+- Moved the scrollable div tag into the primary template and out of the sub templates.
+- Removed a possible infinite loop in the anti-macro function.
+- Added "Return to [Town|Game]" links to the templates that were missing them.
+- Fixed a problem with the Top 10 list if there was only one character in the game.
+- Character names are (once again) limited to alphanumerics, to prevent annoying database issues. (Regex has been altered to allow spaces & hyphens, though.)
+
+4.23.2005 - Build 04 (Golf):
+- Added image-based compass navigation.
+- Fights happen slightly less often now (1/5 rather than 1/4).
+- Added anti-macro image verification for protection against space robots.
+
+4.1.2005 - Build 03 (Holy Hand Grenade):
+- Fixed problem that prevented users from registering.
+- Fixed exploit in the Bank and Post Office that allowed users to withdraw/deposit/send negative numbers.
+- Added God Mode cheat: index.php?do=iddqd
+
+3.29.2005 - Build 02 (Loser):
+- Characters are now separated from Accounts, to allow multiple chars (4) on one account.
+- Added account settings (changing password/email/language).
+- Increased security on POST/GET/COOKIE arrays.
+- You can no longer send a Letter to yourself.
+
+3.28.2005 - Build 01 (Binary):
+- Fixed shield/helmet item slot number mixup.
+- Fixed rounding problem when applying gold/exp bonuses.
+- Fixed Level Points template problem.
+- Added the Hall of Fame (Top 10 list).
+- Added the Post Office (private messaging + money transfers).
+
+3.25.2005 - Build 00 (MI5):
+- Complete ground-up rewrite. Build numbers reset to 00. Everything is new again.
+
+
+***** ALPHA ONE *****
+
+8.2.2004 - Build 23 (johnny):
+- Fixed bug that prevented people from buying items.
+- Fixed URL cheat that allowed people to buy any item in the game.
+- Fixed bug that could cause negative damage to monsters (ie. heal them).
+
+7.30.2004 - Build 22 (catch):
+- Removed dev site link from ?do=version.
+- Added changelog link to ?do=version.
+- Fixed URL cheat that allowed people to get healed for free.
+- Fixed number_format for gold/exp on the charprofile screen.
+
+7.28.2004 - Build 21 (beer):
+- Fixed problem with having occasional monster hp values as decimals instead of integers.
+- Language name values are now properly lowercased for storage.
+- Added "Not Working Yet" messages for arena/onlinechar/help.
+- Fixed a problem with the fight screen showing the wrong player lat/lon values.
+- Fixed a problem with users getting stuck off edge of the map.
+- Added language indexes for x_submit and x_reset.
+
+7.19.2004 - Build 20 (pr0n):
+- Initial public testing release.
\ No newline at end of file
diff --git a/config.php b/config.php
new file mode 100644
index 0000000..1e30d25
--- /dev/null
+++ b/config.php
@@ -0,0 +1,11 @@
+ "localhost", // MySQL server name. (Usually localhost.)
+ "user" => "", // MySQL username.
+ "pass" => "", // MySQL password.
+ "name" => "", // MySQL database name.
+ "prefix" => "", // Prefix for table names.
+ "secretword" => ""); // Secret word used when hashing information for cookies.
+
+?>
\ No newline at end of file
diff --git a/cookies.php b/cookies.php
new file mode 100644
index 0000000..81c22d7
--- /dev/null
+++ b/cookies.php
@@ -0,0 +1,31 @@
+
\ No newline at end of file
diff --git a/explore.php b/explore.php
new file mode 100644
index 0000000..4976697
--- /dev/null
+++ b/explore.php
@@ -0,0 +1,151 @@
+go back and try again.");
+ }
+ }
+
+ // Breakout for towns.
+ $query = doquery("SELECT * FROM {{table}} WHERE world='".$userrow["world"]."' AND latitude='".$userrow["latitude"]."' AND longitude='".$userrow["longitude"]."' LIMIT 1", "towns");
+ $row = dorow($query);
+ if ($row != false) {
+ $townslist = explode(",",$userrow["townslist"]);
+ if (!in_array($row["id"], $townslist)) {
+ $userrow["townslist"] .= ",".$row["id"];
+ $string .= ", townslist='".$userrow["townslist"]."'";
+ }
+ doquery("UPDATE {{table}} SET currentaction='In Town' $string WHERE id='".$userrow["id"]."' LIMIT 1", "users");
+ display("Exploring", parsetemplate(gettemplate("town_enter"), $row));
+ }
+
+ // Decide if we want to pick a fight with someone.
+ if (rand(1,5) == 1 && $userrow["currentaction"] != "In Town") {
+ doquery("UPDATE {{table}} SET currentaction='Fighting' $string WHERE id='".$userrow["id"]."' LIMIT 1", "users");
+ die(header("Location: fight.php"));
+ }
+
+ // Random check for protection against macro bots.
+ if ($controlrow["botcheck"] > 0) {
+ if (rand(1,$controlrow["botcheck"]) == 1) {
+ botkillah();
+ }
+ }
+
+ // If we've gotten this far, nothing has happened.
+ $userrow["currentaction"] = "Exploring";
+ doquery("UPDATE {{table}} SET currentaction='Exploring' $string WHERE id='".$userrow["id"]."' LIMIT 1", "users");
+ display("Exploring", gettemplate("explore"));
+
+}
+
+function travel($id) { // Move them with the Travel To list.
+
+ global $userrow, $worldrow;
+
+ if ($userrow["currentpvp"] != 0) { die(header("Location: pvp.php")); }
+ if ($userrow["currentaction"] == "PVP") { die(header("Location: pvp.php")); }
+ if ($userrow["currentaction"] == "Fighting") { die(header("Location: fight.php")); }
+ if ($userrow["exploreverify"] != "") { botkillah(); }
+
+ if (!is_numeric($id)) { err("Invalid action. Please go back and try again."); }
+ $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "towns");
+ $row = dorow($query);
+
+ // Errors.
+ if ($userrow["currenttp"] < $row["travelpoints"]) { err("You do not have enough Travel Points to travel to this town. Please go back and try again."); }
+ if ($userrow["world"] != $row["world"]) { err("You can only travel to towns in ".$worldrow["name"].". Please go back and try again."); }
+ if ($userrow["latitude"] == $row["latitude"] && $userrow["longitude"] == $row["longitude"] && $userrow["world"] == $row["world"]) { err("You are already in ".$row["name"].". You do not need to travel there.
Click here to return to the main town screen."); }
+ $townslist = explode(",",$userrow["townslist"]);
+ if (!in_array($id,$townslist)) { err("You have not purchased the map to this town. Please go back and try again."); }
+
+ // Now move them.
+ $userrow["longitude"] = $row["longitude"];
+ $userrow["latitude"] = $row["latitude"];
+ $userrow["currenttp"] -= $row["travelpoints"];
+ $query = doquery("UPDATE {{table}} SET latitude='".$userrow["latitude"]."', longitude='".$userrow["longitude"]."', currenttp='".$userrow["currenttp"]."', currentaction='In Town' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
+ display("Exploring", parsetemplate(gettemplate("town_enter"), $row));
+
+}
+
+function botkillah() { // Bust a cap in the asses of macro bots. Word.
+
+ global $userrow;
+
+ if (isset($_POST["submit"])) {
+
+ if (strtoupper($_POST["verify"]) == $userrow["exploreverify"]) {
+ $query = doquery("UPDATE {{table}} SET exploreverify='',exploreverifyimage='' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
+ unlink("images/botcheck/".$userrow["exploreverifyimage"]);
+ die(header("Location: index.php"));
+ } else {
+ $query = doquery("UPDATE {{table}} SET explorefailed=explorefailed+1 WHERE id='".$userrow["id"]."' LIMIT 1", "users");
+ die(header("Location: index.php?do=humanity"));
+ }
+
+ } else {
+
+ if ($userrow["exploreverify"] == "") {
+
+ // Thanks to phpNoise for the tutorial on this - http://www.phpnoise.com/tutorials/1/2
+ // Image setup.
+ $im = ImageCreate(200, 40);
+ $white = ImageColorAllocate($im, 240, 240, 240);
+ $black = ImageColorAllocate($im, 102, 51, 0);
+
+ // Get us some random text.
+ $new_string = "";
+ for($i=0; $i<6; $i++) {
+ $new_string .= chr(rand(65,90));
+ }
+
+ // Finalize, update userrow & output.
+ ImageFill($im, 0, 0, $white);
+ ImageString($im, 5, rand(10,120), rand(5,25), $new_string, $black);
+ $randomext = "";
+ for($i=0; $i<8; $i++) { $randomext .= rand(0,9); }
+ ImagePNG($im, "images/botcheck/$randomext".".png");
+ ImageDestroy($im);
+ $query = doquery("UPDATE {{table}} SET exploreverify='$new_string',exploreverifyimage='$randomext".".png' WHERE id='".$userrow["id"]."' LIMIT 1", "users");
+
+ $pagerow["exploreverifyimage"] = $randomext.".png";
+
+ } else { $pagerow["exploreverifyimage"] = $userrow["exploreverifyimage"]; }
+
+ display("Anti-Macro Verification", parsetemplate(gettemplate("explore_verify"),$pagerow));
+
+ }
+
+}
+
+?>
\ No newline at end of file
diff --git a/extras/install.sql b/extras/install.sql
new file mode 100644
index 0000000..10e55ee
--- /dev/null
+++ b/extras/install.sql
@@ -0,0 +1,866 @@
+-- phpMyAdmin SQL Dump
+-- version 2.6.0-pl3
+-- http://www.phpmyadmin.net
+--
+-- Host: localhost
+-- Generation Time: Dec 10, 2005 at 03:15 PM
+-- Server version: 4.1.14
+-- PHP Version: 5.0.5
+--
+-- Database: `scourge2`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_accounts`
+--
+
+CREATE TABLE `sx_accounts` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `username` varchar(30) NOT NULL default '',
+ `password` varchar(32) NOT NULL default '',
+ `emailaddress` varchar(50) NOT NULL default '',
+ `verifycode` varchar(8) NOT NULL default '',
+ `regdate` datetime NOT NULL default '0000-00-00 00:00:00',
+ `regip` varchar(16) NOT NULL default '',
+ `authlevel` tinyint(3) unsigned NOT NULL default '1',
+ `language` varchar(30) NOT NULL default '',
+ `characters` tinyint(3) unsigned NOT NULL default '0',
+ `activechar` int(10) unsigned NOT NULL default '0',
+ `imageformat` varchar(4) NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_babblebox`
+--
+
+CREATE TABLE `sx_babblebox` (
+ `id` int(11) unsigned NOT NULL auto_increment,
+ `posttime` datetime NOT NULL default '0000-00-00 00:00:00',
+ `charname` varchar(30) NOT NULL default '',
+ `charid` int(11) unsigned NOT NULL default '0',
+ `content` varchar(255) NOT NULL default '',
+ `guild` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_babblebox`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_classes`
+--
+
+CREATE TABLE `sx_classes` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(50) NOT NULL default '',
+ `expbonus` tinyint(3) unsigned NOT NULL default '0',
+ `goldbonus` tinyint(3) unsigned NOT NULL default '0',
+ `damageperstrength` float unsigned NOT NULL default '0',
+ `hpperdexterity` float unsigned NOT NULL default '0',
+ `mpperenergy` float unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_classes`
+--
+
+INSERT INTO `sx_classes` VALUES (1, 'Barbarian', 0, 0, 2, 1.5, 1);
+INSERT INTO `sx_classes` VALUES (2, 'Sorceress', 0, 0, 1, 1.5, 2);
+INSERT INTO `sx_classes` VALUES (3, 'Paladin', 0, 0, 1.5, 2, 1);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_control`
+--
+
+CREATE TABLE `sx_control` (
+ `id` tinyint(3) unsigned NOT NULL auto_increment,
+ `gamename` varchar(50) NOT NULL default '',
+ `gameopen` tinyint(3) unsigned NOT NULL default '0',
+ `gamepath` varchar(200) NOT NULL default '',
+ `forumtype` tinyint(3) unsigned NOT NULL default '0',
+ `forumurl` varchar(200) NOT NULL default '',
+ `avatarpath` varchar(200) NOT NULL default '',
+ `avatarurl` varchar(200) NOT NULL default '',
+ `avatarmaxsize` int(10) unsigned NOT NULL default '0',
+ `showshout` tinyint(3) unsigned NOT NULL default '0',
+ `showonline` tinyint(3) unsigned NOT NULL default '0',
+ `shownews` tinyint(3) unsigned NOT NULL default '0',
+ `showimages` tinyint(3) unsigned NOT NULL default '0',
+ `verifyemail` tinyint(3) unsigned NOT NULL default '0',
+ `compression` tinyint(3) unsigned NOT NULL default '0',
+ `debug` tinyint(3) unsigned NOT NULL default '0',
+ `logerrors` tinyint(3) unsigned NOT NULL default '0',
+ `botcheck` tinyint(3) unsigned NOT NULL default '0',
+ `pvprefresh` int(10) NOT NULL default '0',
+ `pvptimeout` int(10) NOT NULL default '0',
+ `guildstartup` int(10) unsigned NOT NULL default '100000',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_control`
+--
+
+INSERT INTO `sx_control` VALUES (1, 'Dragon Scourge', 1, 'd:\\server\\docroot\\scourge\\', 1, 'http://se7enet.com/ubbthreads/ubbthreads.php', 'd:\\server\\docroot\\scourge\\images\\users\\', 'http://localhost/scourge/images/users/', 15000, 1, 1, 1, 1, 0, 1, 1, 1, 100, 15, 600, 100000);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_difficulties`
+--
+
+CREATE TABLE `sx_difficulties` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(50) NOT NULL default '',
+ `expbonus` tinyint(3) unsigned NOT NULL default '0',
+ `goldbonus` tinyint(3) unsigned NOT NULL default '0',
+ `multiplier` float NOT NULL default '0',
+ `deathpenalty` tinyint(3) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_difficulties`
+--
+
+INSERT INTO `sx_difficulties` VALUES (1, 'Easy', 0, 0, 1, 0);
+INSERT INTO `sx_difficulties` VALUES (2, 'Medium', 3, 3, 1.5, 3);
+INSERT INTO `sx_difficulties` VALUES (3, 'Hard', 5, 5, 2, 7);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_guildapps`
+--
+
+CREATE TABLE `sx_guildapps` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `guild` int(10) unsigned NOT NULL default '0',
+ `charid` int(10) unsigned NOT NULL default '0',
+ `charname` varchar(30) NOT NULL default '',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_guildapps`
+--
+
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_guilds`
+--
+
+CREATE TABLE `sx_guilds` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(50) NOT NULL default '',
+ `tagline` varchar(4) NOT NULL default '',
+ `color1` varchar(7) NOT NULL default '',
+ `color2` varchar(7) NOT NULL default '',
+ `members` int(10) unsigned NOT NULL default '0',
+ `founder` int(10) unsigned NOT NULL default '0',
+ `bank` int(10) unsigned NOT NULL default '0',
+ `joincost` int(10) unsigned NOT NULL default '0',
+ `image` varchar(30) NOT NULL default '',
+ `rank1` varchar(30) NOT NULL default '',
+ `rank2` varchar(30) NOT NULL default '',
+ `rank3` varchar(30) NOT NULL default '',
+ `rank4` varchar(30) NOT NULL default '',
+ `rank5` varchar(30) NOT NULL default '',
+ `isactive` tinyint(3) unsigned NOT NULL default '0',
+ `statement` text NOT NULL,
+ `news` text NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_guilds`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_itembase`
+--
+
+CREATE TABLE `sx_itembase` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(50) NOT NULL default '',
+ `slotnumber` tinyint(3) unsigned NOT NULL default '0',
+ `unique` tinyint(3) unsigned NOT NULL default '0',
+ `willdrop` tinyint(3) unsigned NOT NULL default '0',
+ `buycost` int(10) unsigned NOT NULL default '0',
+ `sellcost` int(10) unsigned NOT NULL default '0',
+ `reqlevel` smallint(5) unsigned NOT NULL default '0',
+ `reqstrength` smallint(5) unsigned NOT NULL default '0',
+ `reqdexterity` smallint(5) unsigned NOT NULL default '0',
+ `reqenergy` smallint(5) unsigned NOT NULL default '0',
+ `basename` varchar(50) NOT NULL default '',
+ `baseattr` smallint(5) unsigned NOT NULL default '0',
+ `mod1name` varchar(50) NOT NULL default '',
+ `mod1attr` smallint(5) unsigned NOT NULL default '0',
+ `mod2name` varchar(50) NOT NULL default '',
+ `mod2attr` smallint(5) unsigned NOT NULL default '0',
+ `mod3name` varchar(50) NOT NULL default '',
+ `mod3attr` smallint(5) unsigned NOT NULL default '0',
+ `mod4name` varchar(50) NOT NULL default '',
+ `mod4attr` smallint(5) unsigned NOT NULL default '0',
+ `mod5name` varchar(50) NOT NULL default '',
+ `mod5attr` smallint(5) unsigned NOT NULL default '0',
+ `mod6name` varchar(50) NOT NULL default '',
+ `mod6attr` smallint(5) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_itembase`
+--
+
+INSERT INTO `sx_itembase` VALUES (1, 'Pointy Stick', 1, 0, 1, 10, 5, 1, 0, 0, 0, 'physattack', 3, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (2, 'Big Stick', 1, 0, 1, 15, 8, 1, 0, 0, 0, 'physattack', 4, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (3, 'Dagger', 1, 0, 1, 20, 10, 1, 0, 0, 0, 'physattack', 5, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (4, 'Hand Axe', 1, 0, 1, 30, 15, 1, 0, 0, 0, 'physattack', 7, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (5, 'Leg Bone', 1, 0, 1, 40, 20, 1, 0, 0, 0, 'physattack', 8, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (6, 'Dirk', 1, 0, 1, 60, 30, 3, 10, 0, 0, 'physattack', 10, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (7, 'Small Axe', 1, 0, 1, 80, 40, 3, 10, 0, 0, 'physattack', 11, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (8, 'Club', 1, 0, 1, 110, 55, 3, 15, 0, 0, 'physattack', 12, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (9, 'Kris', 1, 0, 1, 140, 70, 3, 15, 0, 0, 'physattack', 15, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (10, 'Light Axe', 1, 0, 1, 180, 90, 5, 20, 0, 0, 'physattack', 18, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (11, 'Spiked Club', 1, 0, 1, 220, 110, 5, 20, 0, 0, 'physattack', 20, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (12, 'Cudgel', 1, 0, 1, 270, 135, 5, 25, 0, 0, 'physattack', 23, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (13, 'Stiletto', 1, 0, 1, 330, 165, 7, 25, 0, 0, 'physattack', 25, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (14, 'Pick Axe', 1, 0, 1, 400, 200, 9, 30, 0, 0, 'physattack', 30, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (15, 'Nailed Club', 1, 0, 1, 480, 240, 11, 30, 0, 0, 'physattack', 30, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (16, 'Cutlass', 1, 0, 1, 570, 285, 13, 35, 0, 0, 'physattack', 35, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (17, 'Bayonet', 1, 0, 1, 670, 335, 15, 35, 0, 0, 'physattack', 38, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (18, 'Tomahawk', 1, 0, 1, 800, 400, 17, 40, 0, 0, 'physattack', 40, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (19, 'Light Mace', 1, 0, 1, 950, 475, 19, 40, 0, 0, 'physattack', 43, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (20, 'Falchion', 1, 0, 1, 1200, 600, 21, 45, 0, 0, 'physattack', 45, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (21, 'Foil', 1, 0, 1, 1400, 700, 23, 50, 0, 0, 'physattack', 48, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (22, 'Short Sword', 1, 0, 1, 1600, 800, 25, 50, 0, 0, 'physattack', 50, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (23, 'Double Axe', 1, 0, 1, 1900, 950, 27, 60, 0, 0, 'physattack', 55, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (24, 'Mace', 1, 0, 1, 2300, 1150, 29, 60, 0, 0, 'physattack', 60, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (25, 'Scimitar', 1, 0, 1, 2800, 1400, 31, 70, 0, 0, 'physattack', 65, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (26, 'Bardiche', 1, 0, 1, 3400, 1700, 33, 70, 0, 0, 'physattack', 70, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (27, 'Knobbed Mace', 1, 0, 1, 4100, 2050, 35, 80, 0, 0, 'physattack', 75, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (28, 'Rapier', 1, 0, 1, 4900, 2450, 37, 90, 0, 0, 'physattack', 85, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (29, 'Morning Star', 1, 0, 1, 5800, 2900, 39, 100, 0, 0, 'physattack', 95, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (30, 'Battle Axe', 1, 0, 1, 6800, 3400, 41, 110, 0, 0, 'physattack', 105, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (31, 'Saber', 1, 0, 1, 7800, 3900, 43, 120, 0, 0, 'physattack', 115, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (32, 'Francisca', 1, 0, 1, 9000, 4500, 45, 130, 0, 0, 'physattack', 125, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (33, 'Flanged Mace', 1, 0, 1, 10000, 5000, 47, 140, 0, 0, 'physattack', 135, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (34, 'Broadsword', 1, 0, 1, 11000, 5500, 49, 150, 0, 0, 'physattack', 145, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (35, 'War Axe', 1, 0, 1, 12500, 6250, 51, 165, 0, 0, 'physattack', 155, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (36, 'Trench Mace', 1, 0, 1, 14000, 7000, 53, 180, 0, 0, 'physattack', 165, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (37, 'Long Sword', 1, 0, 1, 15500, 7750, 55, 195, 0, 0, 'physattack', 180, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (38, 'Broad Axe', 1, 0, 1, 17000, 8500, 57, 210, 0, 0, 'physattack', 195, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (39, 'Flail', 1, 0, 1, 18500, 9250, 59, 225, 0, 0, 'physattack', 210, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (40, 'Claymore', 1, 0, 1, 20000, 10000, 61, 240, 0, 0, 'physattack', 225, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (41, 'Poleaxe', 1, 0, 1, 21500, 10750, 63, 255, 0, 0, 'physattack', 240, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (42, 'War Hammer', 1, 0, 1, 23000, 11500, 65, 270, 0, 0, 'physattack', 255, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (43, 'Katana', 1, 0, 1, 24500, 12250, 67, 285, 0, 0, 'physattack', 270, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (44, 'Scythe', 1, 0, 1, 26000, 13000, 69, 300, 0, 0, 'physattack', 280, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (45, 'Zweihander', 1, 0, 1, 27500, 13750, 71, 315, 0, 0, 'physattack', 295, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (46, 'Halberd', 1, 0, 1, 29000, 14500, 73, 330, 0, 0, 'physattack', 310, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (47, 'Flamberge', 1, 0, 1, 30000, 15000, 75, 345, 0, 0, 'physattack', 330, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (48, 'Great Axe', 1, 0, 1, 32000, 16000, 77, 360, 0, 0, 'physattack', 345, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (49, 'Great Sword', 1, 0, 1, 34000, 17000, 79, 375, 0, 0, 'physattack', 360, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (50, 'Giant Axe', 1, 0, 1, 36000, 18000, 81, 390, 0, 0, 'physattack', 380, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (51, 'Giant Maul', 1, 0, 1, 38000, 19000, 83, 405, 0, 0, 'physattack', 400, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (52, 'Skivvies', 2, 0, 1, 20, 10, 1, 0, 0, 0, 'physdefense', 2, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (53, 'Cloak', 2, 0, 1, 30, 15, 1, 0, 0, 0, 'physdefense', 3, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (54, 'Cloth Armor', 2, 0, 1, 40, 20, 1, 0, 0, 0, 'physdefense', 3, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (55, 'Quilted Coat', 2, 0, 1, 50, 25, 1, 0, 0, 0, 'physdefense', 5, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (56, 'Quilted Armor', 2, 0, 1, 70, 35, 1, 0, 0, 0, 'physdefense', 5, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (57, 'Leather Coat', 2, 0, 1, 90, 45, 3, 5, 6, 0, 'physdefense', 6, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (58, 'Leather Hauberk', 2, 0, 1, 110, 55, 3, 5, 6, 0, 'physdefense', 7, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (59, 'Leather Coat', 2, 0, 1, 150, 75, 3, 8, 10, 0, 'physdefense', 8, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (60, 'Hard Leather Armor', 2, 0, 1, 190, 95, 3, 8, 10, 0, 'physdefense', 9, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (61, 'Riveted Leather Armor', 2, 0, 1, 230, 115, 5, 10, 12, 0, 'physdefense', 11, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (62, 'Spiked Leather Armor', 2, 0, 1, 270, 135, 5, 10, 12, 0, 'physdefense', 12, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (63, 'Light Chain Mail', 2, 0, 1, 310, 155, 5, 13, 16, 0, 'physdefense', 14, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (64, 'Heavy Chain Mail', 2, 0, 1, 360, 180, 7, 13, 16, 0, 'physdefense', 15, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (65, 'Chain Mail Shirt', 2, 0, 1, 420, 210, 9, 15, 18, 0, 'physdefense', 18, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (66, 'Chain Mail Hauberk', 2, 0, 1, 500, 250, 11, 15, 18, 0, 'physdefense', 18, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (67, 'Full Chain Mail', 2, 0, 1, 580, 290, 13, 18, 22, 0, 'physdefense', 21, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (68, 'Light Plate Mail', 2, 0, 1, 680, 340, 15, 18, 22, 0, 'physdefense', 23, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (69, 'Heavy Plate Mail', 2, 0, 1, 800, 400, 17, 20, 24, 0, 'physdefense', 24, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (70, 'Plate Mail Shirt', 2, 0, 1, 950, 475, 19, 20, 24, 0, 'physdefense', 26, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (71, 'Plate Mail Hauberk', 2, 0, 1, 1200, 600, 21, 23, 28, 0, 'physdefense', 27, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (72, 'Full Plate Mail', 2, 0, 1, 1500, 750, 23, 25, 30, 0, 'physdefense', 29, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (73, 'Light Scale Mail', 2, 0, 1, 1800, 900, 25, 25, 30, 0, 'physdefense', 30, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (74, 'Heavy Scale Mail', 2, 0, 1, 2400, 1200, 27, 30, 36, 0, 'physdefense', 33, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (75, 'Scale Mail Shirt', 2, 0, 1, 2800, 1400, 29, 30, 36, 0, 'physdefense', 36, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (76, 'Scale Mail Hauberk', 2, 0, 1, 3500, 1750, 31, 35, 42, 0, 'physdefense', 39, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (77, 'Full Scale Mail', 2, 0, 1, 4800, 2400, 33, 35, 42, 0, 'physdefense', 42, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (78, 'Copper Breastplate', 2, 0, 1, 6000, 3000, 35, 40, 48, 0, 'physdefense', 45, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (79, 'Bronze Breastplate', 2, 0, 1, 7500, 3750, 37, 45, 54, 0, 'physdefense', 50, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (80, 'Iron Breastplate', 2, 0, 1, 9000, 4500, 39, 50, 60, 0, 'physdefense', 56, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (81, 'Steel Breastplate', 2, 0, 1, 10500, 5250, 41, 55, 66, 0, 'physdefense', 62, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (82, 'Titanium Breastplate', 2, 0, 1, 12000, 6000, 43, 60, 72, 0, 'physdefense', 68, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (83, 'Copper Field Plate', 2, 0, 1, 14000, 7000, 45, 65, 78, 0, 'physdefense', 74, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (84, 'Bronze Field Plate', 2, 0, 1, 16000, 8000, 47, 70, 84, 0, 'physdefense', 80, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (85, 'Iron Field Plate', 2, 0, 1, 18000, 9000, 49, 75, 90, 0, 'physdefense', 86, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (86, 'Steel Field Plate', 2, 0, 1, 20000, 10000, 51, 83, 100, 0, 'physdefense', 92, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (87, 'Titanium Field Plate', 2, 0, 1, 24000, 12000, 53, 90, 108, 0, 'physdefense', 98, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (88, 'Copper Articulated Plate', 2, 0, 1, 28000, 14000, 55, 98, 118, 0, 'physdefense', 106, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (89, 'Bronze Articulated Plate', 2, 0, 1, 32000, 16000, 57, 105, 126, 0, 'physdefense', 115, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (90, 'Iron Articulated Plate', 2, 0, 1, 36000, 18000, 59, 113, 136, 0, 'physdefense', 124, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (91, 'Steel Articulated Plate', 2, 0, 1, 40000, 20000, 61, 120, 144, 0, 'physdefense', 133, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (92, 'Titanium Articulated Plate', 2, 0, 1, 45000, 22500, 63, 128, 154, 0, 'physdefense', 142, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (93, 'Copper Battle Armor', 2, 0, 1, 50000, 25000, 65, 135, 162, 0, 'physdefense', 150, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (94, 'Bronze Battle Armor', 2, 0, 1, 55000, 27500, 67, 143, 172, 0, 'physdefense', 159, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (95, 'Iron Battle Armor', 2, 0, 1, 60000, 30000, 69, 150, 180, 0, 'physdefense', 165, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (96, 'Steel Battle Armor', 2, 0, 1, 65000, 32500, 71, 158, 190, 0, 'physdefense', 174, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (97, 'Titanium Battle Armor', 2, 0, 1, 70000, 35000, 73, 165, 198, 0, 'physdefense', 183, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (98, 'Copper Gothic Plate', 2, 0, 1, 75000, 37500, 75, 173, 208, 0, 'physdefense', 195, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (99, 'Bronze Gothic Plate', 2, 0, 1, 80000, 40000, 77, 180, 216, 0, 'physdefense', 203, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (100, 'Iron Gothic Plate', 2, 0, 1, 85000, 42500, 79, 188, 226, 0, 'physdefense', 212, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (101, 'Steel Gothic Plate', 2, 0, 1, 90000, 45000, 81, 195, 234, 0, 'physdefense', 224, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (102, 'Titanium Gothic Plate', 2, 0, 1, 95000, 47500, 83, 203, 244, 0, 'physdefense', 236, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (103, 'Leather Buckler', 4, 0, 1, 25, 13, 1, 0, 0, 0, 'physdefense', 3, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (104, 'Wood Buckler', 4, 0, 1, 50, 25, 1, 0, 0, 0, 'physdefense', 5, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (105, 'Steel Buckler', 4, 0, 1, 75, 38, 1, 0, 0, 0, 'physdefense', 7, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (106, 'Titanium Buckler', 4, 0, 1, 100, 50, 1, 0, 0, 0, 'physdefense', 8, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (107, 'Leather Targe', 4, 0, 1, 150, 75, 3, 0, 5, 0, 'physdefense', 11, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (108, 'Wood Targe', 4, 0, 1, 200, 100, 3, 0, 10, 0, 'physdefense', 12, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (109, 'Steel Targe', 4, 0, 1, 300, 150, 5, 0, 15, 0, 'physdefense', 15, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (110, 'Titanium Targe', 4, 0, 1, 400, 200, 5, 0, 20, 0, 'physdefense', 18, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (111, 'Small Aspis', 4, 0, 1, 600, 300, 8, 0, 25, 0, 'physdefense', 21, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (112, 'Large Aspis', 4, 0, 1, 800, 400, 11, 0, 35, 0, 'physdefense', 23, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (113, 'Full Aspis', 4, 0, 1, 1200, 600, 14, 0, 45, 0, 'physdefense', 26, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (114, 'Great Aspis', 4, 0, 1, 1500, 750, 17, 0, 55, 0, 'physdefense', 27, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (115, 'Small Kite Shield', 4, 0, 1, 2000, 1000, 20, 0, 65, 0, 'physdefense', 30, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (116, 'Large Kite Shield', 4, 0, 1, 2500, 1250, 23, 0, 80, 0, 'physdefense', 36, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (117, 'Full Kite Shield', 4, 0, 1, 3000, 1500, 26, 0, 95, 0, 'physdefense', 39, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (118, 'Great Kite Shield', 4, 0, 1, 4000, 2000, 29, 0, 110, 0, 'physdefense', 45, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (119, 'Small Heater Shield', 4, 0, 1, 5000, 2500, 31, 0, 130, 0, 'physdefense', 56, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (120, 'Large Heater Shield', 4, 0, 1, 6000, 3000, 34, 0, 150, 0, 'physdefense', 62, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (121, 'Full Heater Shield', 4, 0, 1, 8000, 4000, 37, 0, 170, 0, 'physdefense', 74, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (122, 'Great Heater Shield', 4, 0, 1, 10000, 5000, 40, 0, 190, 0, 'physdefense', 80, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (123, 'Small Scuta', 4, 0, 1, 12000, 6000, 43, 0, 210, 0, 'physdefense', 86, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (124, 'Large Scuta', 4, 0, 1, 15000, 7500, 46, 0, 230, 0, 'physdefense', 98, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (125, 'Full Scuta', 4, 0, 1, 18000, 9000, 49, 0, 250, 0, 'physdefense', 106, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (126, 'Great Scuta', 4, 0, 1, 22000, 11000, 51, 0, 270, 0, 'physdefense', 115, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (127, 'Small Pavise', 4, 0, 1, 26000, 13000, 54, 0, 300, 0, 'physdefense', 133, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (128, 'Large Pavise', 4, 0, 1, 30000, 15000, 57, 0, 320, 0, 'physdefense', 142, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (129, 'Full Pavise', 4, 0, 1, 35000, 17500, 60, 0, 340, 0, 'physdefense', 159, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (130, 'Great Pavise', 4, 0, 1, 40000, 20000, 65, 0, 360, 0, 'physdefense', 165, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (131, 'Small Heraldic Shield', 4, 0, 1, 45000, 22500, 70, 0, 380, 0, 'physdefense', 183, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (132, 'Large Heraldic Shield', 4, 0, 1, 50000, 25000, 75, 0, 400, 0, 'physdefense', 195, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (133, 'Full Heraldic Shield', 4, 0, 1, 55000, 27500, 80, 0, 420, 0, 'physdefense', 212, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (134, 'Great Heraldic Shield', 4, 0, 1, 60000, 30000, 85, 0, 440, 0, 'physdefense', 236, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (135, 'Leather Cap', 3, 0, 1, 20, 10, 1, 0, 0, 0, 'physdefense', 2, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (136, 'Copper Cap', 3, 0, 1, 40, 20, 1, 0, 0, 0, 'physdefense', 3, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (137, 'Bronze Cap', 3, 0, 1, 60, 30, 1, 0, 0, 0, 'physdefense', 5, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (138, 'Steel Cap', 3, 0, 1, 80, 40, 1, 0, 0, 0, 'physdefense', 5, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (139, 'Titanium Cap', 3, 0, 1, 110, 55, 1, 0, 0, 0, 'physdefense', 7, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (140, 'Leather Skull Cap', 3, 0, 1, 140, 70, 3, 5, 6, 0, 'physdefense', 8, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (141, 'Copper Skull Cap', 3, 0, 1, 170, 85, 3, 5, 6, 0, 'physdefense', 9, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (142, 'Bronze Skull Cap', 3, 0, 1, 200, 100, 3, 8, 10, 0, 'physdefense', 11, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (143, 'Steel Skull Cap', 3, 0, 1, 240, 120, 5, 10, 12, 0, 'physdefense', 13, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (144, 'Titanium Skull Cap', 3, 0, 1, 280, 140, 5, 10, 12, 0, 'physdefense', 14, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (145, 'Copper Helm', 3, 0, 1, 330, 165, 5, 13, 16, 0, 'physdefense', 16, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (146, 'Bronze Helm', 3, 0, 1, 380, 190, 8, 13, 16, 0, 'physdefense', 16, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (147, 'Iron Helm', 3, 0, 1, 440, 220, 11, 15, 18, 0, 'physdefense', 18, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (148, 'Steel Helm', 3, 0, 1, 500, 250, 14, 18, 22, 0, 'physdefense', 22, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (149, 'Titanium Helm', 3, 0, 1, 600, 300, 17, 18, 22, 0, 'physdefense', 23, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (150, 'Copper Corinthian Helmet', 3, 0, 1, 700, 350, 20, 20, 24, 0, 'physdefense', 27, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (151, 'Bronze Corinthian Helmet', 3, 0, 1, 850, 425, 23, 23, 28, 0, 'physdefense', 33, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (152, 'Iron Corinthian Helmet', 3, 0, 1, 1000, 500, 26, 25, 30, 0, 'physdefense', 37, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (153, 'Steel Corinthian Helmet', 3, 0, 1, 2000, 1000, 29, 25, 30, 0, 'physdefense', 44, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (154, 'Titanium Corinthian Helmet', 3, 0, 1, 3200, 1600, 31, 30, 36, 0, 'physdefense', 48, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (155, 'Copper Sallet', 3, 0, 1, 4400, 2200, 34, 30, 36, 0, 'physdefense', 51, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (156, 'Bronze Sallet', 3, 0, 1, 6000, 3000, 37, 35, 42, 0, 'physdefense', 58, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (157, 'Iron Sallet', 3, 0, 1, 7000, 3500, 40, 35, 42, 0, 'physdefense', 63, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (158, 'Steel Sallet', 3, 0, 1, 8000, 4000, 43, 40, 48, 0, 'physdefense', 68, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (159, 'Titanium Sallet', 3, 0, 1, 10000, 5000, 46, 45, 54, 0, 'physdefense', 79, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (160, 'Copper Bascinet', 3, 0, 1, 12000, 6000, 49, 50, 60, 0, 'physdefense', 84, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (161, 'Bronze Bascinet', 3, 0, 1, 15000, 7500, 51, 55, 66, 0, 'physdefense', 94, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (162, 'Iron Bascinet', 3, 0, 1, 18000, 9000, 54, 60, 72, 0, 'physdefense', 98, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (163, 'Steel Bascinet', 3, 0, 1, 22000, 11000, 57, 65, 78, 0, 'physdefense', 108, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (164, 'Titanium Bascinet', 3, 0, 1, 26000, 13000, 60, 70, 84, 0, 'physdefense', 115, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (165, 'Copper Horned Helm', 3, 0, 1, 30000, 15000, 65, 75, 90, 0, 'physdefense', 125, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (166, 'Bronze Horned Helm', 3, 0, 1, 35000, 17500, 70, 83, 100, 0, 'physdefense', 139, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (167, 'Iron Horned Helm', 3, 0, 1, 40000, 20000, 75, 90, 108, 0, 'physdefense', 145, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (168, 'Steel Horned Helm', 3, 0, 1, 45000, 22500, 80, 98, 118, 0, 'physdefense', 160, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+INSERT INTO `sx_itembase` VALUES (169, 'Titanium Horned Helm', 3, 0, 1, 50000, 25000, 85, 105, 126, 0, 'physdefense', 175, '', 0, '', 0, '', 0, '', 0, '', 0, '', 0);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_itemmodnames`
+--
+
+CREATE TABLE `sx_itemmodnames` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `fieldname` varchar(50) NOT NULL default '',
+ `prettyname` varchar(50) NOT NULL default '',
+ `percent` tinyint(3) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_itemmodnames`
+--
+
+INSERT INTO `sx_itemmodnames` VALUES (1, 'expbonus', 'Experience Bonus', 1);
+INSERT INTO `sx_itemmodnames` VALUES (2, 'goldbonus', 'Gold Bonus', 1);
+INSERT INTO `sx_itemmodnames` VALUES (3, 'maxhp', 'Max HP', 0);
+INSERT INTO `sx_itemmodnames` VALUES (4, 'maxmp', 'Max MP', 0);
+INSERT INTO `sx_itemmodnames` VALUES (5, 'maxtp', 'Max TP', 0);
+INSERT INTO `sx_itemmodnames` VALUES (6, 'strength', 'Strength', 0);
+INSERT INTO `sx_itemmodnames` VALUES (7, 'dexterity', 'Dexterity', 0);
+INSERT INTO `sx_itemmodnames` VALUES (8, 'energy', 'Energy', 0);
+INSERT INTO `sx_itemmodnames` VALUES (9, 'physattack', 'Physical Attack', 0);
+INSERT INTO `sx_itemmodnames` VALUES (10, 'physdefense', 'Physical Defense', 0);
+INSERT INTO `sx_itemmodnames` VALUES (11, 'magicattack', 'Magic Attack', 0);
+INSERT INTO `sx_itemmodnames` VALUES (12, 'magicdefense', 'Magid Defense', 0);
+INSERT INTO `sx_itemmodnames` VALUES (13, 'fireattack', 'Fire Attack', 0);
+INSERT INTO `sx_itemmodnames` VALUES (14, 'firedefense', 'Fire Defense', 0);
+INSERT INTO `sx_itemmodnames` VALUES (15, 'lightattack', 'Lightning Attack', 0);
+INSERT INTO `sx_itemmodnames` VALUES (16, 'lightdefense', 'Lightning Defense', 0);
+INSERT INTO `sx_itemmodnames` VALUES (17, 'hpleech', 'HP Leech', 1);
+INSERT INTO `sx_itemmodnames` VALUES (18, 'mpleech', 'MP Leech', 1);
+INSERT INTO `sx_itemmodnames` VALUES (19, 'hpgain', 'HP Per Kill', 0);
+INSERT INTO `sx_itemmodnames` VALUES (20, 'mpgain', 'MP Per Kill', 0);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_itemprefixes`
+--
+
+CREATE TABLE `sx_itemprefixes` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(50) NOT NULL default '',
+ `slotnumber` tinyint(3) unsigned NOT NULL default '0',
+ `unique` tinyint(3) unsigned NOT NULL default '0',
+ `willdrop` tinyint(3) unsigned NOT NULL default '0',
+ `buycost` int(10) unsigned NOT NULL default '0',
+ `sellcost` int(10) unsigned NOT NULL default '0',
+ `reqlevel` smallint(5) unsigned NOT NULL default '0',
+ `reqstrength` smallint(5) unsigned NOT NULL default '0',
+ `reqdexterity` smallint(5) unsigned NOT NULL default '0',
+ `reqenergy` smallint(5) unsigned NOT NULL default '0',
+ `basename` varchar(50) NOT NULL default '',
+ `baseattr` smallint(5) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_itemprefixes`
+--
+
+INSERT INTO `sx_itemprefixes` VALUES (1, 'Sharp', 1, 0, 0, 5, 3, 1, 0, 0, 0, 'physattack', 2);
+INSERT INTO `sx_itemprefixes` VALUES (2, 'Magic', 1, 0, 0, 8, 4, 1, 0, 0, 0, 'magicattack', 5);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_itemsuffixes`
+--
+
+CREATE TABLE `sx_itemsuffixes` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(50) NOT NULL default '',
+ `slotnumber` tinyint(3) unsigned NOT NULL default '0',
+ `unique` tinyint(3) unsigned NOT NULL default '0',
+ `willdrop` tinyint(3) unsigned NOT NULL default '0',
+ `buycost` int(10) unsigned NOT NULL default '0',
+ `sellcost` int(10) unsigned NOT NULL default '0',
+ `reqlevel` smallint(5) unsigned NOT NULL default '0',
+ `reqstrength` smallint(5) unsigned NOT NULL default '0',
+ `reqdexterity` smallint(5) unsigned NOT NULL default '0',
+ `reqenergy` smallint(5) unsigned NOT NULL default '0',
+ `basename` varchar(50) NOT NULL default '',
+ `baseattr` smallint(5) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_itemsuffixes`
+--
+
+INSERT INTO `sx_itemsuffixes` VALUES (1, 'of the Vampire', 1, 0, 0, 5, 3, 1, 0, 0, 0, 'hpleech', 5);
+INSERT INTO `sx_itemsuffixes` VALUES (2, 'of the Bear', 1, 0, 0, 5, 3, 1, 0, 0, 0, 'strength', 5);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_messages`
+--
+
+CREATE TABLE `sx_messages` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `postdate` datetime NOT NULL default '0000-00-00 00:00:00',
+ `senderid` int(10) unsigned NOT NULL default '0',
+ `sendername` varchar(30) NOT NULL default '',
+ `recipientid` int(10) unsigned NOT NULL default '0',
+ `recipientname` varchar(30) NOT NULL default '',
+ `status` tinyint(3) unsigned NOT NULL default '0',
+ `title` varchar(200) NOT NULL default '',
+ `message` text NOT NULL,
+ `gold` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_messages`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_monsters`
+--
+
+CREATE TABLE `sx_monsters` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(30) NOT NULL default '',
+ `world` tinyint(3) unsigned NOT NULL default '0',
+ `level` smallint(5) unsigned NOT NULL default '0',
+ `maxexp` int(10) unsigned NOT NULL default '0',
+ `maxgold` int(10) unsigned NOT NULL default '0',
+ `maxhp` smallint(5) unsigned NOT NULL default '0',
+ `physattack` smallint(5) unsigned NOT NULL default '0',
+ `physdefense` smallint(5) unsigned NOT NULL default '0',
+ `magicattack` smallint(5) unsigned NOT NULL default '0',
+ `magicdefense` smallint(5) unsigned NOT NULL default '0',
+ `fireattack` smallint(5) unsigned NOT NULL default '0',
+ `firedefense` smallint(5) unsigned NOT NULL default '0',
+ `lightattack` smallint(5) unsigned NOT NULL default '0',
+ `lightdefense` smallint(5) unsigned NOT NULL default '0',
+ `spell1` smallint(5) unsigned NOT NULL default '0',
+ `spell2` smallint(5) unsigned NOT NULL default '0',
+ `spellimmune1` smallint(5) unsigned NOT NULL default '0',
+ `spellimmune2` smallint(5) unsigned NOT NULL default '0',
+ `boss` tinyint(3) unsigned NOT NULL default '0',
+ `hpleech` tinyint(3) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_monsters`
+--
+
+INSERT INTO `sx_monsters` VALUES (1, 'Small Slime', 1, 1, 3, 2, 3, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (2, 'Shade', 1, 1, 4, 2, 3, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (3, 'Slime', 1, 2, 5, 3, 4, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (4, 'Small Drake', 1, 2, 6, 3, 5, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (5, 'Skeleton', 1, 3, 7, 4, 7, 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (6, 'Haunt', 1, 3, 8, 4, 8, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (7, 'Big Slime', 1, 4, 9, 5, 10, 33, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (8, 'Drake', 1, 4, 10, 5, 11, 36, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (9, 'Ghost', 1, 5, 11, 6, 12, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (10, 'Bee', 1, 5, 12, 6, 12, 42, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (11, 'Scorpion', 1, 6, 14, 7, 13, 45, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (12, 'Dawk', 1, 6, 16, 8, 15, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (13, 'Nymph', 1, 7, 18, 9, 16, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (14, 'Ember', 1, 7, 20, 10, 17, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (15, 'Daydream', 1, 8, 22, 11, 18, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (16, 'Wasp', 1, 8, 24, 12, 20, 68, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (17, 'Shadow', 1, 9, 26, 13, 22, 72, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (18, 'Harpy', 1, 9, 28, 14, 24, 77, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (19, 'Air Elemental', 1, 10, 30, 15, 26, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (20, 'Rogue', 1, 10, 32, 16, 29, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (21, 'Lynx', 1, 11, 35, 18, 32, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (22, 'Trickster', 1, 11, 38, 19, 35, 95, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (23, 'Goblin', 1, 12, 41, 21, 35, 99, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (24, 'Charmer', 1, 12, 44, 22, 38, 53, 53, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (25, 'Raven', 1, 13, 47, 24, 41, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (26, 'Bobcat', 1, 13, 50, 25, 44, 113, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (27, 'Lycan', 1, 14, 53, 27, 48, 119, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (28, 'Fiend', 1, 14, 56, 28, 52, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (29, 'Liche', 1, 15, 59, 30, 56, 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (30, 'Dawkin', 1, 15, 62, 31, 60, 137, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (31, 'Anarchist', 1, 16, 66, 33, 64, 143, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (32, 'Hellcat', 1, 16, 70, 35, 68, 149, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (33, 'Fallen Cherub', 1, 17, 74, 37, 72, 155, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (34, 'Grey Wolf', 1, 17, 78, 39, 76, 161, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (35, 'Black Bear', 1, 18, 82, 41, 80, 167, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (36, 'Knight', 1, 18, 86, 43, 84, 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (37, 'Giant', 1, 19, 90, 45, 88, 179, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (38, 'Young Wyrm', 1, 19, 94, 47, 92, 185, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (39, 'Lesser Devil', 1, 20, 98, 49, 96, 191, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (40, 'Lesser Demon', 1, 20, 102, 51, 100, 197, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+INSERT INTO `sx_monsters` VALUES (41, 'Razora', 1, 99, 300, 150, 200, 203, 203, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_pvp`
+--
+
+CREATE TABLE `sx_pvp` (
+ `id` bigint(20) unsigned NOT NULL auto_increment,
+ `player1id` int(10) unsigned NOT NULL default '0',
+ `player2id` int(10) unsigned NOT NULL default '0',
+ `player1name` varchar(30) NOT NULL default '',
+ `player2name` varchar(30) NOT NULL default '',
+ `playerturn` int(10) unsigned NOT NULL default '0',
+ `accepted` tinyint(3) unsigned NOT NULL default '0',
+ `turntime` timestamp NOT NULL,
+ `fightrow` text NOT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_pvp`
+--
+
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_spells`
+--
+
+CREATE TABLE `sx_spells` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `name` varchar(30) NOT NULL default '',
+ `fname` varchar(30) NOT NULL default '',
+ `value` int(10) unsigned NOT NULL default '0',
+ `mp` int(10) unsigned NOT NULL default '0',
+ `minlevel` int(10) unsigned NOT NULL default '0',
+ `classonly` int(10) unsigned NOT NULL default '0',
+ `classexclude` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_spells`
+--
+
+INSERT INTO `sx_spells` VALUES (1, 'Heal 1', 'heal', 5, 2, 5, 2, 0);
+INSERT INTO `sx_spells` VALUES (2, 'Heal 2', 'heal', 10, 5, 10, 0, 0);
+INSERT INTO `sx_spells` VALUES (3, 'Heal 3', 'heal', 20, 10, 15, 0, 0);
+INSERT INTO `sx_spells` VALUES (4, 'Heal 4', 'heal', 30, 15, 20, 0, 0);
+INSERT INTO `sx_spells` VALUES (5, 'Heal 5', 'heal', 45, 25, 25, 0, 0);
+INSERT INTO `sx_spells` VALUES (6, 'Heal 6', 'heal', 60, 35, 30, 0, 0);
+INSERT INTO `sx_spells` VALUES (7, 'Heal 7', 'heal', 80, 50, 35, 3, 0);
+INSERT INTO `sx_spells` VALUES (8, 'Heal 8', 'heal', 100, 75, 40, 3, 0);
+INSERT INTO `sx_spells` VALUES (9, 'Heal 9', 'heal', 150, 100, 45, 3, 0);
+INSERT INTO `sx_spells` VALUES (10, 'Heal 10', 'heal', 200, 150, 50, 3, 0);
+INSERT INTO `sx_spells` VALUES (11, 'Hurt 1', 'hurt', 5, 2, 5, 0, 0);
+INSERT INTO `sx_spells` VALUES (12, 'Hurt 2', 'hurt', 10, 5, 10, 0, 0);
+INSERT INTO `sx_spells` VALUES (13, 'Hurt 3', 'hurt', 15, 7, 15, 0, 0);
+INSERT INTO `sx_spells` VALUES (14, 'Hurt 4', 'hurt', 25, 12, 20, 0, 0);
+INSERT INTO `sx_spells` VALUES (15, 'Hurt 5', 'hurt', 35, 20, 25, 0, 0);
+INSERT INTO `sx_spells` VALUES (16, 'Hurt 6', 'hurt', 50, 30, 30, 0, 0);
+INSERT INTO `sx_spells` VALUES (17, 'Hurt 7', 'hurt', 65, 40, 35, 3, 0);
+INSERT INTO `sx_spells` VALUES (18, 'Hurt 8', 'hurt', 85, 50, 40, 3, 0);
+INSERT INTO `sx_spells` VALUES (19, 'Hurt 9', 'hurt', 105, 65, 45, 3, 0);
+INSERT INTO `sx_spells` VALUES (20, 'Hurt 10', 'hurt', 130, 80, 50, 3, 0);
+INSERT INTO `sx_spells` VALUES (21, 'Sleep 1', 'sleep', 80, 20, 10, 0, 0);
+INSERT INTO `sx_spells` VALUES (22, 'Sleep 2', 'sleep', 60, 35, 20, 0, 0);
+INSERT INTO `sx_spells` VALUES (23, 'Sleep 3', 'sleep', 40, 50, 30, 2, 0);
+INSERT INTO `sx_spells` VALUES (24, 'Sleep 4', 'sleep', 20, 75, 40, 2, 0);
+INSERT INTO `sx_spells` VALUES (25, 'Sleep 5', 'sleep', 5, 100, 50, 2, 0);
+INSERT INTO `sx_spells` VALUES (26, 'Fire 1', 'fire', 5, 2, 5, 0, 0);
+INSERT INTO `sx_spells` VALUES (27, 'Fire 2', 'fire', 10, 5, 10, 0, 0);
+INSERT INTO `sx_spells` VALUES (28, 'Fire 3', 'fire', 15, 7, 15, 0, 0);
+INSERT INTO `sx_spells` VALUES (29, 'Fire 4', 'fire', 25, 12, 20, 0, 0);
+INSERT INTO `sx_spells` VALUES (30, 'Fire 5', 'fire', 35, 20, 25, 0, 0);
+INSERT INTO `sx_spells` VALUES (31, 'Fire 6', 'fire', 50, 30, 30, 0, 0);
+INSERT INTO `sx_spells` VALUES (32, 'Fire 7', 'fire', 65, 40, 35, 2, 0);
+INSERT INTO `sx_spells` VALUES (33, 'Fire 8', 'fire', 85, 50, 40, 2, 0);
+INSERT INTO `sx_spells` VALUES (34, 'Fire 9', 'fire', 105, 65, 45, 2, 0);
+INSERT INTO `sx_spells` VALUES (35, 'Fire 10', 'fire', 130, 80, 50, 2, 0);
+INSERT INTO `sx_spells` VALUES (36, 'Lightning 1', 'light', 5, 2, 5, 0, 0);
+INSERT INTO `sx_spells` VALUES (37, 'Lightning 2', 'light', 10, 5, 10, 0, 0);
+INSERT INTO `sx_spells` VALUES (38, 'Lightning 3', 'light', 15, 7, 15, 0, 0);
+INSERT INTO `sx_spells` VALUES (39, 'Lightning 4', 'light', 25, 12, 20, 0, 0);
+INSERT INTO `sx_spells` VALUES (40, 'Lightning 5', 'light', 35, 20, 25, 0, 0);
+INSERT INTO `sx_spells` VALUES (41, 'Lightning 6', 'light', 50, 30, 30, 0, 0);
+INSERT INTO `sx_spells` VALUES (42, 'Lightning 7', 'light', 65, 40, 35, 2, 0);
+INSERT INTO `sx_spells` VALUES (43, 'Lightning 8', 'light', 85, 50, 40, 2, 0);
+INSERT INTO `sx_spells` VALUES (44, 'Lightning 9', 'light', 105, 65, 45, 2, 0);
+INSERT INTO `sx_spells` VALUES (45, 'Lightning 10', 'light', 130, 80, 50, 2, 0);
+INSERT INTO `sx_spells` VALUES (46, 'Prismatic Blast 1', 'prism', 2, 2, 5, 0, 0);
+INSERT INTO `sx_spells` VALUES (47, 'Prismatic Blast 2', 'prism', 5, 5, 10, 0, 0);
+INSERT INTO `sx_spells` VALUES (48, 'Prismatic Blast 3', 'prism', 10, 7, 15, 0, 0);
+INSERT INTO `sx_spells` VALUES (49, 'Prismatic Blast 4', 'prism', 15, 12, 20, 0, 0);
+INSERT INTO `sx_spells` VALUES (50, 'Prismatic Blast 5', 'prism', 15, 20, 25, 0, 0);
+INSERT INTO `sx_spells` VALUES (51, 'Prismatic Blast 6', 'prism', 20, 30, 30, 0, 0);
+INSERT INTO `sx_spells` VALUES (52, 'Prismatic Blast 7', 'prism', 25, 40, 35, 0, 1);
+INSERT INTO `sx_spells` VALUES (53, 'Prismatic Blast 8', 'prism', 30, 50, 40, 0, 1);
+INSERT INTO `sx_spells` VALUES (54, 'Prismatic Blast 9', 'prism', 35, 65, 45, 0, 1);
+INSERT INTO `sx_spells` VALUES (55, 'Prismatic Blast 10', 'prism', 40, 80, 50, 0, 1);
+INSERT INTO `sx_spells` VALUES (56, 'Stone Skin 1', 'stone', 5, 10, 10, 1, 0);
+INSERT INTO `sx_spells` VALUES (57, 'Stone Skin 2', 'stone', 10, 20, 20, 1, 0);
+INSERT INTO `sx_spells` VALUES (58, 'Stone Skin 3', 'stone', 20, 30, 30, 1, 0);
+INSERT INTO `sx_spells` VALUES (59, 'Stone Skin 4', 'stone', 35, 40, 40, 1, 0);
+INSERT INTO `sx_spells` VALUES (60, 'Stone Skin 5', 'stone', 50, 50, 50, 1, 0);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_towns`
+--
+
+CREATE TABLE `sx_towns` (
+ `id` tinyint(3) unsigned NOT NULL auto_increment,
+ `name` varchar(30) NOT NULL default '',
+ `world` tinyint(3) unsigned NOT NULL default '0',
+ `latitude` smallint(6) NOT NULL default '0',
+ `longitude` smallint(6) NOT NULL default '0',
+ `innprice` tinyint(4) NOT NULL default '0',
+ `mapprice` smallint(6) NOT NULL default '0',
+ `travelpoints` smallint(5) unsigned NOT NULL default '0',
+ `itemminlvl` int(10) unsigned NOT NULL default '0',
+ `itemmaxlvl` int(10) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_towns`
+--
+
+INSERT INTO `sx_towns` VALUES (1, 'Middleton', 1, 0, 0, 5, 0, 0, 1, 5);
+INSERT INTO `sx_towns` VALUES (2, 'Norfolk', 1, 25, 25, 10, 25, 5, 3, 9);
+INSERT INTO `sx_towns` VALUES (3, 'Calentia', 1, 50, -50, 25, 50, 15, 6, 14);
+INSERT INTO `sx_towns` VALUES (4, 'Resmark', 1, -75, 75, 40, 100, 30, 11, 19);
+INSERT INTO `sx_towns` VALUES (5, 'Erdricksburg', 1, 99, 99, 60, 500, 50, 16, 25);
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_users`
+--
+
+CREATE TABLE `sx_users` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `account` int(10) unsigned NOT NULL default '0',
+ `birthdate` datetime NOT NULL default '0000-00-00 00:00:00',
+ `lastip` varchar(16) NOT NULL default '',
+ `onlinetime` datetime NOT NULL default '0000-00-00 00:00:00',
+ `exploreverify` varchar(6) NOT NULL default '',
+ `exploreverifyimage` varchar(12) NOT NULL default '',
+ `explorefailed` int(10) unsigned NOT NULL default '0',
+ `charname` varchar(30) NOT NULL default '',
+ `charclass` tinyint(3) unsigned NOT NULL default '0',
+ `charpicture` varchar(100) NOT NULL default '',
+ `difficulty` float unsigned NOT NULL default '1',
+ `deathpenalty` tinyint(3) unsigned NOT NULL default '0',
+ `latitude` smallint(6) NOT NULL default '0',
+ `longitude` smallint(6) NOT NULL default '0',
+ `story` tinyint(3) unsigned NOT NULL default '1',
+ `world` tinyint(3) unsigned NOT NULL default '1',
+ `guild` int(10) unsigned NOT NULL default '0',
+ `guildrank` int(10) unsigned NOT NULL default '0',
+ `guildtag` varchar(4) NOT NULL default '',
+ `tagcolor` varchar(7) NOT NULL default '',
+ `namecolor` varchar(7) NOT NULL default '',
+ `level` smallint(5) unsigned NOT NULL default '1',
+ `levelup` int(10) unsigned NOT NULL default '0',
+ `levelspell` int(10) unsigned NOT NULL default '0',
+ `experience` int(10) unsigned NOT NULL default '0',
+ `expbonus` tinyint(4) NOT NULL default '0',
+ `gold` int(10) unsigned NOT NULL default '150',
+ `goldbonus` tinyint(4) NOT NULL default '0',
+ `bank` int(10) unsigned NOT NULL default '0',
+ `maxhp` smallint(5) unsigned NOT NULL default '15',
+ `maxmp` smallint(5) unsigned NOT NULL default '5',
+ `maxtp` smallint(5) unsigned NOT NULL default '5',
+ `currenthp` smallint(5) unsigned NOT NULL default '15',
+ `currentmp` smallint(5) unsigned NOT NULL default '5',
+ `currenttp` smallint(5) unsigned NOT NULL default '5',
+ `strength` smallint(5) unsigned NOT NULL default '0',
+ `dexterity` smallint(5) unsigned NOT NULL default '0',
+ `energy` smallint(5) unsigned NOT NULL default '0',
+ `physattack` smallint(5) unsigned NOT NULL default '5',
+ `physdefense` smallint(5) unsigned NOT NULL default '5',
+ `magicattack` smallint(5) unsigned NOT NULL default '0',
+ `magicdefense` smallint(5) unsigned NOT NULL default '0',
+ `fireattack` smallint(5) unsigned NOT NULL default '0',
+ `firedefense` smallint(5) unsigned NOT NULL default '0',
+ `lightattack` smallint(5) unsigned NOT NULL default '0',
+ `lightdefense` smallint(5) unsigned NOT NULL default '0',
+ `spellslist` varchar(200) NOT NULL default '0',
+ `townslist` varchar(200) NOT NULL default '0,1',
+ `currentpvp` bigint(20) unsigned NOT NULL default '0',
+ `currentaction` varchar(30) NOT NULL default 'In Town',
+ `currentfight` tinyint(3) unsigned NOT NULL default '0',
+ `currentmonsterid` smallint(5) unsigned NOT NULL default '0',
+ `currentmonsterhp` smallint(5) unsigned NOT NULL default '0',
+ `currentmonstersleep` tinyint(3) unsigned NOT NULL default '0',
+ `item1idstring` varchar(10) NOT NULL default '0',
+ `item2idstring` varchar(10) NOT NULL default '0',
+ `item3idstring` varchar(10) NOT NULL default '0',
+ `item4idstring` varchar(10) NOT NULL default '0',
+ `item5idstring` varchar(10) NOT NULL default '0',
+ `item6idstring` varchar(10) NOT NULL default '0',
+ `item1name` varchar(200) NOT NULL default '',
+ `item2name` varchar(200) NOT NULL default '',
+ `item3name` varchar(200) NOT NULL default '',
+ `item4name` varchar(200) NOT NULL default '',
+ `item5name` varchar(200) NOT NULL default '',
+ `item6name` varchar(200) NOT NULL default '',
+ `spell1id` int(10) unsigned NOT NULL default '0',
+ `spell2id` int(10) unsigned NOT NULL default '0',
+ `spell3id` int(10) unsigned NOT NULL default '0',
+ `spell4id` int(10) unsigned NOT NULL default '0',
+ `spell5id` int(10) unsigned NOT NULL default '0',
+ `spell6id` int(10) unsigned NOT NULL default '0',
+ `spell7id` int(10) unsigned NOT NULL default '0',
+ `spell8id` int(10) unsigned NOT NULL default '0',
+ `spell9id` int(10) unsigned NOT NULL default '0',
+ `spell10id` int(10) unsigned NOT NULL default '0',
+ `spell1name` varchar(30) NOT NULL default '',
+ `spell2name` varchar(30) NOT NULL default '',
+ `spell3name` varchar(30) NOT NULL default '',
+ `spell4name` varchar(30) NOT NULL default '',
+ `spell5name` varchar(30) NOT NULL default '',
+ `spell6name` varchar(30) NOT NULL default '',
+ `spell7name` varchar(30) NOT NULL default '',
+ `spell8name` varchar(30) NOT NULL default '',
+ `spell9name` varchar(30) NOT NULL default '',
+ `spell10name` varchar(30) NOT NULL default '',
+ `hpleech` tinyint(3) unsigned NOT NULL default '0',
+ `mpleech` tinyint(3) unsigned NOT NULL default '0',
+ `hpgain` tinyint(3) unsigned NOT NULL default '0',
+ `mpgain` tinyint(3) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`),
+ FULLTEXT KEY `item1name` (`item1name`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_users`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `sx_worlds`
+--
+
+CREATE TABLE `sx_worlds` (
+ `id` smallint(5) unsigned NOT NULL auto_increment,
+ `name` varchar(30) NOT NULL default '',
+ `size` smallint(5) unsigned NOT NULL default '0',
+ `bossid` mediumint(8) unsigned NOT NULL default '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM;
+
+--
+-- Dumping data for table `sx_worlds`
+--
+
+INSERT INTO `sx_worlds` VALUES (1, 'Raenslide', 100, 1);
+INSERT INTO `sx_worlds` VALUES (2, 'Lorenfall', 100, 0);
+INSERT INTO `sx_worlds` VALUES (3, 'Borderlands', 100, 0);
+INSERT INTO `sx_worlds` VALUES (4, 'Inferno', 100, 0);
+INSERT INTO `sx_worlds` VALUES (5, 'Unreality', 100, 0);
\ No newline at end of file
diff --git a/extras/map.fla b/extras/map.fla
new file mode 100644
index 0000000..e4a41df
Binary files /dev/null and b/extras/map.fla differ
diff --git a/extras/mapmini.fla b/extras/mapmini.fla
new file mode 100644
index 0000000..f7f1709
Binary files /dev/null and b/extras/mapmini.fla differ
diff --git a/fight.php b/fight.php
new file mode 100644
index 0000000..c12309d
--- /dev/null
+++ b/fight.php
@@ -0,0 +1,357 @@
+= $minlevel AND level <= $maxlevel ORDER BY RAND() LIMIT 1", "monsters");
+ $monsterrow = dorow($monsterquery);
+
+ $userrow["currentmonsterhp"] = (ceil(rand($monsterrow["maxhp"] * .75, $monsterrow["maxhp"]) * $userrow["difficulty"]));
+ $userrow["currentmonsterid"] = $monsterrow["id"];
+ $userrow["currentaction"] = "Fighting";
+ updateuserrow();
+ dofight();
+
+}
+
+function dofight() {
+
+ global $userrow, $monsterrow, $fightrow, $spells;
+
+ if (isset($_POST["fight"])) {
+
+ playerturn();
+ if ($userrow["currentmonsterhp"] <= 0) { youwin(); }
+ monsterturn();
+ if ($userrow["currenthp"] <= 0) { youlose(); }
+ updateuserrow();
+
+ $pagerow = array(
+ "message"=>$fightrow["message"],
+ "monstername"=>$monsterrow["name"],
+ "monsterhp"=>$userrow["currentmonsterhp"],
+ "playerphysdamage"=>$fightrow["playerphysdamage"],
+ "playermagicdamage"=>$fightrow["playermagicdamage"],
+ "playerfiredamage"=>$fightrow["playerfiredamage"],
+ "playerlightdamage"=>$fightrow["playerlightdamage"],
+ "monsterphysdamage"=>$fightrow["monsterphysdamage"],
+ "monstermagicdamage"=>$fightrow["monstermagicdamage"],
+ "monsterfiredamage"=>$fightrow["monsterfiredamage"],
+ "monsterlightdamage"=>$fightrow["monsterlightdamage"]);
+ $pagerow["spells"] = dospellslist();
+ display("Fighting",parsetemplate(gettemplate("fight_turn"),$pagerow));
+
+ } elseif (isset($_POST["spell"])) {
+
+ if (! is_numeric($_POST["spellid"])) { err("Invalid spell selection."); }
+ $isavailable = 0;
+ for ($i = 1; $i < 11; $i++) {
+ if ($userrow["spell".$i."id"] == $_POST["spellid"]) { $isavailable = 1; }
+ }
+ if ($isavailable == 0) { err("You don't have that spell."); }
+
+ include("spells.php");
+ $castspell = $spells[$_POST["spellid"]]["fname"]($_POST["spellid"]);
+ $userrow["currentmonsterhp"] -= ($fightrow["playerphysdamage"] + $fightrow["playermagicdamage"] + $fightrow["playerfiredamage"] + $fightrow["playerlightdamage"]);
+ if ($userrow["currentmonsterhp"] <= 0) { youwin(); }
+ monsterturn();
+ if ($userrow["currenthp"] <= 0) { youlose(); }
+ updateuserrow();
+
+ $pagerow = array(
+ "message"=>$castspell,
+ "monstername"=>$monsterrow["name"],
+ "monsterhp"=>$userrow["currentmonsterhp"],
+ "playerphysdamage"=>$fightrow["playerphysdamage"],
+ "playermagicdamage"=>$fightrow["playermagicdamage"],
+ "playerfiredamage"=>$fightrow["playerfiredamage"],
+ "playerlightdamage"=>$fightrow["playerlightdamage"],
+ "monsterphysdamage"=>$fightrow["monsterphysdamage"],
+ "monstermagicdamage"=>$fightrow["monstermagicdamage"],
+ "monsterfiredamage"=>$fightrow["monsterfiredamage"],
+ "monsterlightdamage"=>$fightrow["monsterlightdamage"]);
+ $pagerow["spells"] = dospellslist();
+ display("Fighting",parsetemplate(gettemplate("fight_turn"),$pagerow));
+
+ } elseif (isset($_POST["run"])) {
+
+ $userrow["currentaction"] = "Exploring";
+ $userrow["currentmonsterid"] = 0;
+ $userrow["currentmonsterhp"] = 0;
+ updateuserrow();
+ die(header("Location: index.php"));
+
+ } else {
+
+ $pagerow = array(
+ "monstername"=>$monsterrow["name"],
+ "monsterhp"=>$userrow["currentmonsterhp"]);
+ $pagerow["spells"] = dospellslist();
+ display("Fighting",parsetemplate(gettemplate("fight_new"),$pagerow));
+
+ }
+
+}
+
+function playerturn() {
+
+ global $userrow, $monsterrow, $fightrow;
+
+ // Calculate all damages.
+ if ($userrow["physattack"] != 0) {
+ $physhit = ceil(rand($userrow["physattack"]*.75, $userrow["physattack"]) / 3);
+ $physblock = ceil(rand($monsterrow["physdefense"]*.75, $monsterrow["physdefense"]) / 3);
+ $fightrow["playerphysdamage"] = max($physhit - $physblock, 1);
+ }
+
+ if ($userrow["magicattack"] != 0) {
+ $magichit = ceil(rand($userrow["magicattack"]*.75, $userrow["magicattack"]) / 3);
+ $magicblock = ceil(rand($monsterrow["magicdefense"]*.75, $monsterrow["magicdefense"]) / 3);
+ $fightrow["playermagicdamage"] = max($magichit - $magicblock, 0);
+ }
+
+ if ($userrow["fireattack"] != 0) {
+ $firehit = ceil(rand($userrow["fireattack"]*.75, $userrow["fireattack"]) / 3);
+ $fireblock = ceil(rand($monsterrow["firedefense"]*.75, $monsterrow["firedefense"]) / 3);
+ $fightrow["playerfiredamage"] = max($firehit - $fireblock, 0);
+ }
+
+ if ($userrow["lightattack"] != 0) {
+ $lighthit = ceil(rand($userrow["lightattack"]*.75, $userrow["lightattack"]) / 3);
+ $lightblock = ceil(rand($monsterrow["lightdefense"]*.75, $monsterrow["lightdefense"]) / 3);
+ $fightrow["playerlightdamage"] = max($lighthit - $lightblock, 0);
+ }
+
+ // Chance to make an excellent hit.
+ $toexcellent = rand(0,150);
+ if ($toexcellent <= sqrt($userrow["strength"])) {
+ $fightrow["playerphysdamage"] *= 2;
+ $fightrow["playermagicdamage"] *= 2;
+ $fightrow["playerfiredamage"] *= 2;
+ $fightrow["playerlightdamage"] *= 2;
+ $fightrow["message"] = "Excellent hit!
";
+ }
+
+ // Chance for monster to dodge.
+ $tododge = rand(0,200);
+ if ($tododge <= sqrt($monsterrow["physdefense"])) {
+ $fightrow["playerphysdamage"] = 0;
+ $fightrow["playermagicdamage"] = 0;
+ $fightrow["playerfiredamage"] = 0;
+ $fightrow["playerlightdamage"] = 0;
+ $fightrow["message"] = "The monster dodged your hit!
";
+ }
+
+ // Now we add Per Turn mods.
+ hpleech("player");
+ mpleech("player");
+
+ // Subtract all damage from monster's hp.
+ $userrow["currentmonsterhp"] -= ($fightrow["playerphysdamage"] + $fightrow["playermagicdamage"] + $fightrow["playerfiredamage"] + $fightrow["playerlightdamage"]);
+
+}
+
+function monsterturn() {
+
+ global $userrow, $monsterrow, $fightrow;
+
+ if ($monsterrow["physattack"] != 0) {
+ $physhit = ceil((rand($monsterrow["physattack"]*.75, $monsterrow["physattack"]) / 3) * $userrow["difficulty"]);
+ $physblock = ceil(rand($userrow["physdefense"]*.75, $userrow["physdefense"]) / 3);
+ $fightrow["monsterphysdamage"] = max($physhit - $physblock, 1); // Have to do at least 1 physical damage.
+ }
+
+ if ($monsterrow["magicattack"] != 0) {
+ $magichit = ceil((rand($monsterrow["magicattack"]*.75, $monsterrow["magicattack"]) / 3) * $userrow["difficulty"]);
+ $magicblock = ceil(rand($userrow["magicdefense"]*.75, $userrow["magicdefense"]) / 3);
+ $fightrow["monstermagicdamage"] = max($magichit - $magicblock, 0);
+ }
+
+ if ($monsterrow["fireattack"] != 0) {
+ $firehit = ((rand($monsterrow["fireattack"]*.75, $monsterrow["fireattack"]) / 3) * $userrow["difficulty"]);
+ $fireblock = ceil(rand($userrow["firedefense"]*.75, $userrow["firedefense"]) / 3);
+ $fightrow["monsterfiredamage"] = max($firehit - $fireblock, 0);
+ }
+
+ if ($monsterrow["lightattack"] != 0) {
+ $lighthit = ceil((rand($monsterrow["lightattack"]*.75, $monsterrow["lightattack"]) / 3) * $userrow["difficulty"]);
+ $lightblock = ceil(rand($userrow["lightdefense"]*.75, $userrow["lightdefense"]) / 3);
+ $fightrow["monsterlightdamage"] = max($lighthit - $lightblock, 0);
+ }
+
+ // Now we add Per Turn mods.
+ hpleech("monster");
+
+ // Subtract all damage from player's hp.
+ $userrow["currenthp"] -= ($fightrow["monsterphysdamage"] + $fightrow["monstermagicdamage"] + $fightrow["monsterfiredamage"] + $fightrow["monsterlightdamage"]);
+
+}
+
+function youwin() {
+
+ global $userrow, $monsterrow, $fightrow;
+
+ $template = "fight_win";
+
+ $newexp = ceil(rand($monsterrow["maxexp"]*.75, $monsterrow["maxexp"]) * (1 + ($userrow["expbonus"] / 100)));
+ $newgold = ceil(rand($monsterrow["maxgold"]*.75, $monsterrow["maxgold"]) * (1 + ($userrow["goldbonus"] / 100)));
+ $userrow["experience"] += $newexp;
+ $userrow["gold"] += $newgold;
+ $userrow["currentaction"] = "Exploring";
+ $userrow["currentfight"] = 0;
+ $userrow["currentmonsterid"] = 0;
+ $userrow["currentmonsterhp"] = 0;
+ if ($monsterrow["boss"] == 1) {
+ $userrow["story"]++;
+ }
+
+ // Now we add Per Kill mods.
+ hpgain();
+ mpgain();
+
+ // Check for new levelup.
+ if ($userrow["experience"] >= dolevels($userrow["level"]+1)) {
+ $template = "fight_levelup";
+ $userrow["level"]++;
+ $userrow["levelup"] += 5;
+ $userrow["maxtp"] += 5;
+ $userrow["currenthp"] = $userrow["maxhp"];
+ $userrow["currentmp"] = $userrow["maxmp"];
+ $userrow["currenttp"] = $userrow["maxtp"];
+ if (($userrow["level"] % 5 == 0)) { $userrow["levelspell"]++; $template = "fight_levelupspell"; }
+ }
+
+ // Update for new stats.
+ updateuserrow();
+
+ // And we're done.
+ $pagerow = array(
+ "message"=>$fightrow["message"],
+ "monstername"=>$monsterrow["name"],
+ "monsterhp"=>$userrow["currentmonsterhp"],
+ "playerphysdamage"=>$fightrow["playerphysdamage"],
+ "playermagicdamage"=>$fightrow["playermagicdamage"],
+ "playerfiredamage"=>$fightrow["playerfiredamage"],
+ "playerlightdamage"=>$fightrow["playerlightdamage"],
+ "monsterphysdamage"=>$fightrow["monsterphysdamage"],
+ "monstermagicdamage"=>$fightrow["monstermagicdamage"],
+ "monsterfiredamage"=>$fightrow["monsterfiredamage"],
+ "monsterlightdamage"=>$fightrow["monsterlightdamage"],
+ "newexp"=>$newexp,
+ "newgold"=>$newgold);
+ display("Victory!",parsetemplate(gettemplate($template),$pagerow));
+
+}
+
+function youlose() {
+
+ global $userrow, $monsterrow, $fightrow;
+
+ // First take away half the gold.
+ $userrow["gold"] = ceil($userrow["gold"] / 2);
+
+ // Then take away experience.
+ $thislevel = dolevels($userrow["level"]);
+ $nextlevel = dolevels($userrow["level"]+1);
+ $userrow["experience"] -= ceil((($nextlevel - $thislevel) / 100) * $userrow["deathpenalty"]);
+
+ // And we're done.
+ $pagerow = array(
+ "message"=>$fightrow["message"],
+ "monstername"=>$monsterrow["name"],
+ "monsterhp"=>$userrow["currentmonsterhp"],
+ "playerphysdamage"=>$fightrow["playerphysdamage"],
+ "playermagicdamage"=>$fightrow["playermagicdamage"],
+ "playerfiredamage"=>$fightrow["playerfiredamage"],
+ "playerlightdamage"=>$fightrow["playerlightdamage"],
+ "monsterphysdamage"=>$fightrow["monsterphysdamage"],
+ "monstermagicdamage"=>$fightrow["monstermagicdamage"],
+ "monsterfiredamage"=>$fightrow["monsterfiredamage"],
+ "monsterlightdamage"=>$fightrow["monsterlightdamage"],
+ "deathpenalty"=>$userrow["deathpenalty"]);
+
+ // Then put them in town & reset fight stuff.
+ $userrow["latitude"] = 0;
+ $userrow["longitude"] = 0;
+ $userrow["currentaction"] = "In Town";
+ $userrow["currentfight"] = 0;
+ $userrow["currentmonsterid"] = 0;
+ $userrow["currentmonsterhp"] = 0;
+ $userrow["currenthp"] = ceil($userrow["maxhp"] / 4);
+
+ // Update.
+ updateuserrow();
+
+ display("Thou Art Dead.",parsetemplate(gettemplate("fight_lose"),$pagerow));
+
+}
+
+function dolevels($level) {
+
+ $leveltotal = 15;
+ $leveladd = 15;
+ $i = 2;
+ while ($i < $level) {
+ $levelstart = $leveltotal;
+ if ($i < 4) {
+ $leveladd = ceil($leveladd * 2.0);
+ } elseif ($i < 13) {
+ $leveladd = floor($leveladd * 1.45);
+ } elseif ($i < 40) {
+ $leveladd = floor($leveladd * 1.20);
+ } elseif ($i < 60) {
+ $leveladd = 150000;
+ } elseif ($i < 80) {
+ $leveladd = 200000;
+ } elseif ($i < 100) {
+ $leveladd = 300000;
+ } elseif ($i >= 100) {
+ $leveladd = 500000;
+ }
+ $leveltotal = $levelstart + $leveladd;
+ $i++;
+ }
+ return $leveltotal;
+
+}
+
+function dospellslist() {
+
+ global $userrow, $spells;
+ $options = "";
+ for ($i = 1; $i < 11; $i++) {
+ if ($userrow["spell".$i."id"] != 0) {
+ $options .= "\n";
+ }
+ }
+ if ($options != "") {
+ $list = " ";
+ } else { $list = ""; }
+ return $list;
+
+}
+
+?>
\ No newline at end of file
diff --git a/fightmods.php b/fightmods.php
new file mode 100644
index 0000000..fbac85f
--- /dev/null
+++ b/fightmods.php
@@ -0,0 +1,64 @@
+ $userrow["maxhp"]) { $userrow["currenthp"] = $userrow["maxhp"]; }
+ } else {
+ $userrow["currentmonsterhp"] += floor(($fightrow["monsterphysdamage"]+$fightrow["monstermagicdamage"]+$fightrow["monsterfiredamage"]+$fightrow["monsterlightdamage"]) * ($monsterrow["hpleech"]/100));
+ if ($userrow["currentmonsterhp"] > $monsterrow["maxhp"]) { $userrow["currentmonsterhp"] = $monsterrow["maxhp"]; }
+ }
+
+}
+
+function mpleech() {
+
+ /***********
+ Description: A percentage of the final damage is given back to the player's MP.
+ Occurs: Per Turn.
+ Applies To: Player only.
+ ***********/
+
+ global $userrow, $fightrow;
+ $userrow["currentmp"] += floor(($fightrow["playerphysdamage"]+$fightrow["playermagicdamage"]+$fightrow["playerfiredamage"]+$fightrow["playerlightdamage"]) * ($userrow["mpleech"]/100));
+ if ($userrow["currentmp"] > $userrow["maxmp"]) { $userrow["currentmp"] = $userrow["maxmp"]; }
+
+}
+
+function hpgain() {
+
+ /***********
+ Description: A fixed number is added to player's HP.
+ Occurs: Per Kill.
+ Applies To: Player only.
+ ***********/
+
+ global $userrow, $fightrow;
+ $userrow["currenthp"] += $userrow["hpgain"];
+ if ($userrow["currenthp"] > $userrow["maxhp"]) { $userrow["currenthp"] = $userrow["maxhp"]; }
+
+}
+
+function mpgain() {
+
+ /***********
+ Description: A fixed number is added to player's MP.
+ Occurs: Per Kill.
+ Applies To: Player only.
+ ***********/
+
+ global $userrow, $fightrow;
+ $userrow["currentmp"] += $userrow["mpgain"];
+ if ($userrow["currentmp"] > $userrow["maxmp"]) { $userrow["currentmp"] = $userrow["maxmp"]; }
+
+}
+
+?>
\ No newline at end of file
diff --git a/globals.php b/globals.php
new file mode 100644
index 0000000..ec45d8b
--- /dev/null
+++ b/globals.php
@@ -0,0 +1,50 @@
+0,
+ "playermagicdamage"=>0,
+ "playerfiredamage"=>0,
+ "playerlightdamage"=>0,
+ "monsterphysdamage"=>0,
+ "monstermagicdamage"=>0,
+ "monsterfiredamage"=>0,
+ "monsterlightdamage"=>0,
+ "message"=>"");
+
+?>
\ No newline at end of file
diff --git a/guilds.php b/guilds.php
new file mode 100644
index 0000000..a910219
--- /dev/null
+++ b/guilds.php
@@ -0,0 +1,484 @@
+";
+ $bgcolor = "background-color: #ffffff;";
+ if (mysql_num_rows($guilds) > 0) {
+ while ($guildrow = mysql_fetch_array($guilds)) {
+ $row["guildlist"] .= "
Name | Rank |
[".$guild["tagline"]."]".$guildrow["charname"]." | ".$guild["rank".$guildrow["guildrank"]]." |
This Guild has no members yet. |
You do not have any sent messages. |
+ + | +||
+ Please read THIS POST on the forums before playing the game! This is very important, and if you don't read it, monkeys will come and eat your genitals. + Once you've done that, you are more than happy to... + Play Dragon Scourge. + |
+
+ | ++ Dragon Scourge © 2003-2005 by renderse7en + | + +
Name: | Your Guild's full name. |
Tagline: | A short abbreviation or tagline for your Guild. For example, if your Guild name is "Lords of Carnage," your tagline might be "LoC." This will appear in brackets in front of each member's name. |
Name Color: | HTML color code used to display the name of your Guild, and the names of each member. (Click here for a list of color codes.) |
Tagline Color: | HTML color code used to display your Guild's tagline. (Click here for a list of color codes.) |
Cost to Join: | How much gold it will cost for a member to join your guild. |
Rank 1 Title: | Lowest ranking Guild member's title. |
Rank 2 Title: | 2nd ranking Guild member's title. |
Rank 3 Title: | 3rd ranking Guild member's title. |
Rank 4 Title: | 4th ranking Guild member's title. These are sub-leaders for your Guild. |
Rank 5 Title: | Highest ranking Guild member's title. This will be your title, as well as any other member you promote to this rank. |
Opening Statement | Your Guild's introduction statement or creed. |
NOTES: The cost for creating a guild is {{guildstartup}} gold. Ranks 1 through 3 are nominal only and are all treated identically in the game. Rank 4 members can distribute Guild funds, promote other members up to Rank 3, and demote/remove members. Rank 5 members are Guild Leaders, and can do all Rank 4 tasks as well as promote members to ranks 4 and 5, and disband the Guild. |
Name: | {{name}} |
Tagline: | {{tagline}} |
Name Color: | HTML color code used to display the name of your Guild, and the names of each member. (Click here for a list of color codes.) |
Tagline Color: | HTML color code used to display your Guild's tagline. (Click here for a list of color codes.) |
Cost to Join: | How much gold it will cost for a member to join your guild. |
Rank 1 Title: | Lowest ranking Guild member's title. |
Rank 2 Title: | 2nd ranking Guild member's title. |
Rank 3 Title: | 3rd ranking Guild member's title. |
Rank 4 Title: | 4th ranking Guild member's title. These are sub-leaders for your Guild. |
Rank 5 Title: | Highest ranking Guild member's title. This will be your title, as well as any other member you promote to this rank. |
Opening Statement | Your Guild's introduction statement or creed. |
+ News
+
+ |
++{{babblebox}} + | +
+ Bank
+Your Guild has {{bank}} gold.+ + |
+
+ Member Ranks
+Select a member to promote/demote.+ + |
+
+ Applications
+Select a user to approve/deny.+ + |
+
+ More Guild Functions
+
+ |
+
+ News
+
+ |
++{{babblebox}} + | +
+ Bank
+Your Guild has {{bank}} gold.+ + |
+
+ More Guild Functions
+
|
+
+ News
+
+ |
++{{babblebox}} + | +
+ Bank
+Your Guild has {{bank}} gold.+ + |
+
+ Member Ranks
+Select a member to promote/demote.+ + |
+
+ Applications
+Select a user to approve/deny.+ + |
+
+ More Guild Functions
+
+ |
+
Username: | |
Password: | |
Remember Me? | Yes. |