Ir para conteúdo
  • 0

Mudar Nome


StyflerDrunou

Pergunta

Eu achei vários, mas todos dando erros, não sei se é porque eu uso mysql mais olhem ai o erro.

Aparece quando o cara fala "!mudarnome Ronaldo" que seria o correto e não funfa, quando ele fala "!mudarnome (e ou !mudarnome ADM" tipo oque seria proibido o script nao deixa, mas o correto ele da esse erro.

 

OBS: Eu queria que se podeçem colocar para que os players possam colocar o nome assim "EaE MuLeKe" tendeu?

se tiver como por favor..

 

[08/04/2012 21:27:07] [Error - TalkAction Interface]

[08/04/2012 21:27:07] data/talkactions/scripts/trocarnome.lua:onSay

[08/04/2012 21:27:07] Description:

[08/04/2012 21:27:07] data/talkactions/scripts/trocarnome.lua:23: unfinished capture

[08/04/2012 21:27:07] stack traceback:

[08/04/2012 21:27:07] [C]: in function 'find'

[08/04/2012 21:27:07] data/talkactions/scripts/trocarnome.lua:23: in function <data/talkactions/scripts/trocarnome.lua:4>

 

meu script é esse.

 

local itemId, count, maxTextLenght, delay = 9971, 500, 18, 1 * 1000
local blacklistParam = {"god", "adm", "cm", "gm", "tutor", "tester", "coordenador", "ADM", "GOD", "CM", "GM", "Tutor", "(", ")", "[", "]", "{", "}", "Coordenador" }

