Files
TravianZ/GameEngine/Generator.php
Catalin Novgorodschi 9e13071fe1 Update Generator.php
2024-10-08 15:22:32 +03:00

147 lines
4.0 KiB
PHP
Executable File

<?php
#################################################################################
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
## --------------------------------------------------------------------------- ##
## Filename Generator.php ##
## License: TravianX Project ##
## Copyright: TravianX (c) 2010-2011. All rights reserved. ##
## ##
#################################################################################
class MyGenerator {
public function generateRandID(){
return md5($this->generateRandStr(16));
}
public function generateRandStr($length){
$randstr = "";
for($i = 0; $i < $length; $i++){
$randnum = random_int(0, 61);
if($randnum < 10) $randstr .= chr($randnum + 48);
else if($randnum < 36) $randstr .= chr($randnum + 55);
else $randstr .= chr($randnum + 61);
}
return $randstr;
}
public function encodeStr($str, $length) {
$encode = md5($str);
return substr($encode, 0 ,$length);
}
public function procDistanceTime($coor, $thiscoor, $ref, $mode, $vid = 0) {
global $database, $bid28, $bid14, $village;
if($vid == 0) $vid = $village->wid;
$xdistance = ABS($thiscoor['x'] - $coor['x']);
if($xdistance > WORLD_MAX) $xdistance = (2 * WORLD_MAX + 1) - $xdistance;
$ydistance = ABS($thiscoor['y'] - $coor['y']);
if($ydistance > WORLD_MAX) $ydistance = (2 * WORLD_MAX + 1) - $ydistance;
$distance = SQRT(POW($xdistance,2) + POW($ydistance,2));
if(!$mode){
if($ref == 1) $speed = 16;
else if($ref == 2) $speed = 12;
else if($ref == 3) $speed = 24;
else if($ref == 300) $speed = 5;
else $speed = 1;
}else{
$speed = $ref;
if(($tSquareLevel = $database->getFieldLevelInVillage($vid, 14)) > 0 && $distance >= TS_THRESHOLD) {
$speed *= ($bid14[$tSquareLevel]['attri'] / 100) ;
}
}
if($speed > 0) return round(($distance / $speed) * 3600 / INCREASE_SPEED);
else return round($distance * 3600 / INCREASE_SPEED);
}
public function getTimeFormat($time) {
$min = $hr = $days = 0;
while($time >= 60){
$time -= 60;
$min += 1;
}
while($min >= 60){
$min -= 60;
$hr += 1;
}
if($min < 10) $min = "0" . $min;
if($time < 10) $time = "0" . $time;
return $hr . ":" . $min . ":" . $time;
}
public function procMtime($time, $pref = 3){
/*
* $timezone = 7;
* switch($timezone) {
* case 7:
* $time -= 3600;
* break;
* }
*/
// $time += 3600*0; //Edit this yourself
$time += 0; // Edit this yourself
$today = date('d', time()) - 1;
if(date('Ymd', time()) == date('Ymd', $time)) $day = "today";
elseif($today == date('d', $time)) $day = "yesterday";
else
{
switch($pref){
case 1 :
$day = date("m/j/y", $time);
break;
case 2 :
$day = date("j/m/y", $time);
break;
case 3 :
$day = date("j.m.y", $time);
break;
default :
$day = date("y/m/j", $time);
break;
}
}
$new = date("H:i:s", $time);
if($pref == "9" || $pref == 9) return $new;
else return array($day, $new);
}
public function getBaseID($x, $y){
# broken -> return ((WORLD_MAX - $y) * (WORLD_MAX * 2 + 1)) + (WORLD_MAX + $x + 1);
# OK -> return ((WORLD_MAX - $y) * (WORLD_MAX * 2 + 1)) + (WORLD_MAX - $x + 1);
return ((WORLD_MAX - $y) * (WORLD_MAX * 2 + 1)) + (WORLD_MAX + $x + 1);
}
public function getMapCheck($wref){
return substr(md5($wref), 5, 2);
}
public function pageLoadTimeStart(){
if(isset($_SERVER["REQUEST_TIME_FLOAT"])) return $_SERVER["REQUEST_TIME_FLOAT"];
$starttime = microtime(true);
$startarray = explode(" ", $starttime);
//$starttime = $startarray[1] + $startarray[0];
return $startarray[0];
}
public function pageLoadTimeEnd(){
$endtime = microtime(true);
$endarray = explode(" ", $endtime);
//$endtime = $endarray[1] + $endarray[0];
return $endarray[0];
}
};
$generator = new MyGenerator;