tenho um aque mais é por npc
info
Grupo: Campones
Registrado: 29/01/12
Posts: 11
Reputação: 0
Char no Tibia: Cadeachinela

info
Grupo: Campones
Registrado: 24/10/11
Posts: 65
Reputação: 0
Char no Tibia: Fleps Drunou

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!
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
info
Grupo: Campones
Registrado: 24/10/11
Posts: 65
Reputação: 0
Char no Tibia: Fleps Drunou

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.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

acho que seu server não tem a função string.find()
info
Grupo: Infante
Registrado: 27/07/09
Posts: 1.5k
Reputação: +405
Char no Tibia: Gean Riot

qual distro vc usa
info
Grupo: Campones
Registrado: 24/10/11
Posts: 65
Reputação: 0
Char no Tibia: Fleps Drunou

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?
info
Grupo: Campones
Registrado: 29/01/12
Posts: 11
Reputação: 0
Char no Tibia: Cadeachinela

-- 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.
info
Grupo: Campones
Registrado: 24/10/11
Posts: 65
Reputação: 0
Char no Tibia: Fleps Drunou

Eu j testei com esse e tambem não foi '-' ta foda viu '-'




info
Grupo: Campones
Registrado: 24/10/11
Posts: 65
Reputação: 0
Char no Tibia: Fleps Drunou
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 endAjuda ai os caras do meu ot tão doido comigo.
Editado Abril 8 por ADM157Styfler155Zikz153