171 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
// addnews ready
 | 
						|
// translator ready
 | 
						|
// mail ready
 | 
						|
define("ALLOW_ANONYMOUS",true);
 | 
						|
require_once("common.php");
 | 
						|
require_once("lib/http.php");
 | 
						|
require_once("lib/villagenav.php");
 | 
						|
 | 
						|
tlschema("list");
 | 
						|
 | 
						|
page_header("List Warriors");
 | 
						|
if ($session['user']['loggedin']) {
 | 
						|
	checkday();
 | 
						|
	if ($session['user']['alive']) {
 | 
						|
		villagenav();
 | 
						|
	} else {
 | 
						|
		addnav("Return to the Graveyard", "graveyard.php");
 | 
						|
	}
 | 
						|
	addnav("Currently Online","list.php");
 | 
						|
	if ($session['user']['clanid']>0){
 | 
						|
		addnav("Online Clan Members","list.php?op=clan");
 | 
						|
		if ($session['user']['alive']) {
 | 
						|
			addnav("Clan Hall","clan.php");
 | 
						|
		}
 | 
						|
	}
 | 
						|
}else{
 | 
						|
	addnav("Login Screen","index.php");
 | 
						|
	addnav("Currently Online","list.php");
 | 
						|
}
 | 
						|
 | 
						|
$playersperpage=50;
 | 
						|
 | 
						|
$sql = "SELECT count(acctid) AS c FROM " . db_prefix("accounts") . " WHERE locked=0";
 | 
						|
$result = db_query($sql);
 | 
						|
$row = db_fetch_assoc($result);
 | 
						|
$totalplayers = $row['c'];
 | 
						|
 | 
						|
$op = httpget('op');
 | 
						|
$page = httpget('page');
 | 
						|
$search = "";
 | 
						|
$limit = "";
 | 
						|
 | 
						|
if ($op=="search"){
 | 
						|
	$search="%";
 | 
						|
	$n = httppost('name');
 | 
						|
	for ($x=0;$x<strlen($n);$x++){
 | 
						|
		$search .= substr($n,$x,1)."%";
 | 
						|
	}
 | 
						|
	$search=" AND name LIKE '".addslashes($search)."' ";
 | 
						|
}else{
 | 
						|
	$pageoffset = (int)$page;
 | 
						|
	if ($pageoffset>0) $pageoffset--;
 | 
						|
	$pageoffset*=$playersperpage;
 | 
						|
	$from = $pageoffset+1;
 | 
						|
	$to = min($pageoffset+$playersperpage,$totalplayers);
 | 
						|
 | 
						|
	$limit=" LIMIT $pageoffset,$playersperpage ";
 | 
						|
}
 | 
						|
addnav("Pages");
 | 
						|
