source: trunk/test_server/functiondata.php@ 646

Last change on this file since 646 was 646, checked in by barny, 15 years ago

*Opraveno Raspora pro gegistraci na test server

File size: 27.5 KB
Line 
1<?php
2//RoSPORA V1.6 RC1 PHP&MYSQL DATA FILE
3require_once( 'config.php' );
4require_once( 'languages.php' );
5//Map info
6$maps_a = Array(
7 0 => 'Azeroth',
8 1 => 'Kalimdor',
9 2 => 'UnderMine',
10 13 => 'Test zone',
11 17 => 'Kalidar',
12 30 => 'Alterac Valley',
13 33 => 'Shadowfang Keep Instance',
14 34 => 'The Stockade Instance',
15 35 => 'Stormwind Prizon',
16 36 => 'Deadmines Instance',
17 37 => 'Plains of Snow',
18 43 => 'Wailing Caverns Instance',
19 44 => 'Monastery Interior',
20 47 => 'Razorfen Kraul Instance',
21 48 => 'Blackfathom Deeps Instance',
22 70 => 'Uldaman Instance',
23 90 => 'Gnomeregan Instance',
24 109 => 'Sunken Temple Instance',
25 129 => 'Razorfen Downs Instance',
26 530 => 'Outland',
27 169 => 'Emerald Forest',
28 189 => 'Scarlet Monastery Instance',
29 209 => 'Zul\'Farrak Instance',
30 229 => 'Blackrock Spire Instance',
31 230 => 'Blackrock Depths Instance',
32 249 => 'Onyxias Lair Instance',
33 269 => 'Caverns of Time',
34 289 => 'Scholomance Instance',
35 309 => 'Zul\'Gurub Instance',
36 329 => 'Stratholme Instance',
37 349 => 'Maraudon Instance',
38 369 => 'Deeprun Tram',
39 389 => 'Ragefire Chasm Instance',
40 409 => 'The Molten Core Instance',
41 429 => 'Dire Maul Instance',
42 449 => 'Alliance PVP Barracks',
43 450 => 'Horde PVP Barracks',
44 451 => 'Development Land',
45 469 => 'Blackwing Lair Instance',
46 489 => 'Warsong Gulch',
47 509 => 'Ruins of AhnQiraj Instance',
48 529 => 'Arathi Basin',
49 531 => 'Temple of AhnQiraj Instance',
50 533 => 'Naxxramas Instance',
51 532 => 'Karazahn',
52 534 => 'Hyjal Past',
53 540 => 'Shattered Halls Instance',
54 542 => 'Blood Furnace Instance',
55 543 => 'Hellfire Ramparts Instance',
56 544 => 'Magtheridons Lair Instance',
57 545 => 'Steamvault Instance',
58 546 => 'Underbog Instance',
59 547 => 'Slave Pens Instance',
60 548 => 'Coilfang Resevoir Instance',
61 550 => 'Tempest Keep',
62 552 => 'Tempest Keep',
63 553 => 'Tempest Keep',
64 554 => 'Tempest Keep',
65 555 => 'Auchindoun',
66 556 => 'Auchindoun',
67 557 => 'Auchindoun',
68 558 => 'Auchindoun',
69 559 => 'Nagrand Arena',
70 560 => 'Hillsbrad Past',
71 562 => 'Blades Edge Arena',
72 564 => 'Black Temple',
73 565 => 'Gruuls Lair',
74 566 => 'Netherstorm Arena',
75 568 => 'Zul\'Aman',
76);
77//Zone info
78$zone = Array(
79 0 => Array(
80 Array(700,10,1244,1873,'Undercity',1497),
81 Array(-840,-1330,-5050,-4560,'Ironforge',1537),
82 Array(1190,200,-9074,-8280,'Stormwind City',1519),
83 Array(-2170,-4400,-7348,-6006,'Badlands',3),
84 Array(-500,-4400,-4485,-2367,'Wetlands',11),
85 Array(2220,-2250,-15422,-11299,'Stranglethorn Vale',33),
86 Array(-1724,-3540,-9918,-8667,'Redridge Mountains',44),
87 Array(-2480,-4400,-6006,-4485,'Loch Modan',38),
88 Array(662,-1638,-11299,-9990,'Duskwood',10),
89 Array(-1638,-2344,-11299,-9918,'Deadwind Pass',41),
90 Array(834,-1724,-9990,-8526,'Elwynn Forest',12),
91 Array(-500,-3100,-8667,-7348,'Burning Steppes',46),
92 Array(-608,-2170,-7348,-6285,'Searing Gorge',51),
93 Array(2000,-2480,-6612,-4485,'Dun Morogh',1),
94 Array(-1575,-5425,-432,805,'The Hinterlands',47),
95 Array(3016,662,-11299,-9400,'Westfall',40),
96 Array(600,-1575,-1874,220,'Hillsbrad Foothills',267),
97 Array(-2725,-6056,805,3800,'Eastern Plaguelands',139),
98 Array(-850,-2725,805,3400,'Western Plaguelands',28),
99 Array(2200,600,-900,1525,'Silverpine Forest',130),
100 Array(2200,-850,1525,3400,'Tirisfal Glades',85),
101 Array(-2250,-3520,-12800,-10666,'Blasted Lands',4),
102 Array(-2344,-4516,-11070,-9600,'Swamp of Sorrows',8),
103 Array(-1575,-3900,-2367,-432,'Arathi Highlands',45),
104 Array(600,-1575,220,1525,'Alterac Mountains',36),
105 ),
106 1 => Array(
107 Array(2698,2030,9575,10267,'Darnassus',1657),
108 Array(326,-360,-1490,-910,'Thunder Bluff',1638),
109 Array(-3849,-4809,1387,2222,'Orgrimmar',1637),
110 Array(-1300,-3250,7142,8500,'Moonglade',493),
111 Array(2021,-400,-9000,-6016,'Silithus',1377),
112 Array(-2259,-7000,4150,8500,'Winterspring',618),
113 Array(-400,-2094,-8221,-6016,'Un\'Goro Crater',490),
114 Array(-590,-2259,3580,7142,'Felwood',361),
115 Array(-3787,-8000,1370,6000,'Azshara',16),
116 Array(-1900,-5500,-10475,-6825,'Tanaris',440),
117 Array(-2478,-5500,-5135,-2330,'Dustwallow Marsh',15),
118 Array(360,-1536,-3474,-412,'Mulgore',215),
119 Array(4000,-804,-6828,-2477,'Feralas',357),
120 Array(3500,360,-2477,372,'Desolace',405),
121 Array(-804,-5500,-6828,-4566,'Thousand Needles',400),
122 Array(-3758,-5500,-1300,1370,'Durotar',14),
123 Array(1000,-3787,1370,4150,'Ashenvale',331),
124 Array(2500,-1300,4150,8500,'Darkshore',148),
125 Array(3814,-1100,8600,11831,'Teldrassil',141),
126 Array(3500,-804,-412,3580,'Stonetalon Mountains',406),
127 Array(-804,-4200,-4566,1370,'The Barrens',17),
128 ),
129 530 => Array(
130 Array(6135.25,4829,-2344.78,-1473.95,'Shattrath City',3703),
131 Array(-6400.75,-7612.20,9346.93,10153.70,'Silvermoon City',3487),
132 Array(5483.33,-91.66,1739.58,5456.25,'Netherstorm',3523),
133 Array(7083.33,1683.33,-4600,-999.99,'Terokkar Forest',3519),
134 Array(10295.83,4770.83,-3641.66,41.66,'Nagrand',3518),
135 Array(-10075,-13337.49,-2933.33,-758.33,'Bloodmyst Isle',3525),
136 Array(8845.83,3420.83,791.66,4408.33,'Blades Edge Mountains',3522),
137 Array(4225,-1275,-5614.58,-1947.91,'Shadowmoon Valley',3520),
138 Array(-11066.36,-12123.13,-4314.37,-3609.68,'The Exodar',3557),
139 Array(9475,4447.91,-1416.66,1935.41,'Zangarmarsh',3521),
140 Array(5539.58,375,-1962.49,1481.25,'Hellfire Peninsula',3483),
141 Array(-10500,-14570.83,-5508.33,-2793.75,'Azuremyst Isle',3524),
142 Array(-5283.33,-8583.33,6066.66,8266.66,'Ghostlands',3433),
143 Array(-4487,-9412,7758,11041,'Eversong Woods',3430)
144 ),
145);
146//Define characters
147$def = Array(
148 'character_race' => Array(
149 1 => 'Human',
150 2 => 'Orc',
151 3 => 'Dwarf',
152 4 => 'Night Elf',
153 5 => 'Undead',
154 6 => 'Tauren',
155 7 => 'Gnome',
156 8 => 'Troll',
157 9 => 'Goblin',
158 10 => 'Blood Elf',
159 11 => 'Dranei',
160 ),
161//Define classes
162 'character_class' => Array(
163 1 => 'Warrior',
164 2 => 'Paladin',
165 3 => 'Hunter',
166 4 => 'Rogue',
167 5 => 'Priest',
168 7 => 'Shaman',
169 8 => 'Mage',
170 9 => 'Warlock',
171 11 => 'Druid',
172 ),
173);
174//DATABASE LAYER - HIGH PRIORITY CODES
175class DBLayer
176{
177 var $link_id;
178 var $query_result;
179 var $saved_queries = array();
180 var $num_queries = 0;
181
182 function error()
183 {
184 $result['error_sql'] = @current(@end($this->saved_queries));
185 $result['error_no'] = @mysql_errno($this->link_id);
186 $result['error_msg'] = @mysql_error($this->link_id);
187
188 return $result;
189 }
190
191
192 function DBLayer($host, $user, $password, $db)
193 {
194 $this->link_id = mysql_connect($host, $user, $password, true);
195
196 if ($this->link_id)
197 {
198 if (mysql_select_db($db, $this->link_id))
199 return $this->link_id;
200 else
201 error('Unable to select database.');
202 }
203 else
204 error('Unable to connect to MySQL server.');
205 mysql_close($this);
206 }
207
208 function query($sql)
209 {
210 $this->query_result = @mysql_query($sql, $this->link_id);
211
212 if ($this->query_result)
213 {
214 ++$this->num_queries;
215 return $this->query_result;
216 }
217 else
218 {
219 return false;
220 }
221 mysql_close($this);
222 }
223
224
225 function result($query_id = 0, $row = 0)
226 {
227 return ($query_id) ? @mysql_result($query_id, $row) : false;
228 }
229
230
231 function fetch_assoc($query_id = 0)
232 {
233 return ($query_id) ? @mysql_fetch_assoc($query_id) : false;
234 }
235
236
237 function fetch_row($query_id = 0)
238 {
239 return ($query_id) ? @mysql_fetch_row($query_id) : false;
240 }
241
242
243 function fetch_object($query_id = 0)
244 {
245 return ($query_id) ? @mysql_fetch_object($query_id) : false;
246 }
247
248
249 function num_rows($query_id = 0)
250 {
251 return ($query_id) ? @mysql_num_rows($query_id) : false;
252 }
253
254
255 function affected_rows()
256 {
257 return ($this->link_id) ? @mysql_affected_rows($this->link_id) : false;
258 }
259
260
261 function insert_id()
262 {
263 return ($this->link_id) ? @mysql_insert_id($this->link_id) : false;
264 }
265
266
267 function get_num_queries()
268 {
269 return $this->num_queries;
270 }
271
272
273 function get_saved_queries()
274 {
275 return $this->saved_queries;
276 }
277
278
279 function free_result($query_id = false)
280 {
281 return ($query_id) ? @mysql_free_result($query_id) : false;
282 }
283
284
285 function escape($str)
286 {
287 if (function_exists('mysql_real_escape_string'))
288 return mysql_real_escape_string($str, $this->link_id);
289 else
290 return mysql_escape_string($str);
291 }
292
293
294 function close()
295 {
296 if ($this->link_id)
297 {
298 if ($this->query_result)
299 @mysql_free_result($this->query_result);
300
301 return @mysql_close($this->link_id);
302 }
303 else
304 return false;
305
306 }
307}
308//Start creation of accounts and verify
309function check_email_address($email) {
310 if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
311 return false;
312 }
313 $email_array = explode("@", $email);
314 $local_array = explode(".", $email_array[0]);
315 for ($i = 0; $i < sizeof($local_array); $i++) {
316 if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
317 return false;
318 }
319 }
320 if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
321 $domain_array = explode(".", $email_array[1]);
322 if (sizeof($domain_array) < 2) {
323 return false;
324 }
325 for ($i = 0; $i < sizeof($domain_array); $i++) {
326 if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
327 return false;
328 }
329 }
330 }
331 return true;
332}
333function check_for_symbols($string){
334 $len=strlen($string);
335 $alowed_chars="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
336 for($i=0;$i<$len;$i++)
337 if(!strstr($alowed_chars,$string[$i]))
338 return TRUE;
339 return FALSE;
340}
341function sha_password($user,$pass){
342 $user = strtoupper($user);
343 $pass = strtoupper($pass);
344 return SHA1($user.':'.$pass);
345}
346//
347//Start realm works
348function test_realm(){
349 global $server, $port;
350 $s = @fsockopen("$server", $port, $ERROR_NO, $ERROR_STR,(float)0.5);
351 if($s){@fclose($s);return true;} else return false;
352}
353function get_realm_name(){
354 global $hostr, $userr, $passwordr, $dbr, $database_encoding;
355 $realm_db = new DBLayer($hostr, $userr, $passwordr, $dbr);
356 $realm_db->query("SET NAMES $database_encoding");
357 $query = $realm_db->query("SELECT * FROM `realmlist` WHERE id = '1'");
358 $result = $realm_db->fetch_assoc($query);
359 $realm_db->close();
360 unset($realm_db);
361 return($result['name']);
362}
363$title=get_realm_name();
364$copyright=get_realm_name();
365$status=get_realm_name();
366function get_realm_data(){
367 global $hostr, $userr, $passwordr, $dbr, $database_encoding;
368 $realm_db = new DBLayer($hostr, $userr, $passwordr, $dbr);
369 $realm_db->query("SET NAMES $database_encoding");
370 $query = $realm_db->query("SELECT * FROM `realmlist`");
371 $result = $realm_db->fetch_assoc($query);
372 $realm_db->close();
373 unset($realm_db);
374 $result['name']=$result['name']." Server";
375 return($result);
376}
377//
378//Rospora credits
379$credits = "<left><a href=\"http://rospora.powerlogy.net/\">RoSPORA</a> is a free software released under the <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU/GPL</a><br>This <a href=\"http://rospora.powerlogy.net/\">RoSPORA V1.6 RC1</a> licenced to $title</left>";
380//Online player works
381 function make_players_arrayrealm(){
382 global $hostc, $userc, $passwordc, $dbc, $database_encoding, $pl_array;
383 $i=0;
384 $mangos_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
385 $mangos_db->query("SET NAMES $database_encoding");
386 $query = $mangos_db->query("SELECT * FROM `characters` WHERE `online`='1' ORDER BY `name`");
387 while($result = $mangos_db->fetch_assoc($query))
388 {
389 $memberid = $result["guid"];
390 $char_data = explode(' ',$result['data']);
391 $char_gender = dechex($char_data[36]);
392 $char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT);
393 $char_gender = $char_gender{3};
394 $guild = get_guildname($result['guid']);
395 $res_pos=get_zone_name($result['map'], $result['position_x'], $result['position_y']);
396 if ($result['race'] == 1 || $result['race'] == 3 || $result['race'] == 4 || $result['race'] == 7 || $result['race'] == 11) { $char_side=1; } else { $char_side=2; };
397 $pl_array[$i] = Array($result['name'], $result['race'], $result['class'], $char_data[34], $res_pos, $rank, $char_gender, $char_side, $rank, $guild, $result['guid']);
398 $i++;
399 }
400 $mangos_db->close();
401 unset($mangos_db);
402 return $i;
403 }
404 $onlineplayers=make_players_arrayrealm();
405
406 if (!$sort = &$_GET['s']) $sort=0;
407 if (!$flag = &$_GET['f']) $flag=0;
408 if ($flag==0){
409 $flag=1; $sort_type='<';
410 }
411 else{
412 $flag=0; $sort_type='>';
413 }
414 $link=$_SERVER['PHP_SELF']."?f=".$flag."&s=";
415
416 if (!empty($pl_array))
417 {
418 usort($pl_array, create_function('$a, $b', 'if ( $a['.$sort.'] == $b['.$sort.'] ) return 0; if ( $a['.$sort.'] '.$sort_type.' $b['.$sort.'] ) return -1; return 1;'));
419 }
420 $listone="";
421 $i=0;
422 while ($i < $onlineplayers)
423 {
424 $member=$pl_array[$i][6];
425 $name=$pl_array[$i][0];
426 $race=$pl_array[$i][1];
427 $class=$pl_array[$i][2];
428 $res_race = $def['character_race'][$race];
429 $res_class = $def['character_class'][$class];
430 $lvl=$pl_array[$i][3];
431 $loc=$pl_array[$i][4];
432 $gender=$pl_array[$i][5];
433 if ($pl_array[$i][6]==1) {$side='alliance';} else { $side='horde'; };
434 $res_side = $def['character_side'][$pl_array[$i][6]];
435 $rank = $pl_array[$i][7];
436 $res_rank = $def['character_rank'][$side][$rank];
437 if ($rank==1) {
438 $rankshow='A';
439 }
440 else $rankshow='H';
441 $guild = $pl_array[$i][8];
442 $guildname=$gl_array[$i][0];
443 $guildleader=$gl_array[$i][1];
444 $guildmembers=$gl_array[$i][2];
445 if($guild=="") $guild="None";
446 $listone.= "<tr class='realms'>
447 <td class='realms'></td>
448 <td class='realms' align='center'>$rankshow</td>
449 <td class='realms'>$name</td>
450 <td class='realms' align='center'>$lvl</td>
451 <td class='realms'>$guild</td>
452 <td class='realms' align='center'>$res_race</td>
453 <td class='realms' align='center'>$res_class</td>
454 <td class='realms'>$loc</td>
455 </tr>";
456 $i++;
457 }
458//
459//Exclude character's zone
460function get_zone_name($mapid, $x, $y){
461global $maps_a, $zone;
462
463if (!empty($maps_a[$mapid]))
464 {
465 $zmap=$maps_a[$mapid];
466 if (($mapid==0) or ($mapid==1) or ($mapid==530))
467 {
468 $i=0; $c=count($zone[$mapid]);
469 while ($i<$c)
470 {
471 if ($zone[$mapid][$i][2] < $x AND $zone[$mapid][$i][3] > $x AND $zone[$mapid][$i][1] < $y AND $zone[$mapid][$i][0] > $y) $zmap=$zone[$mapid][$i][4];
472 $i++;
473 }
474 }
475 } else $zmap="Unknown zone";
476return $zmap;
477 }
478 function get_map_name($mapid)
479{
480 global $maps_a;
481 if (!empty($maps_a[$mapid]))
482 {
483 $zmap=$maps_a[$mapid];
484 } else $zmap="Unknown";
485 return $zmap;
486}
487//
488//Get server data's
489function max_users(){
490 global $host, $user, $password, $db, $database_encoding;
491 $mangos_db = new DBLayer($host, $user, $password, $db);
492 $mangos_db->query("SET NAMES $database_encoding");
493 $query = $mangos_db->query("SELECT maxplayers FROM `uptime` ORDER BY maxplayers DESC");
494 $result = $mangos_db->fetch_assoc($query);
495 $mangos_db->close();
496 unset($mangos_db);
497 return($result['maxplayers']);
498}
499$time=max_users();
500function max_char(){
501 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
502 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
503 $character_db->query("SET NAMES $database_encoding");
504 $query = $character_db->query("SELECT * FROM `characters`");
505 $result = $character_db->num_rows($query);
506 $character_db->close();
507 unset($character_db);
508 return($result);
509}
510$max_char=max_char();
511function max_acc(){
512 global $hostr, $userr, $passwordr, $dbr, $database_encoding;
513 $realm_db = new DBLayer($hostr, $userr, $passwordr, $dbr);
514 $realm_db->query("SET NAMES $database_encoding");
515 $query = $realm_db->query("SELECT * FROM `account`");
516@ $result = $realm_db->num_rows($query);
517 $realm_db->close();
518 unset($realm_db);
519 return($result);
520}
521$max_acc=max_acc();
522function max_gm(){
523 global $hostr, $userr, $passwordr, $dbr, $database_encoding;
524 $realm_db = new DBLayer($hostr, $userr, $passwordr, $dbr);
525 $realm_db->query("SET NAMES $database_encoding");
526 $query = $realm_db->query("SELECT * FROM `account` WHERE gmlevel>'0'");
527@ $result = $realm_db->num_rows($query);
528 $realm_db->close();
529 unset($realm_db);
530 return($result);
531}
532$max_gm=max_gm();
533function get_db_rev(){
534 global $host, $user, $password, $db, $database_encoding;
535 $mangos_db = new DBLayer($host, $user, $password, $db);
536 $mangos_db->query("SET NAMES $database_encoding");
537 $query = $mangos_db->query("SELECT * FROM `db_version`");
538 $result = $mangos_db->fetch_assoc($query);
539 $mangos_db->close();
540 unset($mangos_db);
541 return($result['version']);
542}
543$rev=get_db_rev();
544//
545//Statics works starts
546//Alliance
547function max_human(){
548 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
549 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
550 $character_db->query("SET NAMES $database_encoding");
551 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='1'");
552 $result = $character_db->fetch_assoc($query);
553 $character_db->close();
554 unset($character_db);
555 return($result['race']);
556}
557$max_human=max_human();
558
559function max_dwarf(){
560 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
561 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
562 $character_db->query("SET NAMES $database_encoding");
563 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='3'");
564 $result = $character_db->fetch_assoc($query);
565 $character_db->close();
566 unset($character_db);
567 return($result['race']);
568}
569$max_dwarf=max_dwarf();
570
571function max_nightelf(){
572 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
573 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
574 $character_db->query("SET NAMES $database_encoding");
575 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='4'");
576 $result = $character_db->fetch_assoc($query);
577 $character_db->close();
578 unset($character_db);
579 return($result['race']);
580}
581$max_nightelf=max_nightelf();
582
583function max_gnome(){
584 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
585 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
586 $character_db->query("SET NAMES $database_encoding");
587 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='7'");
588 $result = $character_db->fetch_assoc($query);
589 $character_db->close();
590 unset($character_db);
591 return($result['race']);
592}
593$max_gnome=max_gnome();
594
595function max_dranei(){
596 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
597 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
598 $character_db->query("SET NAMES $database_encoding");
599 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='11'");
600 $result = $character_db->fetch_assoc($query);
601 $character_db->close();
602 unset($character_db);
603 return($result['race']);
604}
605$max_dranei=max_dranei();
606
607//Horde
608function max_orc(){
609 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
610 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
611 $character_db->query("SET NAMES $database_encoding");
612 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='2'");
613 $result = $character_db->fetch_assoc($query);
614 $character_db->close();
615 unset($character_db);
616 return($result['race']);
617}
618$max_orc=max_orc();
619
620function max_undead(){
621 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
622 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
623 $character_db->query("SET NAMES $database_encoding");
624 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='5'");
625 $result = $character_db->fetch_assoc($query);
626 $character_db->close();
627 unset($character_db);
628 return($result['race']);
629}
630$max_undead=max_undead();
631
632function max_tauren(){
633 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
634 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
635 $character_db->query("SET NAMES $database_encoding");
636 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='6'");
637 $result = $character_db->fetch_assoc($query);
638 $character_db->close();
639 unset($character_db);
640 return($result['race']);
641}
642$max_tauren=max_tauren();
643
644function max_troll(){
645 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
646 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
647 $character_db->query("SET NAMES $database_encoding");
648 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='8'");
649@ $result = $character_db->fetch_assoc($query);
650 $character_db->close();
651 unset($character_db);
652 return($result['race']);
653}
654$max_troll=max_troll();
655
656function max_bloodelf(){
657 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
658 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
659 $character_db->query("SET NAMES $database_encoding");
660 $query = $character_db->query("SELECT COUNT(*) AS race FROM `characters` WHERE race='10'");
661@ $result = $character_db->fetch_assoc($query);
662 $character_db->close();
663 unset($character_db);
664 return($result['race']);
665}
666$max_bloodelf=max_bloodelf();
667//
668//Percent system
669$staticpic = "percent.php?per=";
670@$yuzde_human=round($max_human*100/$max_char);
671@$yuzde_dwarf=round($max_dwarf*100/$max_char);
672@$yuzde_nightelf=round($max_nightelf*100/$max_char);
673@$yuzde_gnome=round($max_gnome*100/$max_char);
674@$yuzde_dranei=round($max_dranei*100/$max_char);
675@$yuzde_orc=round($max_orc*100/$max_char);
676@$yuzde_troll=round($max_troll*100/$max_char);
677@$yuzde_undead=round($max_undead*100/$max_char);
678@$yuzde_tauren=round($max_tauren*100/$max_char);
679@$yuzde_bloodelf=round($max_bloodelf*100/$max_char);
680//
681//Get guild name
682function get_guildname($idplayer){
683 global $hostc, $userc, $passwordc, $dbc, $database_encoding;
684 $character_db = new DBLayer($hostc, $userc, $passwordc, $dbc);
685 $character_db->query("SET NAMES $database_encoding");
686 $query = $character_db->query("SELECT g.name FROM guild g, guild_member gm WHERE gm.guid=guid");
687 $result = $character_db->fetch_assoc($query);
688 $character_db->close();
689 unset($character_db);
690 return($result['name']);
691 $guild_name = $result['name'];
692}
693//Account creation page and verify
694 if (empty($_POST['username']) and empty($_POST['passw']) and empty($_POST['email']))
695 {
696 $co="'";
697 $cont='<form id="form1" name="form1" method="post" action="">
698 <tr class="acc">
699 <th scope="row" class="acc">'.$text["name"].'</th>
700 <td class="acc" scope="col"><input type="text" name="username" /> </td>
701 </tr>
702 <tr class="acc">
703 <th scope="row" class="acc">'.$text["password"].'</th>
704 <td class="acc"><input name="passw" type="password" id="passw"/></td>
705 </tr>
706 <tr class="acc">
707 <th scope="row" class="acc">'.$text["seccode"].'</th>
708 <td class="acc"><IMG src="captcha.php"></td>
709 </tr>
710 <tr class="acc">
711 <th scope="row" class="acc">'.$text["seccode2"].'</th>
712 <td class="acc"><input name="txtNumber" type="text" id="txtNumber" size="5" maxlength="5" /></td>
713 </tr>
714 <tr class="acc">
715 <th scope="row" class="acc">E-Mail :</th>
716 <td class="acc"><input name="email" type="text" id="email" /></td>
717 </tr>
718 <tr class="acc">
719 <th scope="row" class="acc">'.$text["expension"].'</th>
720 <td class="acc"><input name="tbc" type="checkbox" id="tbc" value="1" checked/></td>
721 </tr>
722 <tr class="acc">
723 <th scope="row" class="acc">&nbsp;</th>
724 <td class="acc"><form id="form2" name="form2" method="post" action="">
725 <input type="submit" name="Submit" value="Submit" />
726 </form>
727';
728 }
729 elseif (empty($_POST['username']) or empty($_POST['passw']) or empty($_POST['email']))
730 {
731
732 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>'.$text["not_all"].'<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
733
734 }
735 elseif (check_for_symbols($_POST['username'])==TRUE or check_for_symbols($_POST['passw'])==TRUE){
736
737 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>'.$text["not_simbol"].'<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
738
739 }
740 else
741 {
742 $username = htmlspecialchars(trim("$_POST[username]"));
743 $passw = trim($_POST['passw']);
744 $email = htmlspecialchars(trim($_POST['email']));
745 $tbc = $_POST['tbc'];
746 $ip = getenv('REMOTE_ADDR');
747 $realm_db = new DBLayer($hostr, $userr, $passwordr, $dbr);
748 $realm_db->query("SET NAMES $database_encoding");
749$ip_cr=0;
750if ($lock_reg!=0){
751 $query = $realm_db->query("SELECT `last_ip` FROM `account` WHERE `last_ip`='$ip'");
752 while($result = $realm_db->fetch_assoc($query)) $ip_cr++;
753}
754if (!check_email_address($_POST['email'])) {
755 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>'.$text["email"].'<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
756} else {
757 session_start();
758 $number = strtoupper($_POST['txtNumber']);
759 if (md5($number) != $_SESSION['image_random_value']) {
760 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>'.$text["key"].'<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
761 } else {
762 if (($ip_cr>=$lock_reg) && ($lock_reg!=0)) {
763 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>'.$text["ip_limit"][0].$ip.'<br>'.$ip_cr.$text["ip_limit"][1].'<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
764 } else {
765 $sha=sha_password($username,$passw);
766 if($tbc==1) {
767 if($realm_db->query("INSERT INTO `account` (`username`,`sha_pass_hash`,`email`,`last_ip`,`locked`,`tbc`) VALUES ('$username','$sha','$email','$ip','$lock_acc','$tbc')")) {
768 $realm_db->query("UPDATE `account` SET `password`='$passw' WHERE `username`='$username'");
769 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL>'.$text["acc"].'<br><strong>'.$username.'</strong><br>'.$text["create"].'</SMALL></TD></TD></TR>';
770 } else {
771 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>'.$text["acc"].'<br><strong>'.$username.'</strong><br>'.$text["failed"].'<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
772 }
773 } else {
774 if($realm_db->query("INSERT INTO `account` (`username`,`sha_pass_hash`,`email`,`last_ip`,`locked`) VALUES ('$username','$sha','$email','$ip','$lock_acc')")) {
775 $realm_db->query("UPDATE `account` SET `password`='$passw' WHERE `username`='$username'");
776 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL>'.$text["acc"].'<br><strong>'.$username.'</strong><br>'.$text["create"].'</SMALL></TD></TD></TR>';
777 } else {
778 $cont='<TR><TD rowSpan=6><IMG height=152 width=1 src="'.$img_base.'pixel.gif"><TD align=Center><SMALL class=error>'.$text["acc"].'<br><strong>'.$username.'</strong><br>'.$text["failed"].'<br><br><a href="" onClick="history.go(-1)">'.$text["backtext"].'</a></SMALL></TD></TD></TR>';
779 }
780 }
781 }
782 }
783}
784 $realm_db->close();
785 unset($realm_db);
786 }
787$dbrev=get_db_rev();
788
789if (test_realm())
790 {
791 $title.=(' ('.$onlineplayers.' '.$text["playerson"].')');
792 $status = "<img alt=Online src='".$img_base."online.png' height='24' width='24'>";
793 } else
794 {
795 $title.=(' '.$text["off"] );
796 $status = "<img alt=Offline src='".$img_base."offline.png' height='24' width='24'>";
797 }
798?>
Note: See TracBrowser for help on using the repository browser.