Files
TravianZ/create_account.php
T
Martin Ambrus f5c3e029b5 feat: access log config setting and a real get-post-cookie logger
This is a very naive and primitive logger of user requests to the game.
To be used on systems where access to webserver's log data is not
available (especially if the webserver doesn't store POST data as well).
2017-10-28 18:59:16 +02:00

572 lines
19 KiB
PHP

<?php
#################################################################################
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
## --------------------------------------------------------------------------- ##
## Project: TravianZ ##
## Version: 22.06.2015 ##
## Filename create_account.php ##
## Developed by: Dzoki , Advocaite , Donnchadh , yi12345 , Shadow , MisterX ##
## Fixed by: Shadow & MisterX - Scouting all players , artefact names. ##
## Fixed by: InCube - double troops ##
## Fixed by: ronix ##
## License: TravianZ Project ##
## Copyright: TravianZ (c) 2010-2015. All rights reserved. ##
## URLs: http://travian.shadowss.ro ##
## Source code: https://github.com/Shadowss/TravianZ ##
## ##
#################################################################################
use App\Entity\User;
use App\Utils\AccessLogger;
global $autoprefix;
// 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 ($autoprefix."GameEngine/Session.php");
include_once ($autoprefix."GameEngine/config.php");
AccessLogger::logRequest();
/**
* If user is not administrator, access is denied!
*/
if($session->access < ADMIN){
die("Access Denied: You are not Admin!");
}else{
$start = $generator->pageLoadTimeStart();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title><?php echo SERVER_NAME ?> - Account Creation</title>
<link rel="shortcut icon" href="favicon.ico"/>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script src="mt-full.js?0faab" type="text/javascript"></script>
<script src="unx.js?f4b7f" type="text/javascript"></script>
<script src="new.js?0faab" type="text/javascript"></script>
<link href="<?php echo GP_LOCATE; ?>lang/en/compact.css?f4b7f" rel="stylesheet" type="text/css" />
<link href="<?php echo GP_LOCATE; ?>lang/en/lang.css?e21d2" rel="stylesheet" type="text/css" />
<?php
if($session->gpack == null || GP_ENABLE == false) {
echo "
<link href='".GP_LOCATE."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".GP_LOCATE."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
} else {
echo "
<link href='".$session->gpack."travian.css?e21d2' rel='stylesheet' type='text/css' />
<link href='".$session->gpack."lang/en/lang.css?e21d2' rel='stylesheet' type='text/css' />";
}
?>
<script type="text/javascript">
window.addEvent('domready', start);
</script>
</head>
<body class="v35 ie ie8">
<div class="wrapper">
<img style="filter:chroma();" src="img/x.gif" id="msfilter" alt="" />
<div id="dynamic_header">
</div>
<?php include("Templates/header.tpl"); ?>
<div id="mid">
<?php include("Templates/menu.tpl"); ?>
<div id="content" class="village1">
<?php
/**
* Functions
*/
if(isset($_POST['password']) && $_POST['password'] != ""){
function generateBase($kid, $uid, $username) {
global $database, $message;
if($kid == 0) {
$kid = rand(1, 4);
} else {
$kid = (isset($_POST['kid']) ? $_POST['kid'] : '');
}
$wid = $database->generateBase($kid);
$database->setFieldTaken($wid);
$database->addVillage($wid, $uid, $username, 1);
$database->addResourceFields($wid, $database->getVillageType($wid));
$database->addUnits($wid);
$database->addTech($wid);
$database->addABTech($wid);
$database->updateUserField($uid, "access", USER, 1);
$message->sendWelcome($uid, $username);
}
/**
* Creating account & capital village - Fixed by Shadow - cata7007@gmail.com / Skype : cata7007
*/
$username = "Natars";
$password = password_hash($_POST['password'], PASSWORD_BCRYPT,['cost' => 12]);
$email = "natars@noreply.com";
$tribe = 5;
$desc = "***************************
[#natars]
***************************";
$q = "INSERT INTO " . TB_PREFIX . "users (id,username,password,access,email,timestamp,tribe,location,act,protect) VALUES (3, '$username', '$password', " . USER . ", '$email', ".time().", $tribe, '', '', 0)";
mysqli_query($GLOBALS['link'],$q);
unset($q);
$uid = $database->getUserField($username, 'id', 1);
$arrayXY=array();
$arrayXY=array
(
array(WORLD_MAX, WORLD_MAX),
array(WORLD_MAX, -WORLD_MAX),
array(-WORLD_MAX, -WORLD_MAX),
array(WORLD_MAX-1, WORLD_MAX),
array(WORLD_MAX, WORLD_MAX-1),
array(-WORLD_MAX, WORLD_MAX-1),
array(WORLD_MAX-1, -WORLD_MAX),
array(WORLD_MAX-1, WORLD_MAX-1),
array(WORLD_MAX, -WORLD_MAX+1),
array(WORLD_MAX-1, -WORLD_MAX+1),
array(-WORLD_MAX+1, -WORLD_MAX+1),
array(WORLD_MAX-2, WORLD_MAX),
array(WORLD_MAX-2, -WORLD_MAX),
array(WORLD_MAX-2, WORLD_MAX-1),
array(WORLD_MAX-1, WORLD_MAX-2),
array(-WORLD_MAX+2, WORLD_MAX),
array(-WORLD_MAX+2, WORLD_MAX-1),
array(-WORLD_MAX+2, -WORLD_MAX+2)
);
$status=0;
$i=0;
while ($i<=17) {
$wid = $database->getVilWref($arrayXY[$i][0],$arrayXY[$i][1]);
$status = $database->getVillageState($wid);
$i++;
if ($status==0) break;
}
if($status != 0) { //have taken then random
generateBase(0, $uid, $username);
$status = 1;
}
if($status == 0) {
$database->setFieldTaken($wid);
$database->addVillage($wid, $uid, $username, 1);
$database->addResourceFields($wid, $database->getVillageType($wid));
$database->addUnits($wid);
$database->addTech($wid);
$database->addABTech($wid);
$database->updateUserField($uid, "access", USER, 1);
}
$wid = mysqli_fetch_assoc(mysqli_query($GLOBALS['link'],"SELECT * FROM " . TB_PREFIX . "vdata WHERE owner = ".(int) $uid));
$q = "UPDATE " . TB_PREFIX . "vdata SET pop = 834 WHERE owner = ".(int) $uid;
mysqli_query($GLOBALS['link'],$q) or die(mysqli_error($database->dblink));
$q2 = "UPDATE " . TB_PREFIX . "users SET access = 2 WHERE id = ".(int) $uid;
mysqli_query($GLOBALS['link'],$q2) or die(mysqli_error($database->dblink));
if(SPEED > 3) {
$speed = 5;
} else {
$speed = SPEED;
}
$q3 = "UPDATE " . TB_PREFIX . "units SET u41 = " . (64700 * $speed) . ", u42 = " . (295231 * $speed) . ", u43 = " . (180747 * $speed) . ", u44 = " . (20000 * $speed) . ", u45 = " . (364401 * $speed) . ", u46 = " . (217602 * $speed) . ", u47 = " . (2034 * $speed) . ", u48 = " . (1040 * $speed) . " , u49 = " . (1 * $speed) . ", u50 = " . (9 * $speed) . " WHERE vref = " . (int) $wid['wref'] . "";
mysqli_query($GLOBALS['link'],$q3) or die(mysqli_error($database->dblink));
$q4 = "UPDATE " . TB_PREFIX . "users SET desc2 = '$desc' WHERE id = ".(int) $uid;
mysqli_query($GLOBALS['link'],$q4) or die(mysqli_error($database->dblink));
/**
* SCOUTING ALL PLAYERS FIX BY MisterX
*/
$natar = mysqli_fetch_array(mysqli_query($GLOBALS['link'],"SELECT * FROM " . TB_PREFIX . "vdata WHERE owner = ".(int) $uid." and capital = 1"));
$multiplier = NATARS_UNITS;
$q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE capital = '1' and owner > '5'";
$array = $database->query_return($q);
$sendspytroops = 1500 * $multiplier;
foreach($array as $vill){
$ref = $database->addAttack($natar['wref'], 0, 0, 0, $sendspytroops, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 0);
$database->addMovement(3, $natar['wref'], $vill['wref'], $ref, time(), time()+10000);
}
/**
* SMALL ARTEFACTS
*/
function Artefact($uid, $type, $size, $art_name, $village_name, $desc, $effect, $img) {
global $database;
$kid = rand(1, 4);
$wid = $database->generateBase($kid, 1);
$database->addArtefact($wid, $uid, $type, $size, $art_name, $desc, $effect, $img);
$database->setFieldTaken($wid);
$database->addVillage($wid, $uid, $village_name, '0');
$database->addResourceFields($wid, $database->getVillageType($wid));
$database->addUnits($wid);
$database->addTech($wid);
$database->addABTech($wid);
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "vdata SET pop = 163 WHERE wref = ".(int) $wid);
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "vdata SET name = '$village_name' WHERE wref = ".(int) $wid);
if(SPEED > 3) {
$speed = 5;
} else {
$speed = SPEED;
}
if($size == 1) {
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "units SET u41 = " . (rand(1000, 2000) * $speed) . ", u42 = " . (rand(1500, 2000) * $speed) . ", u43 = " . (rand(2300, 2800) * $speed) . ", u44 = " . (rand(25, 75) * $speed) . ", u45 = " . (rand(1200, 1900) * $speed) . ", u46 = " . (rand(1500, 2000) * $speed) . ", u47 = " . (rand(500, 900) * $speed) . ", u48 = " . (rand(100, 300) * $speed) . " , u49 = " . (rand(1, 5) * $speed) . ", u50 = " . (rand(1, 5) * $speed) . " WHERE vref = " . (int) $wid . "");
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "fdata SET f22t = 27, f22 = 10, f28t = 25, f28 = 10, f19t = 23, f19 = 10, f32t = 23, f32 = 10 WHERE vref = ".(int) $wid);
} elseif($size == 2) {
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "units SET u41 = " . (rand(2000, 4000) * $speed) . ", u42 = " . (rand(3000, 4000) * $speed) . ", u43 = " . (rand(4600, 5600) * $speed) . ", u44 = " . (rand(50, 150) * $speed) . ", u45 = " . (rand(2400, 3800) * $speed) . ", u46 = " . (rand(3000, 4000) * $speed) . ", u47 = " . (rand(1000, 1800) * $speed) . ", u48 = " . (rand(200, 600) * $speed) . " , u49 = " . (rand(2, 10) * $speed) . ", u50 = " . (rand(2, 10) * $speed) . " WHERE vref = " . (int) $wid . "");
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "fdata SET f22t = 27, f22 = 10, f28t = 25, f28 = 20, f19t = 23, f19 = 10, f32t = 23, f32 = 10 WHERE vref = ".(int) $wid);
} elseif($size == 3) {
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "units SET u41 = " . (rand(4000, 8000) * $speed) . ", u42 = " . (rand(6000, 8000) * $speed) . ", u43 = " . (rand(9200, 11200) * $speed) . ", u44 = " . (rand(100, 300) * $speed) . ", u45 = " . (rand(4800, 7600) * $speed) . ", u46 = " . (rand(6000, 8000) * $speed) . ", u47 = " . (rand(2000, 3600) * $speed) . ", u48 = " . (rand(400, 1200) * $speed) . " , u49 = " . (rand(4, 20) * $speed) . ", u50 = " . (rand(4, 20) * $speed) . " WHERE vref = " . (int) $wid . "");
mysqli_query($GLOBALS['link'],"UPDATE " . TB_PREFIX . "fdata SET f22t = 27, f22 = 10, f28t = 25, f28 = 20, f19t = 23, f19 = 10, f32t = 23, f32 = 10 WHERE vref = ".(int) $wid);
}
}
/**
* THE ARCHITECTS
*/
$desc = ARCHITECTS_DESC;
$vname = ARCHITECTS_SMALLVILLAGE;
$effect = '(4x)';
for($i = 2; $i < 6; $i++) {
Artefact($uid, 1, 1, ARCHITECTS_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type1.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = ARCHITECTS_LARGEVILLAGE;
$effect = '(3x)';
for($i = 2; $i < 4; $i++) {
Artefact($uid, 1, 2, ARCHITECTS_LARGE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type1.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = ARCHITECTS_UNIQUEVILLAGE;
$effect = '(5x)';
for($i = 2; $i < 1; $i++) {
Artefact($uid, 1, 3, ARCHITECTS_UNIQUE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type1.gif');
}
/**
* MILITARY HASTE
*/
$desc = HASTE_DESC;
unset($i);
unset($vname);
unset($effect);
$vname = HASTE_SMALLVILLAGE;
$effect = '(2x)';
for($i = 2; $i < 6; $i++) {
Artefact($uid, 2, 1, HASTE_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type2.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = HASTE_LARGEVILLAGE;
$effect = '(1.5x)';
for($i = 2; $i < 4; $i++) {
Artefact($uid, 2, 2, HASTE_LARGE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type2.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = HASTE_UNIQUEVILLAGE;
$effect = '(3x)';
for($i = 2; $i < 1; $i++) {
Artefact($uid, 2, 3, HASTE_UNIQUE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type2.gif');
}
/**
* HAWK'S EYESIGHT
*/
$desc = EYESIGHT_DESC;
unset($i);
unset($vname);
unset($effect);
$vname = EYESIGHT_SMALLVILLAGE;
$effect = '(5x)';
for($i = 2; $i < 6; $i++) {
Artefact($uid, 3, 1, EYESIGHT_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type3.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = EYESIGHT_LARGEVILLAGE;
$effect = '(3x)';
for($i = 2; $i < 4; $i++) {
Artefact($uid, 3, 2, EYESIGHT_LARGE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type3.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = EYESIGHT_UNIQUEVILLAGE;
$effect = '(10x)';
for($i = 2; $i < 1; $i++) {
Artefact($uid, 3, 3, EYESIGHT_UNIQUE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type3.gif');
}
/**
* THE DIET
*/
$desc = DIET_DESC;
unset($i);
unset($vname);
unset($effect);
$vname = DIET_SMALLVILLAGE;
$effect = '(50%)';
for($i = 2; $i < 6; $i++) {
Artefact($uid, 4, 1, DIET_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type4.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = DIET_LARGEVILLAGE;
$effect = '(25%)';
for($i = 2; $i < 4; $i++) {
Artefact($uid, 4, 2, DIET_LARGE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type4.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = DIET_UNIQUEVILLAGE;
$effect = '(50%)';
for($i = 2; $i < 1; $i++) {
Artefact($uid, 4, 3, DIET_UNIQUE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type4.gif');
}
/**
* ACADEMIC ADVANCEMENT
*/
$desc = ACADEMIC_DESC;
unset($i);
unset($vname);
unset($effect);
$vname = ACADEMIC_SMALLVILLAGE;
$effect = '(50%)';
for($i = 2; $i < 6; $i++) {
Artefact($uid, 5, 1, ACADEMIC_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type5.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = ACADEMIC_LARGEVILLAGE;
$effect = '(25%)';
for($i = 2; $i < 4; $i++) {
Artefact($uid, 5, 2, ACADEMIC_LARGE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type5.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = ACADEMIC_UNIQUEVILLAGE;
$effect = '(50%)';
for($i = 2; $i < 1; $i++) {
Artefact($uid, 5, 3, ACADEMIC_UNIQUE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type5.gif');
}
/**
* STORAGE MASTER PLAN
*/
$desc = STORAGE_DESC;
unset($i);
unset($vname);
unset($effect);;
$vname = STORAGE_SMALLVILLAGE;
$effect = '(GG&GW)';
for($i = 2; $i < 6; $i++) {
Artefact($uid, 6, 1, STORAGE_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type6.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = STORAGE_LARGEVILLAGE;
$effect = '(GG&GW)';
for($i = 2; $i < 4; $i++) {
Artefact($uid, 6, 2, STORAGE_LARGE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type6.gif');
}
/**
* RIVAL'S CONFUSION
*/
$desc = CONFUSION_DESC;
unset($i);
unset($vname);
unset($effect);
$vname = CONFUSION_SMALLVILLAGE;
$effect = '(200)';
for($i = 2; $i < 6; $i++) {
Artefact($uid, 7, 1, CONFUSION_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type7.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = CONFUSION_LARGEVILLAGE;
$effect = '(100)';
for($i = 2; $i < 4; $i++) {
Artefact($uid, 7, 2, CONFUSION_LARGE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type7.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = CONFUSION_UNIQUEVILLAGE;
$effect = '(500)';
for($i = 2; $i < 1; $i++) {
Artefact($uid, 7, 3, CONFUSION_UNIQUE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type7.gif');
}
/**
* ARTEFACT OF THE FOOL
*/
$desc = FOOL_DESC;
unset($i);
unset($vname);
unset($effect);
$vname = FOOL_SMALLVILLAGE;
$effect = '';
for($i = 2; $i < 5; $i++) {
Artefact($uid, 8, 1, FOOL_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type8.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = FOOL_SMALLVILLAGE;
$effect = '';
for($i = 2; $i < 5; $i++) {
Artefact($uid, 8, 2, FOOL_SMALL, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type8.gif');
}
unset($i);
unset($vname);
unset($effect);
$vname = FOOL_UNIQUEVILLAGE;
$effect = '';
for($i = 2; $i < 1; $i++) {
Artefact($uid, 8, 3, FOOL_UNIQUE, '' . $vname . '', '' . $desc . '', '' . $effect . '', 'type8.gif');
}
$myFile = "Templates/text.tpl";
$fh = fopen($myFile, 'w') or die("<br/><br/><br/>Can't open file: templates/text.tpl");
$text = file_get_contents("Templates/text_format.tpl");
$text = preg_replace("'%TEKST%'",ARTEFACT ,$text);
fwrite($fh, $text);
$query="SELECT * FROM ".TB_PREFIX."users ORDER BY id DESC";
$result=mysqli_query($GLOBALS['link'],$query) or die (mysqli_error($database->dblink));
for ($i=0; $row=mysqli_fetch_row($result); $i++) {
$updateattquery = mysqli_query($GLOBALS['link'],"UPDATE ".TB_PREFIX."users SET ok = '1' WHERE id = '".$row[0]."'")
or die(mysqli_error($database->dblink));
}
echo "Done";
}elseif(User::exists($database,'Natars')) {
?>
<p>
<span class="c2">Error: Natar account already exist</span>
</p>
<?php
}else {
?>
<form action="create_account.php" method="post">
<p>
<span>Choose Password</span>
</p>
<table>
<tr><td>Password:</td><td><input type="password" name="password" value="" /></td></tr>
</table>
<div style="text-align: center">
<input type="submit" name="Submit" id="Submit" value="Submit" /></div>
</form>
<?php } ?>
</div>
<br /><br /><br /><br /><div id="side_info">
<?php
include("Templates/multivillage.tpl");
include("Templates/quest.tpl");
include("Templates/news.tpl");
include("Templates/links.tpl");
?>
</div>
<div class="clear"></div>
</div>
<div class="footer-stopper"></div>
<div class="clear"></div>
<?php
include("Templates/footer.tpl");
include("Templates/res.tpl")
?>
<div id="stime">
<div id="ltime">
<div id="ltimeWrap">
<?php echo CALCULATED_IN;?> <b><?php
echo round(($generator->pageLoadTimeEnd()-$start)*1000);
?></b> ms
<br /><?php echo SEVER_TIME;?> <span id="tp1" class="b"><?php echo date('H:i:s'); ?></span>
</div>
</div>
</div>
<div id="ce"></div>
</body>
</html>
<?php
}
?>