Last active
December 16, 2015 21:29
-
-
Save KaeruCT/5500114 to your computer and use it in GitHub Desktop.
choose your own adventure (really tightly coupled to board software)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| // By Kaeru~ | |
| require('lib/common.php'); | |
| $sql = new mysql; | |
| if(!@$sql->connect($sqlhost,$sqluser,$sqlpass)) | |
| { | |
| mysqlerror(); | |
| } | |
| if(!@$sql->selectdb('nwwebde1_myoa')) | |
| { | |
| mysqlerror(); | |
| } | |
| /*if($_GET['lol']=='yes') | |
| { | |
| $sql->query('TRUNCATE TABLE g_opts'); | |
| $sql->query('TRUNCATE TABLE g_stages'); | |
| $sql->query('TRUNCATE TABLE g_rep'); | |
| $sql->query('INSERT INTO g_stages SET text = "You are standing in an open field west of a white house, with a boarded front door. | |
| There is a small mailbox here. | |
| What will you do?"'); | |
| $sql->query('INSERT INTO g_opts SET stage = 1, text = "Enter house"'); | |
| $sql->query('INSERT INTO g_opts SET stage = 1, text = "Open mailbox"'); | |
| $sql->query('INSERT INTO g_opts SET stage = 1, text = "Walk away"'); | |
| print 'queries done'; | |
| }*/ | |
| function branch($stage) | |
| { | |
| global $sql; | |
| $tree = array(); | |
| $opts = $sql->query('SELECT * FROM g_opts WHERE stage = '.$stage); | |
| $stage = $sql->fetchq('SELECT * FROM g_stages WHERE id = '.$stage); | |
| $tree['text'] = $stage['text']; | |
| $tree['opts'] = array(); | |
| while($opt = $sql->fetch($opts)) | |
| { | |
| $tree['opts'][$opt['id']] = array('opt' => $opt['text'], 'branch' => branch($opt['to'])); | |
| } | |
| return $tree; | |
| } | |
| function loosends($stage, &$num) | |
| { | |
| global $sql, $visited; | |
| if (!$visited) $visited = array(); | |
| if (in_array($stage, $visited)) { | |
| return ''; | |
| } | |
| $visited[] = $stage; | |
| $out = ''; | |
| $opts = $sql->query('SELECT * FROM g_opts WHERE stage = '.$stage); | |
| while($opt = $sql->fetch($opts)) | |
| { | |
| if(!$opt['to']) | |
| { | |
| $num++; | |
| $out .= '<li><a href="game.php?option='.$opt['id'].'">'.$opt['text'].'</a></li>'; | |
| } | |
| else | |
| $out .= loosends($opt['to'], $num); | |
| } | |
| return $out; | |
| } | |
| function branchp($arr) | |
| { | |
| $out = '<div class="tree" style="display: none;">'; | |
| $out .= '<p>'.($arr['text']?nl2br(htmlval($arr['text'])):'This part of the story isn\'t done yet!').'</p>'; | |
| foreach($arr['opts'] as $k => $v) | |
| { | |
| if(is_array($v)) | |
| { | |
| $out .= '<div class="tog" onclick="$(this).next().slideToggle();">'.$v['opt'].'</div>'; | |
| $out .= branchp($v['branch']); | |
| } | |
| } | |
| $out .= '</div>'; | |
| return $out; | |
| } | |
| $links = '<a href="game.php?loose">Loose ends</a> | <a href="game.php">Beginning</a>'; | |
| $option = isset($_GET['option'])?intval($_GET['option']):0; | |
| $from = isset($_GET['from'])?intval($_GET['from']):0; | |
| $action = isset($_POST['action'])?$_POST['action']:''; | |
| $rep = isset($_GET['report'])?intval($_GET['report']):0; | |
| $msg = $link = $title = ''; | |
| if($rep) | |
| { | |
| if($sql->resultq('SELECT COUNT(*) FROM g_stages WHERE id = "'.$rep.'"')>0) | |
| { | |
| $option = $sql->resultq('SELECT id FROM g_opts WHERE `to` = "'.$rep.'"'); | |
| if($sql->resultq('SELECT COUNT(*) FROM g_rep WHERE stage = "'.$rep.'" AND user = "'.$loguser['id'].'"')>0) | |
| { | |
| $msg = 'You already reported this setting!'; | |
| } | |
| else | |
| { | |
| $sql->query('REPLACE INTO g_rep SET stage = "'.$rep.'", user = "'.$loguser['id'].'"'); | |
| $msg = 'This setting has been reported!'; | |
| } | |
| $msg .= '<br /><a href="game.php?option='.$option.'">Go back</a>'; | |
| } | |
| else | |
| $msg = 'This setting doesn\'t even exist!<br /><a href="game.php">Go back</a>'; | |
| } | |
| elseif($option!=0) | |
| { | |
| $option = $sql->fetchq('SELECT * FROM g_opts WHERE id = "'.$option.'"'); | |
| $link = '<a href="game.php">Go back to start</a>'; | |
| } | |
| else | |
| $option = array('id' => 0, 'to' => 1, 'stage' => 0, 'text' => 'The Beginning'); | |
| if(isset($_GET['branch'])) | |
| { | |
| $title = 'Branch'; | |
| $tree = branch(1); | |
| $msg = '<div class="tog" onclick="$(this).next().slideDown();">Start!</div>'.branchp($tree); | |
| } | |
| elseif(isset($_GET['loose'])) | |
| { | |
| $num = 0; | |
| $msg = '<ol>'.loosends(1, $num).'</ol>'; | |
| $title = 'Loose ends ('.$num.')'; | |
| } | |
| elseif($action) | |
| { | |
| switch($action) | |
| { | |
| case 'newsetting': | |
| $num = isset($_POST['numopts'])?intval($_POST['numopts']):2; | |
| $optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
| if($num>4) $num = 4; | |
| if($num<1) $num = 1; | |
| if($optid) | |
| { | |
| $opt = $sql->fetchq('SELECT * FROM g_opts WHERE id = "'.$_POST['optid'].'"'); | |
| $msg = ' | |
| <form method="post" action="game.php"><input type="hidden" name="optid" value="'.$_POST['optid'].'"><input type="hidden" name="numopts" value="'.$num.'"><input type="hidden" name="action" value="submitsetting"><table> | |
| <tr><th colspan="2">Setting for "'.$opt['text'].'" option</th></tr> | |
| <tr><td width="150px"><label for="setting">Setting:</label></td><td><textarea id="setting" name="setting" cols="80" rows="5"></textarea></td></tr>'; | |
| for($i=1;$i<=$num;$i++) | |
| $msg.= '<tr><td><label for="opt'.$i.'">Option '.$i.':</label></td><td><input type="text" id="opt'.$i.'" name="opt'.$i.'"></td></tr> | |
| '; | |
| $msg .= '<tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
| </table></form>'; | |
| } | |
| else | |
| $msg = 'No option ID was specified.'; | |
| break; | |
| case 'submitsetting': | |
| $num = isset($_POST['numopts'])?intval($_POST['numopts']):2; | |
| if($num>=4) $num = 4; | |
| if($num<1) $num = 1; | |
| $text = isset($_POST['setting'])?trim($_POST['setting']):''; | |
| $optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
| $err = array(); | |
| if(!$text) | |
| { | |
| $err[] = 'You didn\'t fill the "setting" field.'; | |
| } | |
| if(!$optid) | |
| { | |
| $err[] = 'No option ID was specified.'; | |
| } | |
| if($sql->resultq('SELECT COUNT(id) FROM g_opts WHERE id = "'.$optid.'"') == 0) | |
| { | |
| $err[] = 'No option with that ID exists.'; | |
| } | |
| else | |
| { | |
| $opt = $sql->fetchq('SELECT * FROM g_opts WHERE id = "'.$optid.'"'); | |
| if($opt['to']!=0) | |
| $err[] = 'Someone submitted the option before you did!'; | |
| } | |
| for($i=1;$i<=$num;$i++) | |
| { | |
| if(!trim($_POST['opt'.$i])) | |
| { | |
| $err[] = 'You didn\'t fill all the options.'; | |
| break; | |
| } | |
| } | |
| if(!$err[0]) | |
| { | |
| $sql->query('INSERT INTO g_stages SET text = "'.$text.'", user = "'.$loguser['id'].'"'); | |
| $stageid = mysql_insert_id(); | |
| $sql->query('UPDATE g_opts SET `to` = "'.$stageid.'" WHERE id = "'.$optid.'"'); | |
| for($i=1;$i<=$num;$i++) | |
| $sql->query('INSERT INTO g_opts SET stage = '.$stageid.', text = "'.$_POST['opt'.$i].'"'); | |
| sendirc('New option submitted by '.$loguser['name'].'! {boardurl}game.php?option='.$optid); | |
| $msg = 'Option submitted succesfully!<br /><a href="game.php?option='.$optid.'">Go back where you ended!</a>'; | |
| } | |
| else | |
| { | |
| $msg = 'The following error'.(sizeof($err)==1?'':'s').' occured:<ul><li>'.implode('</li><li>', $err).'</li></ul>'; | |
| } | |
| break; | |
| case 'ending': | |
| $text = isset($_POST['ending'])?trim($_POST['ending']):''; | |
| $optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
| if(!$text) | |
| { | |
| $err[] = 'You didn\'t fill the "ending" field.'; | |
| } | |
| if(!$optid) | |
| { | |
| $err[] = 'No option ID was specified.'; | |
| } | |
| if($sql->resultq('SELECT COUNT(id) FROM g_opts WHERE id = "'.$optid.'"') == 0) | |
| { | |
| $err[] = 'No option with that ID exists.'; | |
| } | |
| if(!$err[0]) | |
| { | |
| $sql->query('INSERT INTO g_stages SET text = "'.$text.'", user = "'.$loguser['id'].'"'); | |
| $stageid = mysql_insert_id(); | |
| $sql->query('UPDATE g_opts SET `to` = "'.$stageid.'" WHERE id = "'.$optid.'"'); | |
| sendirc('An ending was submitted by '.$loguser['name'].'! {boardurl}game.php?option='.$optid); | |
| $msg = 'Ending submitted succesfully!<br /><a href="game.php?option='.$optid.'">Go back where you ended!</a>'; | |
| } | |
| else | |
| { | |
| $msg = 'The following error'.(sizeof($err)==1?'':'s').' occured:<ul><li>'.implode('</li><li>', $err).'</li></ul>'; | |
| } | |
| break; | |
| case 'link': | |
| $setid = isset($_POST['settingid'])?intval($_POST['settingid']):0; | |
| $optid = isset($_POST['optid'])?intval($_POST['optid']):0; | |
| if(!$setid) | |
| { | |
| $err[] = 'You didn\'t fill the "setting ID" field.'; | |
| } | |
| if(!$optid) | |
| { | |
| $err[] = 'No option ID was specified.'; | |
| } | |
| if($sql->resultq('SELECT COUNT(id) FROM g_opts WHERE id = "'.$optid.'"') == 0) | |
| { | |
| $err[] = 'No option with that ID exists.'; | |
| } | |
| if($sql->resultq('SELECT COUNT(id) FROM g_stages WHERE id = "'.$setid.'"') == 0) | |
| { | |
| $err[] = 'No setting with that ID exists.'; | |
| } | |
| if(!$err[0]) | |
| { | |
| $sql->query('UPDATE g_opts SET `to` = "'.$setid.'" WHERE id = "'.$optid.'"'); | |
| sendirc('New option submitted by '.$loguser['name'].'! {boardurl}game.php?option='.$optid); | |
| $msg = 'Link to existing setting submitted succesfully!<br /><a href="game.php?option='.$optid.'">Go back where you ended!</a>'; | |
| } | |
| else | |
| { | |
| $msg = 'The following error'.(sizeof($err)==1?'':'s').' occured:<ul><li>'.implode('</li><li>', $err).'</li></ul>'; | |
| } | |
| break; | |
| } | |
| } | |
| elseif(!$msg) | |
| { | |
| $settingid = ''; | |
| if(!$option) | |
| { | |
| $msg = 'This option doesn\'t even exist!'; | |
| } | |
| elseif(!$option['to']) | |
| { | |
| $title = $option['text']; | |
| $msg = '<p>This part of the story isn\'t done yet. You can either continue the story, or end it here.</p> | |
| <div> | |
| <a href="#" onclick="$(\'#end\').slideUp(); $(\'#link\').slideUp(); $(\'#continue\').slideDown(); return false;">Continue</a> | | |
| <a href="#" onclick="$(\'#end\').slideUp(); $(\'#continue\').slideUp(); $(\'#link\').slideDown(); return false;">Link to an existing setting</a> | | |
| <a href="#" onclick="$(\'#continue\').slideUp(); $(\'#link\').slideUp(); $(\'#end\').slideDown(); return false;">End</a></div> | |
| <div id="continue" style="display: none;"><form method="post" action="game.php"><input type="hidden" name="optid" value="'.$option['id'].'"><input type="hidden" name="action" value="newsetting"><table> | |
| <tr><th colspan="2">Continue the story</th></tr> | |
| <tr><td width="150px"><label for="numopts">Number of options:<br>(max: 4)</label></td><td><input type="text" id="numopts" name="numopts" size="2" maxlength="1"></td></tr> | |
| <tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
| </table></form></div> | |
| <div id="end" style="display: none;"><form method="post" action="game.php"><input type="hidden" name="optid" value="'.$option['id'].'"><input type="hidden" name="action" value="ending"><table> | |
| <tr><th colspan="2">End it here</th></tr> | |
| <tr><td width="150px"><label for="ending">Ending text:</label></td><td><textarea id="ending" name="ending" cols="80" rows="5"></textarea></td></tr> | |
| <tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
| </table></form></div> | |
| <div id="link" style="display: none;"><form method="post" action="game.php"><input type="hidden" name="optid" value="'.$option['id'].'"><input type="hidden" name="action" value="link"><table> | |
| <tr><th colspan="2">Link to an existing setting</th></tr> | |
| <tr><td colspan="2">*The setting ID appears at the bottom of each setting.</td></tr> | |
| <tr> | |
| <td width="150px"><label for="settingid">Setting ID:</label></td> | |
| <td><input type="text" name="settingid" id="settingid" size="4" maxlength="4"></td | |
| </tr> | |
| <tr><td> </td><td><input type="submit" value="Submit"></td></tr> | |
| </table></form></div>'; | |
| } | |
| else | |
| { | |
| $setting = $sql->fetchq('SELECT * FROM g_stages WHERE id = "'.$option['to'].'"'); | |
| $opts = $sql->query('SELECT * FROM g_opts WHERE stage = "'.$option['to'].'"'); | |
| $title = $option['text']; | |
| $l = array(); | |
| while($opt = $sql->fetch($opts)) | |
| { | |
| $msg .= '<li><a href="game.php?option='.$opt['id'].'&from='.$setting['id'].'">'.htmlentities($opt['text']).'</a></li>'; | |
| } | |
| if(!$msg) | |
| { | |
| $msg = '<h2>THE END</h2><a href="game.php">Go back to the beginning</a>.'; | |
| } | |
| else $msg = '<ul>'.$msg.'</ul>'; | |
| } | |
| if($setting['text'] != ''){ | |
| $settingid = '<small>This setting\'s ID is: <b>'.$setting['id'].'</b></small>'; | |
| } | |
| $msg = '<div><div id="setting">'.nl2br(htmlval($setting['text'])).'</div><div id="opts">'.$msg.'</div>'.$settingid.'</div>'; | |
| if($option['stage']) | |
| { | |
| if(!$from) | |
| { | |
| $option = $sql->resultq('SELECT id FROM g_opts WHERE `to` = "'.$option['stage'].'" ORDER BY id ASC LIMIT 1'); | |
| }else{ | |
| $option = $from; | |
| } | |
| $l[] = '<a href="game.php'.($option?'?option='.$option:'').'">Go back to previous setting</a>'; | |
| } | |
| if($setting['user']) | |
| { | |
| $user = $sql->fetchq('SELECT name,sex,power,color,id FROM users WHERE id = '.$setting['user']); | |
| } | |
| /*if($log) | |
| $l[] = '<a href="game.php?report='.$setting['id'].'">Report</a>';*/ | |
| if($l[0]) | |
| $links .= ' | '.implode(' | ', $l); | |
| } | |
| ?> | |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml"> | |
| <head> | |
| <title><?=$title?></title> | |
| <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> | |
| <meta name="Author" content="Kaeru" /> | |
| <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> | |
| <style type="text/css"> | |
| body{color: #444; font-family: "Droid Sans", Tahoma, sans-serif; background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAAC/CAAAAABlQznkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+dpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wOkNyZWF0ZURhdGU9IjIwMTItMDMtMDZUMTg6MTU6NTcrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDEyLTAzLTA2VDE3OjMyOjI1KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDEyLTAzLTA2VDE3OjMyOjI1KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBRTUwREE2RjVGRDYxMUUxODlEN0YzNUUyNUU4Nzk3QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBRTUwREE3MDVGRDYxMUUxODlEN0YzNUUyNUU4Nzk3QyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjpp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%3D%3D)} | |
| #wrap {max-width: 800px; margin: 0 auto;} | |
| div#main{background: #eee; box-shadow: #000 1px 1px 3px; border-radius: 2px; padding: 16px;} | |
| div.t {background: #444; border: #666 1px solid; padding: 10px; color: #eee;} | |
| div.t > div {padding: 10px;} | |
| p.sm{font-size: .8em} | |
| div.tree{padding: 4px; border: #aaa 1px solid; background: url('theme/fragment/tdbg3.png')} | |
| div.tog{font-weight: bold; cursor: pointer; margin: 4px;} | |
| a:link{color:#333; font-weight: bold; text-decoration: none;} | |
| a:visited{color:#333; font-weight: bold; text-decoration: none;} | |
| a:active{color:#222; text-decoration: none;} | |
| a:hover{color:#111;text-decoration: underline;} | |
| form{display: inline;} | |
| table{width: 100%; margin: 20px 0;} | |
| textarea,input[type=text] {border: #888 1px solid; padding: 4px;} | |
| </style> | |
| </head> | |
| <body> | |
| <div id="wrap"> | |
| <h1><?=$title?></h1> | |
| <p class="sm"><?=$links?></p> | |
| <div id="main"> | |
| <?=$msg?> | |
| </div> | |
| </div> | |
| <!--<div><small>By Kaeru~<br /><?=pagestats();?></small></div>--> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment