Ir para conteúdo
  • Cadastre-se

(Resolvido){Resolvido} [TalkAction] Comando Change Name que remove item.


Ir para solução Resolvido por Noninhouh,

Posts Recomendados

  Em 06/10/2017 em 16:46, yanloco70 disse:

@Noninhouhimage.png.49cb3f45569fa18cc8b43b20b8ade90f.png

Fucei Fucei e n consegui......
 

Bom Ele consome O item mais nao muda nick....

Uso Mysql

Mostrar mais  


@yanloco70 Esse aqui funciona em MySql:

local config = {

item = {

Id = 1111,

count = 0,

},

maxTextLenght = 15,

blacklistParam = {"account manager", "god", "cm", "gm", "tutor", "tester"},

minWordLenght = 3,

delay = 2

}



function onSay(cid, words, param, channel)

local textCancel, t = config.text, string.explode(param, ",")

if(param == '') then

return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")

elseif((getPlayerGUIDByName(t[1]) ~= nil) and (not getBooleanFromString(t[2]))) then

textCancel = "That name is already in use."

elseif(getPlayerItemCount(cid, config.item.Id) < config.item.count) then

textCancel = "You do not fulfill the requirements."

elseif(not getTilePzInfo(getCreaturePosition(cid))) then

textCancel = "You must be inside a protection zone to use this command."

elseif(string.len(tostring(t[1])) >= config.maxTextLenght) then

textCancel = "You can only use a maximum of " .. config.maxTextLenght .. " characters."

elseif(string.find(t[1]:lower(), "[^%l%s]") ~= nil) then

textCancel = "You cannot use symbols."

else

for blacklist = 1, table.maxn(config.blacklistParam) do

if(string.find(t[1]:lower(), config.blacklistParam[blacklist]) ~= nil) then

textCancel = "Invalid name entry."

break

end

end

end



if(config.text ~= textCancel) then

doPlayerSendCancel(cid, textCancel)

return true

end



local paramTemp, space, oldName = '', '', getCreatureName(cid)

for word in string.gmatch(t[1], "%a+") do

if(string.len(word) < config.minWordLenght) then

doPlayerSendCancel(cid, "Each word must have a minimum of " .. config.minWordLenght .. " characters.")

return true

end



paramTemp = "" .. paramTemp .. "" .. space .. "" .. word .. ""

if(space == '') then

space = " "

end

end



local guid = getPlayerGUID(cid)

t[1] = paramTemp

doPlayerRemoveItem(cid, config.item.Id, config.item.count)

if(pcall(doPlayerChangeName, guid, oldName, t[1]) == false) then

db.executeQuery("INSERT INTO `player_namelocks` (`player_id`, `name`, `new_name`, `date`) VALUES (" .. guid .. ", " .. db.escapeString(oldName) .. ", " .. db.escapeString(t[1]) .. ", " .. os.time() .. ");")

db.executeQuery("UPDATE `players` SET `name` = " .. db.escapeString(t[1]) .. " WHERE `id` = " .. guid .. " LIMIT 1;")

end



doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your name has been changed successfully. You will be kicked in " .. config.delay .. " seconds.")

addEvent(function(cid, forceLogout)

if(isPlayer(cid)) then

doRemoveCreature(cid, forceLogout)

end

end, config.delay * 1000, cid, false)



return true

end

 

Créditos - Ratser

