mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-07-21 03:56:08 +00:00
Added Account transactions with History
Added Account transactions with History
This commit is contained in:
@@ -1,51 +1,78 @@
|
||||
<?php
|
||||
|
||||
#################################################################################
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Filename cp.php ##
|
||||
## Developed by: aggenkeech ##
|
||||
## License: TravianZ Project ##
|
||||
## Copyright: TravianZ (c) 2010-2025. All rights reserved. ##
|
||||
## ##
|
||||
## Project: TravianZ (Refactor incremental) ##
|
||||
## File: additional.tpl ##
|
||||
## Description: Implement Gold Log ##
|
||||
## Made by: Shadow ##
|
||||
## License: TravianZ Project ##
|
||||
## Copyright: TravianZ (c) 2010-2026. All rights reserved. ##
|
||||
## URLs: https://travianz.org ##
|
||||
## https://github.com/Shadowss/TravianZ ##
|
||||
## ##
|
||||
#################################################################################
|
||||
|
||||
include_once("../../config.php");
|
||||
include_once("../../Database.php");
|
||||
|
||||
if (!isset($_SESSION)) session_start();
|
||||
if($_SESSION['access'] < 9) die("Access Denied: You are not Admin!");
|
||||
if(($_SESSION['access']?? 0) < ADMIN) die("Access Denied: You are not Admin!");
|
||||
|
||||
$id = (int) $_POST['id'];
|
||||
$admid = $_POST['admid'];
|
||||
// --- INPUT ---
|
||||
$id = (int)($_POST['id']?? 0);
|
||||
$admid = (int)($_POST['admid']?? 0);
|
||||
$access = (int)($_POST['access']?? 2);
|
||||
$newGold = (int)($_POST['gold']?? 0);
|
||||
$sit1 = (int)($_POST['sitter1']?? 0);
|
||||
$sit2 = (int)($_POST['sitter2']?? 0);
|
||||
$protect = time() + ((int)($_POST['protect']?? 0) * 86400);
|
||||
$cp = (int)($_POST['cp']?? 0);
|
||||
$ap = (int)($_POST['off']?? 0);
|
||||
$dp = (int)($_POST['def']?? 0);
|
||||
$rr = (int)($_POST['res']?? 0);
|
||||
$apall = (int)($_POST['ooff']?? 0);
|
||||
$dpall = (int)($_POST['odef']?? 0);
|
||||
|
||||
//$sql = mysqli_query($GLOBALS["link"], "SELECT * FROM ".TB_PREFIX."users WHERE id = ".$admid."");
|
||||
//$access = mysqli_fetch_array($sql);
|
||||
//$sessionaccess = $access['access'];
|
||||
if (!isset($_SESSION)) {
|
||||
session_start();
|
||||
if($id <= 0) die("Invalid user");
|
||||
|
||||
// --- GOLD LOGIC ---
|
||||
$oldGold = (int)$database->getUserField($id, 'gold', 1);
|
||||
$diffGold = $newGold - $oldGold;
|
||||
|
||||
// --- UPDATE USER (prepared-style, fără escape manual) ---
|
||||
$database->query("
|
||||
UPDATE ".TB_PREFIX."users SET
|
||||
access = $access,
|
||||
gold = $newGold,
|
||||
sit1 = $sit1,
|
||||
sit2 = $sit2,
|
||||
protect = $protect,
|
||||
cp = $cp,
|
||||
ap = $ap,
|
||||
dp = $dp,
|
||||
RR = $rr,
|
||||
apall = $apall,
|
||||
dpall = $dpall
|
||||
WHERE id = $id
|
||||
");
|
||||
|
||||
// --- LOG GOLD dacă s-a modificat ---
|
||||
if($diffGold!== 0){
|
||||
$vill = $database->getVillagesID($id);
|
||||
$wid = $vill[0]?? 0;
|
||||
$action = $diffGold > 0? 'Admin added Gold' : 'Admin removed Gold';
|
||||
$details = 'Admin adjustment by '.($session->username?? 'Admin');
|
||||
$now = time();
|
||||
|
||||
$database->query("
|
||||
INSERT INTO ".TB_PREFIX."gold_fin_log
|
||||
(wid, uid, action, gold, time, details)
|
||||
VALUES ($wid, $id, '$action', $diffGold, $now, '$details')
|
||||
");
|
||||
}
|
||||
|
||||
if($_SESSION['access'] != ADMIN) die("<h1><font color=\"red\">Access Denied: You are not Admin!</font></h1>");
|
||||
|
||||
foreach ($_POST as $key => $value) {
|
||||
$_POST[$key] = $database->escape($value);
|
||||
}
|
||||
|
||||
$access = (int) $_POST['access'];
|
||||
$dur = (int) $_POST['protect'] * 86400;
|
||||
$protection = (time() + $dur);
|
||||
|
||||
mysqli_query($GLOBALS["link"], "UPDATE ".TB_PREFIX."users SET
|
||||
access = ".$access.",
|
||||
gold = ".(int) $_POST['gold'].",
|
||||
sit1 = '".(int) $_POST['sitter1']."',
|
||||
sit2 = '".(int) $_POST['sitter2']."',
|
||||
protect = '".$protection."',
|
||||
cp = ".(int) $_POST['cp'].",
|
||||
ap = '".(int) $_POST['off']."',
|
||||
dp = '".(int) $_POST['def']."',
|
||||
RR = '".(int) $_POST['res']."',
|
||||
apall = '".(int) $_POST['ooff']."',
|
||||
dpall = '".(int) $_POST['odef']."'
|
||||
WHERE id = ".$id) or die(mysqli_error($database->dblink));
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=player&uid=".$id."");
|
||||
?>
|
||||
// --- REDIRECT ---
|
||||
header("Location:../../../Admin/admin.php?p=player&uid=".$id);
|
||||
exit;
|
||||
@@ -2,8 +2,9 @@
|
||||
#################################################################################
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Filename gold.php ##
|
||||
## Filename gold.php ##
|
||||
## Developed by: aggenkeech ##
|
||||
## Refactored by: Shadow ##
|
||||
## License: TravianZ Project ##
|
||||
## Copyright: TravianZ (c) 2010-2025. All rights reserved. ##
|
||||
## ##
|
||||
@@ -14,28 +15,47 @@ include_once("../../config.php");
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
// go max 5 levels up - we don't have folders that go deeper than that
|
||||
// autoloader
|
||||
$autoprefix = '';
|
||||
for ($i = 0; $i < 5; $i++) {
|
||||
$autoprefix = str_repeat('../', $i);
|
||||
if (file_exists($autoprefix.'autoloader.php')) {
|
||||
// we have our path, let's leave
|
||||
break;
|
||||
}
|
||||
if (file_exists($autoprefix.'autoloader.php')) break;
|
||||
}
|
||||
|
||||
include_once($autoprefix."GameEngine/Database.php");
|
||||
|
||||
$session = (int) $_POST['admid'];
|
||||
$admid = (int)($_POST['admid'] ?? 0);
|
||||
$amount = (int)($_POST['gold'] ?? 0);
|
||||
|
||||
$sql = mysqli_query($GLOBALS["link"], "SELECT * FROM ".TB_PREFIX."users WHERE id = ".$session."");
|
||||
$access = mysqli_fetch_array($sql);
|
||||
$sessionaccess = $access['access'];
|
||||
if($amount == 0){
|
||||
header("Location: ../../../Admin/admin.php?p=gold");
|
||||
exit;
|
||||
}
|
||||
|
||||
if($sessionaccess != 9) die("<h1><font color=\"red\">Access Denied: You are not Admin!</font></h1>");
|
||||
// verificare admin
|
||||
$check = mysqli_query($GLOBALS["link"], "SELECT access, username FROM ".TB_PREFIX."users WHERE id = $admid");
|
||||
$acc = mysqli_fetch_assoc($check);
|
||||
if(!$acc || $acc['access'] != 9) die("<h1><font color=\"red\">Access Denied</font></h1>");
|
||||
|
||||
$q = "UPDATE ".TB_PREFIX."users SET gold = gold + ".(int) $_POST['gold']." WHERE id != '0'";
|
||||
mysqli_query($GLOBALS["link"], $q) or die(mysqli_error($database->dblink));
|
||||
// 1. UPDATE gold la toți (id > 3 = sare peste Natars etc)
|
||||
mysqli_query($GLOBALS["link"], "UPDATE ".TB_PREFIX."users SET gold = gold + $amount WHERE id > 3") or die(mysqli_error($GLOBALS["link"]));
|
||||
|
||||
// 2. LOG în admin_log
|
||||
mysqli_query($GLOBALS["link"], "INSERT INTO ".TB_PREFIX."admin_log VALUES (0, $admid, 'Added <b>$amount</b> gold to ALL players', ".time().")");
|
||||
|
||||
// 3. LOG în gold_fin_log pentru fiecare jucător
|
||||
$users = mysqli_query($GLOBALS["link"], "SELECT id FROM ".TB_PREFIX."users WHERE id > 3");
|
||||
$now = time();
|
||||
$adminName = $acc['username'];
|
||||
$details = mysqli_real_escape_string($GLOBALS["link"], 'Mass gift by '.$adminName);
|
||||
|
||||
while($u = mysqli_fetch_assoc($users)){
|
||||
$uid = (int)$u['id'];
|
||||
$vill = mysqli_fetch_assoc(mysqli_query($GLOBALS["link"], "SELECT wref FROM ".TB_PREFIX."vdata WHERE owner = $uid LIMIT 1"));
|
||||
$wid = (int)($vill['wref'] ?? 0);
|
||||
|
||||
mysqli_query($GLOBALS["link"], "INSERT INTO ".TB_PREFIX."gold_fin_log (wid, uid, action, gold, time, details) VALUES ($wid, $uid, 'Admin added Gold', $amount, $now, '$details')");
|
||||
}
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=gold&g");
|
||||
exit;
|
||||
?>
|
||||
@@ -1,39 +1,47 @@
|
||||
<?php
|
||||
#################################################################################
|
||||
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
||||
## --------------------------------------------------------------------------- ##
|
||||
## Filename gold_1.php ##
|
||||
## Filename gold_1.php ##
|
||||
## Developed by: aggenkeech ##
|
||||
## License: TravianZ Project ##
|
||||
## Copyright: TravianZ (c) 2010-2025. All rights reserved. ##
|
||||
## ##
|
||||
## Refactored by: Shadow ##
|
||||
#################################################################################
|
||||
if (!isset($_SESSION)) session_start();
|
||||
if($_SESSION['access'] < 9) die("Access Denied: You are not Admin!");
|
||||
include_once("../../config.php");
|
||||
|
||||
// go max 5 levels up - we don't have folders that go deeper than that
|
||||
$autoprefix = '';
|
||||
for ($i = 0; $i < 5; $i++) {
|
||||
$autoprefix = str_repeat('../', $i);
|
||||
if (file_exists($autoprefix.'autoloader.php')) {
|
||||
// we have our path, let's leave
|
||||
break;
|
||||
}
|
||||
include_once("../../config.php");
|
||||
include_once("../../Database.php");
|
||||
|
||||
$admid = (int)($_POST['admid'] ?? 0);
|
||||
$id = (int)($_POST['id'] ?? 0);
|
||||
$amount = (int)($_POST['gold'] ?? 0);
|
||||
|
||||
if($id <= 0 || $amount == 0){
|
||||
header("Location: ../../../Admin/admin.php?p=usergold");
|
||||
exit;
|
||||
}
|
||||
|
||||
include_once($autoprefix."GameEngine/Database.php");
|
||||
// verificare admin
|
||||
$check = mysqli_query($GLOBALS["link"], "SELECT access, username FROM ".TB_PREFIX."users WHERE id = $admid");
|
||||
$acc = mysqli_fetch_assoc($check);
|
||||
if(!$acc || $acc['access'] != 9) die("<h1><font color=\"red\">Access Denied</font></h1>");
|
||||
|
||||
$session = (int) $_POST['admid'];
|
||||
$id = (int) $_POST['id'];
|
||||
// 1. UPDATE GOLD
|
||||
mysqli_query($GLOBALS["link"], "UPDATE ".TB_PREFIX."users SET gold = gold + $amount WHERE id = $id") or die(mysqli_error($GLOBALS["link"]));
|
||||
|
||||
$sql = mysqli_query($GLOBALS["link"], "SELECT * FROM ".TB_PREFIX."users WHERE id = ".$session."");
|
||||
$access = mysqli_fetch_array($sql);
|
||||
$sessionaccess = $access['access'];
|
||||
// 2. ADMIN LOG
|
||||
$name = mysqli_fetch_assoc(mysqli_query($GLOBALS["link"], "SELECT username FROM ".TB_PREFIX."users WHERE id = $id"))['username'];
|
||||
$name = mysqli_real_escape_string($GLOBALS["link"], $name);
|
||||
mysqli_query($GLOBALS["link"], "INSERT INTO ".TB_PREFIX."admin_log VALUES (0, $admid, 'Added <b>$amount</b> gold to user <a href=\'admin.php?p=player&uid=$id\'>$name</a>', ".time().")");
|
||||
|
||||
if($sessionaccess != 9) die("<h1><font color=\"red\">Access Denied: You are not Admin!</font></h1>");
|
||||
// 3. GOLD_FIN_LOG (pentru a2b2.php)
|
||||
$vill = mysqli_fetch_assoc(mysqli_query($GLOBALS["link"], "SELECT wref FROM ".TB_PREFIX."vdata WHERE owner = $id LIMIT 1"));
|
||||
$wid = (int)($vill['wref'] ?? 0);
|
||||
$action = $amount > 0 ? 'Admin added Gold' : 'Admin removed Gold';
|
||||
$adminName = $acc['username'];
|
||||
$details = mysqli_real_escape_string($GLOBALS["link"], 'Admin gift by '.$adminName);
|
||||
$now = time();
|
||||
|
||||
mysqli_query($GLOBALS["link"], "UPDATE ".TB_PREFIX."users SET gold = gold + ".(int) $_POST['gold']." WHERE id = ".$id."");
|
||||
mysqli_query($GLOBALS["link"], "INSERT INTO ".TB_PREFIX."gold_fin_log (wid, uid, action, gold, time, details) VALUES ($wid, $id, '$action', $amount, $now, '$details')") or die(mysqli_error($GLOBALS["link"]));
|
||||
|
||||
header("Location: ../../../Admin/admin.php?p=usergold&g");
|
||||
exit;
|
||||
?>
|
||||
+10
-8
@@ -1748,16 +1748,18 @@ class Building {
|
||||
|
||||
// gold update
|
||||
if ($countMasterGold || $countPlus2Gold) {
|
||||
$spent = ($countMasterGold && $countPlus2Gold) ? 3 : 2;
|
||||
$newgold = $session->gold - $spent;
|
||||
|
||||
$newgold = $session->gold -
|
||||
(($countMasterGold && $countPlus2Gold) ? 3 : 2);
|
||||
$database->updateUserField($session->uid, 'gold', $newgold, 1);
|
||||
|
||||
$database->updateUserField(
|
||||
$session->uid,
|
||||
'gold',
|
||||
$newgold,
|
||||
1
|
||||
);
|
||||
// LOG complet
|
||||
$database->query("INSERT INTO ".TB_PREFIX."gold_fin_log
|
||||
(wid, uid, action, gold, time, details)
|
||||
VALUES (".$village->wid.", ".$session->uid.", 'Finish all constructions', -".$spent.", ".time().", 'Finish construction and research with gold')");
|
||||
|
||||
$session->gold = $newgold;
|
||||
$_SESSION['gold'] = $newgold;
|
||||
}
|
||||
|
||||
// un singur query
|
||||
|
||||
Reference in New Issue
Block a user