inn(), 'buy' => buy(), 'buy2' => buy2($do[1]), 'buy3' => buy3($do[1]), // 'sell' => sell(), 'maps' => maps(), 'maps2' => maps2($do[1]), 'maps3' => maps3($do[1]), 'gotown' => travelto($do[1]), 'move' => move(), 'fight' => fight(), 'victory' => victory(), 'drop' => drop(), 'dead' => dead(), 'verify' => header("Location: users.php?do=verify"), 'spell' => healspells($do[1]), 'showchar' => showchar(), 'onlinechar' => onlinechar($do[1]), 'showmap' => showmap(), 'babblebox' => babblebox(), 'ninja' => ninja(), default => donothing() }; function donothing() { global $userrow; if ($userrow["currentaction"] == "In Town") { $page = dotown(); $title = "In Town"; } elseif ($userrow["currentaction"] == "Exploring") { $page = doexplore(); $title = "Exploring"; } elseif ($userrow["currentaction"] == "Fighting") { $page = dofight(); $title = "Fighting"; } display($page, $title); } /** * Spit out the main town page. */ function dotown() { global $userrow, $controlrow; $townquery = db()->query('SELECT * FROM towns WHERE latitude = ? AND longitude = ? LIMIT 1;', [$userrow["latitude"], $userrow["longitude"]]); if ($townquery === false) display("There is an error with your user account, or with the town data. Please try again.", "Error"); $townrow = $townquery->fetchArray(SQLITE3_ASSOC); if ($townrow === false) display("There is an error with your user account, or with the town data. Please try again.","Error"); // News box. Grab latest news entry and display it. Something a little more graceful coming soon maybe. if ($controlrow["shownews"] == 1) { $newsrow = db()->query('SELECT * FROM news ORDER BY id DESC LIMIT 1;')->fetchArray(SQLITE3_ASSOC); $townrow["news"] = "
Latest News
\n"; $townrow["news"] .= "[".prettydate($newsrow["postdate"])."]
".nl2br($newsrow["content"]); $townrow["news"] .= "
\n"; } else { $townrow["news"] = ""; } // Who's Online. Currently just members. Guests maybe later. if ($controlrow["showonline"] == 1) { $onlinequery = db()->query("SELECT * FROM news WHERE strftime('%s', onlinetime) >= strftime('%s', 'now') - 600 ORDER BY charname"); $online_count = 0; $online_rows = []; foreach ($onlinequery->fetchArray(SQLITE3_ASSOC) as $onlinerow) { $online_count++; $online_rows[] = "".$onlinerow["charname"]."" . ", "; } $townrow["whosonline"] = "
Who's Online
\n"; $townrow["whosonline"] .= "There are $online_count user(s) online within the last 10 minutes: "; $townrow["whosonline"] .= rtrim(implode(', ', $online_rows), ', '); $townrow["whosonline"] .= "
\n"; } else { $townrow["whosonline"] = ""; } if ($controlrow["showbabble"] == 1) { $townrow["babblebox"] = "
Babble Box
\n"; $townrow["babblebox"] .= ""; $townrow["babblebox"] .= "
\n"; } else { $townrow["babblebox"] = ""; } $page = gettemplate("towns"); $page = parsetemplate($page, $townrow); return $page; } /** * Just spit out a blank exploring page. Exploring without a GET string is normally when they first log in, or when * they've just finished fighting. */ function doexplore() { return << Exploring You are exploring the map, and nothing has happened. Continue exploring using the direction buttons or the Travel To menus. HTML; } /** * Redirect to fighting. */ function dofight() { header("Location: index.php?do=fight"); } function showchar() { global $userrow, $controlrow; // Format various userrow stuffs. $userrow["experience"] = number_format($userrow["experience"]); $userrow["gold"] = number_format($userrow["gold"]); if ($userrow["expbonus"] > 0) { $userrow["plusexp"] = "(+".$userrow["expbonus"]."%)"; } elseif ($userrow["expbonus"] < 0) { $userrow["plusexp"] = "(".$userrow["expbonus"]."%)"; } else { $userrow["plusexp"] = ""; } if ($userrow["goldbonus"] > 0) { $userrow["plusgold"] = "(+".$userrow["goldbonus"]."%)"; } elseif ($userrow["goldbonus"] < 0) { $userrow["plusgold"] = "(".$userrow["goldbonus"]."%)"; } else { $userrow["plusgold"] = ""; } $levelquery = doquery("SELECT ". $userrow["charclass"]."_exp FROM {{table}} WHERE id='".($userrow["level"]+1)."' LIMIT 1", "levels"); $levelrow = mysql_fetch_array($levelquery); if ($userrow["level"] < 99) { $userrow["nextlevel"] = number_format($levelrow[$userrow["charclass"]."_exp"]); } else { $userrow["nextlevel"] = "None"; } if ($userrow["charclass"] == 1) { $userrow["charclass"] = $controlrow["class1name"]; } elseif ($userrow["charclass"] == 2) { $userrow["charclass"] = $controlrow["class2name"]; } elseif ($userrow["charclass"] == 3) { $userrow["charclass"] = $controlrow["class3name"]; } if ($userrow["difficulty"] == 1) { $userrow["difficulty"] = $controlrow["diff1name"]; } elseif ($userrow["difficulty"] == 2) { $userrow["difficulty"] = $controlrow["diff2name"]; } elseif ($userrow["difficulty"] == 3) { $userrow["difficulty"] = $controlrow["diff3name"]; } $spellquery = doquery("SELECT id,name FROM {{table}}","spells"); $userspells = explode(",",$userrow["spells"]); $userrow["magiclist"] = ""; while ($spellrow = mysql_fetch_array($spellquery)) { $spell = false; foreach($userspells as $a => $b) { if ($b == $spellrow["id"]) { $spell = true; } } if ($spell == true) { $userrow["magiclist"] .= $spellrow["name"]."
"; } } if ($userrow["magiclist"] == "") { $userrow["magiclist"] = "None"; } // Make page tags for XHTML validation. $xml = "\n" . "\n" . "\n"; $charsheet = gettemplate("showchar"); $page = $xml . gettemplate("minimal"); $array = array("content"=>parsetemplate($charsheet, $userrow), "title"=>"Character Information"); echo parsetemplate($page, $array); die(); } function onlinechar($id) { global $controlrow; $userquery = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "users"); if (mysql_num_rows($userquery) == 1) { $userrow = mysql_fetch_array($userquery); } else { display("No such user.", "Error"); } // Format various userrow stuffs. $userrow["experience"] = number_format($userrow["experience"]); $userrow["gold"] = number_format($userrow["gold"]); if ($userrow["expbonus"] > 0) { $userrow["plusexp"] = "(+".$userrow["expbonus"]."%)"; } elseif ($userrow["expbonus"] < 0) { $userrow["plusexp"] = "(".$userrow["expbonus"]."%)"; } else { $userrow["plusexp"] = ""; } if ($userrow["goldbonus"] > 0) { $userrow["plusgold"] = "(+".$userrow["goldbonus"]."%)"; } elseif ($userrow["goldbonus"] < 0) { $userrow["plusgold"] = "(".$userrow["goldbonus"]."%)"; } else { $userrow["plusgold"] = ""; } $levelquery = doquery("SELECT ". $userrow["charclass"]."_exp FROM {{table}} WHERE id='".($userrow["level"]+1)."' LIMIT 1", "levels"); $levelrow = mysql_fetch_array($levelquery); $userrow["nextlevel"] = number_format($levelrow[$userrow["charclass"]."_exp"]); if ($userrow["charclass"] == 1) { $userrow["charclass"] = $controlrow["class1name"]; } elseif ($userrow["charclass"] == 2) { $userrow["charclass"] = $controlrow["class2name"]; } elseif ($userrow["charclass"] == 3) { $userrow["charclass"] = $controlrow["class3name"]; } if ($userrow["difficulty"] == 1) { $userrow["difficulty"] = $controlrow["diff1name"]; } elseif ($userrow["difficulty"] == 2) { $userrow["difficulty"] = $controlrow["diff2name"]; } elseif ($userrow["difficulty"] == 3) { $userrow["difficulty"] = $controlrow["diff3name"]; } $charsheet = gettemplate("onlinechar"); $page = parsetemplate($charsheet, $userrow); display($page, "Character Information"); } function showmap() { global $userrow; // Make page tags for XHTML validation. $xml = "\n" . "\n" . "\n"; $page = $xml . gettemplate("minimal"); $array = array("content"=>"
\"Map\"
", "title"=>"Map"); echo parsetemplate($page, $array); die(); } function babblebox() { global $userrow; if (isset($_POST["babble"])) { $safecontent = makesafe($_POST["babble"]); if ($safecontent == "" || $safecontent == " ") { //blank post. do nothing. } else { $insert = doquery("INSERT INTO {{table}} SET id='',posttime=NOW(),author='".$userrow["charname"]."',babble='$safecontent'", "babble"); } header("Location: index.php?do=babblebox"); die(); } $babblebox = array("content"=>""); $bg = 1; $babblequery = doquery("SELECT * FROM {{table}} ORDER BY id DESC LIMIT 20", "babble"); while ($babblerow = mysql_fetch_array($babblequery)) { if ($bg == 1) { $new = "
[".$babblerow["author"]."] ".$babblerow["babble"]."
\n"; $bg = 2; } else { $new = "
[".$babblerow["author"]."] ".stripslashes($babblerow["babble"])."
\n"; $bg = 1; } $babblebox["content"] = $new . $babblebox["content"]; } $babblebox["content"] .= "

"; // Make page tags for XHTML validation. $xml = "\n" . "\n" . "\n"; $page = $xml . gettemplate("babblebox"); echo parsetemplate($page, $babblebox); die(); } /** * NINJA! 🥷 */ function ninja(): void { exit('NINJA! 🥷'); }