"Dark Horse Tavern", "version"=>"1.1", "author"=>"Eric Stevens", "category"=>"Forest Specials", "download"=>"core_module", "settings"=>array( "Dark Horse Tavern Settings,title", "tavernname"=>"Name of the tavern|Dark Horse Tavern", ), "prefs-mounts"=>array( "Dark Horse Tavern Mount Preferences,title", "findtavern"=>"Can this mount find the tavern,bool|0", ), ); return $info; } function darkhorse_tavernmount() { global $playermount; if (isset($playermount) && is_array($playermount) && array_key_exists("mountid",$playermount)){ $id = $playermount['mountid']; }else{ $id = 0; } // We need the module parameter here because this function can be // called from the eventchance eval and this module might not be loaded // at that point. $tavern = get_module_objpref("mounts", $id, "findtavern", "darkhorse"); return $tavern; } function darkhorse_install(){ module_addeventhook("forest", "require_once(\"modules/darkhorse.php\"); return (darkhorse_tavernmount() ? 0 : 100);"); module_addeventhook("travel", "require_once(\"modules/darkhorse.php\"); return (darkhorse_tavernmount() ? 0 : 100);"); $sql = "DESCRIBE " . db_prefix("mounts"); $result = db_query($sql); while($row = db_fetch_assoc($result)) { if ($row['Field'] == "tavern") { debug("Migrating tavern for all mounts"); $sql = "INSERT INTO " . db_prefix("module_objprefs") . " (modulename,objtype,setting,objid,value) SELECT 'darkhorse','mounts','findtavern',mountid,tavern FROM " . db_prefix("mounts"); db_query($sql); debug("Dropping tavern field from mounts table"); $sql = "ALTER TABLE " . db_prefix("mounts") . " DROP tavern"; db_query($sql); } } module_addhook("forest"); module_addhook("mountfeatures"); module_addhook("moderate"); return true; } function darkhorse_uninstall(){ return true; } function darkhorse_dohook($hookname,$args){ switch($hookname) { case "moderate": $args['darkhorse'] = get_module_setting("tavernname"); break; case "mountfeatures": $tavern = get_module_objpref("mounts", $args['id'], "findtavern"); $args['features']['Darkhorse']=$tavern; break; case "forest": if(darkhorse_tavernmount()) { // add the nav addnav("Other"); $iname = get_module_setting("tavernname"); require_once("lib/mountname.php"); list($name, $lcname) = getmountname(); addnav(array("D?Take %s`0 to %s", $lcname, $iname), "runmodule.php?module=darkhorse&op=enter"); } break; } return $args; } function darkhorse_checkday(){ // Reset special-in just in case checkday kicks in. $session['user']['specialinc']=""; checkday(); // And now set it back. $session['user']['specialinc']="module:darkhorse"; } function darkhorse_bartender($from){ global $session; $what = httpget('what'); if ($what==""){ output("The grizzled old man behind the bar reminds you very much of a strip of beef jerky.`n`n"); $dname = translate_inline($session['user']['sex']?"lasshie":"shon"); output("\"`7Shay, what can I do for you %s?`0\" inquires the toothless fellow.", $dname); output("\"`7Don't shee the likesh of your short too offen 'round theshe partsh.`0\""); addnav("Learn about my enemies",$from."op=bartender&what=enemies"); addnav("Learn about colors",$from."op=bartender&what=colors"); }elseif($what=="colors"){ output("The old man leans on the bar."); output("\"`%Sho you want to know about colorsh, do you?`0\" he asks.`n`n"); output("You are about to answer when you realize the question was rhetorical.`n`n"); output("He continues, \"`%To do colorsh, here'sh what you need to do. Firsht, you ushe a ` mark (found right above the tab key) followed by 1, 2, 3, 4, 5, 6, 7, !, @, #, $, %, ^, &, ), q or Q. Each of thoshe correshpondsh with a color to look like this: `n`1`1 `2`2 `3`3 `4`4 `5`5 `6`6 `7`7 `n`!`! `@`@ `#`# `\$`\$ `%`% `^`^ `&`& `n `)`) `q`q `Q`Q `n`% got it?`0\"`n You can practice below:", true); rawoutput("
"); $testtext = httppost('testtext'); $try = translate_inline("Try"); rawoutput("
"); addnav("",$from."op=bartender&what=colors"); rawoutput(""); if ($testtext) { output("`0You entered %s`n", prevent_colors(HTMLEntities($testtext, ENT_COMPAT, getsetting("charset", "ISO-8859-1"))),true); output("It looks like %s`n", $testtext); } output("`0`n`nThese colors can be used in your name, and in any conversations you have."); }else if($what=="enemies"){ $who = httpget('who'); if ($who==""){ output("\"`7Sho, you want to learn about your enemiesh, do you? Who do you want to know about? Well? Shpeak up! It only costs `^100`7 gold per person for information.`0\""); $subop = httpget('subop'); if ($subop!="search"){ $search = translate_inline("Search"); rawoutput("
"); addnav("",$from."op=bartender&what=enemies&subop=search"); rawoutput(""); }else{ addnav("Search Again",$from."op=bartender&what=enemies"); $search = "%"; $name = httppost('name'); for ($i=0;$i 100) { output("`n`n\"`7Hey, whatsh you think yoush doin'. That'sh too many namesh to shay. I'll jusht tell you 'bout shome of them.`0`n"); $max = 100; } $n = translate_inline("Name"); $lev = translate_inline("Level"); rawoutput(""); for ($i=0;$i<$max;$i++){ $row = db_fetch_assoc($result); rawoutput(""); addnav("",$from."op=bartender&what=enemies&who=".rawurlencode($row['login'])); } rawoutput("
$n$lev
"); output_notl("%s", $row['name']); rawoutput("{$row['level']}
"); } }else{ if ($session['user']['gold']>=100){ $sql = "SELECT name,acctid,alive,location,maxhitpoints,gold,sex,level,weapon,armor,attack,race,defense,charm FROM " . db_prefix("accounts") . " WHERE login='$who'"; $result = db_query($sql); if (db_num_rows($result)>0){ $row = db_fetch_assoc($result); $row = modulehook("adjuststats", $row); $name = str_replace("s", "sh", $row['name']); $name = str_replace("S", "Sh", $name); output("\"`7Well... letsh shee what I know about %s`7,`0\" he says...`n`n", $name); output("`4`bName:`b`6 %s`n", $row['name']); output("`4`bRace:`b`6 %s`n", translate_inline($row['race'],"race")); output("`4`bLevel:`b`6 %s`n", $row['level']); output("`4`bHitpoints:`b`6 %s`n", $row['maxhitpoints']); output("`4`bGold:`b`6 %s`n", $row['gold']); output("`4`bWeapon:`b`6 %s`n", $row['weapon']); output("`4`bArmor:`b`6 %s`n", $row['armor']); output("`4`bAttack:`b`6 %s`n", $row['attack']); output("`4`bDefense:`b`6 %s`n", $row['defense']); output("`n`^%s7 ish alsho ", $row['name']); $amt=$session['user']['charm']; if ($amt == $row['charm']) { output("ash ugly ash you are.`n"); } else if ($amt-10 > $row['charm']) { output("`bmuch`b uglier shan you!`n"); } else if ($amt > $row['charm']) { output("uglier shan you.`n"); } else if ($amt+10 < $row['charm']) { output("`bmuch`b more beautiful shan you!`n"); } else { output("more beautiful shan you.`n"); } $session['user']['gold']-=100; debuglog("spent 100 gold to learn about an enemy"); }else{ output("\"`7Eh..? I don't know anyone named that.`0\""); } }else{ output("\"`7Well... letsh shee what I know about cheapshkates like you,`0\" he says...`n`n"); output("`4`bName:`b`6 Get some money`n"); output("`4`bLevel:`b`6 You're too broke`n"); output("`4`bHitpoints:`b`6 Probably more than you`n"); output("`4`bGold:`b`6 Definately richer than you`n"); output("`4`bWeapon:`b`6 Something good enough to lay the smackdown on you`n"); output("`4`bArmor:`b`6 Probably something more fashionable than you`n"); output("`4`bAttack:`b`6 Eleventy billion`n"); output("`4`bDefense:`b`6 Super Duper`n"); } } } addnav("Return to the Main Room",$from."op=tavern"); } function darkhorse_runevent($type, $link){ global $session; $from = $link; $gameret = substr($link, 0, -1); $session['user']['specialinc']="module:darkhorse"; require_once("lib/sanitize.php"); $iname = get_module_setting("tavernname"); rawoutput(""); output_notl("`c`b%s`b`c",$iname); $op = httpget('op'); switch($op){ case "": case "search": darkhorse_checkday(); output("A cluster of trees nearby looks familiar..."); output("You're sure you've seen this place before."); output("As you approach the grove, a strange mist creeps in around you; your mind begins to buzz, and you're no longer sure exactly how you got here."); if(darkhorse_tavernmount()) { require_once("lib/mountname.php"); list($name, $lcname) = getmountname(); output("%s`0 seems to have known the way, however.", $name); } output("`n`nThe mist clears, and before you is a log building with smoke trailing from its chimney."); output("A sign over the door says `7\"%s.\"`0", $iname); addnav("Enter the tavern",$from."op=tavern"); addnav("Leave this place",$from."op=leaveleave"); break; case "tavern": darkhorse_checkday(); output("You stand near the entrance of the tavern and survey the scene before you."); output("Whereas most taverns are noisy and raucous, this one is quiet and nearly empty."); output("In the corner, an old man plays with some dice."); output("You notice that the tables have been etched on by previous adventurers who have found this place before, and behind the bar, a stick of an old man hobbles around, polishing glasses, as though there were anyone here to use them."); addnav("Talk to the old man",$from."op=oldman"); addnav("Talk to the bartender",$from."op=bartender"); // Special case here. go and see if the comment area is blocked and // if so, don't put the link in. $args = modulehook("blockcommentarea", array("section"=>"darkhorse")); if (!isset($args['block']) || $args['block'] != 'yes') { addnav("Examine the tables",$from."op=tables"); } addnav("Exit the tavern",$from."op=leave"); break; case "tables": require_once("lib/commentary.php"); addcommentary(); commentdisplay("You examine the etchings in the table:`n`n", "darkhorse","Add your own etching:"); addnav("Return to the Main Room",$from."op=tavern"); break; case "bartender": darkhorse_bartender($from); break; case "oldman": darkhorse_checkday(); addnav("Old Man"); modulehook("darkhorsegame", array("return"=>$gameret)); output("The old man looks up at you, his eyes sunken and hollow."); output("His red eyes make it seem that he may have been crying recently so you ask him what is bothering him."); if ($session['user']['sex'] == SEX_MALE) { output("\"`7Aah, I met an adventurer in the woods, and figured I'd play a little game with her, but she won and took almost all of my money.`0\"`n`n"); } else { output("\"`7Aah, I met an adventurer in the woods, and figured I'd play a little game with him, but he won and took almost all of my money.`0\"`n`n"); } $c = navcount(); if ($c != 0) { output("`0\"`7Say... why not do an old man a favor and let me try to win some of it back from you?"); if ($c > 1) output(" I can play several games!`0\""); else output(" Shall we play a game?`0\""); } $session['user']['specialmisc']=""; addnav("Return to the Main Room",$from."op=tavern"); break; case "leave": output("You duck out of the tavern, and wander into the thick foliage around you."); output("That strange mist revisits you, making your mind buzz."); output("The mist clears, and you find yourself again where you were before the mist first covered you."); if(!darkhorse_tavernmount()) { output(" How exactly you got to the tavern is not exactly clear."); } $session['user']['specialinc']=""; break; case "leaveleave": output("You decide that the tavern holds no appeal for you today."); $session['user']['specialinc']=""; break; } rawoutput(""); } function darkhorse_run(){ $op = httpget('op'); if ($op == "enter") { httpset("op", "tavern"); page_header(get_module_setting("tavernname")); darkhorse_runevent("forest", "forest.php?"); // Clear the specialinc, just in case. $session['user']['specialinc']=""; page_footer(); } } ?>