Added Donns Fix for gain mill and bakery
[travianx.git] / GameEngine / Generator.php
blobfc537793a95a949523a864eb8188f6cec2a1840f
1 <?php
3 #################################################################################
4 ## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
5 ## --------------------------------------------------------------------------- ##
6 ## Filename Generator.php ##
7 ## License: TravianX Project ##
8 ## Copyright: TravianX (c) 2010-2011. All rights reserved. ##
9 ## ##
10 #################################################################################
12 class Generator {
14 public function generateRandID(){
15 return md5($this->generateRandStr(16));
18 public function generateRandStr($length){
19 $randstr = "";
20 for($i=0; $i<$length; $i++){
21 $randnum = mt_rand(0,61);
22 if($randnum < 10){
23 $randstr .= chr($randnum+48);
24 }else if($randnum < 36){
25 $randstr .= chr($randnum+55);
26 }else{
27 $randstr .= chr($randnum+61);
30 return $randstr;
33 public function encodeStr($str,$length) {
34 $encode = md5($str);
35 return substr($encode,0,$length);
38 public function procDistanceTime($coor,$thiscoor,$ref,$mode) {
39 global $bid28,$bid14,$building;
40 $xdistance = ABS($thiscoor['x'] - $coor['x']);
41 if($xdistance > WORLD_MAX) {
42 $xdistance = (2 * WORLD_MAX + 1) - $xdistance;
44 $ydistance = ABS($thiscoor['y'] - $coor['y']);
45 if($ydistance > WORLD_MAX) {
46 $ydistance = (2 * WORLD_MAX + 1) - $ydistance;
48 $distance = SQRT(POW($xdistance,2)+POW($ydistance,2));
49 if(!$mode) {
50 if($ref == 1) {
51 $speed = 16;
53 else if($ref == 2) {
54 $speed = 12;
56 else if($ref == 3) {
57 $speed = 24;
59 else if($ref == 300) {
60 $speed = 5;
62 else {
63 $speed = 1;
66 else {
67 $speed = $ref;
68 if($building->getTypeLevel(14) != 0) {
69 $speed = $distance <= TS_THRESHOLD ? $speed : $speed * ( ( TS_THRESHOLD + ( $distance - TS_THRESHOLD ) * $bid14[$this->getsort_typeLevel(14,$resarray)]['attri'] / 100 ) / $distance ) ;
72 return round(($distance/$speed) * 3600 / INCREASE_SPEED);
75 public function getTimeFormat($time) {
76 /*if ($time%10 < 5) {
77 $time = $time-($time%10);
79 else {
80 $time = $time + (10 - $time%10);
81 }*/
82 $min = 0;
83 $hr = 0;
84 while($time >= 60) :
85 $time -= 60;
86 $min += 1;
87 endwhile;
88 while ($min > 60) :
89 $min -= 60;
90 $hr += 1;
91 endwhile;
92 if ($min < 10) {
93 $min = "0".$min;
95 if($time < 10) {
96 $time = "0".$time;
98 return $hr.":".$min.":".$time;
101 public function procMtime($time) {
102 /*$timezone = 7;
103 switch($timezone) {
104 case 7:
105 $time -= 3600;
106 break;
108 if (date('Ymd',time()) == date('Ymd',$time)) {
109 //if ((time()-$time) < 24*60*60 && (time()-$time) > 0) {
110 $day = "today";
112 else {
113 $pref = 3;
114 switch($pref) {
115 case 1:
116 $day = date("m/j/y",$time);
117 break;
118 case 2:
119 $day = date("j/m/y",$time);
120 break;
121 case 3:
122 $day = date("j.m.y",$time);
123 break;
124 default:
125 $day = date("y/m/j",$time);
126 break;
129 $new = date("H:i",$time);
130 return array($day,$new);
133 public function getBaseID($x,$y) {
134 return ((WORLD_MAX-$y) * (WORLD_MAX*2+1)) + (WORLD_MAX +$x + 1);
137 public function getMapCheck($wref) {
138 return substr(md5($wref),5,2);
141 public function pageLoadTimeStart() {
142 $starttime = microtime();
143 $startarray = explode(" ", $starttime);
144 //$starttime = $startarray[1] + $startarray[0];
145 return $startarray[0];
148 public function pageLoadTimeEnd() {
149 $endtime = microtime();
150 $endarray = explode(" ", $endtime);
151 //$endtime = $endarray[1] + $endarray[0];
152 return $endarray[0];
156 $generator = new Generator;