Ir para conteúdo
  • Cadastre-se

(Resolvido)Comando


Ir para solução Resolvido por narazaky,

Posts Recomendados

String.Explode é uma função adicionada, não é nativa do lua.

string.trim = function (str)
	return str:gsub("^%s*(.-)%s*$", "%1")
end

string.explode = function (str, sep, limit)
	if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
		return {}
	end

	local i, pos, tmp, t = 0, 1, "", {}
	for s, e in function() return string.find(str, sep, pos) end do
		tmp = str:sub(pos, s - 1):trim()
		if tmp ~= "" then               --alterado v1.8
		   table.insert(t, tmp)
        end
		pos = e + 1

		i = i + 1
		if(limit ~= nil and i == limit) then
			break
		end
	end

	tmp = str:sub(pos):trim()
	if tmp ~= "" then              --alterado v1.8
       table.insert(t, tmp)
    end
	return t
end
Editado por Gabrielbsales (veja o histórico de edições)

Att. Featzen.

Link para o post
Compartilhar em outros sites

@Gabrielbsales, oque eu quis dizer é que ela é feita somente com base nas próprias funções da linguagem, não tem nenhum comando da source nela e por conta disso ela é utilizada amplamente, é uma das primeiras coisas que as pessoas fazem quando criam a source/lib mas não sabia que mudaram o nome pra string.split em 1.0; 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Mas string split é outra função(deveria ser a mesma coisa):

string.split = function (str)
local t = {}
return not str:gsub("%w+", function(s) table.insert(t, s) return "" end):find("%S") and t or {}
end

Não tem as mesmas propriedades. 

.-.

 

Editado por Gabrielbsales (veja o histórico de edições)

Att. Featzen.

Link para o post
Compartilhar em outros sites

Depois de tanto tempo consegui:

string.trim = function (str)
return str:gsub("^%s*(.-)%s*$", "%1")
end
 
string.explode = function (str, sep, limit)
if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then
return {}
end
 
local i, pos, tmp, t = 0, 1, "", {}
for s, e in function() return string.find(str, sep, pos) end do
tmp = str:sub(pos, s - 1):trim()
table.insert(t, tmp)
pos = e + 1
 
i = i + 1
if(limit ~= nil and i == limit) then
break
end
end
 
tmp = str:sub(pos):trim()
table.insert(t, tmp)
return t
end
 
function onSay(cid, words, param, channel)
local t = string.explode(string.lower(param), ",")
local player = Player(cid)
if not player:getGroup():getAccess() then
return true
end
 
local accountId = getAccountNumberByPlayerName(t[1])
if (accountId == 0) or (not t[1]) then
doPlayerSendCancel(cid,"Insira um nome valido")
return true
end
 
local resultId = db.storeQuery("SELECT 1 FROM `account_bans` WHERE `account_id` = " .. accountId)
if resultId ~= false then
result.free(resultId)
return false
end
 
 
local coment,banDays = t[2],tonumber(t[3])
if (not t[2])then
coment = "Quebra de regra"
end
if (not tonumber(t[3])) then
banDays = 7
end
 
local timeNow = os.time()
db:query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" ..
accountId .. ", '"..coment.."', " .. timeNow .. ", " .. timeNow + (banDays * 86400) .. ", " .. player:getGuid() .. ")")
 
local target = Player(t[1])
if target then
for _, pid in ipairs(Game.getPlayers()) do
pid:sendTextMessage(MESSAGE_STATUS_WARNING, "" .. getPlayerName(cid) .. ": A conta do jogador ".. t[1].. " foi banida por "..banDays.." dias. Motivo: "..coment..".")
end
target:remove()
else
for _, pid in ipairs(Game.getPlayers()) do
pid:sendTextMessage(MESSAGE_STATUS_WARNING, "" .. getPlayerName(cid) .. ": A conta do jogador ".. t[1].. " foi banida por "..banDays.." dias. Motivo: "..coment..".")
end
end
end

 
como usar:
/ban nome,coment,dias

ou

/ban nome, comentario

ou ainda:

/ban nome

Pode usar tanto em jogadores off ou online

 

 

Espero ter ajudado. :P

 

Editado por narazaky (veja o histórico de edições)

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

Eu tenho por hora:

coloca isso

   <td>' . date("j/m/Y, g:i a", $ban['expires_at']) . '<br /></td>

no lugar de 

   <td>' . $zodis . '<br /></td>
Editado por narazaky (veja o histórico de edições)

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

rep++s

e acha que consegue colocar pra em vez de por o getPlayerguid, colocar o nome de quem baniu? Porque ir pelo ID é foda.

Link para o post
Compartilhar em outros sites

Consegui:

coloca isso na sua pagina php

$autor = $SQL->query('SELECT `name` FROM `players` WHERE `id` = ' . $ban['banned_by'] .' LIMIT 1')->fetch();

e para apresentar só colocar isso:

    <td>   ' . $autor['name'] . ' </td><tr>';

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites
  • Solução

Ve essa:

é a que estou usando

 

<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:10px;padding:1px 50px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
</style>
 
 
<?PHP
 
///
 
$data = $SQL->query('SELECT `players_data`.`name`, `account_bans`.`account_id`, `account_bans`.`reason`, `account_bans`.`banned_at`, `account_bans`.`expires_at`, `account_bans`.`banned_by` FROM `account_bans` INNER JOIN (SELECT * FROM (SELECT `account_id`, `name` FROM `players` WHERE `players`.`account_id` IN (SELECT `account_id` FROM `account_bans`) ORDER BY `level` DESC) x GROUP BY `account_id`) players_data ON `account_bans`.`account_id` = `players_data`.`account_id`')->fetchAll();
echo '<p align="center"><br/>
 
 
 
';
echo ' <table class="tg">
<th class="tg-031e">Number.</th>
<th class="tg-031e">Player</th>
<th class="tg-031e">Reason</th>
<th class="tg-031e">Expires</th>
<th class="tg-031e">Autor</th>
<tr>
 
';
 
foreach($data as $i => $ban)
{
 
$autor = $SQL->query('SELECT `name` FROM `players` WHERE `id` = ' . $ban['banned_by'] .' LIMIT 1')->fetch();
 
 
 
 
    echo '<td>' .($i+1) . '.</td><td><font color=red><a href="?subtopic=characters&name=' . urlencode($ban['name']) . '"></font>' .htmlspecialchars($ban['name']). '</a></td>
   
    <td>' . htmlspecialchars($ban['reason']) . '<br /></td>
   <td>' . date("j/m/Y, G:i", $ban['expires_at']) . '<br /></td>
    <td>   ' . $autor['name'] . ' </td><tr>';
}
  echo '</table>';
 
  ?>

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

Aah, vi aqui, eu que tava colocando a query no lugar errado euhuehuehe!!!

vlw rep++

 

tipo se sabe arrumar o horário? aqui mostra 2hrs a +... ex, fui banido às 20:28 aparece 22:28 '-'

Editado por Lumus (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

ja ai eu nao sei :/
so tem um mes que uso site. 

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

é algo na configuração do próprio servidor, tipo, ele é configurado para ex hora da Europa, têm que achar aonde coloca o do Brasil.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo