133 lines
4.4 KiB
PHP
133 lines
4.4 KiB
PHP
|
<?php
|
||
|
// translator ready
|
||
|
// addnews ready
|
||
|
// mail ready
|
||
|
|
||
|
//put these outside the function since they're used by scripts outside of
|
||
|
//this function.
|
||
|
$pvptime = getsetting("pvptimeout",600);
|
||
|
$pvptimeout = date("Y-m-d H:i:s",strtotime("-$pvptime seconds"));
|
||
|
|
||
|
function pvplist($location=false,$link=false,$extra=false,$sql=false){
|
||
|
global $session,$pvptime,$pvptimeout;
|
||
|
|
||
|
if ($location===false)
|
||
|
$location = $session['user']['location'];
|
||
|
if ($link===false) {
|
||
|
$link = basename($_SERVER['SCRIPT_NAME']);
|
||
|
}
|
||
|
if ($extra === false) {
|
||
|
$extra = "?act=attack";
|
||
|
}
|
||
|
|
||
|
$days = getsetting("pvpimmunity", 5);
|
||
|
$exp = getsetting("pvpminexp", 1500);
|
||
|
$clanrankcolors=array("`!","`#","`^","`&", "`\$");
|
||
|
|
||
|
if ($sql === false) {
|
||
|
$lev1 = $session['user']['level']-1;
|
||
|
$lev2 = $session['user']['level']+2;
|
||
|
$last = date("Y-m-d H:i:s",
|
||
|
strtotime("-".getsetting("LOGINTIMEOUT", 900)." sec"));
|
||
|
$id = $session['user']['acctid'];
|
||
|
$loc = addslashes($location);
|
||
|
|
||
|
$sql = "SELECT acctid, name, alive, location, sex, level, laston, " .
|
||
|
"loggedin, login, pvpflag, clanshort, clanrank, dragonkills, " .
|
||
|
db_prefix("accounts") . ".clanid FROM " .
|
||
|
db_prefix("accounts") . " LEFT JOIN " .
|
||
|
db_prefix("clans") . " ON " . db_prefix("clans") . ".clanid=" .
|
||
|
db_prefix("accounts") . ".clanid WHERE (locked=0) " .
|
||
|
"AND (slaydragon=0) AND " .
|
||
|
"(age>$days OR dragonkills>0 OR pk>0 OR experience>$exp) " .
|
||
|
"AND (level>=$lev1 AND level<=$lev2) AND (alive=1) " .
|
||
|
"AND (laston<'$last' OR loggedin=0) AND (acctid<>$id) " .
|
||
|
"ORDER BY location='$loc' DESC, location, level DESC, " .
|
||
|
"experience DESC, dragonkills DESC";
|
||
|
}
|
||
|
|
||
|
$result = db_query($sql);
|
||
|
|
||
|
$pvp = array();
|
||
|
while($row = db_fetch_assoc($result)) {
|
||
|
$pvp[] = $row;
|
||
|
}
|
||
|
|
||
|
$pvp = modulehook("pvpmodifytargets", $pvp);
|
||
|
|
||
|
tlschema("pvp");
|
||
|
$n = translate_inline("Name");
|
||
|
$l = translate_inline("Level");
|
||
|
$loc = translate_inline("Location");
|
||
|
$ops = translate_inline("Ops");
|
||
|
$bio = translate_inline("Bio");
|
||
|
$att = translate_inline("Attack");
|
||
|
|
||
|
rawoutput("<table border='0' cellpadding='3' cellspacing='0'>");
|
||
|
rawoutput("<tr class='trhead'><td>$n</td><td>$l</td><td>$loc</td><td>$ops</td></tr>");
|
||
|
$loc_counts = array();
|
||
|
$num = count($pvp);
|
||
|
$j = 0;
|
||
|
for ($i=0;$i<$num;$i++){
|
||
|
$row = $pvp[$i];
|
||
|
|
||
|
if (isset($row['invalid']) && $row['invalid']) continue;
|
||
|
if (!isset($loc_counts[$row['location']]))
|
||
|
$loc_counts[$row['location']] = 0;
|
||
|
$loc_counts[$row['location']]++;
|
||
|
if ($row['location'] != $location) continue;
|
||
|
$j++;
|
||
|
$biolink="bio.php?char=".$row['acctid']."&ret=".urlencode($_SERVER['REQUEST_URI']);
|
||
|
addnav("", $biolink);
|
||
|
rawoutput("<tr class='".($j%2?"trlight":"trdark")."'>");
|
||
|
rawoutput("<td>");
|
||
|
if ($row['clanshort']>"" && $row['clanrank'] > CLAN_APPLICANT) {
|
||
|
output_notl("%s<`2%s%s>`0 ",
|
||
|
$clanrankcolors[$row['clanrank']], $row['clanshort'],
|
||
|
$clanrankcolors[$row['clanrank']], true);
|
||
|
}
|
||
|
output_notl("`@%s`0", $row['name']);
|
||
|
rawoutput("</td>");
|
||
|
rawoutput("<td>");
|
||
|
output_notl("%s", $row['level']);
|
||
|
rawoutput("</td>");
|
||
|
rawoutput("<td>");
|
||
|
output_notl("%s", $row['location']);
|
||
|
rawoutput("</td>");
|
||
|
rawoutput("<td>[ <a href='$biolink'>$bio</a> | ");
|
||
|
if($row['pvpflag']>$pvptimeout){
|
||
|
output("`i(Attacked too recently)`i");
|
||
|
}elseif ($location!=$row['location']){
|
||
|
output("`i(Can't reach them from here)`i");
|
||
|
}else{
|
||
|
rawoutput("<a href='$link$extra&name=".$row['acctid']."'>$att</a>");
|
||
|
addnav("","$link$extra&name=".$row['acctid']);
|
||
|
}
|
||
|
rawoutput(" ]</td>");
|
||
|
rawoutput("</tr>");
|
||
|
}
|
||
|
|
||
|
if (!isset($loc_counts[$location]) || $loc_counts[$location]==0){
|
||
|
$noone = translate_inline("`iThere are no available targets.`i");
|
||
|
output_notl("<tr><td align='center' colspan='4'>$noone</td></tr>", true);
|
||
|
}
|
||
|
rawoutput("</table>",true);
|
||
|
|
||
|
if ($num != 0 && (!isset($loc_counts[$location]) ||
|
||
|
$loc_counts[$location] != $num)) {
|
||
|
output("`n`n`&As you listen to different people around you talking, you glean the following additional information:`n");
|
||
|
foreach ($loc_counts as $loc=>$count) {
|
||
|
if ($loc == $location) continue;
|
||
|
$args = modulehook("pvpcount", array('count'=>$count,'loc'=>$loc));
|
||
|
if (isset($args['handled']) && $args['handled']) continue;
|
||
|
if ($count == 1) {
|
||
|
output("`&There is `^%s`& person sleeping in %s whom you might find interesting.`0`n", $count, $loc);
|
||
|
} else {
|
||
|
output("`&There are `^%s`& people sleeping in %s whom you might find interesting.`0`n", $count, $loc);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
tlschema();
|
||
|
}
|
||
|
?>
|