From 1049e7b6200e49b41402a8230644aa94a18f0f0c Mon Sep 17 00:00:00 2001 From: hecht Date: Tue, 19 Sep 2017 19:23:01 +0000 Subject: [PATCH] also take the amount from the inverse auction into acount for the user available money --- ag/arena.php | 10 ++++------ ag/clan/new.php | 4 ++-- ag/clan/spende.php | 9 ++++----- ag/inclu/user-controll.php | 9 ++++----- ag/include/auktion_functions.inc.php | 29 +++++++++------------------- ag/include/user.inc.php | 6 ++++++ ag/markt.php | 5 ++--- ag/schatz.php | 7 +++---- 8 files changed, 34 insertions(+), 45 deletions(-) diff --git a/ag/arena.php b/ag/arena.php index 8074930..09768a9 100644 --- a/ag/arena.php +++ b/ag/arena.php @@ -315,15 +315,13 @@ function renovate($user, $arena, $vermoegen){ $arena = getArena($user_ida['id']); +$user_geld = getRelevantMoney($user_ida['id']); -$auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$user_ida['id'].' GROUP BY bieter')); -$auktionensumme = $auktionensumme['summe']; -$vermoegen = $user['geld'] - $auktionensumme; $unterhalt = calculateUnterhaltsKosten($arena); if($action == 'miete'){ // Zahle Miete - if($vermoegen < $unterhalt){ + if($user_geld < $unterhalt){ displayErrorMessage(NULL, 'Du hast nicht genug Geld um die Unterhaltskosten zu bezahlen!', displayHistoryBackLink()); } else{ db_query('Update user set geld = geld - '.$unterhalt.' WHERE id = '.$user_ida['id']); @@ -334,11 +332,11 @@ if($action == 'miete'){ } else if($action == 'ausbau1'){ displayAusbau($arena); } else if($action == 'ausbau2'){ - displayAusbau2($user, $arena, $arena_name, $steh, $sitz, $loge, $vermoegen, $confirm); + displayAusbau2($user, $arena, $arena_name, $steh, $sitz, $loge, $user_geld, $confirm); } else if($action == 'skill1'){ displaySkillen($user, $arena, $charmax, $hausmeister, $luxus); } else if($action == 'renovieren'){ - renovate($user, $arena, $vermoegen); + renovate($user, $arena, $user_geld); }else{ displayArena($arena); } diff --git a/ag/clan/new.php b/ag/clan/new.php index ecdb6b2..785fb96 100644 --- a/ag/clan/new.php +++ b/ag/clan/new.php @@ -45,8 +45,8 @@ if ($charm == 1) { $error .= 'Sie haben schon einen Clan.
'; } - $money = getRelevantMoney($user['id']); - if ($money < CLAN_CREATION_FEE) { + $user_geld = getRelevantMoney($user['id']); + if ($user_geld < CLAN_CREATION_FEE) { $error .= 'Sie haben nicht genug Geld um einen Clan gründen zu können.
'; } diff --git a/ag/clan/spende.php b/ag/clan/spende.php index aaab231..b12c1fd 100644 --- a/ag/clan/spende.php +++ b/ag/clan/spende.php @@ -10,6 +10,8 @@ include_once(ROOT_PATH.'/include/config.inc.php'); include_once(ROOT_PATH.'/include/designfunctions.inc.php'); include_once(ROOT_PATH.'/include/fehlerausgabe.inc.php'); include_once (ROOT_PATH . '/include/parse.inc.php'); +include_once(ROOT_PATH.'/include/user.inc.php'); + // GET-Section // Kritisch (SQL-Injections) $clan_geld=validateUnsignedInteger($_GET['clan_geld'], null); @@ -44,12 +46,9 @@ if($clan_geld <= 0) { exit; } -// Damit das minus nicht ausgenutzt wird!! -$auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$user_ida['id'].' GROUP BY bieter')); -$auktionensumme = $auktionensumme['summe']; - +$user_geld = getRelevantMoney($user_ida['id']); -if($clan_geld+$auktionensumme>$user['geld']) { +if ($user_geld < $clan_geld) { displayErrorMessage(NULL,'Sie haben nicht genug Geld.', 'weiter...'); exit; } diff --git a/ag/inclu/user-controll.php b/ag/inclu/user-controll.php index c925c29..592ea6d 100644 --- a/ag/inclu/user-controll.php +++ b/ag/inclu/user-controll.php @@ -110,13 +110,12 @@ if ($name AND $passwort) { Halle der Helden
Letzten 20 Kämpfe
"; - $auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = ' . $user_ida['id'] . ' GROUP BY bieter')); - $auktionensumme = $auktionensumme['summe']; - - if ($auktionensumme == 0) { + $user_geld = getRelevantMoney($user_ida['id']); + + if ($user_info_test['geld']== $user_geld) { $geldstring = $user_info_test2['geld']; } else { - $geldstring = displayMoney($user_info_test['geld'] - $auktionensumme) . ' (' . $user_info_test2['geld'] . ')'; + $geldstring = displayMoney($user_geld) . ' (' . $user_info_test2['geld'] . ')'; } diff --git a/ag/include/auktion_functions.inc.php b/ag/include/auktion_functions.inc.php index d19d6fb..def9e77 100644 --- a/ag/include/auktion_functions.inc.php +++ b/ag/include/auktion_functions.inc.php @@ -23,6 +23,7 @@ include_once(ROOT_PATH.'/include/messagefunctions.inc.php'); include_once(ROOT_PATH.'/include/semaphore.inc.php'); include_once(ROOT_PATH.'/include/fehlerausgabe.inc.php'); include_once(ROOT_PATH.'/include/defines.inc.php'); +include_once(ROOT_PATH.'/include/user.inc.php'); defineIfNotDefined('AUCTION_FEE_FACTOR', 0.05); @@ -44,6 +45,7 @@ function aktuellesMindestgebot($auktionsid){ } } + /** * * siehe user.inc.php getRelevantMoney() @@ -51,13 +53,7 @@ function aktuellesMindestgebot($auktionsid){ * @deprecated */ function getUserAvailableMoney($userid) { - //Nun muss noch geprueft werden ob der User genug Geld hat und auch mit allen Geboten gesamt nicht in den Minusbereich kommt - $user_a = mysqli_fetch_assoc(db_query('SELECT nickname, geld FROM user WHERE id = '.$userid)); - $usermoney = $user_a['geld']; - $auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$userid)); - $auktionensumme = $auktionensumme['summe']; - return $usermoney - $auktionensumme; - + return getRelevantMoney($userid); } @@ -115,11 +111,10 @@ function biete_normal($userid, $auktionsdaten, $gebot) { //Nun muss noch geprueft werden ob der User genug Geld hat und auch mit allen Geboten gesamt nicht in den Minusbereich kommt $user_a = mysqli_fetch_assoc(db_query('SELECT nickname, geld FROM user WHERE id = '.$userid)); - $usermoney = $user_a['geld']; - $auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$userid.' AND auktionsid != '.$auktionsid.' GROUP BY bieter')); - $auktionensumme = $auktionensumme['summe']; - - if($usermoney < $auktionensumme + $gebot){ + + $usermoney = getRelevantMoney($userid); + + if($usermoney < $gebot){ return 'Nicht genug Geld!'; } @@ -165,19 +160,13 @@ function biete_inverse($userid, $auktionsdaten, $gebot, $gebot2) { $fee = ($gebot2 - $gebot + 1) * $startgebot * AUCTION_FEE_FACTOR; //Nun muss noch geprueft werden ob der User genug Geld hat und auch mit allen Geboten gesamt nicht in den Minusbereich kommt - $user_a = mysqli_fetch_assoc(db_query('SELECT nickname, geld FROM user WHERE id = '.$userid)); - $usermoney = $user_a['geld']; - $auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$userid.' AND auktionsid != '.$auktionsid.' GROUP BY bieter')); - $auktionensumme = $auktionensumme['summe']; - - $required_money = $auktionensumme + $gebot + $fee; + $usermoney = getRelevantMoney($userid); + $required_money = $gebot2 + $fee; if($usermoney < $required_money){ return 'Nicht genug Geld!'; } - - db_query('UPDATE user SET geld = geld - '.$fee.' WHERE geld >= '.$required_money); if (db_affected_rows() == 0) { diff --git a/ag/include/user.inc.php b/ag/include/user.inc.php index 7c46bb5..e05ad0d 100644 --- a/ag/include/user.inc.php +++ b/ag/include/user.inc.php @@ -59,6 +59,12 @@ function getRelevantMoney($userid) { $auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = ' . $user['id'] . ' GROUP BY bieter')); $auktionensumme = $auktionensumme['summe']; + $qry = db_query('SELECT max(range_to) FROM test_ag.inverse_auktion_gebote WHERE bieter = '.$userid.' group by auktionsid'); + + while( $inverse_summe = mysqli_fetch_row($qry) ) { + $auktionensumme += $inverse_summe[0]; + } + if ($auktionensumme == 0) { $money = $user['geld']; } else { diff --git a/ag/markt.php b/ag/markt.php index 1445c8f..7f4b7a9 100644 --- a/ag/markt.php +++ b/ag/markt.php @@ -134,10 +134,9 @@ $user = mysqli_fetch_array(db_query("SELECT geld, item_res FROM user WHERE id='$ $item_preis = ($item_preis / 100) * (100 - $user['item_res']); -$auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$user_ida['id'].' GROUP BY bieter')); -$auktionensumme = $auktionensumme['summe']; +$user_geld = getRelevantMoney($user_ida['id']); -if($user['geld']<$item_preis+$auktionensumme) { +if ($user_geld < $item_preis) { $fehler = "Sie haben nicht genug Geld!"; $link = $back; diff --git a/ag/schatz.php b/ag/schatz.php index 2b1fa5b..e6fffdf 100644 --- a/ag/schatz.php +++ b/ag/schatz.php @@ -76,9 +76,8 @@ if ($charm == 1) { } $city = mysqli_fetch_assoc(db_query('SELECT * FROM quest_ort WHERE stadt=\'' . $stadt_name . '\'')); - $auktionensumme = mysqli_fetch_assoc(db_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = ' . $user_ida['id'] . ' GROUP BY bieter')); - $auktionensumme = $auktionensumme['summe']; - + $user_geld = getRelevantMoney($user_ida['id']); + $coords2[0] = $city['x_coord']; $coords2[1] = $city['y_coord']; @@ -86,7 +85,7 @@ if ($charm == 1) { $kosten = $city['kosten']+round(log($std*0.1+1.25)*$city['kosten'],0); - if ($user_ida['geld'] < $kosten + $auktionensumme) { + if ($user_geld < $kosten) { displayErrorMessage(NULL, 'Du hast nicht genug Geld!!', displayHistoryBackLink()); semaphoreDown($ressource); // Gebe die Useraktionen wieder frei :) exit;