Ir para conteúdo
  • Cadastre-se

(Resolvido)Comando


Ir para solução Resolvido por narazaky,

Posts Recomendados

Olá, galera, preciso da ajuda docêis...

 

Quero que nesse script, o admin precise colocar o motivo do banimento. Ex:

 

/ban Teste, Arroz é bom.

Aonde teste = nome do personagem
e Arroz é bom o comentário.

Se possível também, colocar assim:

 

/ban Teste, Arroz é bom, 7

Aonde 7 = número de dias que ele ficará banido.

No lugar do 7 possa ser QUALQUER número.

 

Ao usar o comando, manda uma mensagem para todos assim:

13:14 ADM: A conta do jogador Teste  foi banida por 7 dias. Motivo: Arroz é bom.

 

Script:

local banDays = 7
function onSay(cid, words, param)
	local player = Player(cid)
	if not player:getGroup():getAccess() then
		return true
	end

	local accountId = getAccountNumberByPlayerName(param)
	if accountId == 0 then
		return false
	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 timeNow = os.time()
	db:query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" ..
			accountId .. ", '', " .. timeNow .. ", " .. timeNow + (banDays * 86400) .. ", " .. player:getGuid() .. ")")

	local target = Player(param)
	if target ~= nil then
		player:sendTextMessage(TALKTYPE_BROADCAST,"" .. player:getName() .. ", A conta do jogador ".. target:getName() .. " foi banida por 7 dias.")
		player:sendTextMessage(TALKTYPE_BROADCAST,"" .. player:getName() .. ": A conta do jogador ".. target:getName() .. " foi banida por 7 dias.")
		target:remove()
	else
		player:sendTextMessage(TALKTYPE_BROADCAST,"" .. player:getName() .. ", A conta do jogador ".. param .. " foi banida por 7 dias.")
		player:sendTextMessage(TALKTYPE_BROADCAST,"" .. player:getName() .. ": A conta do jogador ".. param .. "  foi banida por 7 dias.")
	end
end

Espero que possam me ajudar, ficarei grato a todos.

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

Tu quer  um parâmetro para adicionar coment e days no caso, mandando em default all pra todos quando o ADMIN executar a ação?

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

Tu quer  um parâmetro para adicionar coment e days no caso, mandando em default all pra todos quando o ADMIN executar a ação?

Sim.

Link para o post
Compartilhar em outros sites

So colocar para ler os parametros e acrescenta-los na posição que voce quer.

e por para aparecer em broadcast

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

Frescuras jovem? só tu alterar as funções meu filho.

E vale constar que a função do broadcast é a mesma.

sendChannelMessage

:*

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

Facinho de fazer isso :D

adiciona um parâmetro days e um parâmetro comment.

seguindo obviamente as funções disponiveis no tfs 1.0

 

logo o broadcast seria

player:sendTextMessage(TALKTYPE_BROADCAST,"" .. player:getName() .. ", A conta do jogador ".. param .. " foi banida por ".. param .." dias, Por ".. param .." Motivo.")

547657261_assinaturatibiaking.jpg.c1cc2728d9b7e7142cd10bf237f3370d.jpg

'' Uma ideia é apenas uma ideia, até ser desenvolvida, mastigada, retratada, analisada e por fim se tornar uma boa ideia. ''

Link para o post
Compartilhar em outros sites

Pior que é mesmo, só esta reconhecendo o primeiro parametro, a partir do segundo ele nao reconhece D:

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

faz string.explode no param pra dividir ele.. usa virgula como separador e chama a nova table de string de t..
daí vc substitui param por t[1] e dps faz as respectivas verificações pra garantir que t[2] seja uma string e t[3] seja um número. Feito isso vc coloca o local banDays dentro do callback e faz ele ser igual ao t[3] (dps de garantir que seja um numero) e no final adiciona os extras de mandar broadcast e salvar na db nessa parte aqui:

, '',

 

vc vai colocar "..t[2].." no lugar desse ''

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

faz string.explode no param pra dividir ele.. usa virgula como separador e chama a nova table de string de t..

daí vc substitui param por t[1] e dps faz as respectivas verificações pra garantir que t[2] seja uma string e t[3] seja um número. Feito isso vc coloca o local banDays dentro do callback e faz ele ser igual ao t[3] (dps de garantir que seja um numero) e no final adiciona os extras de mandar broadcast e salvar na db nessa parte aqui:

vc vai colocar "..t[2].." no lugar desse ''

Eu fiz isso, o tfs 1.0 nao reconhece o explode, para resolver isso coloquei "params = string:param(",")"

ficando assim:

db:query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" ..
			accountId .. ", "..params[2]..", " .. timeNow .. ", " .. timeNow + (banDays * 86400) .. ", " .. player:getGuid() .. ")") 

ele reconheceu, e ate vai, porem na hora de colocar na database ele nao aceita nenhum parametro depois do primeiro

so se eu usar o comando assim: /ban nome   se for assim /ban nome, comment   nao vai. nem aparece erro na distro

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

não reconhece porque vc fez o explode errado e não existe params[2]. string.explode é um comando da própria linguagem lua e não altera com a versão do tfs...

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

Aqui o que eu fiz:

local banDays = 7
 
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 then
return false
end
 
local resultId = db.storeQuery("SELECT 1 FROM `account_bans` WHERE `account_id` = " .. accountId)
if resultId ~= false then
result.free(resultId)
return false
end
if t[2] then
coment = t[2]
else
coment = "Quebra de regra"
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(param)
if target ~= nil then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, target:getName() .. " has been banned.")
target:remove()
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, param .. " has been banned.")
end
end

  erro que retorna:
XVlAExA.png
colocando o que falei antes nao dava erro
local split = param:split(",")

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

nao dar erro não indica que tá certo uhauhauh, eu não tenho nenhum TFS pra testar mas coloca um for pra printar todo o conteudo dessa tabela que vc tá criando com string.split

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

já cansei de falar que explode n funfa em tfs 1.0 :D

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

já cansei de falar que explode n funfa em tfs 1.0 :D

isso que estou falando...

coloquei o outro comando e funcionou, porem a db nao aceitava os caracteres que mandava por causa do espaço

Te ajudei? Então Rep + ;)

Link para o post
Compartilhar em outros sites

isso que estou falando...

coloquei o outro comando e funcionou, porem a db nao aceitava os caracteres que mandava por causa do espaço

é, aqui também da a mesma coisa da db.

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