Ir para conteúdo

Problema Com Search Character [Gesior]


Sofft

Posts Recomendados

Vesão:8.60

Xammp.

 

Galera é o seguinte meu gesior funcionava perfeitamente, mas um dia resolvi testar um ot 9.44 e esqueci de fazer um backup da minha database, agora quando eu entro em Characters, e procuro por um player dá o seguinte erro:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'reason' in 'field list'' in C:\xampp\htdocs\otserv\pot\OTS_AccountBan.php:56 Stack trace: #0 C:\xampp\htdocs\otserv\pot\OTS_AccountBan.php(56): PDO->query('SELECT `id`, `t...') #1 C:\xampp\htdocs\otserv\pot\OTS_Account.php(935): OTS_AccountBan->find('4026489') #2 C:\xampp\htdocs\otserv\characters.php(426): OTS_Account->isBanned() #3 C:\xampp\htdocs\otserv\index.php(177): include('C:\xampp\htdocs...') #4 {main} thrown in C:\xampp\htdocs\otserv\pot\OTS_AccountBan.php on line 56

 

esse erro também aparece quando eu vou editar uma 'News', e eu tenho certeza de que o problema é na database e não em nenhum código php(mas mesmo assim irei posta-los aqui), mas não consigo solucionar, por favor me ajudem!

 

Characters.php

 

<?PHP

$name = stripslashes(ucwords(strtolower(trim($_REQUEST['name']))));

if(empty($name)) {

$main_content .= 'Here you can get detailed information about a certain player on '.$config['server']['serverName'].'.<BR> <FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>';

}

else

{

if(check_name($name)) {

$player = $ots->createObject('Player');

$player->find($name);

if($player->isLoaded()) {

$account = $player->getAccount();

$main_content .= '<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%><TR><TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD><TD><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Character Information</B></TD></TR>';

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=20%>Name:</TD><TD><font color="';

$main_content .= ($player->isOnline()) ? 'green' : 'red';

$main_content .= '"><b>'.$player->getName().'</b></font>';

if($player->isDeleted())

$main_content .= '<font color="red"> [DELETED]</font>';

if($player->isNameLocked())

$main_content .= '<font color="red"> [NAMELOCK]</font>';

$main_content .= '</TD></TR>';

if($player->getOldName())

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

if($player->isNameLocked())

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Proposition:</TD><TD>'.$player->getOldName().'</TD></TR>';

else

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Old name:</TD><TD>'.$player->getOldName().'</TD></TR>';

}

// BEGIN Position Showing *** Fixed by jerryb1988 from otfans.net

$group = $player->getGroup();

if ($group == 2){$group_name = 'Tutor';}

if ($group == 3){$group_name = 'Senior Tutor';}

if ($group == 4){$group_name = 'Gamemaster';}

if ($group == 5){$group_name = 'Community Manager';}

if ($group == 6){$group_name = 'GOD';}

if($group != 1)

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Position:</TD><TD>'.$group_name.'</TD></TR>';

}

// END Position Showing

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Sex:</TD><TD>';

$main_content .= ($player->getSex() == 0) ? 'female' : 'male';

$main_content .= '</TD></TR>';

if($config['site']['show_marriage_info'])

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Marital status:</TD><TD>';

$marriage = new OTS_Player();

$marriage->load($player->getMarriage());

if($marriage->isLoaded())

$main_content .= 'married to <a href="?subtopic=characters&name='.urlencode($marriage->getName()).'"><b>'.$marriage->getName().'</b></a></TD></TR>';

else

$main_content .= 'single</TD></TR>';

}

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Profession:</TD><TD>'.$vocation_name[$player->getWorld()][$player->getPromotion()][$player->getVocation()].'</TD></TR>';

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Level:</TD><TD>'.$player->getLevel().'</TD></TR>';

 

 

/* Achievements Points */

$achievementPoints = $SQL->query('SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetch();

 

if(!$achievementPoints['sum']) { $achPoints = '0'; } else { $achPoints = $achievementPoints['sum']; }

 

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Achievement Points:</TD><TD>'.$achPoints.'</TD></TR>';

/* Achievements Points END*/

 

 

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>World:</TD><TD>'.$config['site']['worlds'][$player->getWorld()].'</TD></TR>';

if(!empty($towns_list[$player->getWorld()][$player->getTownId()]))

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Residence:</TD><TD>'.$towns_list[$player->getWorld()][$player->getTownId()].'</TD></TR>';

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Balance:</TD><TD>'.$player->getBalance().' Gold Coins.</TD></TR>';

 

}

$rank_of_player = $player->getRank();

if(!empty($rank_of_player))

{

{

$guild_id = $rank_of_player->getGuild()->getId();

$guild_name = $rank_of_player->getGuild()->getName();

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Guild Membership:</TD><TD>'.$rank_of_player->getName().' of the <a href="?subtopic=guilds&action=show&guild='.$guild_id.'">'.$guild_name.'</a></TD></TR>';

}

}

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$lastlogin = $player->getLastLogin();

if(empty($lastlogin))

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Last login:</TD><TD>Never logged in.</TD></TR>';

else

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Last login:</TD><TD>'.date("j F Y, g:i a", $lastlogin).'</TD></TR>';

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

if($config['site']['show_creationdate'] && $player->getCreated())

{

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Created:</TD><TD>'.date("j F Y, g:i a", $player->getCreated()).'</TD></TR>';

 

$comment = parseubb($player->getComment());

$newlines = array("\r\n", "\n", "\r");

$comment_with_lines = str_replace($newlines, '<br />', $comment, $count);

if($count < 50)

$comment = $comment_with_lines;

if(!empty($comment))

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD VALIGN=top>Comment:</TD><TD>'.$comment.'</TD></TR>';

}

}

 

 

//modified status scripts by ballack13

$main_content .= '<table width=100%><tr>';

//equipment shower by ballack13

if ($player->getCustomField( 'show_eq' ) == 0) {

$id = $player->getCustomField("id");

$number_of_items = 1;

$main_content .= '<td align=center><table with=100% style="border: solid 1px #888888;" CELLSPACING="1"><TR>';

$list = array('2','1','3','6','4','5','9','7','10','8');

foreach ($list as $pid => $name) {

$top = $SQL->query('SELECT * FROM player_items WHERE player_id = '.$id.' AND pid = '.$list[$pid].';')->fetch();

if($top[itemtype] == false) {

if($list[$pid] == '8') {

$main_content .= '<td style="background-color: '.$config['site']['darkborder'].'; text-align: center;">Soul:<br/>'.$player->getSoul().'</td>';

}

if(is_int($number_of_items / 3)){

$main_content .= '<TD style="background-color: '.$config['site']['darkborder'].'; text-align: center;"><img src="images/items/'.$list[$pid].'.gif"/></TD></tr><tr>';

} else {

$main_content .= '<TD style="background-color: '.$config['site']['darkborder'].'; text-align: center;"><img src="images/items/'.$list[$pid].'.gif"/></TD>';

}

$number_of_items++;

}

else

{

if($list[$pid] == '8') {

$main_content .= '<td style="background-color: '.$config['site']['darkborder'].'; text-align: center;">Soul:<br/>'.$player->getSoul().'</td>';

}

if(is_int($number_of_items / 3))

$main_content .= '<TD style="background-color: '.$config['site']['darkborder'].'; text-align: center;"><img src="images/items/'.$top[itemtype].'.gif" width="45"/></TD></tr><tr>';

else

$main_content .= '<TD style="background-color: '.$config['site']['darkborder'].'; text-align: center;"><img src="images/items/'.$top[itemtype].'.gif" width="45"/></TD>';

$number_of_items++;

}

if($list[$pid] == '8') {

$main_content .= '<td style="background-color: '.$config['site']['darkborder'].'; text-align: center;">Cap:<br/>'.$player->getCap().'</td>';

}

}

$main_content .= '</tr></TABLE></td>';}

if ($player->getCustomField( 'show_bars' ) == 0) {

//Hp/Mana/Exp Status by ballack13

$hp = ($player->getHealth() / $player->getHealthMax() * 100);

$main_content .= '<td align=center ><table width=100%><tr><td align=center><table CELLSPACING="1" CELLPADDING="4"><tr><td BGCOLOR="#D4C0A1" align="left" width="20%"><b>Player Health:</b></td>

<td BGCOLOR="#D4C0A1" align="left">'.$player->getHealth().'/'.$player->getHealthMax().'<div style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: red; width: '.$hp.'%; height: 3px;"></td></tr>';

if ($player->getManaMax() > 0) {

$mana = ($player->getMana() / $player->getManaMax() * 100);

$main_content .= '<tr><td BGCOLOR="#F1E0C6" align="left"><b>Player Mana:</b></td><td BGCOLOR="#F1E0C6" align="left">'.$player->getMana().'/'.$player->getManaMax().'<div style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: blue; width: '.$mana.'%; height: 3px;"></td>';

} else {

$main_content .= '<tr><td BGCOLOR="#F1E0C6" align="left"><b>Player Mana:</b></td><td BGCOLOR="#F1E0C6" align="left">0/0<div style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: blue; width: 100%; height: 3px;"></td>'; }

$main_content .= '</tr></table><tr>';

$next = ($player->getLevel() + 1);

$exp = ((50 / 3) * ($player->getLevel() * $player->getLevel() * $player->getLevel()) - (100 * ($player->getLevel() * $player->getLevel())) + ((850/3) * $player->getLevel()) - 200);

$expnext = ((50 / 3) * ($next * $next * $next) - (100 * ($next * $next)) + ((850/3) * $next) - 200 - $player->getExperience());

$expresult = ($expnext / (($expnext + $player->getExperience()) - $exp) * 100);

$main_content .= '<tr><table CELLSPACING="1" CELLPADDING="4"><tr><td BGCOLOR="'.$config['site']['lightborder'].'" align="left" width="20%"><b>Player Level:</b></td><td BGCOLOR="'.$config['site']['lightborder'].'" align="left">'.$player->getLevel().'</td></tr>

<tr><td BGCOLOR="'.$config['site']['darkborder'].'" align="left"><b>Player Experience:</b></td><td BGCOLOR="'.$config['site']['darkborder'].'" align="left">'.$player->getExperience().' EXP.</td></tr>

<tr><td BGCOLOR="'.$config['site']['lightborder'].'" align="left"><b>To Next Level:</b></td><td BGCOLOR="'.$config['site']['lightborder'].'" align="left">You need <b>'.$exp.' EXP</b> to Level <b>'.$next.'</b>.<div title="99.320604545 %" style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: red; width: '.$expresult.'%; height: 3px;"></td></tr></table></td></tr></table></tr></TABLE></td>';

}

if($config['site']['show_skills_info'] and $player->getCustomField( 'show_skills' ) == 1) {

//Skills Pics v2. Table borders optimized by Absolute Mango

$main_content .= '<br/><table cellspacing="0" cellpadding="0" border="0" width="200" align="center"><caption><strong>Skills</strong></caption><tbody><tr>

<td align="center"><a href="?subtopic=highscores&list=experience"><img src="images/skills/level.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=magic"><img src="images/skills/ml.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=fist"><img src="images/skills/fist.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=club"><img src="images/skills/club.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=sword"><img src="images/skills/sword.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=axe"><img src="images/skills/axe.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=distance"><img src="images/skills/dist.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=shield"><img src="images/skills/def.png" style="border: none;"/></a></td>

<td align="center"><a href="?subtopic=highscores&list=fishing"><img src="images/skills/fish.png" style="border: none;"/></a></td>

</tr></tbody></table>

<table cellspacing="0" cellpadding="0" border="1" width="360" align="center"><tbody><tr><tr bgcolor="'.$config['site']['darkborder'].'">

<td align="center" width="38"><strong>Level</strong></td>

<td align="center" width="38"><strong>ML</strong></td>

<td align="center" width="42"><strong>Fist</strong></td>

<td align="center" width="40"><strong>Club</strong></td>

<td align="center" width="38"><strong>Swrd</strong></td>

<td align="center" width="38"><strong>Axe</strong></td>

<td align="center" width="38"><strong>Dist</strong></td>

<td align="center" width="38"><strong>Shield</strong></td>

<td align="center" width="38"><strong>Fish</strong></td></font>

</tr>

<tr bgcolor="'.$config['site']['lightborder'].'">

<td align="center" width="38">'.$player->getLevel().'</td>

<td align="center" width="38">'.$player->getMagLevel().'</td>

<td align="center" width="38">'.$player->getSkill(0).'</td>

<td align="center" width="38">'.$player->getSkill(1).'</td>

<td align="center" width="38">'.$player->getSkill(2).'</td>

<td align="center" width="38">'.$player->getSkill(3).'</td>

<td align="center" width="38">'.$player->getSkill(4).'</td>

<td align="center" width="38">'.$player->getSkill(5).'</td>

<td align="center" width="38">'.$player->getSkill(6).'</td>

</tr></tbody></table><div table align="center"> <br /> </div>';

//skill script end

}

//quest status by ballack13

if ($player->getCustomField( 'show_quests' ) == 0) {

$id = $player->getCustomField("id");

$number_of_quests = 0;

$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD align="left" COLSPAN=2 CLASS=white><B>Quests</B></TD></TD align="right"></TD></TR>';

$quests = $config['site']['quests'];

foreach ($quests as $storage => $name) {

if(is_int($number_of_quests / 2))

$bgcolor = $config['site']['darkborder'];

else

$bgcolor = $config['site']['lightborder'];

$number_of_quests++;

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=95%>'.$storage.'</TD>';

$quest = $SQL->query('SELECT * FROM player_storage WHERE player_id = '.$id.' AND `key` = '.$quests[$storage].';')->fetch();

if($quest == false) {

$main_content .= '<TD><img src="images/false.png"/></TD></TR>';

}

else

{

$main_content .= '<TD><img src="images/true.png"/></TD></TR>';

}

}

$main_content .= '</TABLE></td></tr></table><br />';}

$deads = 0;

 

 

/*

Achievements website script by Archez.

Achievements in-game functions and script by darkhaos.

A person that made this script possible, Chris.

------------------------------------------------------

Merely scripted for Gesior AAC.

------------------------------------------------------

*/

 

$achievements = $SQL->query('SELECT `key`, `player_id` FROM `player_storage` WHERE `key` LIKE "200%" AND `player_id` = ' . $player->getId())->fetchAll();

 

$main_content .= '<br /><table border=0 cellspacing="1" cellpadding="4" width=100%><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class=white><b>Account Achievements</b></td></tr>';

 

if(!$achievements)

{

$main_content .= '<tr bgcolor="'.$config['site']['lightborder'].'"><td>There are no achievements set to be displayed for this character.</td></tr>';

}

else

{

$number_of_rows = 0;

 

foreach($achievements as $row)

{

if(!array_key_exists(($row['key'] - 19999 ), $achievements))

{

if($row['key'] - 20000 <= 54) { $grade = '<img src="http://img02.imgland.net/KN627j4lLN.gif" />'; }

elseif($row['key'] - 20000 >= 55) { $grade = '<img src="http://img02.imgland.net/KN627j4lLN.gif" /> <img src="http://img02.imgland.net/KN627j4lLN.gif" />'; }

 

$secret = false;

 

if(in_array(($row['key'] - 20000), $config['archez']['secret']))

{

$secret = '<img src="http://img04.imgland.net/PuMz0mVqSG.gif" />';

}

 

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['lightborder']; } else { $bgcolor = $config['site']['darkborder']; }

 

$main_content .= '<tr bgcolor="'.$bgcolor.'"><td width="20%">'.$grade.'</td><td>' . $config['archez']['achievements'][$row['key'] - 20000] . '<span style="float:right;">'.$secret.'</span></td></tr>';

 

$number_of_rows++;

}

}

}

 

$main_content .= '</table>';

 

/* END OF ACHIEVEMENTS */

 

 

 

//frags list by Xampy

 

$frags_limit = 10; // frags limit to show? // default: 10

$player_frags = $SQL->query('SELECT `player_deaths`.*, `players`.`name`, `killers`.`unjustified` FROM `player_deaths` LEFT JOIN `killers` ON `killers`.`death_id` = `player_deaths`.`id` LEFT JOIN `player_killers` ON `player_killers`.`kill_id` = `killers`.`id` LEFT JOIN `players` ON `players`.`id` = `player_deaths`.`player_id` WHERE `player_killers`.`player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,'.$frags_limit.';');

