diff --git a/ag/gm/include/tournament.inc.php b/ag/gm/include/tournament.inc.php index 29f4be3..612fcfc 100644 --- a/ag/gm/include/tournament.inc.php +++ b/ag/gm/include/tournament.inc.php @@ -11,154 +11,287 @@ defineIfNotDefined('TURNIER_ANFAENGER_GEBUEHR', 10000); defineIfNotDefined('TURNIER_WOCHEN_GEBUEHR', 50000); defineIfNotDefined('TURNIER_WOCHENST_GEBUEHR', 50000); -function displayTournamentOptions() { - ?> -
- - +include_once(ROOT_PATH.'/include/tournament.inc.php'); + +function persistTournamentChanges($request) { + + $data = getTournamentType($request['id']); + + $changes = array(); + foreach ($data as $key => $value) { + if (isset($request[$key])) { + if ($request[$key] == 'on') { + $value = 1; + } else { + $value = $request[$key]; + } + } + + if ($key == 'id') { + continue; + } else if ($key == 'name') { + $changes[] = $key.'=\''.$value.'\''; + } else { + $changes[] = $key.'='.$value; + } + } + + $sql = 'UPDATE tournament_types SET '.join(',', $changes).' WHERE id = '.$request['id']; + // echo $sql; + silent_query($sql); + return db_affected_rows(); +} + +function displayTournamentForm($request, $data) { + + $form_data = array(); + foreach ($data as $key => $value) { + $form_data[$key] = isset($request[$key]) ? $request[$key] : $value; + } + +?> + +
- + - - + + + + - - + - - + - - + - - + + - - + + - - + - - + + + + + - - - + - + + + + - - + - - + - + + - +

Übersicht

Turnier editieren
Art +
Name: + />
Anzahl - + Teilnehmer: + +
Fusion erlaubt? + Fusion ausschließen? + />
Spezialcharaktere erlaubt? (Kaio/Shichi) + Gewinner ausschließen? + />
Min. LevelSpezialchars ausschließen? + /> +
Max. LevelMaximale Teilnahme von Fusionen + +
Teilnehmer + Mindest Level +
Zufällige Reihenfolge? + Maximales Level + +
Reihenfolge jede Runde neu? + />
Ausrüstung ignorieren? + + />
Chance auf eine FruchtFrucht Droprate? +
Fruchttyp + +
Teilnameart + +
Turniergewinner ausschliessen? + Eventuelle Anmeldegebühr +
Anzahl Teilnahmen nach der Fusionen ausgeschlossen werden? + Wochentag +

-
- - - - - - - - - -
Turnier wirklich starten?
Turnier starten! - Doch - nicht -
- '; - echo 'Zurück'; - } +function displayStartTournament($id) { + runTournament($id); } -function displayEditFee($request) { - $klein = $request['klein']; - $wochen = $request['wochen']; - $wochenst = $request['wochenst']; - - $change = FALSE; - if($klein !== NULL || $wochen !== null) { - if($klein !== NULL && $klein != TURNIER_ANFAENGER_GEBUEHR) { - $change = TRUE; - setDefine('TURNIER_ANFAENGER_GEBUEHR', $klein); - } - if($wochen !== NULL && $wochen != TURNIER_WOCHEN_GEBUEHR) { - $change = TRUE; - setDefine('TURNIER_WOCHEN_GEBUEHR', $wochen); - } - if($wochenst !== NULL && $wochenst != TURNIER_WOCHENST_GEBUEHR) { - $change = TRUE; - setDefine('TURNIER_WOCHENST_GEBUEHR', $wochenst); +function displayEditTournament($request) { + $persisted = false; + if(isset($request['name'])) { + $persisted = persistTournamentChanges($request); + if (!$persisted) { + echo '

Speichern nicht erfolgreich.

'; } + } + + if ( !$persisted ) { + displayTournamentForm($request, getTournamentType($request['id'])); } else { - + echo 'Editieren erfolgreich. Weiter'; } - ?> -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Übersicht

Änderungen übernommen!
Anfängerturnier -
Anmeldegebühr:> -
Wochenturnier -
Anmeldegebühr:> -
Wochenturnier non-Fusion -
Anmeldegebühr:> -
-
Zurück -
Zum Hauptmenu -
-
- - - + - + - + + + + + + + + + + + -
Turnier - starten - Turniere
- Anmeldegebühren bearbeiten + :startenstarten editedit
Zum Hauptmenu + + Zum Hauptmenu
diff --git a/ag/inclu/user-controll.php b/ag/inclu/user-controll.php index 6229e01..c925c29 100644 --- a/ag/inclu/user-controll.php +++ b/ag/inclu/user-controll.php @@ -11,6 +11,7 @@ include_once(ROOT_PATH.'//include/designfunctions.inc.php'); include_once (ROOT_PATH . '/include/clan.inc.php'); include_once (ROOT_PATH . '/include/clan_chat.inc.php'); + $itemsx1 = mysqli_num_rows(db_query("SELECT id FROM sp_ware WHERE item='1' AND user='$user_ida[id]'")); $itemsz1 = mysqli_fetch_array(db_query("SELECT id FROM sp_ware WHERE item='1' AND user='$user_ida[id]' LIMIT 1")); @@ -55,10 +56,14 @@ if ($name AND $passwort) { $training_009 = ""; - $turnier_009 = 'Wochen Turnier Anmeldung
' . - 'Non-Fusi Turnier Anmeldung
'. - 'Anfänger Turnier Anmeldung
' . - 'Turnier Angucken
'; + $turnier_009 = ''; + + $tournaments = db_query('SELECT id, abbrevation FROM tournament_types WHERE gain = 0'); + foreach ($tournaments as $tournament) { + $turnier_009 = $turnier_009 . ''.$tournament['abbrevation'].' Anmeldung
'; + } + + $turnier_009 = $turnier_009 . 'Turnier Angucken
'; if ($user_ida['clan'] == 0) { $clan_009 = " diff --git a/ag/include/char.inc.php b/ag/include/char.inc.php index b9c19a5..c0f5209 100644 --- a/ag/include/char.inc.php +++ b/ag/include/char.inc.php @@ -38,12 +38,6 @@ function getStatus($charid, $buffer_enabled = true) { return $GLOBALS['char_buffered_statuses'][$charid]; } - $sql = 'SELECT count(*) as anzahl FROM turnier_kampf t where art != \'gross\' and (win = ' . $charid . ' or lose = ' . $charid . ') and dauer > now()'; - $row = mysqli_fetch_assoc(db_query($sql)); - if ($row['anzahl'] > 0) { - $GLOBALS['char_buffered_statuses'][$charid] = 'Turnier'; - return 'Turnier'; - } $sql = 'SELECT count(*) as anzahl from quests where charid = ' . $charid; $row = mysqli_fetch_assoc(db_query($sql)); if ($row['anzahl'] > 0) { @@ -63,7 +57,7 @@ function getStatus($charid, $buffer_enabled = true) { $GLOBALS['char_buffered_statuses'][$charid] = 'Kampf erstellt'; return 'Kampf erstellt'; } - $sql = 'SELECT count(*) as anzahl FROM turnier1 where charakter = ' . $charid; + $sql = 'SELECT count(*) as anzahl FROM tournament_registration where charakter = ' . $charid; $row = mysqli_fetch_assoc(db_query($sql)); if ($row['anzahl'] > 0) { $GLOBALS['char_buffered_statuses'][$charid] = 'Angemeldet'; diff --git a/ag/include/exp.inc.php b/ag/include/exp.inc.php index 401b0c9..a95295c 100644 --- a/ag/include/exp.inc.php +++ b/ag/include/exp.inc.php @@ -177,10 +177,6 @@ function addExpToChar($char_id, $n_exp){ db_query($sql); $char = getChar($char_id, false); // We really want the actual char!! - if($char['level'] > 25) { - // remove this char out of the registration of the beginners tournament - db_query('Delete from turnier1 where art = \'klein\' and charakter = \''.$char_id.'\''); - } } function addExpToArena($user_id, $n_exp){ diff --git a/ag/turnier.php b/ag/turnier.php index 7eaa43c..95811f3 100644 --- a/ag/turnier.php +++ b/ag/turnier.php @@ -14,123 +14,82 @@ include_once(ROOT_PATH.'/include/designfunctions.inc.php'); include_once(ROOT_PATH.'/include/char.inc.php'); include_once(ROOT_PATH.'/include/halloffame.inc.php'); include_once(ROOT_PATH.'/include/auktion_functions.inc.php'); +include_once(ROOT_PATH.'/include/tournament.inc.php'); // GET-Section // Kritisch (SQL-Injections) $char_id = validateUnsignedInteger($_GET['char_id'], null); -$art = validateString($_GET['art']); +$type_id = validateUnsignedInteger($_GET['type_id']); // Unkritisch $charm = $_GET['charm']; -function anmelden($user, $charid, $art){ - // Security - if($art != 'klein' && $art != 'wochen' && $art != 'wochenst'){ +function anmelden($user, $charid, $type_id){ + $tournament_type = getTournamentType($type_id); + $filter_sql = getTournamentCharExclusionSQL($tournament_type, 'c'); + $anzahl = $tournament_type['competitors']; + + if ($tournament_type['gain'] != TOURNAMENT_GAIN_ANMELDUNG) { displayErrorMessage(NULL,'Es ist ein Fehler beim Anmelden aufgetreten!!','weiter...'); - return; } + if(!is_numeric($charid)){ // Ist Charid wirklich eine Zahl???? displayErrorMessage(NULL,'Charid ist nicht numerisch!!','weiter...'); return; } // Es wird angenommen, dass $user schon sicher ist, weil das in der config.inc.php ausgelesen wird - if($art == 'wochen') { - $fee = (TURNIER_WOCHEN_GEBUEHR=='TURNIER_WOCHEN_GEBUEHR')?0:TURNIER_WOCHEN_GEBUEHR; - } else if($art == 'klein') { - $fee = (TURNIER_ANFAENGER_GEBUEHR=='TURNIER_ANFAENGER_GEBUEHR')?0:TURNIER_ANFAENGER_GEBUEHR; - } else if($art == 'wochenst') { - $fee = (TURNIER_WOCHENST_GEBUEHR=='TURNIER_WOCHENST_GEBUEHR')?0:TURNIER_WOCHENST_GEBUEHR; - } + $fee = $tournament_type['entrance_fee']; if(getUserAvailableMoney($user['id']) < $fee) { displayErrorMessage(NULL,'Nicht genug Geld um am Turnier teilzunehmen!','weiter...'); return; } - if($art == 'klein' && getHallOfFameEntryCount('Anfängerturnier', $user['id']) >= 2) { - displayErrorMessage(NULL,'Du hast das Anfängerturnier schon zu oft gewonnen!!!','weiter...'); - } - - - if($art == 'klein'){ - $races = getSpecialRaceIds(); - $special_race_ids = array(); - foreach($races as $race) { - $special_race_ids[] = '\''.$race['id'].'\''; - } - // Char darf max lvl 25 haben und keine Fusion sein und auch keine Teufelsfrucht gegessen haben - $special_clue = 'AND level<=25 AND fusion_rasse = \'0\' AND rasse NOT IN ('.implode(',',$special_race_ids).') AND frucht is null'; - $anzahl = 32; - } else if($art == 'wochenst') { - $special_clue = 'AND fusion_rasse = \'0\''; - $anzahl = 64; - } else{ - $anzahl = 64; + $sear_a = mysqli_num_rows(db_query('SELECT tr.id FROM tournament_registration tr inner join chars as c ON tr.charakter = c.id WHERE tr.type='.$type_id.' AND '.$filter_sql)); + echo $sear_a.'
'; // Print the amount of registrations! + if($sear_a >= $anzahl) { + displayErrorMessage(NULL,'Turnier voll! Es künnen maximal nur '.$anzahl.' Chars am Turnier teilnehmen','weiter...'); + return; } + // sehr speziell und deswegen nicht getChar(); - $PRUEF = mysqli_num_rows(db_query('SELECT id FROM chars WHERE id=\''.$charid.'\' '.$special_clue.' AND besitzer=\''.$user['id'].'\' LIMIT 1')); + $PRUEF = mysqli_num_rows(db_query('SELECT id FROM chars c WHERE id=\''.$charid.'\' AND '.$filter_sql.' AND besitzer=\''.$user['id'].'\' LIMIT 1')); if(!$PRUEF) { - displayErrorMessage(NULL,'Charakter erfüllt die Bestimungen nicht!','weiter...'); + displayErrorMessage(NULL,'Charakter erfüllt die Bestimungen nicht!','weiter...'); return; } - $sear_a = mysqli_num_rows(db_query('SELECT id FROM turnier1 WHERE art=\''.$art.'\'')); - if($sear_a >= $anzahl) { - displayErrorMessage(NULL,'Turnier voll! Es künnen maximal nur '.$anzahl.' Chars am Turnier teilnehmen','weiter...'); - return; - } - - $sear = mysqli_fetch_assoc(db_query('SELECT id FROM turnier1 WHERE besitzer=\''.$user['id'].'\' and art = \''.$art.'\' LIMIT 1')); + $sear = mysqli_fetch_assoc(db_query('SELECT id FROM tournament_registration WHERE besitzer=\''.$user['id'].'\' and type = \''.$type_id.'\' LIMIT 1')); if($sear['id']) { - displayErrorMessage(NULL,'Es darf nur einer deiner Chars am Turnier teilnehmen','weiter...'); + displayErrorMessage(NULL,'Es darf nur einer deiner Chars am Turnier teilnehmen','weiter...'); return; } - $sql = 'INSERT turnier1 SET charakter='.$charid.', besitzer='.$user['id'].', art = \''.$art.'\''; + $sql = 'INSERT tournament_registration SET charakter='.$charid.', besitzer='.$user['id'].', type = '.$type_id; // echo $sql; db_query($sql); db_query('UPDATE chars SET status=\'Turnier\' WHERE id='.$charid); db_query('UPDATE user SET geld= '.($user['geld']-$fee).' WHERE id='.$user['id']); - displayErrorMessage('Änderungen übernommen','Charakter erfolgreich beim Turnier angemeldet','weiter...'); + displayErrorMessage('Änderungen übernommen','Charakter erfolgreich beim Turnier angemeldet','weiter...'); return; } -function abmelden($user_ida, $char_id, $art){ - db_query('DELETE FROM turnier1 WHERE charakter=\''.$char_id.'\' AND besitzer=\''.$user_ida['id'].'\''); +function abmelden($user_ida, $char_id, $type_id){ + db_query('DELETE FROM tournament_registration WHERE charakter=\''.$char_id.'\' AND besitzer=\''.$user_ida['id'].'\''); db_query('UPDATE chars SET status=\'Frei\' WHERE id=\''.$char_id.'\' AND besitzer=\''.$user_ida['id'].'\' AND status=\'Turnier\' LIMIT 1'); - displayErrorMessage('Änderungen übernommen','Charakter erfolgreich beim Turnier abgemeldet','weiter...'); + displayErrorMessage('Änderungen übernommen','Charakter erfolgreich beim Turnier abgemeldet','weiter...'); return; } -function displayDefault($user, $art){ - - if($art == 'klein'){ - $turniername = 'Anfänger'; - $races = getSpecialRaceIds(); - $special_race_ids = array(); - foreach($races as $race) { - $special_race_ids[] = '\''.$race['id'].'\''; - } - // Char darf max lvl 25 haben und keine Fusion sein und auch keine Teufelsfrucht gegessen haben - $special_clue = ' AND level<=25 AND fusion_rasse = \'0\' AND rasse NOT IN ('.implode(',',$special_race_ids).') AND frucht is null'; - - $fee = (TURNIER_ANFAENGER_GEBUEHR=='TURNIER_ANFAENGER_GEBUEHR')?0:TURNIER_ANFAENGER_GEBUEHR; - } else if($art == 'wochen'){ - $turniername = 'Wochen'; - $fee = (TURNIER_WOCHEN_GEBUEHR=='TURNIER_WOCHEN_GEBUEHR')?0:TURNIER_WOCHEN_GEBUEHR; - } else if($art == 'wochenst') { - $turniername = 'Wochen non-fusion'; - $fee = (TURNIER_WOCHENST_GEBUEHR=='TURNIER_WOCHENST_GEBUEHR')?0:TURNIER_WOCHENST_GEBUEHR; - } else { - displayErrorMessage(NULL,'Anzeigefehler!!','weiter...'); - return; - } +function displayDefault($user, $type_id){ + $tournament_type = getTournamentType($type_id); + $filter_sql = getTournamentCharExclusionSQL($tournament_type); + // sehr speziell und deswegen nicht getChar(); - $sql = 'SELECT id, name FROM chars WHERE besitzer='.$user['id'].$special_clue; - + $sql = 'SELECT id, name FROM chars WHERE besitzer='.$user['id'].' AND '.$filter_sql; $char = db_query($sql); if(!$char) echo $sql; @@ -148,16 +107,16 @@ else document.forms[0].elements['submit'].disabled=true;
- + - + @@ -182,7 +141,7 @@ while($row = mysqli_fetch_assoc($char)) {
-Turnier Anmeldung Anmeldung
Anmeldegebühr - +

@@ -198,7 +157,7 @@ $char_ag = db_query('SELECT c.id as charid, c.name, t.charakter, u.nickname, u.i Abmelden'; + $alo = 'Abmelden'; } else { $alo = ' '; } @@ -216,11 +175,11 @@ while($row2 = mysqli_fetch_assoc($char_ag)) { } if($charm == 1){ - anmelden($user_ida,$char_id,$art); + anmelden($user_ida,$char_id,$type_id); } else if($charm == 2){ - abmelden($user_ida, $char_id,$art); + abmelden($user_ida, $char_id,$type_id); } else{ - displayDefault($user_ida, $art); + displayDefault($user_ida, $type_id); } diff --git a/ag/turnier2.php b/ag/turnier2.php index a74bf0c..d3dfeda 100644 --- a/ag/turnier2.php +++ b/ag/turnier2.php @@ -31,7 +31,7 @@ function displaySomething($event_id, $id, $new_max_turnier, $char_nic1, $char_ni // GET-Section // Kritisch (SQL-Injections) -$art = validateStringCritical($_GET['art']); +$type_id = validateUnsignedInteger($_GET['type_id']); $id = validateUnsignedInteger($_GET['id']); // Unkritisch @@ -40,9 +40,9 @@ $charm = $_GET['charm']; $turnier_daten = NULL; if (is_numeric($id)) { - $turnier_daten = mysqli_fetch_assoc(db_query('SELECT * from turniere WHERE id = "'.$id.'"')); + $turnier_daten = mysqli_fetch_assoc(db_query('SELECT * from tournament WHERE id = "'.$id.'"')); } else { - $turnier_daten = mysqli_fetch_assoc(db_query('SELECT * from turniere WHERE art = "'.$art.'" ORDER BY datum DESC LIMIT 1')); + $turnier_daten = mysqli_fetch_assoc(db_query('SELECT * from tournament WHERE type = "'.$type_id.'" ORDER BY datum DESC LIMIT 1')); } if(!$turnier_daten) { @@ -56,15 +56,13 @@ else if($charm == 1) { echo ''; $turnier_date = $turnier_daten['datum']; - $turnier_info = db_query('SELECT win, char1, char2, id, round, dauer FROM turnier_kampf WHERE art=\''.$art.'\' ORDER BY id ASC'); $u=0; - $pl = 300; $eventChars = array(); $char_nick1 = array(); $char_nick2 = array(); - $char_nic1[] = array(); - $char_nic2[] = array(); + $char_nic1 = array(); + $char_nic2 = array(); $char1 = array(); $char2 = array(); $win = array(); @@ -105,7 +103,7 @@ else if($charm == 1) { $char_nick1[]=$char_info1['char_name']; $char_nick2[]=$char_info2['char_name']; $char1[]=$char_info1['event_char_id']; - $char2[]=$char_info1['event_char_id']; + $char2[]=$char_info2['event_char_id']; $win[]=$event_fight['winner']; $round[]=getEventFightMetaData($event_id, $event_fight_id)['round']; diff --git a/ag/turnier_auswahl.php b/ag/turnier_auswahl.php index edd0958..381211b 100644 --- a/ag/turnier_auswahl.php +++ b/ag/turnier_auswahl.php @@ -5,11 +5,16 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence * */ + +include_once('path.inc.php'); // get the path ;) +include_once(ROOT_PATH.'/include/tournament.inc.php'); + ?> + @@ -18,38 +23,21 @@ + - - - - - - - - - - + + +
Turnier Auswahl
- - - -   - - - -
- - - -
- - - -   - - + ");'> + Hier kommt noch info hin (to be programmed)