generic tournament adjustments

main
hecht 7 years ago
parent d20bf44c2a
commit 81c381db80

@ -43,7 +43,11 @@ include('path.inc.php');
include_once (ROOT_PATH.'/include/sqlwrapper.inc.php'); include_once (ROOT_PATH.'/include/sqlwrapper.inc.php');
include_once(ROOT_PATH.'/include/char.inc.php'); include_once(ROOT_PATH.'/include/char.inc.php');
include_once(ROOT_PATH.'/include/rassen.inc.php'); include_once(ROOT_PATH.'/include/rassen.inc.php');
include_once(ROOT_PATH.'/include/define.inc.php');
include_once(ROOT_PATH.'/include/event.inc.php');
defineIfNotDefined('ATTACK_SET_TOURNAMENT', 1);
defineIfNotDefined('TOURNAMENT_FIGHT_DURATION', 5);
$name = $_GET['name']; // Name des Turniers (benötigt) $name = $_GET['name']; // Name des Turniers (benötigt)
$anzahl = $_GET['anzahl']; // Anzahl (benötigt) $anzahl = $_GET['anzahl']; // Anzahl (benötigt)
@ -69,38 +73,6 @@ $gruppenphase = $_GET['gruppenphase']; // Flag für Gruppenphase (1 für aktiv)
$grp_size = $_GET['grp_size']; // Anzahl der Teilnehmer in einer Gruppe $grp_size = $_GET['grp_size']; // Anzahl der Teilnehmer in einer Gruppe
$grp_proceed = $_GET['grp_proceed']; // Anzahl der Teilnehmer die Gruppenphase verlassen (1 nur Sieger, 2 Sieger und Zweiter ..) $grp_proceed = $_GET['grp_proceed']; // Anzahl der Teilnehmer die Gruppenphase verlassen (1 nur Sieger, 2 Sieger und Zweiter ..)
/**
* Berechnet ein Kampf zwischen zwei chars
* @param int $char1_id die id des ersten chars
* @param int $char2_id die id des zweiten chars
* @param String $art der name des turniers (für die sql-Anfrage wichtig)
* @param int $round rundennummer (0,1,2...)
* @return int die id des siegenden chars
*/
function turnierfight($char1_id, $char2_id, $art_1, $round, $itemless){
// Gotta replace this later -.-
echo 'Fight between '.$char1_id.' and '.$char2_id .', items = ' . ($itemless == 1?'TRUE':'FALSE') . '<br>' . "\n" ;
$chara_1 = null;
$chara_2 = null;
if($itemless == 1) {
$chara_1 = getChar($char1_id); // ohne Equip für Turniere!!
$chara_2 = getChar($char2_id); // ohne Equip für Turniere!!
} else {
$chara_1 = getCharWithBuffs($char1_id); // Equip für Turniere!!
$chara_2 = getCharWithBuffs($char2_id); // Equip für Turniere!!
}
include "turnier_kampf.php";
echo ', Sieger '.$sieger.'<br>'. "\n" ;
// in $sieger steht die id des gewinners
if($char1_id == $sieger){
return $char1_id;
}
return $char2_id;
}
// Auswerten der Eingaben // Auswerten der Eingaben
if($gruppenphase == 1){ if($gruppenphase == 1){
if(is_null($grp_size)){ // Wenn es nicht gesetzt ist if(is_null($grp_size)){ // Wenn es nicht gesetzt ist
@ -126,8 +98,6 @@ if($gruppenphase == 1){
} }
} }
db_query('DELETE FROM turnier_kampf WHERE art=\''.$name.'\'');
$race_type = getRaceTypeName("NPC"); $race_type = getRaceTypeName("NPC");
$auswahl_kriteria = '1'; $auswahl_kriteria = '1';
@ -221,28 +191,49 @@ while(($row = mysqli_fetch_assoc($qry)) && count($cid) < $anzahl){
//print_r($cid); //print_r($cid);
$event_id = createEvent(EVENT_TURNIER);
db_query('INSERT into turniere(art, event_id) values("'.$name.'", '.$event_id.')');
$sql = 'SELECT id FROM chars WHERE id IN('.join(', ',$cid).') ORDER BY RAND()'; // Mischen der Teilnehmer $sql = 'SELECT id FROM chars WHERE id IN('.join(', ',$cid).') ORDER BY RAND()'; // Mischen der Teilnehmer
//echo $sql.'<br>'; //echo $sql.'<br>';
$qry = db_query($sql); $qry = db_query($sql);
$char_array = array(); $char_array = array();
while($row = mysqli_fetch_assoc($qry)){ while($row = mysqli_fetch_assoc($qry)){
$char_array[] = $row['id']; $char_data = NULL;
if($itemless == 1) {
$char_data = getChar($row['id']); // ohne Equip für Turniere!!
} else {
$char_data = getCharWithBuffs($row['id']); // Equip für Turniere!!
}
addParticipant($event_id, $char_data);
$char_array[] = $char_data;
} }
// So alle chars sind jetzt in den Arrays // So alle chars sind jetzt in den Arrays
$round = 1; $round = 1;
//print_r($chars); //print_r($chars);
echo '<br>'; //echo '<br>';
// Hier Gruppenphase berechnen und die Chars für die Endrunde in $chars speichern // Hier Gruppenphase berechnen und die Chars für die Endrunde in $chars speichern
$start_time = time();
$counter = 1;
$duration = TOURNAMENT_FIGHT_DURATION * 60;
// Beginn der Endrunde // Beginn der Endrunde
while(count($char_array) > 1){ // Solange bis nur ein Char übrig bleibt while(count($char_array) > 1){ // Solange bis nur ein Char übrig bleibt
$n_chars = array(); $n_chars = array();
for($i=0;$i<count($char_array);$i+=2){ for($i=0;$i<count($char_array);$i+=2){
$fight_start_time = $start_time + ($counter-1) * $duration;
$fight_end_time = $fight_start_time + $duration;
$winner = calculateEventFight($event_id, $char_array[$i], $char_array[$i+1], ATTACK_SET_TOURNAMENT, $fight_start_time, $fight_end_time, 1, 0, array('round' => $round));
if ($winner['id'] == $char_array[$i]['id']) {
$n_chars[] = $char_array[$i];
} else {
$n_chars[] = $char_array[$i+1];
}
// echo 'Berechne fight zwischen '.$char_array[$i].'und '.$char_array[$i+1].'('.$i.'/'.count($char_array).')<br>'; // echo 'Berechne fight zwischen '.$char_array[$i].'und '.$char_array[$i+1].'('.$i.'/'.count($char_array).')<br>';
$n_chars[] = turnierfight($char_array[$i], $char_array[$i+1], $name, $round, $itemless); $counter++;
} }
// echo 'nxt round<br>'; // echo 'nxt round<br>';
$round++; $round++;

Loading…
Cancel
Save