for ($i=0;$i<$totalplayers;$i+=$playersperpage){
 | 
						|
	$pnum = $i/$playersperpage+1;
 | 
						|
	if ($page == $pnum) {
 | 
						|
		addnav(array(" ?`b`#Page %s`0 (%s-%s)`b", $pnum, $i+1, min($i+$playersperpage,$totalplayers)), "list.php?page=$pnum");
 | 
						|
	} else {
 | 
						|
		addnav(array(" ?Page %s (%s-%s)", $pnum, $i+1, min($i+$playersperpage,$totalplayers)), "list.php?page=$pnum");
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Order the list by level, dragonkills, name so that the ordering is total!
 | 
						|
// Without this, some users would show up on multiple pages and some users
 | 
						|
// wouldn't show up
 | 
						|
if ($page=="" && $op==""){
 | 
						|
	$title = translate_inline("Warriors Currently Online");
 | 
						|
	$sql = "SELECT acctid,name,login,alive,location,race,sex,level,laston,loggedin,lastip,uniqueid FROM " . db_prefix("accounts") . " WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime("-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY level DESC, dragonkills DESC, login ASC";
 | 
						|
	$result = db_query_cached($sql,"list.php-warsonline");
 | 
						|
}elseif($op=='clan'){
 | 
						|
	$title = translate_inline("Clan Members Online");
 | 
						|
	$sql = "SELECT acctid,name,login,alive,location,race,sex,level,laston,loggedin,lastip,uniqueid FROM " . db_prefix("accounts") . " WHERE locked=0 AND loggedin=1 AND laston>'".date("Y-m-d H:i:s",strtotime("-".getsetting("LOGINTIMEOUT",900)." seconds"))."' AND clanid='{$session['user']['clanid']}' ORDER BY level DESC, dragonkills DESC, login ASC";
 | 
						|
	$result = db_query($sql);
 | 
						|
}else{
 | 
						|
	if ($totalplayers > $playersperpage && $op != "search") {
 | 
						|
		$title = sprintf_translate("Warriors of the realm (Page %s: %s-%s of %s)", ($pageoffset/$playersperpage+1), $from, $to, $totalplayers);
 | 
						|
	} else {
 | 
						|
		$title = sprintf_translate("Warriors of the realm");
 | 
						|
	}
 | 
						|
	rawoutput(tlbutton_clear());
 | 
						|
	$sql = "SELECT acctid,name,login,alive,hitpoints,location,race,sex,level,laston,loggedin,lastip,uniqueid FROM " . db_prefix("accounts") . " WHERE locked=0 $search ORDER BY level DESC, dragonkills DESC, login ASC $limit";
 | 
						|
	$result = db_query($sql);
 | 
						|
}
 | 
						|
if ($session['user']['loggedin']){
 | 
						|
	$search = translate_inline("Search by name: ");
 | 
						|
	$search2 = translate_inline("Search");
 | 
						|
 | 
						|
	rawoutput("<form action='list.php?op=search' method='POST'>$search<input name='name'><input type='submit' class='button' value='$search2'></form>");
 | 
						|
	addnav("","list.php?op=search");
 | 
						|
}
 | 
						|
 | 
						|
$max = db_num_rows($result);
 | 
						|
if ($max>getsetting("maxlistsize", 100)) {
 | 
						|
	output("`\$Too many names match that search.  Showing only the first %s.`0`n", getsetting("maxlistsize", 100));
 | 
						|
	$max = getsetting("maxlistsize", 100);
 | 
						|
}
 | 
						|
 | 
						|
if ($page=="" && $op==""){
 | 
						|
	$title .= sprintf_translate(" (%s warriors)", $max);
 | 
						|
}
 | 
						|
output_notl("`c`b".$title."`b");
 | 
						|
 | 
						|
$alive = translate_inline("Alive");
 | 
						|
$level = translate_inline("Level");
 | 
						|
$name = translate_inline("Name");
 | 
						|
$loc = translate_inline("Location");
 | 
						|
$race = translate_inline("Race");
 | 
						|
$sex = translate_inline("Sex");
 | 
						|
$last = translate_inline("Last On");
 | 
						|
 | 
						|
rawoutput("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true);
 | 
						|
rawoutput("<tr class='trhead'><td>$alive</td><td>$level</td><td>$name</td><td>$loc</td><td>$race</td><td>$sex</td><td>$last</tr>");
 | 
						|
$writemail = translate_inline("Write Mail");
 | 
						|
$alive = translate_inline("`1Yes`0");
 | 
						|
$dead = translate_inline("`4No`0");
 | 
						|
$unconscious = translate_inline("`6Unconscious`0");
 | 
						|
for($i=0;$i<$max;$i++){
 | 
						|
	$row = db_fetch_assoc($result);
 | 
						|
	rawoutput("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
 | 
						|
	if ($row['alive'] == true) {
 | 
						|
		$a = $alive;
 | 
						|
	} else if ($row['hitpoints'] > 0) {
 | 
						|
		$a = $unconscious;
 | 
						|
	} else {
 | 
						|
		$a = $dead;
 | 
						|
	}
 | 
						|
	//$a = translate_inline($row['alive']?"`1Yes`0":"`4No`0");
 | 
						|
	output_notl("%s", $a);
 | 
						|
	rawoutput("</td><td>");
 | 
						|
	output_notl("`^%s`0", $row['level']);
 | 
						|
	rawoutput("</td><td>");
 | 
						|
	if ($session['user']['loggedin']) {
 | 
						|
		rawoutput("<a href=\"mail.php?op=write&to=".rawurlencode($row['login'])."\" target=\"_blank\" onClick=\"".popup("mail.php?op=write&to=".rawurlencode($row['login'])."").";return false;\">");
 | 
						|
		rawoutput("<img src='images/newscroll.GIF' width='16' height='16' alt='$writemail' border='0'></a>");
 | 
						|
		rawoutput("<a href='bio.php?char=".$row['acctid']."'>");
 | 
						|
		addnav("","bio.php?char=".$row['acctid']."");
 | 
						|
	}
 | 
						|
	output_notl("`&%s`0", $row['name']);
 | 
						|
	if ($session['user']['loggedin'])
 | 
						|
		rawoutput("</a>");
 | 
						|
	rawoutput("</td><td>");
 | 
						|
	$loggedin=(date("U") - strtotime($row['laston']) < getsetting("LOGINTIMEOUT",900) && $row['loggedin']);
 | 
						|
	output_notl("`&%s`0", $row['location']);
 | 
						|
	if ($loggedin) {
 | 
						|
		$online = translate_inline("`#(Online)");
 | 
						|
		output_notl("%s", $online);
 | 
						|
	}
 | 
						|
	rawoutput("</td><td>");
 | 
						|
	if (!$row['race']) $row['race'] = RACE_UNKNOWN;
 | 
						|
	tlschema("race");
 | 
						|
	output($row['race']);
 | 
						|
	tlschema();
 | 
						|
	rawoutput("</td><td>");
 | 
						|
	$sex = translate_inline($row['sex']?"`%Female`0":"`!Male`0");
 | 
						|
	output_notl("%s", $sex);
 | 
						|
	rawoutput("</td><td>");
 | 
						|
	$laston = relativedate($row['laston']);
 | 
						|
	output_notl("%s", $laston);
 | 
						|
	rawoutput("</td></tr>");
 | 
						|
}
 | 
						|
rawoutput("</table>");
 | 
						|
output_notl("`c");
 | 
						|
page_footer();
 | 
						|
?>
 |