function onSay(cid, words, param, channel)
local text, continue = "Você será kickado em 1 segundos.", true
local stringSpaceStart, stringSpaceEnd = string.find(param, "[%s]*")
if(db.getResult("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(param) .. ";"):getID() ~= -1) then
 text, continue = "Este nome já está em uso.", false
elseif(getPlayerItemCount(cid, itemId) < count) then
 text, continue = "Você não tem barras para mudar seu nome.", false
elseif(not getTilePzInfo(getCreaturePosition(cid))) then
 text, continue = "Você deve estar dentro de uma zona de protecção para usar este comando.", false
elseif(not tostring(param)) then
 text, continue = "Parametro inválido.", false
elseif((stringSpaceEnd - stringSpaceStart) > 1) then
 text, continue = "Nome contém muitos espaços.", false
elseif(string.len(tostring(param)) > maxTextLenght) then
 text, continue = "Voce passou o limite de 18 letras no seu nome." .. maxTextLenght .. " characters.", false
elseif(string.lower(param:lower(), "[^%l%s]") ~= nil) then
 text, continue = "Você não pode usar simbolos ou nome de cargos da equipe.", false
else
for i = 1, #blacklistParam do
  if (string.find(string.lower(param), blacklistParam[i]) ~= nil) then
text, continue = "Invalid name entry.", false
break
  end
 end
end

if(continue == false) then
 doPlayerSendCancel(cid, text)
 return true
end

db.executeQuery("UPDATE `players` SET `name` = " .. db.escapeString(param) .. " WHERE `id` = " .. getPlayerGUID(cid) .. ";")
doPlayerRemoveItem(cid, itemId, count)
doPlayerSendTextMessage(cid, 25, text)
addEvent(function(cid, forceLogout)
 if(isPlayer(cid)) then
  doRemoveCreature(cid, forceLogout)
 end
end, delay, cid, false)
return true
end

 

Ajuda ai os caras do meu ot tão doido comigo.

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

9 respostass a esta questão

Posts Recomendados

  • 0

Mais como funciona? tem como colocar para quando o cara for mudar gastar 500 Barras de ouro que seria o item 9971 no meu servidor?

 

Posta ele ai vamos ver se vai funfar.

 

Hellow?! Pode postar por favor seu script por npc? Estou precisando!

Link para o comentário
Compartilhar em outros sites

  • 0

Recomendo usar este

 

function onSay(cid, words, param)

local maxLen = 25 -- tamanho maximo do nome

local itemid = 11192 ------ Numero do Item que será removido

local quant = 50 ---- quantidade do item que sera removido

local proibido = {"%[", "%]", "%(", "%)", "%{", "%}"} -- simbolos proibidos

 

 

for i = 1, #proibido do

if param:find(proibido) then

doPlayerSendCancel(cid,"Você não pode colocar isso no nome.")

return true

end

end

 

if tostring(param) == "" then -- checkar se não é nome vazio

doPlayerSendCancel(cid, "Você deve informar um nome.")

return true

end

 

if string.len(tostring(param)) > maxLen then

doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.")

return TRUE

end

 

if not getTilePzInfo(getCreaturePosition(cid)) then

doPlayerSendCancel(cid,"Só pode ser usado em PZ.")

return TRUE

end

 

local result = db.getResult("SELECT `id` FROM `players` WHERE `name` = '".. db.escapeString(param) .."'")

if result:getID() == 1 or getCreatureByNameWildcard(param) then

return doPlayerSendCancel(cid, "Já existe alguém com esse nome")

end

 

if getPlayerItemCount(cid, itemid) >= quant then

doPlayerRemoveItem(cid, itemid, quant)

db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";")

doPlayerSendTextMessage(cid,25,"Você será deslogado em 3 segundos.")

addEvent(doRemoveCreature, 3*1000, cid, true)

else

doPlayerSendCancel(cid,"Você não possui "..quant.." " .. getItemNameById(itemid) .. ".")

end

return TRUE

end

Link para o comentário
Compartilhar em outros sites

  • 0

Affs só fica dando esse erro vey '-'

HELPPPPPP

 

 

[10/04/2012 18:00:15] [Error - TalkAction Interface]

[10/04/2012 18:00:15] data/talkactions/scripts/trocarnome.lua:onSay

[10/04/2012 18:00:15] Description:

[10/04/2012 18:00:15] data/talkactions/scripts/trocarnome.lua:9: unfinished capture

[10/04/2012 18:00:16] stack traceback:

[10/04/2012 18:00:16] [C]: in function 'find'

[10/04/2012 18:00:16] data/talkactions/scripts/trocarnome.lua:9: in function <data/talkactions/scripts/trocarnome.lua:1>

 

Cara, voce se comprometeu de postar o seu por npc e até agora nada.

ajuda kraio por favor.

Link para o comentário
Compartilhar em outros sites

  • 0

Esse do marcelo mlkalo -> http://www.xtibia.com/forum/topic/162138-anti-divulgacao-de-otservers/page__gopid__1122714#entry1122714 é de anti anuncio muito bom.. vem ca tem como adicionar isso ai não?

 

MANO ME DA UMA AJUDA CARALHO '-'

 

Help?

Link para o comentário
Compartilhar em outros sites

  • 0

-- Creditos a Won Helder, apocarai, MatheusMkalo

function onSay(cid, words, param)

local maxLen = 20 -- tamanho maximo do nome

local itemid = 2361 ------ Numero do Item que será removido

local proibido = {"!","@","*"} -- simbolos proibidos

 

 

for i = 1, #proibido do

if string.find(tostring(param), proibido) then

doPlayerSendCancel(cid,"Não pode usar símbolos em seu nome.")

return TRUE

end

end

 

if tostring(param) == "" then -- checkar se não é nome vazio

doPlayerSendCancel(cid, "Você deve informar um nome.")

return TRUE

end

 

if string.len(tostring(param)) > maxLen then

doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.")

return TRUE

end

 

if not getTilePzInfo(getCreaturePosition(cid)) then

doPlayerSendCancel(cid,"So pode ser usado em pz.")

return TRUE

end

 

if getPlayerItemCount(cid, itemid) >= 1 then

doPlayerRemoveItem(cid, itemid, 1)

db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";")

doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos.")

addEvent(doRemoveCreature, 5*1000, cid, true)

else

doPlayerSendCancel(cid,"Você não possui o item " .. getItemNameById(itemid) .. ".")

end

return TRUE

end

 

 

vai en talkactions/scripts cria uma pasta change name depois volte en talkactions <talkaction words="/changename" script="namechange.lua"/>

 

Nao é do jeito que você pediu é por iten mais espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...