getsetting('maxagepvp',50) )
{
output('`nDu spürst allerdings instinktiv, dass es wohl besser wäre, sich erst um die Drachenplage zu kümmern.');
}
elseif($session['user']['profession'] == PROF_TEMPLE_SERVANT )
{
output('`nAls Tempeldiener kehrst du jedoch besser gleich wieder um...');
}
else
{
addnav('Krieger auflisten','pvp.php?op=list');
}
addnav('Zurück');
addnav("Zurück zum Tor","dorftor.php");
//addnav('Zum Dorfplatz','village.php');
//addnav('Zum Marktplatz','market.php');
}
else if ($_GET['op']=='list')
{
checkday();
pvpwarning();
$res = item_list_get(' hot_item>0 AND owner>0 AND deposit1=0 ','',true,'owner');
if(db_num_rows($res)) {
$arr_hot_owners = db_create_list($res,'owner');
}
else {
$arr_hot_owners = array();
}
$days = getsetting('pvpimmunity', 5);
$exp = getsetting('pvpminexp', 1500);
$bool_lockhtml = $access_control->su_check(access_control::SU_RIGHT_LOCKHTML);
$sql = 'SELECT a.name,
a.alive,
a.race,
a.location,
a.profession,
a.sex,
a.level,
a.dragonkills,
a.laston,
a.loggedin,
a.imprisoned,
a.expedition,
a.activated,
a.login,
a.pvpflag,
a.acctid,
g.name AS guildname,
a.guildid,
a.guildfunc
'.($bool_lockhtml ? ',aei.html_locked' : '').'
'.($guard ? ',aei.sentence' : '').'
FROM accounts a
LEFT JOIN dg_guilds g ON (g.guildid=a.guildid AND a.guildfunc!='.DG_FUNC_APPLICANT.')
'.(($bool_lockhtml || $guard) ? 'INNER JOIN account_extra_info aei ON a.acctid=aei.acctid' : '').'
WHERE
(a.locked=0) AND
(a.age > '.$days.' OR a.dragonkills > 0 OR a.pk > 0 OR a.experience > '.$exp.') AND
(a.profession <> 21 AND a.profession <>22 ) AND
( level >= '.($session['user']['level']-1).' AND
level <= '.($session['user']['level']+2).'
) AND
(a.alive=1 AND a.location='.USER_LOC_FIELDS.') AND
(a.race<>"" AND a.specialty>0) AND
'.($guard ? '' : '(a.dragonkills >= '.($session['user']['dragonkills']-5).') AND').'
!('.user_get_online(0,0,true).') AND
(a.acctid <> '.$session['user']['acctid'].')
ORDER BY a.level DESC';
$result = db_query($sql);
if ($session['user']['pvpflag']==PVP_IMMU)
{
output('`n`&Du hast PvP-Immunität gekauft. Diese verfällt, wenn du jetzt angreifst!`0`n`n');
}
if($session['user']['guildid'])
{
$guild = &dg_load_guild($session['user']['guildid'],array('treaties'));
}
$str_out = '`c
| Name |
Level |
Gilde |
';
$count = db_num_rows($result);
if($count == 0)
{
$str_out .= '| `iLeider erblickst du niemanden, der für dich in Frage käme!`0`i |
';
}
for ($i=0;$i<$count;$i++)
{
$row = db_fetch_assoc($result);
$row['guildname'] = (!empty($row['guildname'])) ? $row['guildname'] : ' - ';
$state_str = '';
if($row['guildid'] && $guild && $row['guildname'] != ' - ')
{
$state = dg_get_treaty($guild['treaties'][$row['guildid']]);
if($state==1)
{
$state_str = ' `@(befreundet)';
}
elseif($state==-1)
{
$state_str = ' `4(Feind)';
}
}
$immu = (
(
($row['pvpflag']>$pvptimeout)
&& (
($session['user']['profession']==0)
|| ($session['user']['profession']>2)
)
&& !isset($arr_hot_owners[$row['acctid']])
)
|| (($session['user']['guildid']>0) && ($session['user']['guildid'] == $row['guildid']))
);
if( !$immu )
{
addnav('','pvp.php?act=attack&id='.$row['acctid']);
}
$str_out .= '
'.($row['sentence']>0?' ':'').jslib_getmenuuserlink( $row, $row, true, '{m_immun: '.($immu ? 'true' : 'false').'}' ).($immu ? ' `i(immun)`i' : '').'`0 |
'.$row['level'].' ('.$row['dragonkills'].' DKs) |
'.$row['guildname'].$state_str.'`0 |
';
}
$str_out .= '
`c';
$js_add = '
function JSLIB_PVPATTACK(){
if( g_user_menu.m_pl.m_immun ){
alert( g_user_menu.m_pl.m_login + " ist immun gegen Deine Angriffe!" );
}
else{
window.location.href = "pvp.php?act=attack&id=" + g_user_menu.m_pl.m_id;
}
}';
$js_afterinit = 'g_user_menu.insertItem(1, new LOTGD.MenuItem( {label: "Angreifen", icon: "images/schwert.gif", action: JSLIB_PVPATTACK} ) );';
$str_out .= jslib_initmenu( $js_add, $js_afterinit );
output($str_out,true);
addnav('Krieger auflisten','pvp.php?op=list');
addnav('Zurück');
addnav('Zurück zum Tor','dorftor.php');
if (getsetting('hasegg',0)>0)
{
$sql = 'SELECT name FROM accounts WHERE acctid = '.getsetting('hasegg',0);
$result = db_query($sql);
$row = db_fetch_assoc($result);
output('`n`n'.$row['name'].' hat das goldene Ei!');
}
}
else if ($_GET['act'] == 'attack')
{ //einen angreifen
$sql = "SELECT name AS creaturename,
level AS creaturelevel,
weapon AS creatureweapon,
gold AS creaturegold,
experience AS creatureexp,
maxhitpoints AS creaturehealth,
attack AS creatureattack,
defence AS creaturedefense,
bounty AS creaturebounty,
loggedin,
location,
dragonkills,
laston,
alive,
race,
a.acctid,
lastip,
emailaddress,
pvpflag,
uniqueid,
guildid,
guildfunc,
aei.creaturewin,
aei.creaturelose
FROM accounts a
LEFT JOIN account_extra_info aei ON a.acctid=aei.acctid
WHERE ";
$sql .= ($_GET['name']) ? " login='".$_GET['name']."'" : " a.acctid=".$_GET['id'];
$result = db_query($sql);
if (db_num_rows($result)>0)
{
$row = db_fetch_assoc($result);
$sql2 = 'SELECT acctid,sentence FROM account_extra_info WHERE acctid='.$row['acctid'];
$result2 = db_query($sql2);
$row2 = db_fetch_assoc($result2);
// Hot Items
$res = item_list_get(' hot_item>0 AND owner='.$row['acctid'].' AND deposit1=0 ','',true,'owner');
if(db_num_rows($res))
{
$row['hot_item'] = 1;
}
//Check ob Gegner gültig ist
if (abs($session['user']['level']-$row['creaturelevel'])>2 && $row['location']!=USER_LOC_HOUSE)
{ //in Feldern: Levelcheck
output('`$Fehler:`4 Dieser Spieler ist nicht in deinem Levelbereich!');
}
elseif (($row['pvpflag'] > $pvptimeout && $row['hot_item']!=1) && $guard==false)
{ //wurde schon angegriffen oder hat Immu
output('`$Uuuups:`4 Dieser Krieger ist gerade anderweitig ... beschäftigt. Du wirst etwas auf deine Chance warten müssen!');
}
elseif ((($session['user']['dragonkills'] > $row['dragonkills']+5) && ($row['location']!=USER_LOC_HOUSE)) && $guard==false)
{ //in Feldern: DK-Check
output('`$Mööööp:`4 Dieser Gegner ist unter deiner Würde!');
}
elseif (ac_check($row))
{ //Multi-Check
output('`$`bNicht schummeln!!`b Du darfst deinen eigenen Charakter nicht angreifen!');
}
elseif (user_get_online(0,$row))
{
output('`$Fehler:`4 Dieser Krieger ist inzwischen online.');
}
elseif ((int)$row['alive']!=1)
{
output('`$Fehler:`4 Dieser Krieger lebt nicht.');
}
elseif ($session['user']['playerfights']<=0)
{
output('`4Du bist zu müde, um heute einen weiteren Kampf mit einem Krieger zu riskieren.');
}
else
{ //ja, Gegner ist gültig
$battle=true;
$row['pvp']=1;
$row['creatureexp'] = round($row['creatureexp'],0);
$row['playerstarthp'] = $session['user']['hitpoints'];
$session['user']['badguy']=createstring($row);
$session['user']['playerfights']--;
$session['user']['buffbackup']='';
$session['user']['buffbackup']='';
if ($session['user']['pvpflag']==PVP_IMMU)
{
$session['user']['pvpflag']="1986-10-06 00:42:00";
output('`n`b`4Deine Immunität ist hiermit verfallen!`0`b`n');
}
pvpwarning(true);
if (!$session['user']['prefs']['nosounds'])
{
output('