query("SELECT username FROM bb".$n."_users WHERE userid='".$nr."'"); $row=$db->fetch_array($result); return $row['username']; } function truncate_string($string, $maxlength, $extension) { $cutmarker="**cut_here**"; if(strlen($string) > $maxlength) { $string=wordwrap($string, $maxlength, $cutmarker); $string=explode($cutmarker, $string); $string=$string[0] . $extension; } return $string; } $hopfi=$db->query_first("SELECT * FROM bb".$n."_users WHERE userid='".$wbbuserdata['userid']."'"); $kosten=$db->query_first("SELECT * FROM bb".$n."_guthaben"); $new='
'; eval("\$hangmanfooter .= \"".$tpl->get("hangman_footer")."\";"); /* Hangman Übersicht Ungelöste */ if(!$action) { $title="Löser"; $rankbit=""; $cnt="1"; $counter=$db->query("SELECT COUNT(*) AS gezaehlt, loeser_id FROM bb".$n."_hangman WHERE loeser_id>'0' GROUP BY loeser_id ORDER BY gezaehlt DESC LIMIT 0,5"); while($count=$db->fetch_array($counter)) { $username=get_username($count['loeser_id']); $usid=$count['loeser_id']; eval("\$rankbit .= \"".$tpl->get("hangman_toplist_rankbit")."\";"); $cnt++; } eval("\$loeserbit .= \"".$tpl->get("hangman_toplist_listbit")."\";"); $title="Versucher"; $rankbit=""; $cnt="1"; $counter=$db->query("SELECT COUNT(*) AS gezaehlt, user_idfs FROM bb".$n."_hangman_versuche GROUP BY user_idfs ORDER BY gezaehlt DESC LIMIT 0,5"); while($count=$db->fetch_array($counter)) { $username=get_username($count['user_idfs']); $usid=$count['user_idfs']; eval("\$rankbit .= \"".$tpl->get("hangman_toplist_rankbit")."\";"); $cnt++; } eval("\$versucherbit .= \"".$tpl->get("hangman_toplist_listbit")."\";"); $title="Ersteller"; $rankbit=""; $cnt="1"; $counter=$db->query("SELECT COUNT(*) AS gezaehlt, ersteller_id FROM bb".$n."_hangman GROUP BY ersteller_id ORDER BY gezaehlt DESC LIMIT 0,5"); while($count=$db->fetch_array($counter)) { $username=get_username($count['ersteller_id']); $usid=$count['ersteller_id']; eval("\$rankbit .= \"".$tpl->get("hangman_toplist_rankbit")."\";"); $cnt++; } eval("\$erstellerbit .= \"".$tpl->get("hangman_toplist_listbit")."\";"); eval("\$toplist .= \"".$tpl->get("hangman_toplist")."\";"); $hangmanbit=""; $start=($page-1)*$hmproseite; $result=$db->query("SELECT hangman_id , ersteller_id, beschreibung, geloest FROM bb".$n."_hangman WHERE geloest='0' LIMIT ".$start.",".$hmproseite); while($row=$db->fetch_array($result)) { $hangid=$row['hangman_id']; $beschreibung=truncate_string(stripslashes($row['beschreibung']), '75', '...'); $ersteller=get_username($row['ersteller_id']); $geloest="Nein"; if($row['geloest']=='1') $geloest="Ja"; $counter=$db->query("SELECT COUNT(*) AS gezaehlt FROM bb".$n."_hangman_versuche WHERE hangman_idfs='$hangid'"); while($count=$db->fetch_array($counter)) $versuche=$count['gezaehlt']; eval("\$hangmanbit .= \"".$tpl->get("hangman_hangmanbit")."\";"); } $op=''; if($wbbuserdata['canuseacp']==1 || $wbbuserdata['issupermod']==1) eval("\$op=\"".$tpl->get("hangman_op")."\";"); $gesamte=$db->query_first("SELECT COUNT(*) AS gezaehlt FROM bb".$n."_hangman WHERE geloest='0'"); $sites=(($gesamte['gezaehlt']-($gesamte['gezaehlt']%$hmproseite))/$hmproseite)+1; if(($gesamte['gezaehlt']%$hmproseite)=="0") $sites--; $cnt="1"; while($cnt<=$sites) { if(isset($site)) $site .= ', '; else $site='Seiten '; $site.="".$cnt.""; $cnt++; } if($wbbuserdata['userid']) eval("\$new=\"".$tpl->get("hangman_new_button")."\";"); eval("\$tpl->output(\"".$tpl->get("hangman")."\");"); } /* Hangman Übersicht Gelöste */ if($action=='geloest') { $nr='1'; if(($wbbuserdata['canuseacp']==1 || $wbbuserdata['issupermod']==1)&&$_GET['nr']=='2') $nr='2'; $hangmanbit=""; $start=($page-1)*$hmproseite; $result=$db->query("SELECT hangman_id , ersteller_id, beschreibung, geloest FROM bb".$n."_hangman WHERE geloest='".$nr."' ORDER BY hangman_id DESC LIMIT ".$start.",".$hmproseite); while($row=$db->fetch_array($result)) { $hangid=$row['hangman_id']; $beschreibung=truncate_string(stripslashes($row['beschreibung']), '75', '...'); $ersteller=get_username($row['ersteller_id']); $geloest="Nein"; if($row['geloest']=='1') $geloest="Ja"; $counter=$db->query("SELECT COUNT(*) AS gezaehlt FROM bb".$n."_hangman_versuche WHERE hangman_idfs='$hangid'"); while($count=$db->fetch_array($counter)) $versuche=$count['gezaehlt']; eval("\$hangmanbit .= \"".$tpl->get("hangman_hangmanbit")."\";"); } $gesamte=$db->query_first("SELECT COUNT(*) AS gezaehlt FROM bb".$n."_hangman WHERE geloest='".$nr."'"); $sites=(($gesamte['gezaehlt']-($gesamte['gezaehlt']%$hmproseite))/$hmproseite)+1; if(($gesamte['gezaehlt']%$hmproseite)=="0") $sites--; $cnt="1"; while($cnt<=$sites) { if(isset($site)) $site .= ', '; else $site='Seiten '; $site.="".$cnt.""; $cnt++; } if($wbbuserdata['userid']) eval("\$new=\"".$tpl->get("hangman_new_button")."\";"); eval("\$tpl->output(\"".$tpl->get("hangman")."\");"); } /* Rätsel Ansicht */ if($action=='view') { $hangbit=""; $result=$db->query("SELECT * FROM bb".$n."_hangman WHERE hangman_id='".addslashes($id)."'"); while($row=$db->fetch_array($result)) { $hangid=$row['hangman_id']; $erstellerid=$row['ersteller_id']; $title=truncate_string(stripslashes($row['beschreibung']), '75', '...'); $row['beschreibung']=stripslashes($row['beschreibung']); if($showavatar==1) { $avatar=", av.avatarid, av.avatarextension, av.width, av.height"; $avatarjoin="LEFT JOIN bb".$n."_avatars av ON (u.avatarid=av.avatarid)"; } else { $avatar=""; $avatarjoin=""; } $result=$db->query("SELECT u.*$avatar FROM bb".$n."_users u $avatarjoin WHERE u.userid='$erstellerid'"); while($posts=$db->fetch_array($result)) { $search=""; $homie=""; $email=""; $homepage=""; $icq=""; $aim=""; $yim=""; $user_online=""; $gender=""; $useravatar=""; $rankimages=""; $setvisible=""; $pm=""; $invisible=""; if($showonlineinthread==1) { if(($posts['invisible']==0 || $wbbuserdata['canuseacp']==1) && $posts['lastactivity']>=time()-$useronlinetimeout*60) eval("\$user_online=\"".$tpl->get("thread_user_online")."\";"); else eval("\$user_online=\"".$tpl->get("thread_user_offline")."\";"); } if($showgenderinthread==1 && $posts['gender']>0) { if($posts['gender']==1) eval("\$gender=\"".$tpl->get("thread_gender_male")."\";"); if($posts['gender']==2) eval("\$gender=\"".$tpl->get("thread_gender_female")."\";"); } eval("\$search=\"".$tpl->get("thread_search")."\";"); eval("\$homie=\"".$tpl->get("thread_homie")."\";"); if($posts['showemail']==1) eval("\$email=\"".$tpl->get("thread_email")."\";"); elseif($posts['usercanemail']==1) eval("\$email=\"".$tpl->get("thread_formmail")."\";"); if($posts['homepage']) eval("\$homepage=\"".$tpl->get("thread_homepage")."\";"); if($posts['receivepm']==1 && $wbbuserdata['canusepms']==1) eval("\$pm=\"".$tpl->get("thread_pm")."\";"); if($posts['icq']) eval("\$icq=\"".$tpl->get("thread_icq")."\";"); if($posts['aim']) eval("\$aim=\"".$tpl->get("thread_aim")."\";"); if($posts['yim']) eval("\$yim=\"".$tpl->get("thread_yim")."\";"); if($posts['avatarid'] && $showavatar==1 && $wbbuserdata['showavatars']==1) { $avatarname="images/avatars/avatar-$posts[avatarid].$posts[avatarextension]"; $avatarwidth=$posts['width']; $avatarheight=$posts['height']; eval("\$useravatar=\"".$tpl->get("avatar_image")."\";"); eval("\$useravatar=\"".$tpl->get("thread_useravatar")."\";"); } $username=get_username($erstellerid); $ranking=$db->query("SELECT ranktitle, rankimages FROM bb".$n."_ranks WHERE rankid='$posts[rankid]'"); while($ranks=$db->fetch_array($ranking)) { $rankimages=formatRI($ranks['rankimages']); $rank="
$ranks[ranktitle]
$rankimages
"; } $gereged=formatdate($dateformat,$posts['regdate']); $userposts=$posts['userposts']; } $suchwort=str_replace("_"," ",$row['suchwort']); if($row['geloest']=='1') { $kann_raten="Das Rätsel wurde bereits von ".get_username($row['loeser_id'])." gelöst!
Gesucht war $suchwort"; } else { if(!$wbbuserdata['userid']) { $kann_raten="Gäste können keine Rätsel lösen!"; } else { if($row['geloest']=='2') { $kann_raten="Das Rätsel wurde abgebrochen. Gesucht war $suchwort"; } else { $versuche=$db->query("SELECT time FROM bb".$n."_hangman_versuche WHERE user_idfs='".$wbbuserdata['userid']."' AND hangman_idfs='".$hangid."' ORDER BY time DESC LIMIT 0,1"); while($fehl=$db->fetch_array($versuche)) $lasttry=$fehl['time']; $freetime=$lasttry+$hmpausenzeit; $nowtime=time(); if($freetime>$nowtime) { $kann_raten="Sie haben erst vor kurzer Zeit geraten und müssen sich noch ein wenig gedulden."; } else { if($row['ersteller_id']==$wbbuserdata['userid']) { $kann_raten="Sie können nicht Ihr eigenes Rätsel lösen!"; } else { if($hopfi['guthaben']<$kosten['hangman_kosten']) { $kann_raten="Sie haben leider nicht genug Guthaben, um Hangman spielen zu können."; } else { $kann_raten="Raten!"; } } } } } } $beschreibung=stripslashes($row['beschreibung']); $opbit=''; if($wbbuserdata['canuseacp']==1 || $wbbuserdata['issupermod']==1) eval("\$opbit=\"".$tpl->get("hangman_show_opbit")."\";"); eval("\$hangbit .= \"".$tpl->get("hangman_show_hangbit")."\";"); } $versuche=$db->query("SELECT user_idfs FROM bb".$n."_hangman_versuche WHERE hangman_idfs='$hangid'"); $fehler=''; while($fehl=$db->fetch_array($versuche)) { if(isset($fehler) && $fehler != '') $fehler .= ', '; $fehler.="".get_username($fehl['user_idfs']).""; } eval("\$fehl_versuche .= \"".$tpl->get("hangman_show_fehl_versuche")."\";"); eval("\$tpl->output(\"".$tpl->get("hangman_show")."\");"); } /* Raten Ansicht */ if($action=='raten'&&$wbbuserdata['userid']) { session_start(); if(!isset($_SESSION['GUESSED'])) { $fehl=$db->query_first("SELECT time FROM bb".$n."_hangman_versuche WHERE user_idfs='".$wbbuserdata['userid']."' AND hangman_idfs='".$id."' ORDER BY time DESC LIMIT 0,1"); $lasttry=$fehl['time']; $freetime=$lasttry+$hmpausenzeit; $nowtime=time(); if(($freetime<$nowtime)&&($hopfi['guthaben']>=$kosten['hangman_kosten'])) { $row=$db->query_first("SELECT * FROM bb".$n."_hangman WHERE hangman_id='".addslashes($id)."'"); $hangid=$row['hangman_id']; $erstellerid=$row['ersteller_id']; $beschreibung=stripslashes($row['beschreibung']); $max_guess=$row['max_versuche']; $suchwort=$row['suchwort']; $_SESSION['MAXIMAL']=$max_guess; $_SESSION['BESCHR']=$beschreibung; $_SESSION['GUESSED']=array(); if($hmsaveletter==1) $_SESSION['GUESSED']=explode(" ", $row['savedletters']); $_SESSION['VERSUCHE']=0; $_SESSION['HITS']=0; $_SESSION['WORD2GUESS']=$suchwort; $nowtime=time(); $db->query("INSERT INTO bb".$n."_hangman_versuche (hangman_idfs, user_idfs, time) VALUES ('".addslashes($id)."', '".$wbbuserdata[userid]."', '".$nowtime."')"); if($kosten['hangman_kosten']>'0') { $db->query("UPDATE bb".$n."_users SET guthaben=guthaben-".$kosten['hangman_kosten']." WHERE userid='".$wbbuserdata['userid']."'"); $db->query("INSERT INTO bb".$n."_kontoauszug (userid,datum,uhrzeit,info,betrag,art) VALUES ('".$wbbuserdata['userid']."','".date("d.m.y")."','".date("H:i")."','Hangman gespielt','".$kosten['hangman_kosten']."', 'minus')"); } } else { header("Location: ?action=view&id=".addslashes($id)); exit(); } } $hangstuff=$db->query_first("SELECT * FROM bb".$n."_hangman WHERE hangman_id='".addslashes($id)."'"); if(isset($_GET['c'])) { $_SESSION['GUESSED'][]=$_GET['c']; $_SESSION['VERSUCHE']++; if(stristr($_SESSION['WORD2GUESS'], $_GET['c'])) { $_SESSION['HITS']++; } } $_SESSION['MISSED']=$_SESSION['VERSUCHE']-$_SESSION['HITS']; function get_alpha_navigation() { global $db, $n; $stack=''; $id=$_GET['id']; $tpl='%s '; for ($i=65; $i<91; $i++) { $l=chr($i); $m=sprintf ($tpl, $id, $l, $l); if(in_array($l,$_SESSION['GUESSED'])) { $m=$l.' '; } $stack .= $m; } $m=sprintf ($tpl, $id, chr(95), chr(95)); if(in_array(chr(95),$_SESSION['GUESSED'])) $m=chr(95).' '; $stack .= $m; $result=<<< EOT $stack EOT; return $result; } function get_result() { global $db, $n, $id, $wbbuserdata, $hmsaveletter, $hangstuff, $explsaved; $word=$_SESSION['WORD2GUESS']; $complete=true; $stack=''; $l=strlen($word); $newsaves=array(); if($hmsaveletter==1) $newsaves=explode(" ", $hangstuff['savedletters']); for ($i=0; $i < $l;$i++) { $cmp=strtoupper($word[$i]); if((in_array($cmp, $_SESSION['GUESSED']))||(in_array($cmp, $newsaves))) { if($word[$i]=='_') { $stack .= "    "; } else { $stack .= "{$word[$i]} "; } if($hmsaveletter==1) { if(!in_array(strtoupper($word[$i]), $newsaves)) { $imsaves=implode(" ", $newsaves); if($imsaves=='') $imsaves.=$word[$i]; else $imsaves.=" ".$word[$i]; $newsaves=explode(" ", $imsaves); } } } else { $complete=false; $stack .= '_ '; } } if($hmsaveletter==1) $db->query("UPDATE bb".$n."_hangman SET savedletters='".strtoupper(implode(" ", $newsaves))."' WHERE hangman_id='".$id."'"); if($complete) { $really=$db->query_first("SELECT loeser_id FROM bb".$n."_hangman WHERE hangman_id='".addslashes($id)."'"); if($really['loeser_id']=='0') $db->query("UPDATE bb".$n."_hangman SET geloest='1', loeser_id='".$wbbuserdata[userid]."' WHERE hangman_id='".addslashes($id)."'"); session_destroy(); $counter = $db->query("SELECT COUNT(*) AS gezaehlt FROM bb".$n."_hangman_versuche WHERE hangman_idfs='".stripslashes($id)."'"); while($count=$db->fetch_array($counter)) $versuche=$count['gezaehlt']; $kosten=$db->query_first("SELECT * FROM bb".$n."_guthaben"); if($kosten['hangman_gewinn']>'0') { $add=$kosten['hangman_kosten']+$kosten['hangman_gewinn']+$versuche-1; $db->query("UPDATE bb".$n."_users SET guthaben=guthaben+".$add." WHERE userid='".$wbbuserdata['userid']."'"); $db->query("INSERT INTO bb".$n."_kontoauszug (userid,datum,uhrzeit,info,betrag,art) VALUES ('".$wbbuserdata['userid']."','".date("d.m.y")."','".date("H:i")."','Beim Hangman gewonnen','".$add."', 'plus')"); } header("Location: ?action=view&id=".addslashes($id)); } return $stack; } $navi=get_alpha_navigation(); $word=get_result(); $msg=""; $count_down=$_SESSION['MAXIMAL']-$_SESSION['MISSED']; if($_SESSION['MISSED']>=$_SESSION['MAXIMAL']) { session_destroy(); header("Location: ?action=view&id=".addslashes($id)); } eval("\$tpl->output(\"".$tpl->get("hangman_raten")."\");"); } /* Rätsel erstellen */ if($action=='new'&&$wbbuserdata['userid']) { $username=get_username($wbbuserdata['userid']); $fehler=''; if(!$_POST['max_versuche']) { eval("\$tpl->output(\"".$tpl->get("hangman_neu")."\");"); } else { if(addslashes($_POST['max_versuche'])=='') $fehler.=", den Max. Versuchen"; else $max_versuche=addslashes($_POST['max_versuche']); if(addslashes($_POST['beschreibung'])=='') $fehler.=", der Beschreibung"; else $beschreibung=addslashes($_POST['beschreibung']); $suchwort=addslashes($_POST['suchwort']); $suchwort=str_replace("ö","oe",$suchwort); $suchwort=str_replace("ü","ue",$suchwort); $suchwort=str_replace("ä","ae",$suchwort); $suchwort=str_replace(" ","_",$suchwort); $eingabefehler=''; for ($i=64; $i>0; $i--) { $l=chr($i); if(stristr($suchwort, $l)) $eingabefehler='1'; } for ($i=92; $i<97; $i++) { if($i==95) $i++; $l=chr($i); if(stristr($suchwort, $l)) $eingabefehler='1'; } for ($i=123; $i<256; $i++) { $l=chr($i); if(stristr($suchwort, $l)) $eingabefehler='1'; } if(addslashes($_POST['suchwort'])==''||$eingabefehler=='1') $fehler.=", dem Suchwort"; if($fehler=='') { $db->query("INSERT INTO bb".$n."_hangman (hangman_id, ersteller_id , suchwort , max_versuche, beschreibung, geloest, loeser_id) VALUES ('', '".$wbbuserdata[userid]."', '".$suchwort."', '".$max_versuche."', '".$beschreibung."', '0', '0')"); $newhaid=mysql_insert_id(); if($kosten['hangman_erstellen']>'0') { $db->query("UPDATE bb".$n."_users SET guthaben=guthaben+".$kosten['hangman_erstellen']." WHERE userid='".$wbbuserdata['userid']."'"); $db->query("INSERT INTO bb".$n."_kontoauszug (userid,datum,uhrzeit,info,betrag,art) VALUES ('".$wbbuserdata['userid']."','".date("d.m.y")."','".date("H:i")."','Hangman Rätsel erstellt.','".$kosten['hangman_erstellen']."', 'plus')"); } header("Location: ?action=view&id=".$newhaid); } else { $fehler="Keine oder fehlerhafte Eingabe bei... ".$fehler."!"; eval("\$tpl->output(\"".$tpl->get("hangman_neu")."\");"); } } } /* Rätsel abbrechen */ if(($action=='abbrechen')&&($wbbuserdata['canuseacp']==1||$wbbuserdata['issupermod']==1)) { $db->query("UPDATE bb".$n."_hangman SET geloest='2' WHERE hangman_id='".addslashes($id)."'"); header("Location: ?action=view&id=".addslashes($id)); } /* Rätsel löschen */ if(($action=='delete')&&($wbbuserdata['canuseacp']==1||$wbbuserdata['issupermod']==1)) { $db->query("DELETE FROM bb".$n."_hangman WHERE hangman_id='".addslashes($id)."'"); $db->query("DELETE FROM bb".$n."_hangman_versuche WHERE hangman_idfs='".addslashes($id)."'"); header("Location: hangman.php"); } ?>