You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

226 lines
7.5 KiB

<?php
/*
*
* @copyright (c) 2010 animegame.eu
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence
*
*/
/* Funktionen fuer die Clanfights */
function getStatus($charid, $buffer_enabled = true) {
// Prioritaet, erst Turnier, dann Schatzsuche, dann Kampf
if ($GLOBALS['char_status'][$charid] != null && $buffer_enabled) {
return $GLOBALS['char_status'][$charid];
}
$sql = 'SELECT count(*) as anzahl FROM turnier_kampf t where art != \'gross\' and (win = ' . $charid . ' or lose = ' . $charid . ') and dauer > now()';
$row = mysql_fetch_assoc(mysql_query($sql));
if ($row['anzahl'] > 0) {
$GLOBALS['char_status'][$charid] = 'Turnier';
return 'Turnier';
}
$sql = 'SELECT count(*) as anzahl from quests where charid = ' . $charid;
$row = mysql_fetch_assoc(mysql_query($sql));
if ($row['anzahl'] > 0) {
$GLOBALS['char_status'][$charid] = 'Schatz Suche';
return 'Schatz Suche';
}
$sql = 'SELECT count(*) as anzahl from kampf where db_satz = ' . $charid;
$row = mysql_fetch_assoc(mysql_query($sql));
if ($row['anzahl'] > 0) {
$GLOBALS['char_status'][$charid] = 'Kampf';
return 'Kampf';
}
$sql = 'SELECT count(*) as anzahl FROM kampf_list where charakter = ' . $charid;
$row = mysql_fetch_assoc(mysql_query($sql));
if ($row['anzahl'] > 0) {
$GLOBALS['char_status'][$charid] = 'Kampf erstellt';
return 'Kampf erstellt';
}
$sql = 'SELECT count(*) as anzahl FROM turnier1 where charakter = ' . $charid;
$row = mysql_fetch_assoc(mysql_query($sql));
if ($row['anzahl'] > 0) {
$GLOBALS['char_status'][$charid] = 'Angemeldet';
return 'Angemeldet';
}
$GLOBALS['char_status'][$charid] = 'Frei';
return 'Frei';
}
function getPicture($char){
// Sichergehen, dass Char geladen wurde
if($char['bild'] == null || $char['bild'] == ''){
return 'design/bilder/avatare/noavart.gif';
}
return $char['bild'];
}
function getChar2($charid) {
// Fehlerkontrolle
if(!is_numeric($charid)){
return null;
} else {
$char = mysql_fetch_assoc(mysql_query('Select * from chars where id = '.$charid));
if(!$char){return null;}
// Speichere in $char['stauts'] den aktuellen Status des Chars (buffer-Strategie ist hierbei die selbe)
$char['status'] = getStatus($char['id'],$buffer_enabled);
$char['bild'] = getPicture($char);
}
return $char;
}
function starteClanFight($chara_1, $chara_2, $clanfight_id, $runde, $kampf){
global $sieger, $verlierer;
include 'kampf_clan.php';
}
function starteClanFight_survival($chara_1, $fighter_a, $chara_2, $fighter_b, $clanfight_id, $runde, $kampf){
global $sieger, $verlierer, $fighter_team_a_array, $fighter_team_b_array;
include 'kampf_clan1.php';
}
function clanFightExecute($id) {
$pkt_a_satz= 0;
$pkt_b_satz= 0;
$pkt_runde_a= 0;
$pkt_runde_b= 0;
$rundenzaehler= 1;
$kampfzaehler= 1;
$clanfight_daten= mysql_fetch_assoc(mysql_query('SELECT fighter, gfighter, numberoffighter FROM clan_fight_list WHERE id='.$id.' LIMIT 1'));
$fighter_a_array= explode(",",$clanfight_daten['fighter']);
$fighter_b_array= explode(",",$clanfight_daten['gfighter']);
for ($x=1;;$x++) {
/*if ($rundenzaehler == 7) {
break;
}*/
$fighter_a= mt_rand(0, count($fighter_a_array)-1);
$fighter_b= mt_rand(0, count($fighter_b_array)-1);
$char_a= getChar2($fighter_a_array[$fighter_a]);
$char_b= getChar2($fighter_b_array[$fighter_b]);
starteClanFight($char_a, $char_b, $id, $rundenzaehler, $kampfzaehler);
$kampfzaehler++;
if ($fighter_a_array[$fighter_a] == $sieger) {
$pkt_a_satz++;
} else {
$pkt_b_satz++;
}
unset($fighter_a_array[$fighter_a]);
unset($fighter_b_array[$fighter_b]);
sort($fighter_a_array);
sort($fighter_b_array);
#if ($pkt_a_satz == 3 OR $pkt_b_satz == 3) {
if ($pkt_a_satz + $pkt_b_satz == $clanfight_daten['numberoffighter']) {
if ($pkt_a_satz > $pkt_b_satz) {
$pkt_runde_a++;
} elseif ($pkt_a_satz < $pkt_b_satz) {
$pkt_runde_b++;
}
$fighter_a_array= explode(",",$clanfight_daten['fighter']);
$fighter_b_array= explode(",",$clanfight_daten['gfighter']);
$rundenzaehler++;
$kampfzaehler= 1;
$pkt_a_satz= 0;
$pkt_b_satz= 0;
if ($pkt_runde_a + $pkt_runde_b == 6) {
break;
}
}
}
}
function selectFighterOfTeams($fighter_team_a_array,$fighter_team_b_array,$sieger='') {
global $fighter_a, $fighter_b, $sieger;
if (empty($sieger)) {
$fighter_a= mt_rand(0, count($fighter_team_a_array)-1);
$fighter_b= mt_rand(0, count($fighter_team_b_array)-1);
} else {
for ($y=0;$y<count($fighter_team_a_array);$y++) {
if ($fighter_team_a_array[$y][id] == $sieger) {
$siegerteam= 'a';
}
}
if ($siegerteam == 'a') {
for ($y=0;$y<count($fighter_team_a_array);$y++) {
if ($fighter_team_a_array[$y][id] == $sieger) {
$fighter_a= $y;
$fighter_b= mt_rand(0, count($fighter_team_b_array)-1);
}
}
} else {
for ($y=0;$y<count($fighter_team_b_array);$y++) {
if ($fighter_team_b_array[$y][id] == $sieger) {
$fighter_b= $y;
$fighter_a= mt_rand(0, count($fighter_team_a_array)-1);
}
}
}
}
}
function clanFightExecute_survival($id) {
global $fighter_a, $fighter_b, $sieger, $fighter_team_a_array, $fighter_team_b_array;
$pkt_a_satz= 0;
$pkt_b_satz= 0;
$kampfzaehler= 1;
$rundenzaehler= 1;
$clanfight_daten= mysql_fetch_assoc(mysql_query('SELECT fighter, gfighter, numberoffighter FROM clan_fight_list WHERE id='.$id.' LIMIT 1'));
$fighter_a_array= explode(",",$clanfight_daten['fighter']);
$fighter_b_array= explode(",",$clanfight_daten['gfighter']);
for ($x=0;$x<count($fighter_a_array);$x++) {
$fighter_team_a_array[$x]= getChar2($fighter_a_array[$x]);
}
for ($x=0;$x<count($fighter_b_array);$x++) {
$fighter_team_b_array[$x]= getChar2($fighter_b_array[$x]);
}
for ($x=1;;$x++) {
selectFighterOfTeams($fighter_team_a_array,$fighter_team_b_array,$sieger);
starteClanFight_survival($fighter_team_a_array[$fighter_a], $fighter_a, $fighter_team_b_array[$fighter_b], $fighter_b, $id, $rundenzaehler, $kampfzaehler);
$kampfzaehler++;
if ($fighter_team_a_array[$fighter_a][id] == $sieger) {
/* Status des Fighters aus Teams B auf "besiegt" setzen */
unset($fighter_team_b_array[$fighter_b]);
$fighter_team_b_array= array_values($fighter_team_b_array);
/* Die Statuswerte St<53>rke, Verteidigung und Geschwindigkeit um 10% verringern */
$fighter_team_a_array[$fighter_a][starke]= round($fighter_team_a_array[$fighter_a][starke]*0.9);
$fighter_team_a_array[$fighter_a][speed]= round($fighter_team_a_array[$fighter_a][speed]*0.9);
$fighter_team_a_array[$fighter_a][verteidigung]= round($fighter_team_a_array[$fighter_a][verteidigung]*0.9);
/* Punkt f<>r Team A hinzuf<75>gen */
$pkt_a_satz++;
} else {
/* Status des Fighters aus Teams A auf "besiegt" setzen */
unset($fighter_team_a_array[$fighter_a]);
$fighter_team_a_array= array_values($fighter_team_a_array);
/* Die Statuswerte St<53>rke, Verteidigung und Geschwindigkeit um 10% verringern */
$fighter_team_b_array[$fighter_b][starke]= round($fighter_team_b_array[$fighter_b][starke]*0.9);
$fighter_team_b_array[$fighter_b][speed]= round($fighter_team_b_array[$fighter_b][speed]*0.9);
$fighter_team_b_array[$fighter_b][verteidigung]= round($fighter_team_b_array[$fighter_b][verteidigung]*0.9);
/* Punkt f<>r Team B hinzuf<75>gen */
$pkt_b_satz++;
}
if (count($fighter_team_a_array) == 0 OR count($fighter_team_b_array) == 0) {
break;
}
}
}
?>