diff --git a/Templates/Plus/10.tpl b/Templates/Plus/10.tpl index 4cf51161..3a40c7f5 100644 --- a/Templates/Plus/10.tpl +++ b/Templates/Plus/10.tpl @@ -14,25 +14,32 @@ if($session->sit == 0) { $uid = (int)$session->uid; + $wid = (int)$village->wid; $now = time(); $cost = 5; - // UPDATE atomic: scade gold doar dacă ai, și prelungește b2 + // UPDATE atomic: scade gold și prelungește b2 $sql = "UPDATE ".TB_PREFIX."users SET gold = gold - $cost, b2 = IF(b2 > $now, b2 + ".PLUS_PRODUCTION.", $now + ".PLUS_PRODUCTION.") - WHERE id = '$uid' AND gold >= $cost"; + WHERE id = $uid AND gold >= $cost"; - mysqli_query($database->dblink, $sql) or die(mysqli_error($database->dblink)); + mysqli_query($database->dblink, $sql); if(mysqli_affected_rows($database->dblink) == 1) { - // succes - update instant în sesiune + // update sesiune $session->gold -= $cost; + $_SESSION['gold'] = $session->gold; + $session->b2 = ($session->b2 > $now ? $session->b2 : $now) + PLUS_PRODUCTION; - // log - mysqli_query($database->dblink, "INSERT INTO ".TB_PREFIX."gold_fin_log (wid,log) VALUES ('".$village->wid."', '+25% Production: Clay')") or die(mysqli_error($database->dblink)); + // LOG pentru a2b2.php + mysqli_query($database->dblink, + "INSERT INTO ".TB_PREFIX."gold_fin_log + (uid, wid, action, gold, time, details) + VALUES ($uid, $wid, 'Use 5 gold for +25% Clay', -$cost, $now, '+25% Production: Clay')" + ); - // iinvalidează cache v9 + // curăță cache if(method_exists($database, 'clearUserCache')) { $database->clearUserCache($uid); } diff --git a/Templates/Plus/11.tpl b/Templates/Plus/11.tpl index d2c23cef..58b18523 100644 --- a/Templates/Plus/11.tpl +++ b/Templates/Plus/11.tpl @@ -14,25 +14,30 @@ if($session->sit == 0) { $uid = (int)$session->uid; + $wid = (int)$village->wid; $now = time(); $cost = 5; - // UPDATE atomic: scade gold doar dacă ai, și prelungește b3 + // UPDATE atomic $sql = "UPDATE ".TB_PREFIX."users SET gold = gold - $cost, b3 = IF(b3 > $now, b3 + ".PLUS_PRODUCTION.", $now + ".PLUS_PRODUCTION.") - WHERE id = '$uid' AND gold >= $cost"; + WHERE id = $uid AND gold >= $cost"; - mysqli_query($database->dblink, $sql) or die(mysqli_error($database->dblink)); + mysqli_query($database->dblink, $sql); if(mysqli_affected_rows($database->dblink) == 1) { - // succes - update instant în sesiune $session->gold -= $cost; + $_SESSION['gold'] = $session->gold; + $session->b3 = ($session->b3 > $now ? $session->b3 : $now) + PLUS_PRODUCTION; - // log - mysqli_query($database->dblink, "INSERT INTO ".TB_PREFIX."gold_fin_log (wid,log) VALUES ('".$village->wid."', '+25% Production: Iron')") or die(mysqli_error($database->dblink)); + // LOG pentru a2b2 + mysqli_query($database->dblink, + "INSERT INTO ".TB_PREFIX."gold_fin_log + (uid, wid, action, gold, time, details) + VALUES ($uid, $wid, 'Use 5 gold for +25% Iron', -$cost, $now, '+25% Production: Iron')" + ); - // invalidează cache v9 if(method_exists($database, 'clearUserCache')) { $database->clearUserCache($uid); } diff --git a/Templates/Plus/12.tpl b/Templates/Plus/12.tpl index 19dff784..8f0feceb 100644 --- a/Templates/Plus/12.tpl +++ b/Templates/Plus/12.tpl @@ -14,25 +14,29 @@ if($session->sit == 0) { $uid = (int)$session->uid; + $wid = (int)$village->wid; $now = time(); $cost = 5; - // UPDATE atomic: scade gold doar dacă ai, și prelungește b4 $sql = "UPDATE ".TB_PREFIX."users SET gold = gold - $cost, b4 = IF(b4 > $now, b4 + ".PLUS_PRODUCTION.", $now + ".PLUS_PRODUCTION.") - WHERE id = '$uid' AND gold >= $cost"; + WHERE id = $uid AND gold >= $cost"; - mysqli_query($database->dblink, $sql) or die(mysqli_error($database->dblink)); + mysqli_query($database->dblink, $sql); if(mysqli_affected_rows($database->dblink) == 1) { - // succes - update instant în sesiune $session->gold -= $cost; + $_SESSION['gold'] = $session->gold; + $session->b4 = ($session->b4 > $now ? $session->b4 : $now) + PLUS_PRODUCTION; - // log - mysqli_query($database->dblink, "INSERT INTO ".TB_PREFIX."gold_fin_log (wid,log) VALUES ('".$village->wid."', '+25% Production: Crop')") or die(mysqli_error($database->dblink)); + // LOG pentru a2b2 + mysqli_query($database->dblink, + "INSERT INTO ".TB_PREFIX."gold_fin_log + (uid, wid, action, gold, time, details) + VALUES ($uid, $wid, 'Use 5 gold for +25% Crop', -$cost, $now, '+25% Production: Crop')" + ); - // invalidează cache v9 if(method_exists($database, 'clearUserCache')) { $database->clearUserCache($uid); } diff --git a/Templates/Plus/15.tpl b/Templates/Plus/15.tpl index 7aa1e42f..8f8ab494 100644 --- a/Templates/Plus/15.tpl +++ b/Templates/Plus/15.tpl @@ -1,21 +1,24 @@ uid; +$wid = (int)$village->wid; +$now = time(); +$cost = 100; if($session->sit != 0) { header("Location: plus.php?id=3"); exit; } -// un singur query care face tot +// un singur query mysqli_query($database->dblink, "UPDATE ".TB_PREFIX."users - SET goldclub = 1, gold = gold - 100 - WHERE id = $uid AND gold >= 100 AND goldclub = 0" + SET goldclub = 1, gold = gold - $cost + WHERE id = $uid AND gold >= $cost AND goldclub = 0" ); if(mysqli_affected_rows($database->dblink) == 1) { - // succes – update sesiunea - $session->gold -= 100; + // update sesiune + $session->gold -= $cost; $session->goldclub = 1; $_SESSION['gold'] = $session->gold; $_SESSION['goldclub'] = 1; @@ -24,10 +27,11 @@ if(mysqli_affected_rows($database->dblink) == 1) { $database->cache->delete('user:'.$uid); } - // log + // LOG pentru a2b2.php mysqli_query($database->dblink, - "INSERT INTO ".TB_PREFIX."gold_fin_log (wid, action, time) - VALUES (0, 'Gold Club activated', ".time().")" + "INSERT INTO ".TB_PREFIX."gold_fin_log + (uid, wid, action, gold, time, details) + VALUES ($uid, $wid, 'Use 100 gold for Gold Club', -$cost, $now, 'Gold Club activated')" ); } diff --git a/Templates/Plus/7.tpl b/Templates/Plus/7.tpl index 1d06821a..c5e602ee 100644 --- a/Templates/Plus/7.tpl +++ b/Templates/Plus/7.tpl @@ -4,7 +4,7 @@ ## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ## ## --------------------------------------------------------------------------- ## ## Project: TravianZ (Refactor incremental) ## -## File: 8.tpl ## +## File: 7.tpl ## ## Description: Finish All Plus ## ## Made by: alq0rsan ## ## Improved by: evader ## @@ -12,6 +12,7 @@ ## ## ################################################################################# +// 1. termină tot - NU îi dăm parametru ca să NU facă exit înăuntru $building->finishAll('plus.php?id=3'); exit; ?> diff --git a/Templates/Plus/8.tpl b/Templates/Plus/8.tpl index b7686ae0..979dff7e 100644 --- a/Templates/Plus/8.tpl +++ b/Templates/Plus/8.tpl @@ -13,26 +13,34 @@ ################################################################################# if($session->sit == 0) { - $now = time(); - $uid = (int)$session->uid; + $now = time(); + $uid = (int)$session->uid; + $wid = (int)$village->wid; $cost = 10; - // un singur UPDATE: scade gold DOAR dacă ai destul, și prelungește plus-ul + // 1. scade gold și prelungește plus-ul ATOMIC $sql = "UPDATE ".TB_PREFIX."users SET gold = gold - $cost, plus = IF(plus > $now, plus + ".PLUS_TIME.", $now + ".PLUS_TIME.") - WHERE id = '$uid' AND gold >= $cost"; + WHERE id = $uid AND gold >= $cost"; - mysqli_query($database->dblink, $sql) or die(mysqli_error($database->dblink)); + mysqli_query($database->dblink, $sql); if(mysqli_affected_rows($database->dblink) == 1) { - // a reușit - actualizează sesiunea instant + // 2. update sesiune $session->gold -= $cost; + $_SESSION['gold'] = $session->gold; + $session->plus = ($session->plus > $now ? $session->plus : $now) + PLUS_TIME; - // log (opțional) - mysqli_query($database->dblink, "INSERT INTO ".TB_PREFIX."gold_fin_log (wid,log) VALUES ('".$village->wid."', 'Plus Account')") or die(mysqli_error($database->dblink)); - - // invalidează cache v9 + // 3. LOG pentru a2b2.php + $vname = mysqli_real_escape_string($database->dblink, $village->vname); + mysqli_query($database->dblink, + "INSERT INTO ".TB_PREFIX."gold_fin_log + (uid, wid, action, gold, time, details) + VALUES ($uid, $wid, 'Buy Travian Plus', -$cost, $now, 'Buy Travian Plus')" + ); + + // 4. curăță cache if(method_exists($database, 'clearUserCache')) { $database->clearUserCache($uid); } diff --git a/Templates/Plus/9.tpl b/Templates/Plus/9.tpl index 064af74a..e5a30ccb 100644 --- a/Templates/Plus/9.tpl +++ b/Templates/Plus/9.tpl @@ -14,25 +14,32 @@ if($session->sit == 0) { $uid = (int)$session->uid; + $wid = (int)$village->wid; $now = time(); $cost = 5; - // UPDATE atomic: scade gold DOAR dacă ai, și prelungește b1 într-o singură operație + // UPDATE atomic: scade gold și prelungește b1 $sql = "UPDATE ".TB_PREFIX."users SET gold = gold - $cost, b1 = IF(b1 > $now, b1 + ".PLUS_PRODUCTION.", $now + ".PLUS_PRODUCTION.") - WHERE id = '$uid' AND gold >= $cost"; + WHERE id = $uid AND gold >= $cost"; - mysqli_query($database->dblink, $sql) or die(mysqli_error($database->dblink)); + mysqli_query($database->dblink, $sql); if(mysqli_affected_rows($database->dblink) == 1) { - // succes - actualizează sesiunea instant (nu mai aștepți cache-ul de 10 sec) + // update sesiune instant $session->gold -= $cost; + $_SESSION['gold'] = $session->gold; + $session->b1 = ($session->b1 > $now ? $session->b1 : $now) + PLUS_PRODUCTION; - // log - mysqli_query($database->dblink, "INSERT INTO ".TB_PREFIX."gold_fin_log (wid,log) VALUES ('".$village->wid."', '+25% Production: Lumber')") or die(mysqli_error($database->dblink)); + // LOG pentru a2b2.php + mysqli_query($database->dblink, + "INSERT INTO ".TB_PREFIX."gold_fin_log + (uid, wid, action, gold, time, details) + VALUES ($uid, $wid, 'Use 5 gold for +25% Lumber', -$cost, $now, '+25% Production: Lumber')" + ); - // invalidează cache v9 + // curăță cache if(method_exists($database, 'clearUserCache')) { $database->clearUserCache($uid); } diff --git a/var/db/struct.sql b/var/db/struct.sql index b28992d1..b4a792c9 100644 --- a/var/db/struct.sql +++ b/var/db/struct.sql @@ -898,10 +898,16 @@ CREATE TABLE IF NOT EXISTS `%PREFIX%general` ( -- CREATE TABLE IF NOT EXISTS `%PREFIX%gold_fin_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `wid` int(11) NULL, - `log` text NULL, - PRIMARY KEY (`id`) + id int(11) NOT NULL AUTO_INCREMENT, + uid int(11) NOT NULL DEFAULT 0, + wid int(11) NOT NULL DEFAULT 0, + action varchar(128) NOT NULL DEFAULT '', + gold int(11) NOT NULL DEFAULT 0, + time int(11) NOT NULL DEFAULT 0, + log varchar(255) DEFAULT NULL, + PRIMARY KEY (id), + KEY uid (uid), + KEY time (time) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --