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.
324 lines
10 KiB
324 lines
10 KiB
14 years ago
|
<?php
|
||
|
/*
|
||
|
*
|
||
|
* @copyright (c) 2010 animegame.eu
|
||
|
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence
|
||
|
*
|
||
|
*/
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/config.inc.php');
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/char.inc.php');
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/designfunctions.inc.php');
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/abholcodes.inc.php');
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/fehlerausgabe.inc.php');
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/semaphore.inc.php');
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/parse.inc.php');
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/exp.inc.php');
|
||
|
|
||
|
// GET-Section
|
||
|
// Kritisch (SQL-Injections)
|
||
|
$char_id = validateUnsignedInteger($_GET['char_id'], null);
|
||
|
$code = validateString($_GET['code']);
|
||
|
|
||
|
// Unkritisch
|
||
|
$name = $user_ida['nickname'];
|
||
|
$user = $user_ida;
|
||
|
|
||
|
$my_charakter = getChar($char_id);
|
||
|
|
||
|
if (!isUserOwnerOf($user['id'], $char_id)) {
|
||
|
displayErrorMessage(NULL, 'Das ist nicht dein Charakter!', displayHistoryBackLink());
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
$kampf1 = mysql_Fetch_array(mysql_query("SELECT * FROM kampf WHERE db_satz='$char_id' order by id DESC LIMIT 1"));
|
||
|
$char_1 = getChar($kampf1['char1']);
|
||
|
$char_2 = getChar($kampf1['char2']);
|
||
|
$arena = mysql_Fetch_array(mysql_query("SELECT * FROM arena WHERE id='$kampf1[arena_name]' LIMIT 1"));
|
||
|
|
||
|
$ressource = 'Kampf:' . $kampf1['id'];
|
||
|
if (!semaphoreUP($ressource)) {
|
||
|
displayErrorMessage(NULL, 'Der Kampf wird gerade abgeholt!', displayHistoryBackLink());
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
if ($kampf1['dauer'] > time()) {
|
||
|
displayErrorMessage(NULL, 'Der Kampf ist noch nicht vorbei!', displayHistoryBackLink());
|
||
|
semaphoreDown($ressource);
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
if (!checkAbholcode($char_id, $code)) {
|
||
|
displayErrorMessage(NULL, 'Der Abholcode ist falsch!', displayHistoryBackLink());
|
||
|
semaphoreDown($ressource);
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
mysql_query('DELETE FROM kampf WHERE db_satz='.$char_id);
|
||
|
if (mysql_affected_rows() == 0) {
|
||
|
displayErrorMessage(NULL, 'Der Kampf wurde schon abgeholt!', displayHistoryBackLink());
|
||
|
semaphoreDown($ressource);
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
if ($kampf1['art2'] == 'NPC') { // No Arena-Exp on NPC-Fights
|
||
|
$kampf1['arena_exp'] = 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
$arenas_exps = explode(',', $arena[exp]);
|
||
|
$starke1 = explode(',', $kampf1[starke1]);
|
||
|
$starke2 = explode(',', $kampf1[starke2]);
|
||
|
$ver1 = explode(',', $kampf1[ver1]);
|
||
|
$ver2 = explode(',', $kampf1[ver2]);
|
||
|
$speed1 = explode(',', $kampf1[speed1]);
|
||
|
$speed2 = explode(',', $kampf1[speed2]);
|
||
|
$ausdauer1 = explode(',', $kampf1[ausdauer1]);
|
||
|
$ausdauer2 = explode(',', $kampf1[ausdauer2]);
|
||
|
$glueck1 = explode(',', $kampf1['glueck1']);
|
||
|
$glueck2 = explode(',', $kampf1['glueck2']);
|
||
|
|
||
|
|
||
|
$schaden1 = explode(',', $kampf1[schaden1]);
|
||
|
$schaden2 = explode(',', $kampf1[schaden2]);
|
||
|
$attacke1 = explode(',', $kampf1[attacke1]);
|
||
|
$attacke2 = explode(',', $kampf1[attacke2]);
|
||
|
|
||
|
$hp1 = explode(',', $kampf1[hp1]);
|
||
|
$hp2 = explode(',', $kampf1[hp2]);
|
||
|
$mp1 = explode(',', $kampf1[mp1]);
|
||
|
$mp2 = explode(',', $kampf1[mp2]);
|
||
|
|
||
|
$a_hp1 = explode(',', $char_1[hp]);
|
||
|
$a_hp2 = explode(',', $char_2[hp]);
|
||
|
$a_mp1 = explode(',', $char_1[mp]);
|
||
|
$a_mp2 = explode(',', $char_2[mp]);
|
||
|
$runde = 1;
|
||
|
|
||
|
$a_mp1[1] = round($a_mp1[1]);
|
||
|
$a_mp2[1] = round($a_mp2[1]);
|
||
|
$a_hp1[1] = round($a_hp1[1]);
|
||
|
$a_hp2[1] = round($a_hp2[1]);
|
||
|
|
||
|
$a_mp1[0] = round($a_mp1[0]);
|
||
|
$a_mp2[0] = round($a_mp2[0]);
|
||
|
$a_hp1[0] = round($a_hp1[0]);
|
||
|
$a_hp2[0] = round($a_hp2[0]);
|
||
|
|
||
|
include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/kampf_anzeige.php');
|
||
|
|
||
|
$runde = $runde -1;
|
||
|
if ($kampf1['id']) {
|
||
|
$char_infos = getChar($char_id);
|
||
|
|
||
|
$alt_exp = explode(',', $char_infos[exp]);
|
||
|
|
||
|
if ($kampf1['char1'] == $char_id) {
|
||
|
$new_exp = $kampf1['exp1'];
|
||
|
$new_geld = $user['geld'] + $kampf1['geld1'];
|
||
|
$new_geld_offset = $kampf1['geld1'];
|
||
|
$attacken = $attacke1;
|
||
|
$new_hp = $hp1[$runde];
|
||
|
$new_mp = $mp1[$runde];
|
||
|
if ($new_hp < 1) {
|
||
|
$new_hp = 1;
|
||
|
}
|
||
|
if ($new_mp < 1) {
|
||
|
$new_mp = 1;
|
||
|
}
|
||
|
if ($new_hp > $a_hp1[1]) {
|
||
|
$new_hp = $a_hp1[1];
|
||
|
}
|
||
|
if ($new_mp > $a_mp1[1]) {
|
||
|
$new_mp = $a_mp1[1];
|
||
|
}
|
||
|
mysql_query("UPDATE chars SET status='Frei', mp='$new_mp,$a_mp1[1]', hp='$new_hp,$a_hp1[1]' WHERE id='$char_id' LIMIT 1");
|
||
|
} else {
|
||
|
$new_exp = $kampf1['exp2'];
|
||
|
$new_geld = $user['geld'] + $kampf1['geld2'];
|
||
|
$new_geld_offset = $kampf1['geld2'];
|
||
|
$attacken = $attacke2;
|
||
|
$new_hp = $hp2[$runde];
|
||
|
$new_mp = $mp2[$runde];
|
||
|
if ($new_hp < 1) {
|
||
|
$new_hp = 1;
|
||
|
}
|
||
|
if ($new_mp < 1) {
|
||
|
$new_mp = 1;
|
||
|
}
|
||
|
if ($new_hp > $a_hp2[1]) {
|
||
|
$new_hp = $a_hp2[1];
|
||
|
}
|
||
|
if ($new_mp > $a_mp2[1]) {
|
||
|
$new_mp = $a_mp2[1];
|
||
|
}
|
||
|
|
||
|
mysql_query("UPDATE chars SET status='Frei', mp='$new_mp,$a_mp2[1]', hp='$new_hp,$a_hp2[1]' WHERE id='$char_id' LIMIT 1");
|
||
|
|
||
|
}
|
||
|
|
||
|
###################################################CHARAKTER WIN
|
||
|
|
||
|
if ($kampf1[win] == "$my_charakter[name]") {
|
||
|
$new_siege = $my_charakter[siege] + 1;
|
||
|
|
||
|
////////NPC item verteilung
|
||
|
if ($kampf1[art2] == "NPC") {
|
||
|
$item = mysql_fetch_array(mysql_query("SELECT item, mal, datensatz, wieviel, feld FROM npc_item WHERE charakter='$kampf1[char2]'"));
|
||
|
|
||
|
$schon_bekommen = mysql_num_rows(mysql_query("SELECT id FROM npc_ware WHERE charakter='$kampf1[char2]' AND user='$user_ida[id]' LIMIT 20"));
|
||
|
|
||
|
if ($schon_bekommen >= $item[mal]) {
|
||
|
/////item schon bekommen
|
||
|
|
||
|
} else {
|
||
|
|
||
|
if ($item['datensatz'] == "ware") {
|
||
|
$satz = "item_id";
|
||
|
$new_item = "item";
|
||
|
}
|
||
|
elseif ($item['datensatz'] == "chars") {
|
||
|
$punkte_block = 1;
|
||
|
mysql_query("UPDATE $item[datensatz] SET $item[feld]=$item[feld]+'$item[wieviel]' WHERE besitzer='$user_ida[id]' LIMIT 10");
|
||
|
mysql_query("INSERT npc_ware SET user='$user_ida[id]', charakter='$kampf1[char2]'");
|
||
|
} else {
|
||
|
$satz = "item";
|
||
|
$new_item = "sp_item";
|
||
|
}
|
||
|
|
||
|
//////wieviel items er bekommt.
|
||
|
if ($punkte_block) {
|
||
|
|
||
|
} else {
|
||
|
$ut = 0;
|
||
|
while ($ut < $item['wieviel']) {
|
||
|
mysql_query("INSERT $item[datensatz] SET $satz='$item[item]', user='$user_ida[id]'");
|
||
|
|
||
|
if (!$ut) {
|
||
|
$itemname = $item[item];
|
||
|
} else {
|
||
|
$itemname .= ',' . $item['item'];
|
||
|
}
|
||
|
$ut++;
|
||
|
}
|
||
|
|
||
|
mysql_query("INSERT npc_ware SET user='$user_ida[id]', charakter='$kampf1[char2]'");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
///ENDE
|
||
|
|
||
|
mysql_query("UPDATE chars SET siege='$new_siege' WHERE id='$char_id'");
|
||
|
} else {
|
||
|
|
||
|
###################################################CHARAKTER LOSE
|
||
|
$new_niederlagen = $my_charakter[niederlagen] + 1;
|
||
|
|
||
|
if ($kampf1[art] == "Liga Kampf") {
|
||
|
|
||
|
$new_liga_niederlagen = $my_charakter[liga_niederlagen] + 1;
|
||
|
|
||
|
} else {
|
||
|
$new_liga_niederlagen = $my_charakter[liga_niederlagen];
|
||
|
}
|
||
|
|
||
|
if ($kampf1[art2] == "Todes Kampf") {
|
||
|
print " <script language='JavaScript'>
|
||
|
<!--
|
||
|
alert('$my_charakter[name] Ist in diesen Kampf gestorben und Kämpft bleibt bis 0Uhr in Reich der Toten');
|
||
|
//-->
|
||
|
</script>";
|
||
|
$new_preis = 0;
|
||
|
mysql_query("UPDATE chars SET status='Tod' WHERE id='$char_id'");
|
||
|
|
||
|
} else {
|
||
|
|
||
|
$new_dead_list = "$my_charakter[dead_list]";
|
||
|
|
||
|
$new_preis = $my_charakter[preis];
|
||
|
|
||
|
}
|
||
|
|
||
|
mysql_query("UPDATE chars SET niederlagen='$new_niederlagen', liga_niederlagen='$new_liga_niederlagen', preis='$new_preis', dead_list='$new_dead_list' WHERE id='$char_id'");
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
if($user['id'] == $char_2['besitzer']){
|
||
|
// $arenas_new = round($arenas_exps[0] + (50* ($char_1['level']+$char_2['level'] )));
|
||
|
// Leveln der Arena :) (Um Rundungsfehler zu vermeiden diese umstaendliche Rechnung)
|
||
|
addExpToArena($char_2['besitzer'], $kampf1['arena_exp']-round($kampf1['arena_exp']*0.25));
|
||
|
// Umsatz wird schon vorher ermittelt :)
|
||
|
// mysql_query('UPDATE arena SET einnahmen = einnahmen + '.$kampf1['arena_geld'].' WHERE besitzer='.$char_2['besitzer']);
|
||
|
// include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/arena_exp.php');
|
||
|
} else{
|
||
|
addExpToArena($char_1['besitzer'], round($kampf1['arena_exp']*0.25));
|
||
|
}
|
||
|
|
||
|
|
||
|
$row = mysql_fetch_assoc(mysql_query('Select mietlasten FROM arena WHERE besitzer='.$user['id']));
|
||
|
|
||
|
if($row['mietlasten'] > 2){
|
||
|
// Steuerschulden
|
||
|
$tilgung = ceil($new_geld_offset * 0.75);
|
||
|
$restgeld = $new_geld_offset - $tilgung;
|
||
|
mysql_query('UPDATE user SET geld=geld+'.$restgeld.' WHERE id= '.$user['id']);
|
||
|
echo '<script type="text/javascript">alert("Da du 3 Tage hintereinander nicht deine Umsatzsteuerverbindlichkeit beglichen hast wird ab jetzt automatisch von jedem Kampf ein Teil zur Tilgung verwendet. Daher fliessen '.$tilgung.' zum Gläbiger");</script>';
|
||
|
mysql_query('UPDATE arena SET steuerlasten = steuerlasten - '.$tilgung. ' WHERE besitzer ='.$user['id']);
|
||
|
} else{
|
||
|
mysql_query('UPDATE user SET geld=' . $new_geld . ' WHERE id=' . $user['id'] . ' LIMIT 1');
|
||
|
}
|
||
|
// mysql_query("DELETE FROM kampf_nachricht WHERE charakter='$char_id'");
|
||
|
|
||
|
// include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/exp.php');
|
||
|
|
||
|
// Hinzufuegen der Exp und der Attacken :)
|
||
|
addExpToChar($char_id, $new_exp); // That was easy :)
|
||
|
|
||
|
// Nun die Attacken ins richtige Format setzen :)
|
||
|
// Momentan ist es so (1D Array)
|
||
|
// Schlag,Schlag,Kick,Schlag,Block,Schlag
|
||
|
// Gewollt ist ein 2D Array
|
||
|
// [0] => (['a_name'] => 'Schlag', ['anzahl'] => 4), [1] => (['a_name'] => 'Kick', ['anzahl'] => 1), [2] => (['a_name'] => 'Block', ['anzahl'] => 1)
|
||
|
$l_attacken = array();
|
||
|
$l_attacken = array();
|
||
|
for($i=0;$i<count($attacken);$i++){
|
||
|
$found = false;
|
||
|
for($t=0;$t<count($l_attacken);$t++){
|
||
|
if($attacken[$i] == $l_attacken[$t]['a_name']){
|
||
|
$l_attacken[$t]['anzahl'] = $l_attacken[$t]['anzahl'] + 1;
|
||
|
$found = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if(!$found){
|
||
|
$l_attacken[] = array('a_name' => $attacken[$i], 'anzahl' => 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Rufe nun die Funktion zum req'en der attacken auf :)
|
||
|
addAttackUsageToChar($char_id, $l_attacken);
|
||
|
|
||
|
if ($itemname) {
|
||
|
$item_names = mysql_query("SELECT name FROM $new_item WHERE id IN(" . $itemname . ")");
|
||
|
$x2 = 0;
|
||
|
|
||
|
while ($new_row = @ mysql_fetch_array($item_names)) {
|
||
|
print " <script language='JavaScript'>
|
||
|
<!--
|
||
|
alert('$new_row[name] $item[wieviel]x erhalten');
|
||
|
//-->
|
||
|
</script>";
|
||
|
$x2++;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
elseif ($punkte_block) {
|
||
|
print " <script language='JavaScript'>
|
||
|
<!--
|
||
|
alert('$item[wieviel] $item[feld] erhalten');
|
||
|
//-->
|
||
|
</script>";
|
||
|
}
|
||
|
}
|
||
|
semaphoreDown($ressource);
|
||
|
?>
|