if(count($player_frags))

{

$frags = 0;

$frag_add_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><br><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Frags List</B></TD></TR>';

foreach($player_frags as $frag)

{

$frags++;

if(is_int($number_of_rows / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder'];

$number_of_rows++;

$frag_add_content .= "<tr bgcolor=\"".$bgcolor."\">

<td width=\"20%\" align=\"center\">".date("j M Y, H:i", $frag['date'])."</td>

<td>".(($player->getSex() == 0) ? 'She' : 'He')." fragged <a href=\"index.php?subtopic=characters&name=".$frag[name]."\">".$frag[name]."</a> at level ".$frag[level]."";

 

$frag_add_content .= ". (".(($frag[unjustified] == 0) ? "<font size=\"1\" color=\"green\">Justified</font>" : "<font size=\"1\" color=\"red\">Unjustified</font>").")</td></tr>";

}

if($frags >= 1)

$main_content .= $frag_add_content . '</TABLE>';

}

// end of frags list by Xampy <br />

 

//deaths list

$player_deaths = $SQL->query('SELECT `id`, `date`, `level` FROM `player_deaths` WHERE `player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,10;');

foreach($player_deaths as $death)

{

if(is_int($number_of_rows / 2))

$bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder'];

$number_of_rows++; $deads++;

$dead_add_content .= "<tr bgcolor=\"".$bgcolor."\">

<td width=\"20%\" align=\"center\">".date("j M Y, H:i", $death['date'])."</td>

<td>";

$killers = $SQL->query("SELECT environment_killers.name AS monster_name, players.name AS player_name, players.deleted AS player_exists FROM killers LEFT JOIN environment_killers ON killers.id = environment_killers.kill_id

LEFT JOIN player_killers ON killers.id = player_killers.kill_id LEFT JOIN players ON players.id = player_killers.player_id

WHERE killers.death_id = ".$SQL->quote($death['id'])." ORDER BY killers.final_hit DESC, killers.id ASC")->fetchAll();

$i = 0;

$count = count($killers);

foreach($killers as $killer)

{

$i++;

if(in_array($i, array(1, $count)))

$killer['monster_name'] = str_replace(array("an ", "a "), array("", ""), $killer['monster_name']);

if($killer['player_name'] != "")

{

if($i == 1)

$dead_add_content .= "Killed at level <b>".$death['level']."</b> by ";

else if($i == $count)

$dead_add_content .= " and by ";

else

$dead_add_content .= ", ";

if($killer['monster_name'] != "")

$dead_add_content .= $killer['monster_name']." summoned by ";

if($killer['player_exists'] == 0)

$dead_add_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">";

$dead_add_content .= $killer['player_name'];

if($killer['player_exists'] == 0)

$dead_add_content .= "</a>";

}

else

{

if($i == 1)

$dead_add_content .= "Died at level <b>".$death['level']."</b> by ";

else if($i == $count)

$dead_add_content .= " and by ";

else

$dead_add_content .= ", ";

$dead_add_content .= $killer['monster_name'];

}

if($i == $count)

$dead_add_content .= ".";

}

$dead_add_content .= ".</td></tr>";

}

if($deads > 0)

$main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Deaths</B></TD></TR>' . $dead_add_content . '</TABLE><br />';

//end

if(!$player->getHideChar()) {

$main_content .= '<TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Account Information</B></TD></TR>';

if($account->getRLName())

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR='.$config['site']['lightborder'].'><TD WIDTH=20%>Real name:</TD><TD>'.$account->getRLName().'</TD></TR>';

}

if($account->getLocation())

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR='.$config['site']['darkborder'].'><TD WIDTH=20%>Location:</TD><TD>'.$account->getLocation().'</TD></TR>';

}

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

 

if($account->getCreated())

{

if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;

$main_content .= '<TR BGCOLOR='.$config['site']['lightborder'].'><TD WIDTH=20%>Created:</TD><TD>'.date("j F Y, g:i a", $account->getCreated()).'</TD></TR>';

}

 

if($account->isBanned())

//if($account->getBanTime() > 0)

//$main_content .= '<font color="red"> [banished until '.date("j F Y, G:i", $account->getBanTime()).']</font>';

//else

$main_content .= '<font color="red"> [banished]</font>';

$main_content .= '</TD></TR></TABLE>';

$main_content .= '<br><TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=5 CLASS=white><B>Characters</B></TD></TR>

<TR BGCOLOR='.$config['site']['darkborder'].'><TD><B>Name</B></TD><TD><B>World</B></TD><TD><B>Level</B></TD><TD><b>Status</b></TD><TD><B> </B></TD></TR>';

$account_players = $account->getPlayersList();

$account_players->orderBy('name');

$player_number = 0;

foreach($account_players as $player_list)

{

if(!$player_list->getHideChar())

{

$player_number++;

if(is_int($player_number / 2))

$bgcolor = $config['site']['darkborder'];

else

$bgcolor = $config['site']['lightborder'];

if(!$player_list->isOnline())

$player_list_status = '<font color="red">Offline</font>';

else

$player_list_status = '<font color="green">Online</font>';

$main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD WIDTH=52%><NOBR>'.$player_number.'. '.$player_list->getName();

$main_content .= ($player_list->isDeleted()) ? '<font color="red"> [DELETED]</font>' : '';

$main_content .= '</NOBR></TD><TD WIDTH=15%>'.$config['site']['worlds'][$player_list->getWorld()].'</TD><TD WIDTH=25%>'.$player_list->getLevel().' '.$vocation_name[$player_list->getWorld()][$player_list->getPromotion()][$player_list->getVocation()].'</TD><TD WIDTH="8%"><b>'.$player_list_status.'</b></TD><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=characters" METHOD=post><TR><TD><INPUT TYPE=hidden NAME=name VALUE="'.$player_list->getName().'"><INPUT TYPE=image NAME="View '.$player_list->getName().'" ALT="View '.$player_list->getName().'" SRC="'.$layout_name.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></TD></TR>';

}

}

$main_content .= '</TABLE></TD><TD><IMG SRC="'.$layout_name.'/images/general/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD></TR></TABLE>';

}

$main_content .= '<BR><BR><FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>';

$main_content .= '</TABLE>';

}

