LotGDocker/lotgd-web/lotgd/lib/pvplist.php

133 lines
4.4 KiB
PHP
Raw Normal View History

2020-08-17 19:16:42 -04:00
<?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&lt;`2%s%s&gt;`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();
}
?>