luhfe
New Member
- Joined
- Apr 26, 2018
- Messages
- 48
- Reaction score
- 2
Don`t return names on site AND say /ban in the game dont use a function correctly (separatorPos).
Ex : /ban player, reason, type, comments
(Link of photo error on website) : teste.png (https://drive.google.com/file/d/1yTR9xNW5Mh_7GsAOs0tg5FhGu3yf2xAl/view?usp=sharing)
Maybe i know where the lines errors is but dont know for sure, so if someone can help i'll aprec. Ty
Bans.php
Ban.lua (talkaction)
i think the errors is there :
Ban.lua
Bans.php
Ex : /ban player, reason, type, comments
(Link of photo error on website) : teste.png (https://drive.google.com/file/d/1yTR9xNW5Mh_7GsAOs0tg5FhGu3yf2xAl/view?usp=sharing)
Maybe i know where the lines errors is but dont know for sure, so if someone can help i'll aprec. Ty
Bans.php
<?php
/**
* Bans
*
* @package MyAAC
* @author Gesior <[email protected]>
* @author Slawkens <[email protected]>
* @copyright 2019 MyAAC
* @link MyAAC – Official site of the MyAAC. The best AAC in the world! (https://my-aac.org)
*/
defined('MYAAC') or die('Direct access not allowed!');
$title = 'Bans list';
if(!$config['bans_display_all'])
echo 'Last ' . $config['bans_limit'] . ' banishments.<br/><br/>';
if($config['bans_display_all'])
{
$_page = isset($_GET['page']) ? $_GET['page'] : 0;
$offset = $_page * $config['bans_limit'] + 1;
}
$bans = $db->query('SELECT * FROM ' . $db->tableName('account_bans') . ' WHERE ' . $db->fieldName('account_id') . ' >= 1 ORDER BY ' . $db->fieldName('banned_at') . '');
if(!$bans->rowCount())
{
?>
There are no banishments yet.
<?php
return;
}
?>
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr align="center" bgcolor="<?php echo $config['vdarkborder']; ?>" class="white">
<td><span style="color: white"><b>Nick</b></span></td>
<td><span style="color: white"><b>Type</b></span></td>
<td><span style="color: white"><b>Expires</b></span></td>
<td><span style="color: white"><b>Reason</b></span></td>
<td><span style="color: white"><b>Comment</b></span></td>
<td><span style="color: white"><b>Added by:</b></span></td>
</tr>
<?php
foreach($bans as $ban)
{
if($i++ > 100)
{
$next_page = true;
break;
}
?>
<tr align="center" bgcolor="<?php echo getStyle($i); ?>">
<td height="50" width="140"><?php echo getPlayerLink(getPlayerNameByAccount($ban['value'])); ?></td>
<td><?php echo getBanType($ban['type']); ?></td>
<td>
<?php
if($ban['expires'] == "-1")
echo 'Never';
else
echo date("H:i:s", $ban['expires']) . '<br/>' . date("d M Y", $ban['expires']);
?>
</td>
<td><?php echo getBanReason($ban['reason']); ?></td>
<td><?php echo $ban['comments']; ?></td>
<td>
<?php
if($ban['banned_by'] == "0")
echo 'Autoban';
else
echo getPlayerLink(getPlayerNameByAccount($ban['banned_by']));
echo '<br/>' . date("d.m.Y", $ban['added']);
?>
</td>
</tr>
<?php
}
?>
</table>
<table border="0" cellpadding="4" cellspacing="1" width="100%">
<?php
if($_page > 0)
echo '<tr><td width="100%" align="right" valign="bottom"><a href="?subtopic=bans&page=' . ($_page - 1) . '" class="size_xxs">Previous Page</a></td></tr>';
if($next_page)
echo '<tr><td width="100%" align="right" valign="bottom"><a href="?subtopic=bans&page=' . ($_page + 1) . '" class="size_xxs">Next Page</a></td></tr>';
?>
</table>
<?php
function getBanReason($reasonId)
{
switch($reasonId)
{
case 0:
return "Offensive Name";
case 1:
return "Invalid Name Format";
case 2:
return "Unsuitable Name";
case 3:
return "Name Inciting Rule Violation";
case 4:
return "Offensive Statement";
case 5:
return "Spamming";
case 6:
return "Illegal Advertising";
case 7:
return "Off-Topic Public Statement";
case 8:
return "Non-English Public Statement";
case 9:
return "Inciting Rule Violation";
case 10:
return "Bug Abuse";
case 11:
return "Game Weakness Abuse";
case 12:
return "Using Unofficial Software to Play";
case 13:
return "Hacking";
case 14:
return "Multi-Clienting";
case 15:
return "Account Trading or Sharing";
case 16:
return "Threatening Gamemaster";
case 17:
return "Pretending to Have Influence on Rule Enforcement";
case 18:
return "False Report to Gamemaster";
case 19:
return "Destructive Behaviour";
case 20:
return "Excessive Unjustified Player Killing";
case 21:
return "Invalid Payment";
case 22:
return "Spoiling Auction";
}
return "Unknown Reason";
}
function getBanType($typeId)
{
switch($typeId)
{
case 1:
return "IP Banishment";
case 2:
return "Namelock";
case 3:
return "Banishment";
case 4:
return "Notation";
case 5:
return "Deletion";
}
return "Unknown Type";
}
function getPlayerNameByAccount($id)
{
global $vowels, $ots, $db;
if(is_numeric($id))
{
$player = new OTS_Player();
$player->load($id);
if($player->isLoaded())
return $player->getName();
else
{
$playerQuery = $db->query('SELECT'. $db->fieldName('name') . 'FROM' . $db->tableName('players') . ' WHERE' . $db->fieldName('account_id') . '=' . $id . ' ORDER BY '. $db->fieldName('lastlogin') . 'DESC LIMIT 1;')->fetch();
$tmp = "Error";
/*
$acco = new OTS_Account();
$acco->load($id);
if(!$acco->isLoaded())
return "Unknown name";
foreach($acco->getPlayersList() as $p)
{
$player= new OTS_Player();
$player->find($p);*/
$player->load($playerQuery['id']);
//echo 'id gracza = ' . $p . '<br/>';
if($player->isLoaded())
$tmp = $player->getName();
// break;
//}
return $tmp;
}
}
return '';
}
?>
Ban.lua (talkaction)
local banDays = 7
local ban = TalkAction("/ban")
function ban.onSay(player, words, param)
if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then
return true
end
if param == "" then
player:sendCancelMessage("Command param required.")
return false
end
local name = param
local reason = ''
local type = ''
local comments = ''
local separatorPos = param:find(',')
if separatorPos then
name = param:sub(0, separatorPos - 1)
reason = string.trim(param:sub(separatorPos + 1))
type = string.trim(param:trim(separatorPos + 1))
comments= string.trim(param:trim(separatorPos + 1))
end
local accountId = getAccountNumberByPlayerName(name)
if accountId == 0 then
return false
end
local resultId = db.storeQuery("SELECT 1 FROMaccount_bans
WHEREaccount_id
= " .. accountId)
if resultId ~= false then
result.free(resultId)
return false
end
local timeNow = os.time()
db.query("INSERT INTOaccount_bans
(account_id
,reason
,type
,comments
,banned_at
,expires_at
,banned_by
) VALUES
(" .. accountId .. ", " .. db.escapeString(reason) .. ", " .. db.escapeString(type) .. ", " .. db.escapeString(comments) .." , " .. timeNow .. ", " .. timeNow + (banDays * 86400) .. ", " .. player:getGuid().. ")")
local target = Player(name)
if target then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, target:getName() .. " has been banned.")
target:remove()
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, name .. " has been banned.")
end
end
ban:separator(" ")
ban:register()
i think the errors is there :
Ban.lua
local separatorPos = param:find(',')
if separatorPos then
name = param:sub(0, separatorPos - 1)
reason = string.trim(param:sub(separatorPos + 1))
type = string.trim(param:trim(separatorPos + 1))
comments= string.trim(param:trim(separatorPos + 1))
end
Bans.php
function getPlayerNameByAccount($id)
{
global $vowels, $ots, $db;
if(is_numeric($id))
{
$player = new OTS_Player();
$player->load($id);
if($player->isLoaded())
return $player->getName();
else
{
$playerQuery = $db->query('SELECT'. $db->fieldName('name') . 'FROM' . $db->tableName('players') . ' WHERE' . $db->fieldName('account_id') . '=' . $id . ' ORDER BY '. $db->fieldName('lastlogin') . 'DESC LIMIT 1;')->fetch();
$tmp = "Error";
/*
$acco = new OTS_Account();
$acco->load($id);
if(!$acco->isLoaded())
return "Unknown name";
foreach($acco->getPlayersList() as $p)
{
$player= new OTS_Player();
$player->find($p);*/
$player->load($playerQuery['id']);
//echo 'id gracza = ' . $p . '<br/>';
if($player->isLoaded())
$tmp = $player->getName();
// break;
//}
return $tmp;
}
}