else

$search_errors[] = 'Character <b>'.$name.'</b> does not exist.';

}

else

$search_errors[] = 'This name contains invalid letters. Please use only A-Z, a-z and space.';

if(!empty($search_errors))

{

$main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>';

foreach($search_errors as $search_error)

$main_content .= '<li>'.$search_error;

$main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>';

$main_content .= '<BR><FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>';

}

}

?>

 

 

 

OTS_AccountBan:

 

<?php

 

/**

* @package POT

* @version 0.1.6

* @since 0.1.5

* @author Wrzasq <wrzasq@gmail.com>

* @copyright 2007 - 2008 © by Wrzasq

* @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU Lesser General Public License, Version 3

*/

/**

* OTServ account ban.

*

* @package POT

* @version 0.1.6

* @since 0.1.5

*/

class OTS_AccountBan extends OTS_Ban

{

/**

* Ban data.

*

* @var array

* @version 0.1.6

* @since 0.1.5

*/

protected $data = array('type' => POT::BAN_ACCOUNT, 'param' => 0, 'active' => true, 'admin_id' => 0, 'comment' => '', 'reason' => 0);

/**

* Loads account ban with given id.

*

* @version 0.1.5

* @since 0.1.5

* @param int $id Ban ID.

* @throws PDOException On PDO operation error.

*/

public function load($id)

{

// SELECT query on database

$this->data = $this->db->query('SELECT ' . $this->db->fieldName('id') . ', ' . $this->db->fieldName('type') . ', ' . $this->db->fieldName('value') . ', ' . $this->db->fieldName('param') . ', ' . $this->db->fieldName('active') . ', ' . $this->db->fieldName('expires') . ', ' . $this->db->fieldName('added') . ', ' . $this->db->fieldName('admin_id') . ', ' . $this->db->fieldName('comment') . ', ' . $this->db->fieldName('reason') . ' FROM ' . $this->db->tableName('bans') . ' WHERE ' . $this->db->fieldName('type') . ' = ' . POT::BAN_ACCOUNT . ' AND ' . $this->db->fieldName('id') . ' = ' . (int) $id)->fetch();

}

/**

* Loads account ban by banned account ID.

*

* @version 0.1.5

* @since 0.1.5

* @param int $id Account's ID.

* @throws PDOException On PDO operation error.

*/

public function find($id)

{

// SELECT query on database

$this->data = $this->db->query('SELECT ' . $this->db->fieldName('id') . ', ' . $this->db->fieldName('type') . ', ' . $this->db->fieldName('value') . ', ' . $this->db->fieldName('param') . ', ' . $this->db->fieldName('active') . ', ' . $this->db->fieldName('expires') . ', ' . $this->db->fieldName('added') . ', ' . $this->db->fieldName('admin_id') . ', ' . $this->db->fieldName('comment') . ', ' . $this->db->fieldName('reason') . ' FROM ' . $this->db->tableName('bans') . ' WHERE ' . $this->db->fieldName('type') . ' = ' . POT::BAN_ACCOUNT . ' AND ' . $this->db->fieldName('value') . ' = ' . (int) $id)->fetch();

}

}

