$filename = 'hangman.php'; require('./global.php'); $lang->load('HANGMAN'); if(!$wbbuserdata['userid'] || !$wbbuserdata['can_hangman_play']) access_error(); if(isset($_REQUEST['action'])) $action = $_REQUEST['action']; else $action = 'noaction'; /* Hangman user laden */ $huser = $db->query_first("SELECT userid, disclaimer, erstellt, geloest, punkte FROM bb".$n."_hangman_user WHERE userid = '".$wbbuserdata['userid']."'"); /* Hangman config laden */ $hang_config = $db->query_first("SELECT * FROM bb".$n."_hangman_config WHERE id = '1'"); $version = "Hangman v1.1.0.1 by Lasall"; /* Monats-Statistik Reset */ if(date("n") != $hang_config['monat']){ if($hang_config['monat_gut_onoff'] && $hang_config['hang_gut_onoff']){ $hang_monat_q = $db->query("SELECT userid FROM bb".$n."_hangman_user WHERE monat_p > '0' ORDER BY monat_p DESC, monat_e DESC, monat_g DESC LIMIT 0,3"); $mpos = 1; while($hang_monat = $db->fetch_array($hang_monat_q)){ $mpos_gut = 'monat_gut' . $mpos; eval("\$lang_kauz = \"".$lang->get4eval("LANG_HANGMAN_MPOS_L")."\";"); $db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$hang_monat['userid']."','".time()."','$lang_kauz','".$hang_config[$mpos_gut]."','plus')"); $db->query("UPDATE bb".$n."_users SET guthaben=guthaben+$hang_config[$mpos_gut] WHERE userid='".$hang_monat['userid']."'"); $mpos++; } $db->query("UPDATE bb".$n."_hangman_config SET monat='".date("n")."' WHERE id = '1'"); $db->query("UPDATE bb".$n."_hangman_user SET monat_e='0', monat_g='0', monat_p='0'"); } else{ $db->query("UPDATE bb".$n."_hangman_config SET monat='".date("n")."' WHERE id = '1'"); $db->query("UPDATE bb".$n."_hangman_user SET monat_e='0', monat_g='0', monat_p='0'"); } } ## Funktion für die Fehlermeldungen function hang_msg($art, $whereto){ global $headinclude, $master_board_name, $tpl, $lang, $hang, $url2board, $session, $threadid, $session; ## Meldung if($art == 'warten') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_PLAY_WARTEN"); if($art == 's_gespielt') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_PLAY_SGESPIELT"); if($art == 'own') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_OWN"); if($art == 'ende') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_BEENDET"); if($art == 'ergedefi') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_ERGEDEFI"); if($art == 'keingeld') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_KEINGELD"); if($art == 'offline') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_OFFLINE"); if($art == 'noaction') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_NOACTION"); if($art == 'ba_spielen') $hang_meldung_bit = $lang->get("LANG_HANGMAN_MELDUNG_BASPIELEN"); ## Wohin zurück? eval("\$hang_back_link = \"".$lang->get4eval("LANG_HANGMAN_MELDUNG_BACK_BOARD")."\";"); if($whereto == 'index') eval("\$hang_back_link = \"".$lang->get4eval("LANG_HANGMAN_MELDUNG_BACK_INDEX")."\";"); if($whereto == 'board') eval("\$hang_back_link = \"".$lang->get4eval("LANG_HANGMAN_MELDUNG_BACK_BOARD")."\";"); if($whereto == 'thread') eval("\$hang_back_link = \"".$lang->get4eval("LANG_HANGMAN_MELDUNG_BACK_THREAD")."\";"); eval ("\$tpl->output(\"".$tpl->get("hangman_meldung")."\");"); exit(); } /* wenn hangman ausgeschaltet -> exit */ if(!$hang_config['hang_onoff']) hang_msg(offline,index); if($action != 'noaction' && !$huser['disclaimer']) $action = 'disclaimer'; // vor dem ersten Spiel regeln lesen if($action == 'disclaimer'){ /* set disclaimer = 1 */ if(isset($_POST['subaction'])){ $boardid = $_POST['boardid']; if($huser['userid']) $db->query("UPDATE bb".$n."_hangman_user SET disclaimer = '1' WHERE userid = '".$wbbuserdata['userid']."'"); else $db->query("INSERT INTO bb".$n."_hangman_user (userid,disclaimer) VALUES ('".$wbbuserdata['userid']."','1')"); header("location: board.php?boardid=$boardid&sid=$session[hash]"); exit(); } ## spielregeln ## eval("\$lang->items['LANG_HANGMAN_REGELN_HINWEIS_1'] = \"".$lang->get4eval("LANG_HANGMAN_REGELN_HINWEIS_1")."\";"); eval("\$lang->items['LANG_HANGMAN_REGELN_HINWEIS_7'] = \"".$lang->get4eval("LANG_HANGMAN_REGELN_HINWEIS_7")."\";"); eval("\$lang->items['LANG_HANGMAN_REGELN_HINWEIS_9_1'] = \"".$lang->get4eval("LANG_HANGMAN_REGELN_HINWEIS_9_1")."\";"); eval("\$tpl->output(\"".$tpl->get("hangman_regeln")."\");"); exit(); } ## Falscher link ## if($action == 'noaction'){ // fehler falscher link hang_msg(noaction,index); } /* Ein neues Hangman Spiel */ if($action == 'newhangman'){ eval("\$lang->items['LANG_HANGMAN_NEWGAME_LOESUNG_DESC1'] = \"".$lang->get4eval("LANG_HANGMAN_NEWGAME_LOESUNG_DESC1")."\";"); ## Spiel eintragen if(isset($_POST['subaction']) && $_POST['subaction'] == 'eintragen' && $_POST['loesung'] && $_POST['kathegorie']){ ## POST Daten $hang_bid = $_POST['boardid']; $thema_post = $_POST['kathegorie']; $loesung_post = $_POST['loesung']; ## Auf doppelt prüfen $doppeltest = $db->query_first("SELECT hid FROM bb".$n."_hangman_spiele WHERE loesung = '".addslashes(htmlspecialchars($_POST['loesung']))."'"); if($doppeltest['hid']){ ## Doppelte Frage $loe_fehler = $lang->get("LANG_HANGMAN_NEWGAME_FEHLER_DOPPELT"); eval("\$tpl->output(\"".$tpl->get("hangman_new")."\");"); exit(); } ## eingaben prüfen if(preg_match ("([^0-9 a-z A-Z])",$_POST['loesung'])) { $loe_fehler = $lang->get("LANG_HANGMAN_NEWGAME_FEHLER_FALSCH"); eval("\$tpl->output(\"".$tpl->get("hangman_new")."\");"); exit(); } ## prüfen wie lang if(strlen($_POST['loesung']) < $hang_config['min_char']) { eval("\$loe_fehler = \"".$lang->get4eval("LANG_HANGMAN_NEWGAME_FEHLER_MINCHAR")."\";"); eval("\$tpl->output(\"".$tpl->get("hangman_new")."\");"); exit(); } $kat = wbb_trim($_POST['kathegorie']); $loesung = $_POST['loesung']; $versuche = $_POST['versuche']; $spielmodus = $_POST['spielmodus']; $einzel = $_POST['einzel']; $versuche_count = '0'; $hang_solo_gefunden = '0'; $boardid = $_POST['boardid']; $time = time(); $gesamt_char = strlen($loesung); $holder = str_repeat('-',$gesamt_char); if($einzel) eval("\$einzel_desc = \"".$lang->get4eval("LANG_HANGMAN_NEWGAME_EINZEL_1")."\";"); else eval("\$einzel_desc = \"".$lang->get4eval("LANG_HANGMAN_NEWGAME_EINZEL_0")."\";"); if($spielmodus){ $spielmodus_desc = $lang->get("LANG_HANGMAN_NEWGAME_SPIELMODUS_1"); eval("\$message = \"".$lang->get("LANG_HANGMAN_POSTBITS_SOLO_1")."\";"); } else{ $spielmodus_desc = $lang->get("LANG_HANGMAN_NEWGAME_SPIELMODUS_0"); eval("\$message = \"".$lang->get("LANG_HANGMAN_POSTBITS_SOLO_0")."\";"); } /* insert thread */ $db->query("INSERT INTO bb".$n."_threads (boardid,topic,starttime,starterid,starter,lastposttime,lastposterid,lastposter,closed,visible) VALUES ('$boardid','".addslashes($kat)."','$time','".$wbbuserdata['userid']."','".addslashes($wbbuserdata['username'])."','$time','".$wbbuserdata['userid']."','".addslashes($wbbuserdata['username'])."','1','1')"); $threadid = $db->insert_id(); /* insert post */ $db->query("INSERT INTO bb".$n."_posts (threadid,userid,username,posttopic,posttime,message,showsignature,allowbbcode,ipaddress,visible) VALUES ('$threadid','".$wbbuserdata['userid']."','".addslashes($wbbuserdata['username'])."','".addslashes($topic)."','$time','".addslashes($message)."','".intval($_POST['showsignature'])."','1','".addslashes($REMOTE_ADDR)."','1')"); $postid = $db->insert_id(); /* update board */ $db->unbuffered_query("UPDATE bb".$n."_boards SET threadcount=threadcount+1, postcount=postcount+1, lastthreadid='$threadid', lastposttime='$time', lastposterid='".$wbbuserdata['userid']."', lastposter='".addslashes($wbbuserdata['username'])."' WHERE boardid = '$boardid'"); /* insert hangman */ $db->query("INSERT INTO bb".$n."_hangman_spiele (userid,thema,loesung,gefunden,letters,hang_once,hang_solo,boardid,threadid,postid,versuche,versucht,validcode,status) VALUES ('".$wbbuserdata['userid']."','$kat','$loesung','$holder','$gesamt_char','$einzel','$spielmodus','$boardid', '$threadid','$postid','$versuche','0','".rand(111,999)."','1')"); ###### Guthaben Start ####### if($hang_config['hang_gut_onoff'] && $hang_config['hang_gut_ers_onoff']){ eval("\$lang_kauz = \"".$lang->get4eval("LANG_HANGMAN_KAUSZ_ERS")."\";"); $db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','$lang_kauz','".$hang_config['hang_gut_ers']."','plus')"); $db->query("UPDATE bb".$n."_users SET guthaben=guthaben+$hang_config[hang_gut_ers] WHERE userid='".$wbbuserdata['userid']."'"); $db->query("UPDATE bb".$n."_hangman_user SET erstellt = erstellt+1, punkte=punkte+3, monat_e=monat_e+1, monat_p=monat_p+3 WHERE userid='".$wbbuserdata['userid']."'"); } else{ ## users bearbeiten (Punkte + 3) (erstellt + 1) $db->query("UPDATE bb".$n."_hangman_user SET erstellt = erstellt+1, punkte=punkte+3, monat_e=monat_e+1, monat_p=monat_p+3 WHERE userid='".$wbbuserdata['userid']."'"); } ############################# header("location: board.php?boardid=$boardid&sid=$session[hash]"); exit(); } else { $thema_post = $_POST['kathegorie']; $loesung_post = $_POST['loesung']; $hang_bid = $_REQUEST['boardid']; eval("\$tpl->output(\"".$tpl->get("hangman_new")."\");"); exit(); } } ## Wir spielen Hangman :-) ## if($action == 'play'){ // hangman spielen // POST und REQUEST in varis umwandeln $threadid = $_REQUEST['threadid']; // Spieleinstellungen holen $hang = $db->query_first("SELECT * FROM bb".$n."_hangman_spiele WHERE threadid = '$threadid'"); if($hang_config['eg_ratio'] > 0) if(($huser['geloest']/$hang_config['eg_ratio']) >= $huser['erstellt']) hang_msg(ergedefi,board); // rechte hangman zu spielen if($hang['userid'] == $wbbuserdata['userid']) hang_msg(own,board); ## Wenn gelöst exit if(!$hang['status']) hang_msg(ende,index); ## wenn guthaben an und guthaben zu wenig exit if($hang_config['hang_gut_onoff'] && $hang_config['hang_gut_play_onoff'] && $wbbuserdata['guthaben'] < $hang_config['hang_gut_play']) hang_msg(keingeld,board); ## spieler eintrag holen $hang_spieler = $db->query_first("SELECT * FROM bb".$n."_hangman_spieler WHERE userid = '".$wbbuserdata['userid']."' AND threadid = '$threadid'"); ## IF STATUS 4 oder versuche größer 0 exit if($hang_spieler['status'] == 4 || substr($hang_spieler['zeit'],-1) != 0) hang_msg(ba_spielen,board); ## Status prüfen if(!$hang_spieler['status']){ $gefunden_holder = str_repeat('-',$hang['letters']); // Versuchszeit $vs_zeit = substr_replace(time(),$hang['versuche'],-1); $db->query("INSERT INTO bb".$n."_hangman_spieler (userid,threadid,gefunden,versucht,letters,status,zeit) VALUES ('".$wbbuserdata['userid']."','$threadid','$gefunden_holder','1','0','4','$vs_zeit')"); $gut_abz = 1; $action = 'loesen'; } elseif($hang_spieler['status'] == 1){ // Versuchszeit $vs_zeit = substr_replace(time(),$hang['versuche'],-1); $db->query("UPDATE bb".$n."_hangman_spieler SET versucht=versucht+1, status = '4', zeit='$vs_zeit' WHERE userid = '".$wbbuserdata['userid']."' AND threadid = '$threadid'"); $gut_abz = 1; $action = 'loesen'; } elseif($hang_spieler['status'] == 2) hang_msg(warten,thread); else hang_msg(s_gespielt,board); } // loesen if($action == 'loesen'){ if($hang_config['eg_ratio'] > 0) if(($huser['geloest']/$hang_config['eg_ratio']) >= $huser['erstellt']) hang_msg(ergedefi,board); ## wenn subaction dann spielen if(isset($_POST['subaction']) && $_POST['subaction'] == 'play'){ ## Threadid $threadid = $_POST['threadid']; ## Varis holen $hang = $db->query_first("SELECT * FROM bb".$n."_hangman_spiele WHERE threadid = '$threadid'"); $hang_spieler = $db->query_first("SELECT * FROM bb".$n."_hangman_spieler WHERE userid = '".$wbbuserdata['userid']."' AND threadid = '$threadid'"); ## Lösung $loesung = strtoupper($hang['loesung']); ## Versuch == Versuch ? if(substr($hang_spieler['zeit'],-1) != $_POST['versuche']) hang_msg(ba_spielen,board); ## Suchbuchstabe $suchbuchstabe = $_POST['suchbuchstabe']; ## Wenn gelöst oder userstatus != 1 dann exit if($hang['status'] == 0 || $hang_spieler['status'] == 2 || $hang_spieler['status'] == 3) hang_msg(ende,thread); ## gefundene staben aus spiele oder spieler if($hang['hang_solo'] == 1) $gefunden_game = $hang_spieler['gefunden']; else $gefunden_game = $hang['gefunden']; /* Joker S */ if($hang_config['joker'] && $wbbuserdata['guthaben'] >= $hang_config['joker_gut'] && $hang_config['hang_gut_onoff'] && !$hang_spieler['joker'] && $suchbuchstabe == 'joker'){ # Guthaben if($hang_config['joker_gut']){ eval("\$lang_kauz = \"".$lang->get4eval("LANG_HANGMAN_KAUSZ_JOKER")."\";"); $db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','$lang_kauz','".$hang_config['joker_gut']."','minus')"); $db->query("UPDATE bb".$n."_users SET guthaben=guthaben-$hang_config[joker_gut] WHERE userid='".$wbbuserdata['userid']."'"); } # DB eintrag $db->query("UPDATE bb".$n."_hangman_spieler SET joker='1' WHERE threadid='$threadid' AND userid = '".$wbbuserdata['userid']."'"); # Suchen $test1 = strtoupper($hang['loesung']); $test2 = $gefunden_game; $tok1l = strlen($test1); $tok2l = strlen($test2); $tok1 = strtok($test1,""); $tok2 = strtok($test2,""); $gefunden_array = array(); $tok1_array = array(); $tok2_array = array(); for($x=0;$x<=$tok1l;$x++) array_push($tok1_array,$tok1[$x]); for($x=0;$x<=$tok2l;$x++) array_push($tok2_array,$tok2[$x]); foreach($tok1_array as $value){ if(!in_array($value,$tok2_array)) array_push($gefunden_array,$value); } $gefunden = array_rand($gefunden_array,1); $suchbuchstabe = $gefunden_array[$gefunden]; if($suchbuchstabe == " ") $suchbuchstabe = 'leer'; $joker_got=1; } /* Joker E */ ## leer in " " umwandeln if($suchbuchstabe == 'leer') $suchbuchstabe = " "; ## Neuer string für spieler was getippt wurde $neu_getippt = $hang_spieler['getippt'] . $suchbuchstabe; ## wieoft war der buchstabe enthalten? if(isset($suchbuchstabe)) $treffer = substr_count($loesung,"$suchbuchstabe"); else $treffer = "0"; ## wieviele versuche noch? if(!$treffer) $versuche_game = $_POST['versuche'] - 1; else $versuche_game = $_POST['versuche']; ## ein den versuchen angepasstes bild auswählen if($versuche_game == 5) $hangbild = 'hangman_hang_5'; if($versuche_game == 4) $hangbild = 'hangman_hang_4'; if($versuche_game == 3) $hangbild = 'hangman_hang_3'; if($versuche_game == 2) $hangbild = 'hangman_hang_2'; if($versuche_game == 1) $hangbild = 'hangman_hang_1'; if($versuche_game == 0) $hangbild = 'hangman_hang_0'; ## was wurde denn nun gefunden? if($treffer){ $suchen = $suchbuchstabe; $buchstaben = $hang['letters']; $gesamt = strtok($loesung,""); $gefunden_game_2 = strtok($gefunden_game,""); $zeichen_new = array(); $treffer_neu = 0; for($xs = 0;$xs<$buchstaben;$xs++){ if($gesamt[$xs] == $suchen){ $zeichen_new[$xs] = $suchen; $treffer_neu++; } else $zeichen_new[$xs] = $gefunden_game_2[$xs]; } $zeichen_new = implode("",$zeichen_new); ## neuen string eintragen (mit Treffer) if($hang['hang_solo'] == 1) $db->query("UPDATE bb".$n."_hangman_spieler SET gefunden='$zeichen_new', getippt='$neu_getippt', letters = letters+$treffer_neu WHERE threadid = '$threadid' AND userid = '".$wbbuserdata['userid']."'"); else{ $db->query("UPDATE bb".$n."_hangman_spieler SET getippt='$neu_getippt' WHERE threadid='$threadid' AND userid = '".$wbbuserdata['userid']."'"); $db->query("UPDATE bb".$n."_hangman_spiele SET gefunden = '$zeichen_new', letters_found = letters_found+$treffer_neu WHERE threadid='$threadid'"); } } ## IF TREFFER != 0 ende else{ $db->query("UPDATE bb".$n."_hangman_spieler SET getippt='$neu_getippt', zeit=zeit-1 WHERE threadid='$threadid' AND userid = '".$wbbuserdata['userid']."'"); }// else ende eintrag wenn keine treffer ## Staben holen if($treffer_neu > 0){ $gefunden_game = $zeichen_new . $neu_getippt; $gefunden_game_string = $zeichen_new; } else{ if($hang['hang_solo'] == 1){ $gefunden_game = $hang_spieler['gefunden'] . $suchbuchstabe . $hang_spieler['getippt']; $gefunden_game_string = $hang_spieler['gefunden']; } else{ $gefunden_game = $hang['gefunden'] . $suchbuchstabe . $hang_spieler['getippt']; $gefunden_game_string = $hang['gefunden']; } } ## Speilstatus ## #/ Weiter /# if($versuche_game > 0 && ($hang['letters_found'] + $treffer_neu) < $hang['letters']) $hangman_action = 'weiter'; if($versuche_game > 0 && ($hang_spieler['letters'] + $treffer_neu) < $hang['letters']) $hangman_action = 'weiter'; #/ Gewonnen /# if(($hang['letters_found'] + $treffer_neu) >= $hang['letters']) $hangman_action = 'gewonnen'; if(($hang_spieler['letters'] + $treffer_neu) >= $hang['letters']) $hangman_action = 'gewonnen'; ## letters nur wenn noch versuche frei sind if($hangman_action == 'weiter'){ #/# weiter # !joker if(!$hang_config['joker'] || !$hang_config['hang_gut_onoff'] || $hang_spieler['joker'] || $wbbuserdata['guthaben'] < $hang_config['joker_gut'] || $joker_got) $gefunden_game = $gefunden_game . '+'; # $buchstaben = array("A|a_10|A|A","B|b_10|B|B","C|c_10|C|C","D|d_10|D|D","E|e_10|E|E","F|f_10|F|F","G|g_10|G|G","H|h_10|H|H","I|i_10|I|I","J|j_10|J|J","K|k_10|K|K","L|l_10|L|L","M|m_10|M|M","N|n_10|N|N","O|o_10|O|O","P|p_10|P|P","Q|q_10|Q|Q","R|r_10|R|R","S|s_10|S|S","T|t_10|T|T","U|u_10|U|U","V|v_10|V|V","W|w_10|W|W","X|x_10|X|X","Y|y_10|Y|Y","Z|z_10|Z|Z","0|null_0|0|0","1|eins_1|1|1","2|zwei_2|2|2","3|drei_3|3|3","4|vier_4|4|4","5|fuenf_5|5|5","6|sechs_6|6|6","7|sieben_7|7|7","8|acht_8|8|8","9|neun_9|9|9"," |leer|Leerzeichen|leer","+|joker|Joker|joker"); foreach($buchstaben as $value_str){ $value = explode("|",$value_str); if($hang_config['use_submit']){ if(!strchr($gefunden_game,$value[0])) $$value[1] = $value[2].""; else $$value[1] = ''; } else { if(!strchr($gefunden_game,$value[0])) $$value[1] = $value[2].""; else $$value[1] = ''; } } # eval("\$lang_kauz = \"".$lang->get4eval("LANG_HANGMAN_KAUSZ_ERS")."\";"); eval("\$hang_text_bit = \"".$lang->get4eval("LANG_HANGMAN_MELDUNG_LETTERS")."\";"); } elseif($hangman_action == 'gewonnen'){ $hang_ende=1; #/# gewonnen $hang_punkte = $hang['punkte']; eval("\$hang_text_bit = \"".$lang->get4eval("LANG_HANGMAN_MELDUNG_WON")."\";"); ## User die mitgespielt haben ... $alle_user_q = $db->query("SELECT u.username, hs.versucht FROM bb".$n."_hangman_spieler hs LEFT JOIN bb".$n."_users u ON (u.userid = hs.userid) WHERE threadid = '$hang[threadid]' ORDER BY hsid ASC"); $usercount = 0; while($alle_user = $db->fetch_array($alle_user_q)){ if($usercount == 0) $alle_user_str .= $alle_user['username'] . " ( " . $alle_user['versucht'] . " )"; else $alle_user_str .= ", " . $alle_user['username'] . " ( " . $alle_user['versucht'] . " )"; $usercount++; } $teilnehmer = $lang->get("LANG_HANGMAN_NEWGAME_TEILNEHMER"); $teilnehmer .= '[b]' . $alle_user_str . '[/b]'; ## UPDATE Post wenn gewonnen $kat = $hang['thema']; $versuche_count = $hang['versucht'] + 1; eval("\$message = \"".$lang->get("LANG_HANGMAN_POSTBITS_GEWONNEN")."\";"); $db->query("UPDATE bb".$n."_posts SET message = '$message' WHERE postid = '$hang[postid]'"); ##prefix setzen und wenn archiv verschieben $new_prefix = '[X]'; if($hang_config['hang_archiv_onoff']) $db->query("UPDATE bb".$n."_threads SET boardid = '$hang_config[hang_archiv_id]', prefix='$new_prefix',lastposttime='".time()."', lastposterid='".$wbbuserdata['userid']."',lastposter='".$wbbuserdata['username']."' WHERE threadid=$threadid"); else $db->query("UPDATE bb".$n."_threads SET prefix='$new_prefix',lastposttime='".time()."', lastposterid='".$wbbuserdata['userid']."',lastposter='".$wbbuserdata['username']."' WHERE threadid=$threadid"); ###### Guthaben Start ####### if($hang_config['hang_gut_onoff'] && $hang_config['hang_gut_won_onoff']){ eval("\$lang_kauz = \"".$lang->get4eval("LANG_HANGMAN_KAUSZ_WON")."\";"); $db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','$lang_kauz','".$hang_config['hang_gut_won']."','plus')"); $db->query("UPDATE bb".$n."_users SET guthaben=guthaben+$hang_config[hang_gut_won] WHERE userid='".$wbbuserdata['userid']."'"); $db->query("UPDATE bb".$n."_hangman_user SET punkte=punkte+$hang[punkte], geloest = geloest+1, monat_g=monat_g+1, monat_p=monat_p+$hang[punkte] WHERE userid='".$wbbuserdata['userid']."'"); } else{ ## users bearbeiten (Punkte) $db->query("UPDATE bb".$n."_hangman_user SET punkte=punkte+$hang[punkte], geloest = geloest+1, monat_g=monat_g+1, monat_p=monat_p+$hang[punkte] WHERE userid='".$wbbuserdata['userid']."'"); } ############################# ## Spieleinträge löschen $db->query("DELETE FROM bb".$n."_hangman_spiele WHERE threadid = '$hang[threadid]'"); $db->query("DELETE FROM bb".$n."_hangman_spieler WHERE threadid = '$hang[threadid]'"); ## boards aktualisieren if($hang_config['hang_archiv_onoff']){ $boardid_a = intval($hang_config['hang_archiv_id']); $board_a = getBoardAccessData($boardid_a); $boardid_r = intval($hang['boardid']); $board_r = getBoardAccessData($boardid_r); $old_game = $db->query_first("SELECT threadid, lastposttime, lastposterid, lastposter FROM bb".$n."_threads WHERE boardid = '$hang[boardid]' ORDER BY lastposttime DESC LIMIT 0,1"); $db->query("UPDATE bb".$n."_boards SET threadcount=threadcount-1, postcount=postcount-1, lastthreadid = '$old_game[threadid]', lastposttime = '$old_game[lastposttime]', lastposterid = '$old_game[lastposterid]', lastposter = '".addslashes($old_game['lastposter'])."' WHERE boardid IN ($board_r[parentlist],$hang[boardid])"); $db->query("UPDATE bb".$n."_boards SET threadcount=threadcount+1, postcount=postcount+1, lastthreadid='$hang[threadid]', lastposttime='".time()."', lastposterid='".$wbbuserdata['userid']."', lastposter='".$wbbuserdata['username']."' WHERE boardid IN ($board_a[parentlist],$hang_config[hang_archiv_id])"); // Spiel daten von vorherigem spiel } else{ $boardid_r = intval($hang['boardid']); $board_r = getBoardAccessData($boardid_r); $db->query("UPDATE bb".$n."_boards SET lastthreadid='$hang[threadid]', lastposttime='".time()."', lastposterid='".$wbbuserdata['userid']."', lastposter='".$wbbuserdata['username']."' WHERE boardid IN ($board_r[parentlist],$hang[boardid])"); } } else{ $hang_ende=1; #/# verloren ## Den status der anderen wieder von 2 auf 1 // 1 Std Timeout $time_out = time() - 3600; $to_zeit = substr_replace(time(),0,-1); $db->query("UPDATE bb".$n."_hangman_spieler SET status = '1', zeit='$to_zeit' WHERE status = '2' AND threadid = '$threadid' OR status = '4' AND zeit < '$time_out' AND threadid='$threadid'"); ## wenn amn nur einmal darf status = 3 ansonsten auf 2 if($hang['hang_once'] == 1) $db->query("UPDATE bb".$n."_hangman_spieler SET status = '3' WHERE userid = '".$wbbuserdata['userid']."' AND threadid = '$threadid'"); else $db->query("UPDATE bb".$n."_hangman_spieler SET status = '2' WHERE userid = '".$wbbuserdata['userid']."' AND threadid = '$threadid'"); ## versuche + 1 und punkte -1 if($hang['punkte'] > 1 && $hang['versucht'] < 9) $neu_punkte = $hang['punkte'] - 1; elseif($hang['versucht'] > 9) $neu_punkte = $hang['punkte'] + 1; else $neu_punkte = 1; $db->query("UPDATE bb".$n."_hangman_spiele SET versucht = versucht+1, punkte='$neu_punkte' WHERE threadid='$threadid'"); ##prefix setzen und Board aktualisieren if($hang['versucht'] > 9) $new_prefix = "[+" . $neu_punkte . "]"; else $new_prefix = "[" . $neu_punkte . "]"; $boardid_r = intval($hang['boardid']); $board_r = getBoardAccessData($boardid_r); $db->query("UPDATE bb".$n."_threads SET prefix='$new_prefix',lastposttime='".time()."', lastposterid='".$wbbuserdata['userid']."',lastposter='".$wbbuserdata['username']."' WHERE threadid=$threadid"); $db->query("UPDATE bb".$n."_boards SET lastthreadid = '$threadid', lastposttime = '".time()."', lastposterid = '".$wbbuserdata['userid']."', lastposter = '".$wbbuserdata['username']."' WHERE boardid IN ($board_r[parentlist],$hang[boardid])"); ## User die mitgespielt haben ... $alle_user_q = $db->query("SELECT u.username, hs.versucht FROM bb".$n."_hangman_spieler hs LEFT JOIN bb".$n."_users u ON (u.userid = hs.userid) WHERE threadid = '$hang[threadid]' ORDER BY hsid ASC"); $usercount = 0; while($alle_user = $db->fetch_array($alle_user_q)){ if($usercount == 0) $alle_spieler_str .= $alle_user['username'] . " ( " . $alle_user['versucht'] . " )"; else $alle_spieler_str .= ", " . $alle_user['username'] . " ( " . $alle_user['versucht'] . " )"; $usercount++; } $teilnehmer = $lang->get("LANG_HANGMAN_NEWGAME_TEILNEHMER"); $teilnehmer .= '[b]' . $alle_spieler_str . '[/b]'; ## Post aktualisieren $gesamt_char = $hang['letters']; $versuche_count = $hang['versucht'] + 1; $kat = $hang['thema']; if($hang['hang_once'] == 1) $einzel_desc = $lang->get("LANG_HANGMAN_NEWGAME_EINZEL_1"); else $einzel_desc = $lang->get("LANG_HANGMAN_NEWGAME_EINZEL_0"); if($hang['hang_solo'] == 1){ $spielmodus_desc = $lang->get("LANG_HANGMAN_NEWGAME_SPIELMODUS_1"); eval("\$message = \"".$lang->get("LANG_HANGMAN_POSTBITS_SOLO_1")."\";"); } else{ $hang_solo_gefunden = $hang['letters_found']; $spielmodus_desc = $lang->get("LANG_HANGMAN_NEWGAME_SPIELMODUS_0"); eval("\$message = \"".$lang->get("LANG_HANGMAN_POSTBITS_SOLO_0")."\";"); } $db->query("UPDATE bb".$n."_posts SET message = '$message' WHERE postid = '$hang[postid]'"); ## meldung eval("\$hang_text_bit = \"".$lang->get4eval("LANG_HANGMAN_MELDUNG_LOST")."\";"); } eval("\$lang->items['LANG_HANGMAN_SPIELEN_VERSUCHE'] = \"".$lang->get("LANG_HANGMAN_SPIELEN_VERSUCHE")."\";"); eval("\$tpl->output(\"".$tpl->get("hangman_play")."\");"); exit(); } // keine subaction -> erster zug else{ ## Prüfen ob der spieler schummelt $validation = $db->query_first("SELECT validcode FROM bb".$n."_hangman_spiele WHERE threadid = '$threadid'"); if($hang['validcode'] != $validation['validcode']) hang_msg(ba_spielen,board); ###### Guthaben Start ####### if($hang_config['hang_gut_onoff'] && $hang_config['hang_gut_play_onoff'] && $gut_abz){ eval("\$lang_kauz = \"".$lang->get4eval("LANG_HANGMAN_KAUSZ_PLAY")."\";"); $db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','$lang_kauz','".$hang_config['hang_gut_play']."','minus')"); $db->query("UPDATE bb".$n."_users SET guthaben=guthaben-$hang_config[hang_gut_play] WHERE userid='".$wbbuserdata['userid']."'"); } ############################# $versuche_game = $hang['versuche']; if($hang['hang_solo'] == 1){ $gefunden_game = $hang_spieler['gefunden'] . $hang_spieler['getippt']; if($hang_spieler['gefunden'] != "") $gefunden_game_string = $hang_spieler['gefunden']; else $gefunden_game_string = $gefunden_holder; } else{ $gefunden_game = $hang['gefunden'] . $hang_spieler['getippt']; $gefunden_game_string = $hang['gefunden']; } ## ein den versuchen angepasstes bild auswählen if($versuche_game == 5) $hangbild = 'hangman_hang_5'; if($versuche_game == 4) $hangbild = 'hangman_hang_4'; if($versuche_game == 3) $hangbild = 'hangman_hang_3'; if($versuche_game == 2) $hangbild = 'hangman_hang_2'; if($versuche_game == 1) $hangbild = 'hangman_hang_1'; if($versuche_game == 0) $hangbild = 'hangman_hang_0'; # !joker if(!$hang_config['joker'] || !$hang_config['hang_gut_onoff'] || $hang_spieler['joker'] || $wbbuserdata['guthaben'] < $hang_config['joker_gut']) $gefunden_game = $gefunden_game . '+'; # $buchstaben = array("A|a_10|A|A","B|b_10|B|B","C|c_10|C|C","D|d_10|D|D","E|e_10|E|E","F|f_10|F|F","G|g_10|G|G","H|h_10|H|H","I|i_10|I|I","J|j_10|J|J","K|k_10|K|K","L|l_10|L|L","M|m_10|M|M","N|n_10|N|N","O|o_10|O|O","P|p_10|P|P","Q|q_10|Q|Q","R|r_10|R|R","S|s_10|S|S","T|t_10|T|T","U|u_10|U|U","V|v_10|V|V","W|w_10|W|W","X|x_10|X|X","Y|y_10|Y|Y","Z|z_10|Z|Z","0|null_0|0|0","1|eins_1|1|1","2|zwei_2|2|2","3|drei_3|3|3","4|vier_4|4|4","5|fuenf_5|5|5","6|sechs_6|6|6","7|sieben_7|7|7","8|acht_8|8|8","9|neun_9|9|9"," |leer|Leerzeichen|leer","+|joker|Joker|joker"); foreach($buchstaben as $value_str){ $value = explode("|",$value_str); if($hang_config['use_submit']){ if(!strchr($gefunden_game,$value[0])) $$value[1] = $value[2].""; else $$value[1] = ''; } else { if(!strchr($gefunden_game,$value[0])) $$value[1] = $value[2].""; else $$value[1] = ''; } } # eval("\$hang_text_bit = \"".$lang->get("LANG_HANGMAN_MELDUNG_LETTERS")."\";"); eval("\$lang->items['LANG_HANGMAN_SPIELEN_VERSUCHE'] = \"".$lang->get("LANG_HANGMAN_SPIELEN_VERSUCHE")."\";"); eval("\$tpl->output(\"".$tpl->get("hangman_play")."\");"); exit(); } } /* Statistik */ if($action == 'statistik'){ $max_user = 24; if(isset($_POST['boardid'])) $boardid = $_POST['boardid']; else $boardid = $_REQUEST['boardid']; /* Normale-Statistik */ $hang_stats_q = $db->query("SELECT hu.userid, hu.erstellt, hu.geloest, hu.punkte, u.username FROM bb".$n."_hangman_user hu LEFT JOIN bb".$n."_users u ON (hu.userid = u.userid) WHERE hu.punkte > '0' ORDER BY hu.punkte DESC, hu.erstellt DESC, hu.geloest DESC LIMIT 0,$max_user"); $platzierung = 0; while($hang_stats = $db->fetch_array($hang_stats_q)){ $platzierung++; if(($platzierung % 2) == 0) $tablexy = 'tableb'; else $tablexy = 'tablea'; $hang_stats['username'] = htmlconverter($hang_stats['username']); eval ("\$hang_stats_bit .= \"".$tpl->get("hangman_stats_bit")."\";"); }//ende while if(!$platzierung) $hang_stats_bit = "