load("GHMASTERMIND"); if(!$wbbuserdata['userid'] || !$wbbuserdata['can_ghmastermind_play']) { access_error(); } if(isset($_REQUEST['action'])){ $action = $_REQUEST['action']; } else { $action = 'none'; } /* Version */ $version = "Mastermind v1.0 by Lasall"; /* Konfiguration laden */ $mm_config = $db->query_first("SELECT * FROM bb".$n."_gh_mastermind_config WHERE id = '1'"); /* Deactiviert? */ if(!$mm_config['onoff'] && !$wbbuserdata['a_can_ghmastermind_admin']) { error($lang->get('LANG_GHMASTERMIND_GLOBAL_ERROR_ONOFF')); } /* Userdaten laden */ $spieler = $db->query_first("SELECT * FROM bb".$n."_gh_mastermind_users WHERE userid = '".$wbbuserdata['userid']."'"); function spielreihe_generieren($reihe_no, $fuer=1){ global $lang,$n,$db,$mm_config,$wbbuserdata,$spieler,$spielreihe_raw, $spielreihe_daten, $spielreihe_loesung,$stein_k0,$stein_k1,$stein_k2,$SID_ARG_2ND_UN; $stein_k0 = ""; $stein_k1 = ""; $stein_k2 = ""; $stein_g0 = ""; $stein_g1 = ""; $stein_g2 = ""; $stein_g3 = ""; $stein_g4 = ""; $stein_g5 = ""; if($fuer == 1){ # Ermitteln welche Steine gesetzt sind S $count_weiss = 0; $count_schwarz = 0; $count_nix = 0; $count_alle = 1; if($spielreihe_daten[0] == $spielreihe_loesung[0]){ $count_weiss++; } elseif(in_array($spielreihe_daten[0],$spielreihe_loesung)) { $count_schwarz++; } else { $count_nix++; } if($spielreihe_daten[1] == $spielreihe_loesung[1]){ $count_weiss++; } elseif(in_array($spielreihe_daten[1],$spielreihe_loesung)) { $count_schwarz++; } else { $count_nix++; } if($spielreihe_daten[2] == $spielreihe_loesung[2]){ $count_weiss++; } elseif(in_array($spielreihe_daten[2],$spielreihe_loesung)) { $count_schwarz++; } else { $count_nix++; } if($spielreihe_daten[3] == $spielreihe_loesung[3]){ $count_weiss++; } elseif(in_array($spielreihe_daten[3],$spielreihe_loesung)) { $count_schwarz++; } else { $count_nix++; } // User hat verloren S if($spieler['ist_reihe'] == 9 && $spieler['zeit'] > 1 && $count_weiss != 4 && $reihe_no == 8) { $db->query("UPDATE bb".$n."_gh_mastermind_users SET zeit = '0' WHERE userid = '".$wbbuserdata['userid']."'"); header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN); exit(); } // User hat verloren E if($reihe_no != $spieler['ist_reihe']){ // User hat gewonnen S if($count_weiss == 4 && $spieler['zeit'] > 1) { $db->query("UPDATE bb".$n."_gh_mastermind_users SET zeit = '1' WHERE userid = '".$wbbuserdata['userid']."'"); if($mm_config['gut_spielen']) { $guthaben_plus = ($mm_config['gut_spielen'] * 5) / (($spieler['ist_reihe'] > 1) ? ($spieler['ist_reihe'] - 1) : (1)); $db->query("UPDATE bb".$n."_users SET guthaben=guthaben+$guthaben_plus WHERE userid='".$wbbuserdata['userid']."'"); $db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','".$lang->get('LANG_GHMASTERMIND_GLOBAL_KAUZ_ZU')."','".$guthaben_plus."','plus')"); } header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN); exit(); } // User hat gewonnen E for($x1=1;$x1<=$count_weiss;$x1++){ $mm_k_name = 'mm_k' . $count_alle; $$mm_k_name = $stein_k2; $count_alle++; } for($x2=1;$x2<=$count_schwarz;$x2++){ $mm_k_name = 'mm_k' . $count_alle; $$mm_k_name = $stein_k1; $count_alle++; } for($x3=1;$x3<=$count_nix;$x3++){ $mm_k_name = 'mm_k' . $count_alle; $$mm_k_name = $stein_k0; $count_alle++; } } else { $count_nix = 4; for($x3=1;$x3<=$count_nix;$x3++){ $mm_k_name = 'mm_k' . $count_alle; $$mm_k_name = $stein_k0; $count_alle++; } } $stein_gx = 'stein_g' . $spielreihe_daten[0]; $mm_g1 = $$stein_gx; $stein_gx = 'stein_g' . $spielreihe_daten[1]; $mm_g2 = $$stein_gx; $stein_gx = 'stein_g' . $spielreihe_daten[2]; $mm_g3 = $$stein_gx; $stein_gx = 'stein_g' . $spielreihe_daten[3]; $mm_g4 = $$stein_gx; # Ermitteln welche Steine gesetzt sind E } if($fuer == 0){ $mm_k1 = $stein_k0; $mm_k2 = $stein_k0; $mm_k3 = $stein_k0; $mm_k4 = $stein_k0; $mm_g1 = $stein_g0; $mm_g2 = $stein_g0; $mm_g3 = $stein_g0; $mm_g4 = $stein_g0; } $spielreihe_raw = " $mm_k1 $mm_k2 $mm_g1 $mm_g2 $mm_g3 $mm_g4 $mm_k3 $mm_k4 "; return $spielreihe_raw; } /* Uebersicht */ if($action == 'none'){ $sel_anaus[$mm_config['onoff']] = "checked=\"checked\""; $lang->items['LANG_GHMASTERMIND_START_ADMIN_ANAUS'] = $lang->get('LANG_GHMASTERMIND_START_ADMIN_ANAUS', array('$sel_anaus[0]' => $sel_anaus[0],'$sel_anaus[1]' => $sel_anaus[1])); eval ("\$tpl->output(\"".$tpl->get("gh_mastermind_start")."\");"); exit(); } /* Neues Spiel erstellen. */ if($action == 'neues_spiel'){ if($mm_config['gut_spielen']) { if($wbbuserdata['guthaben'] < $mm_config['gut_spielen']) { error($lang->get('LANG_GHMASTERMIND_GLOBAL_ERROR_KEINGUT')); } } $wuerfel = array(); $neues_spiel = ''; $hol_vier = 0; $test = 0; for($y=0;$hol_vier<4;$y++){ $test++; $wuerfeln = rand(1,5); if(!in_array($wuerfeln,$wuerfel)){ array_push($wuerfel,$wuerfeln); $neues_spiel .= $wuerfeln . '|'; $hol_vier++; } if($neues_spiel == '1|2|3|4|'){ $neues_spiel = ''; $hol_vier = 0; } } if($spieler['userid']) { $db->query("UPDATE bb".$n."_gh_mastermind_users SET zeit = '".time()."', loesung = '".$neues_spiel."', ist_reihe = '1', reihe_1 = '',reihe_2 = '',reihe_3 = '',reihe_4 = '',reihe_5 = '',reihe_6 = '',reihe_7 = '',reihe_8 = '' WHERE userid = '".$wbbuserdata['userid']."'"); } else { $db->query("INSERT INTO bb".$n."_gh_mastermind_users (userid,zeit,loesung,ist_reihe) VALUES ('".$wbbuserdata['userid']."','".time()."','".$neues_spiel."','1')"); } if($mm_config['gut_spielen']) { $db->query("UPDATE bb".$n."_users SET guthaben=guthaben-$mm_config[gut_spielen] WHERE userid='".$wbbuserdata['userid']."'"); $db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','".$lang->get('LANG_GHMASTERMIND_GLOBAL_KAUZ_AB')."','".$mm_config['gut_spielen']."','minus')"); } header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN); exit(); } /* Spiel abbrechen */ if($action == 'abbrechen'){ $db->query("DELETE FROM bb".$n."_gh_mastermind_users WHERE userid = '".$wbbuserdata['userid']."'"); header("Location: gh_mastermind.php" . $SID_ARG_1ST); exit(); } /* loesen */ if($action == 'loesen'){ if($spieler['zeit'] < 2) { header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN); exit(); } # Pruefen, ob die Reihe voll ist ... S $spielreihe_suchen = 'reihe_' . $spieler['ist_reihe']; $spielreihe_testen = explode('|',$spieler[$spielreihe_suchen]); $getestet = 0; for($x=0;$x<4;$x++) { if($spielreihe_testen[$x] == 0) { $getestet = 1; } } if($getestet) { header("Location: gh_mastermind.php?action=spielen&fehler=1" . $SID_ARG_2ND_UN); exit(); } # Pruefen, ob die Reihe voll ist ... E $db->query("UPDATE bb".$n."_gh_mastermind_users SET ist_reihe=ist_reihe+1 WHERE userid = '".$wbbuserdata['userid']."'"); header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN); exit(); } /* Stein setzen */ if($action == 'setzen'){ if($spieler['zeit'] < 2) { header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN); exit(); } $spielreihe_suchen = 'reihe_' . $spieler['ist_reihe']; if($spieler[$spielreihe_suchen] == ''){ $spieler[$spielreihe_suchen] = '0|0|0|0'; } $spielreihe = explode('|',$spieler[$spielreihe_suchen]); $neue_spielreihe = ''; $neu_count = 1; for($x=0;$x<=3;$x++){ $value = $spielreihe[$x]; if($neu_count == $_GET['position']){ $neue_spielreihe[$neu_count] = $_GET['stein']; } else { if($value == $_GET['stein']){ $neue_spielreihe[$neu_count] = '0'; } else { $neue_spielreihe[$neu_count] = $value; } } $neu_count++; } $neuer_string = implode('|',$neue_spielreihe); $db->query("UPDATE bb".$n."_gh_mastermind_users SET $spielreihe_suchen = '$neuer_string' WHERE userid = '".$wbbuserdata['userid']."'"); header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN); exit(); } /* Spielen */ if($action == 'spielen'){ if(!$spieler['userid']) { header("Location: gh_mastermind.php" . $SID_ARG_1ST); exit(); } if($spieler['zeit'] < 2){ $loesungs_steine = explode('|',$spieler['loesung']); $verloren_s1 = ""; $verloren_s2 = ""; $verloren_s3 = ""; $verloren_s4 = ""; } /* Guthabenbetrag wenn Spieler gewonnen hat */ if($mm_config['gut_spielen']) { $gewinn_betrag = intval((($mm_config['gut_spielen'] * 5) / (($spieler['ist_reihe'] > 1) ? ($spieler['ist_reihe'] - 1) : (1)))); $gewinn_1 = intval((($mm_config['gut_spielen'] * 5) / (1))); $gewinn_2 = intval((($mm_config['gut_spielen'] * 5) / (2))); $gewinn_3 = intval((($mm_config['gut_spielen'] * 5) / (3))); $gewinn_4 = intval((($mm_config['gut_spielen'] * 5) / (4))); $gewinn_5 = intval((($mm_config['gut_spielen'] * 5) / (5))); $gewinn_6 = intval((($mm_config['gut_spielen'] * 5) / (6))); $gewinn_7 = intval((($mm_config['gut_spielen'] * 5) / (7))); $gewinn_8 = intval((($mm_config['gut_spielen'] * 5) / (8))); $guthaben['waehrung'] = htmlconverter($guthaben['waehrung']); $gewinn_liste = "
" . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_FUER') . ":
"; if($spieler['ist_reihe'] == 1) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 1 = $gewinn_1 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 1 = $gewinn_1 $guthaben[waehrung]
"; if($spieler['ist_reihe'] == 2) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 2 = $gewinn_2 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 2 = $gewinn_2 $guthaben[waehrung]
"; if($spieler['ist_reihe'] == 3) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 3 = $gewinn_3 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 3 = $gewinn_3 $guthaben[waehrung]
"; if($spieler['ist_reihe'] == 4) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 4 = $gewinn_4 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 4 = $gewinn_4 $guthaben[waehrung]
"; if($spieler['ist_reihe'] == 5) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 5 = $gewinn_5 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 5 = $gewinn_5 $guthaben[waehrung]
"; if($spieler['ist_reihe'] == 6) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 6 = $gewinn_6 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 6 = $gewinn_6 $guthaben[waehrung]
"; if($spieler['ist_reihe'] == 7) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 7 = $gewinn_7 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 7 = $gewinn_7 $guthaben[waehrung]
"; if($spieler['ist_reihe'] == 8) $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 8 = $gewinn_8 $guthaben[waehrung]
"; else $gewinn_liste .= "  » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 8 = $gewinn_8 $guthaben[waehrung]
"; $gewinn_liste .= "
"; } else { // Statt der Liste 7 Leerzeilen, damit die Knoepfe getrennt sind $gewinn_liste = "






"; } // Generieren der Spielreihen S $spielreihen = ''; $spielreihe_loesung = explode('|',$spieler['loesung']); if($spieler['reihe_1'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_1']); $spielreihen .= spielreihe_generieren(1); } else { $spielreihen .= spielreihe_generieren(1,0); } if($spieler['reihe_2'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_2']); $spielreihen .= spielreihe_generieren(2); } else { $spielreihen .= spielreihe_generieren(2,0); } if($spieler['reihe_3'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_3']); $spielreihen .= spielreihe_generieren(3); } else { $spielreihen .= spielreihe_generieren(3,0); } if($spieler['reihe_4'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_4']); $spielreihen .= spielreihe_generieren(4); } else { $spielreihen .= spielreihe_generieren(4,0); } if($spieler['reihe_5'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_5']); $spielreihen .= spielreihe_generieren(5); } else { $spielreihen .= spielreihe_generieren(5,0); } if($spieler['reihe_6'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_6']); $spielreihen .= spielreihe_generieren(6); } else { $spielreihen .= spielreihe_generieren(6,0); } if($spieler['reihe_7'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_7']); $spielreihen .= spielreihe_generieren(7); } else { $spielreihen .= spielreihe_generieren(7,0); } if($spieler['reihe_8'] != '') { $spielreihe_daten = explode('|',$spieler['reihe_8']); $spielreihen .= spielreihe_generieren(8); } else { $spielreihen .= spielreihe_generieren(8,0); } // Generieren der Spielreihen E if(isset($_GET['fehler'])) { $fehler = $_GET['fehler']; } else { $fehler = 0; } eval ("\$tpl->output(\"".$tpl->get("gh_mastermind_spielen")."\");"); exit(); } /* Anleitung */ if($action == 'anleitung') { $lang->items['LANG_GHMASTERMIND_ANLEITUNG_TEXT'] = $lang->get('LANG_GHMASTERMIND_ANLEITUNG_TEXT', array('$SID_ARG_1ST' => $SID_ARG_1ST)); eval ("\$tpl->output(\"".$tpl->get("gh_mastermind_anleitung")."\");"); exit(); } /* Admin speichern */ if($action == 'admin_speichern' && $wbbuserdata['a_can_ghmastermind_admin']) { $db->query("UPDATE bb".$n."_gh_mastermind_config SET onoff = '".$_POST['onoff']."', gut_spielen = '".$_POST['gut_spielen']."' WHERE id = '1'"); header("Location: gh_mastermind.php" . $SID_ARG_1ST); exit(); } ?>