?>

 

 

Link para o comentário
Compartilhar em outros sites

ja tentou adicionar a coluna reason na tabela de bans?

 

seria algo do genero:

 

]ALTER TABLE bans ADD reason text

Editado por Boors
Link para o comentário
Compartilhar em outros sites

Então, na verdade eu já sabia que isso resolveria meu problema, o negocio era os player que ja tinham sido ban.

Fiz um beckup da coluna values ,deletei a tabela bans, e executei o seguinte código no sql.

 

CREATE TABLE `bans`
(
`id` INT UNSIGNED NOT NULL auto_increment,
`type` TINYINT(1) NOT NULL COMMENT '1 - ip banishment, 2 - namelock, 3 - account banishment, 4 - notation, 5 - deletion',
`value` INT UNSIGNED NOT NULL COMMENT 'ip address (integer), player guid or account number',
`param` INT UNSIGNED NOT NULL DEFAULT 4294967295 COMMENT 'used only for ip banishment mask (integer)',
`active` TINYINT(1) NOT NULL DEFAULT TRUE,
`expires` INT NOT NULL,
`added` INT UNSIGNED NOT NULL,
`admin_id` INT UNSIGNED NOT NULL DEFAULT 0,
`comment` TEXT NOT NULL,
`reason` INT UNSIGNED NOT NULL DEFAULT 0,
`action` INT UNSIGNED NOT NULL DEFAULT 0,
`statement` VARCHAR(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `type` (`type`, `value`),
KEY `active` (`active`)
) ENGINE = InnoDB;

 

Rep+ pra vc Boors

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...