Editado por dimmebag (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 20
  • Created
  • Última resposta

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Posts

Tente assim:   Com a tag: <talkaction words="!name" filter="quotation" event="script" value="name.lua"/>   No caso será usado assim: (!name"Jon Snow)   E é como o @yanloco70 disse, não fique sempre esperando pelos outros, procure ir mexendo no script até que você ache a solução do seu problema.

Então é melhor esperar alguém que saiba aparecer... Isso não vai dar em nada =S

@yanloco70 Esse aqui funciona em MySql: local config = { item = { Id = 1111, count = 0, }, maxTextLenght = 15, blacklistParam = {"account manager", "god", "cm", "gm", "tutor", "tester"}, minWordLenght = 3, delay = 2 } function onSay(cid, words, param, channel) local textCancel, t = config.text, string.explode(param, ",") if(param == '') then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") elseif((getPlayerGUIDByName(t[1]) ~= nil) an

Posted Images

  Em 06/10/2017 em 17:39, dimmebag disse:


@yanloco70 Esse aqui funciona em MySql:

local config = {

item = {

Id = 1111,

count = 0,

},

maxTextLenght = 15,

blacklistParam = {"account manager", "god", "cm", "gm", "tutor", "tester"},

minWordLenght = 3,

delay = 2

}



function onSay(cid, words, param, channel)

local textCancel, t = config.text, string.explode(param, ",")

if(param == '') then

return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")

elseif((getPlayerGUIDByName(t[1]) ~= nil) and (not getBooleanFromString(t[2]))) then

textCancel = "That name is already in use."

elseif(getPlayerItemCount(cid, config.item.Id) < config.item.count) then

textCancel = "You do not fulfill the requirements."

elseif(not getTilePzInfo(getCreaturePosition(cid))) then

textCancel = "You must be inside a protection zone to use this command."

elseif(string.len(tostring(t[1])) >= config.maxTextLenght) then

textCancel = "You can only use a maximum of " .. config.maxTextLenght .. " characters."

elseif(string.find(t[1]:lower(), "[^%l%s]") ~= nil) then

textCancel = "You cannot use symbols."

else

for blacklist = 1, table.maxn(config.blacklistParam) do

if(string.find(t[1]:lower(), config.blacklistParam[blacklist]) ~= nil) then

textCancel = "Invalid name entry."

break

end

end

end



if(config.text ~= textCancel) then

doPlayerSendCancel(cid, textCancel)

return true

end



local paramTemp, space, oldName = '', '', getCreatureName(cid)

for word in string.gmatch(t[1], "%a+") do

if(string.len(word) < config.minWordLenght) then

doPlayerSendCancel(cid, "Each word must have a minimum of " .. config.minWordLenght .. " characters.")

return true

end



paramTemp = "" .. paramTemp .. "" .. space .. "" .. word .. ""

if(space == '') then

space = " "

end

end



local guid = getPlayerGUID(cid)

t[1] = paramTemp

doPlayerRemoveItem(cid, config.item.Id, config.item.count)

if(pcall(doPlayerChangeName, guid, oldName, t[1]) == false) then

db.executeQuery("INSERT INTO `player_namelocks` (`player_id`, `name`, `new_name`, `date`) VALUES (" .. guid .. ", " .. db.escapeString(oldName) .. ", " .. db.escapeString(t[1]) .. ", " .. os.time() .. ");")

db.executeQuery("UPDATE `players` SET `name` = " .. db.escapeString(t[1]) .. " WHERE `id` = " .. guid .. " LIMIT 1;")

end



doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your name has been changed successfully. You will be kicked in " .. config.delay .. " seconds.")

addEvent(function(cid, forceLogout)

if(isPlayer(cid)) then

doRemoveCreature(cid, forceLogout)

end

end, config.delay * 1000, cid, false)



return true

end

 

Créditos - Ratser

Mostrar mais  

Vo Testa

count = 0, --- Deixa 1 ??para consumir o item

image.png.1ae53a21bfc1783d18f8e92d102d191f.png

Print que mandei anterior kkk todo errado esse erro certo... 

 

Da o mesmo erro que deu no outro

Ja Mudei db.executeQuery para db.Query Tbm n pego 

Desde cedo a mãe da gente fala assim: “Filho, por você jogar Tibia, você tem que ser duas vezes melhor.” Aí passado alguns anos eu pensei: Como fazer 2 vezes melhor, se você tá pelo menos 100 vezes atrasado pelos Nubs, pela história, pelos Items, pelas Guilds, pelos Reds… Por tudo que aconteceu? Duas vezes melhor como ? Ou melhora ou ser o melhor ou o pior de uma vez. E sempre foi assim. Você vai escolher o que tiver mais perto de você, o que tiver dentro da sua realidade. Você vai ser duas vezes melhor como? Quem inventou isso aí? Quem foi o pilantra que inventou isso aí ? Acorda pra vida rapaz.

 

YanLoco

 

Projetos: https://www.facebook.com/Dbo-Here-524519644549602/ 70%

Link para o post
Compartilhar em outros sites
  Em 06/10/2017 em 18:03, yanloco70 disse:

Vo Testa

count = 0, --- Deixa 1 ??para consumir o item

image.png.1ae53a21bfc1783d18f8e92d102d191f.png

Print que mandei anterior kkk todo errado esse erro certo... 

 

Da o mesmo erro que deu no outro

Ja Mudei db.executeQuery para db.Query Tbm n pego 

Mostrar mais  

 Usa db.getResult então, no meu server esses dois tb n pegam pq n tem source, ai tem que ser na gambiarra. Eu tenho q colocar tudo db.getResult pra funcionar ;P

Link para o post
Compartilhar em outros sites

image.thumb.png.55a81020ed13120a6a1fd3f67574d7b0.png

 

Deu Certo Troco Nick tudo Legal soque deu esse erro...

 

Troquei nick do Char Godd Para Lifer Deu isso ai

Desde cedo a mãe da gente fala assim: “Filho, por você jogar Tibia, você tem que ser duas vezes melhor.” Aí passado alguns anos eu pensei: Como fazer 2 vezes melhor, se você tá pelo menos 100 vezes atrasado pelos Nubs, pela história, pelos Items, pelas Guilds, pelos Reds… Por tudo que aconteceu? Duas vezes melhor como ? Ou melhora ou ser o melhor ou o pior de uma vez. E sempre foi assim. Você vai escolher o que tiver mais perto de você, o que tiver dentro da sua realidade. Você vai ser duas vezes melhor como? Quem inventou isso aí? Quem foi o pilantra que inventou isso aí ? Acorda pra vida rapaz.

 

YanLoco

 

Projetos: https://www.facebook.com/Dbo-Here-524519644549602/ 70%

Link para o post
Compartilhar em outros sites
  Em 06/10/2017 em 22:30, yanloco70 disse:

image.thumb.png.55a81020ed13120a6a1fd3f67574d7b0.png

 

Deu Certo Troco Nick tudo Legal soque deu esse erro...

 

Troquei nick do Char Godd Para Lifer Deu isso ai

Expand   Mostrar mais  

 

Tenta usar db.storeQuery 

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.

  • Estatísticas dos Fóruns

    96844
    Tópicos
    519599
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo