Isso apenas muda o nome do char, não rouba o de outra pessoa.
info
Grupo: Campones
Registrado: 23/05/12
Posts: 18
Reputação: 0
Char no Tibia: Elderziinho Zika

ROBA ASIM tipo o fica 2 Thalles o verdadeiro e o outro quando o falso thalles entra na conta dele o Thalles verdadeiro e quicado e o Thalles Falso loga no char do Thalles Verdadeiro.
E se você vacilar, pessoas pegam até GODs com esse comando.
local config = {
lenght = 30,
itemid = 2160,
strings = {"ADM"}
}
function onSay(cid, words, param, channel)
if param ~= "" then
if getPlayerStorageValue(cid, 13540) == -1 then
return doPlayerSendCancel(cid, "Você não é VIP.")
end
for i = 1, #config.strings do
if param:find(config.strings[i]) then
doPlayerSendCancel(cid, "Você não pode usar ".. config.strings[i] .." em seu novo nome.")
break
end
end
if param:find("%c") or param:find("%p") then
return doPlayerSendCancel(cid, "Você não pode usar caracteres especiais em seu novo nome.")
end
if string.len(param) > config.lenght then
return doPlayerSendCancel(cid, "Você pode usar, no máximo, ".. config.lenght .." letras.")
end
if not getTilePzInfo(getThingPosition(cid)) then
return doPlayerSendCancel(cid, "Só pode ser usado em Protection Zone.")
end
local result = db.getResult("SELECT `id` FROM `players` WHERE `name` = ".. param ..";")
if result:getID() ~= -1 then
return doPlayerSendCancel(cid, "Já existe alguém com esse nome no servidor.")
end
if getPlayerByNameWildcard(param) then
return doPlayerSendCancel(cid, "Há alguém online com esse nome.")
end
if doPlayerRemoveItem(cid, config.itemid, 1) then
local pid = getPlayerGUID(cid)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `name` = ".. param .." WHERE `id` = ".. pid ..";")
else
doPlayerSendCancel(cid, "Você não possui ".. getItemNameById(config.itemid) ..".")
end
else
doPlayerSendCancel(cid, "Insira um novo nome.")
end
return true
end
Um amigo meu que é scripter fez esse !changename sem bugs pra vc.
Editado Junho 3 por Oneshot
info
Grupo: Conde
Registrado: 21/03/12
Posts: 651
Reputação: +89
Char no Tibia: Pussycat !

-- Creditos a Won Helder, apocarai, MatheusMkalo
function onSay(cid, words, param)
local maxLen = 15 -- tamanho maximo do nome
local itemid = 2361 ------ Numero do Item que será removido
local proibido = {"!","@","*","gm","cm","god"} -- simbolos proibidos
vip = getPlayerStorageValue(cid,13540) --Storage da vip
if vip == -1 then
doPlayerSendCancel(cid,"Você Não e vip .")
return TRUE
end
for i = 1, #proibido do
if string.find(tostring(param), proibido[i]) 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 funcionar perfeitamente
-- Creditos a Won Helder, apocarai, MatheusMkalo function onSay(cid, words, param) local maxLen = 15 -- tamanho maximo do nome local itemid = 2361 ------ Numero do Item que será removido local proibido = {"!","@","*","gm","cm","god"} -- simbolos proibidos vip = getPlayerStorageValue(cid,13540) --Storage da vip if vip == -1 then doPlayerSendCancel(cid,"Você Não e vip .") return TRUE end for i = 1, #proibido do if string.find(tostring(param), proibido[i]) 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 funcionar perfeitamente
Não vai não. Falta a condição que verifica se já existe algum player com o nick escolhido.
No script do oneshot tem isso, grandes chances de funcionar.
info
Grupo: Campones
Registrado: 23/05/12
Posts: 18
Reputação: 0
Char no Tibia: Elderziinho Zika

O Script do @Oneshot esta pegando perfeitamente a parte de não deixar o player colocar um nome já é existente só que ele não troca de nome
eo script do @Smartbox ele e praticamente igual o que eu uso só não tem a parte da vip que eu coloquei emtão script dele também deixa usar o nome de uma pessoa que já existe emtão @Oneshot só esta precisando pegar a parte de trocar o nome!
Opa, ThallesNovais.
Foi um erro meu na query do banco de dados. Veja se agora funciona
local config = {
lenght = 30,
itemid = 2160,
strings = {"ADM"}
}
function onSay(cid, words, param, channel)
if param ~= "" then
if getPlayerStorageValue(cid, 13540) == -1 then
return doPlayerSendCancel(cid, "Você não é VIP.")
end
for i = 1, #config.strings do
if param:find(config.strings[i]) then
doPlayerSendCancel(cid, "Você não pode usar ".. config.strings[i] .." em seu novo nome.")
break
end
end
if param:find("%c") or param:find("%p") then
return doPlayerSendCancel(cid, "Você não pode usar caracteres especiais em seu novo nome.")
end
if string.len(param) > config.lenght then
return doPlayerSendCancel(cid, "Você pode usar, no máximo, ".. config.lenght .." letras.")
end
if not getTilePzInfo(getThingPosition(cid)) then
return doPlayerSendCancel(cid, "Só pode ser usado em Protection Zone.")
end
local result = db.getResult("SELECT `id` FROM `players` WHERE `name` = ".. param ..";")
if result:getID() ~= -1 then
return doPlayerSendCancel(cid, "Já existe alguém com esse nome no servidor.")
end
if getPlayerByNameWildcard(param) then
return doPlayerSendCancel(cid, "Há alguém online com esse nome.")
end
if doPlayerRemoveItem(cid, config.itemid, 1) then
local pid = getPlayerGUID(cid)
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `name` = '".. param .."' WHERE `id` = ".. pid ..";")
else
doPlayerSendCancel(cid, "Você não possui ".. getItemNameById(config.itemid) ..".")
end
else
doPlayerSendCancel(cid, "Insira um novo nome.")
end
return true
end
Editado Junho 4 por Oneshot
info
Grupo: Campones
Registrado: 23/05/12
Posts: 18
Reputação: 0
Char no Tibia: Elderziinho Zika








info
Grupo: Campones
Registrado: 23/05/12
Posts: 18
Reputação: 0
Char no Tibia: Elderziinho Zika
Pessoal esse script que eu tenho aqui de !changename ele da para pegar o char de outra pessoa
-- Creditos a Won Helder, apocarai, MatheusMkalo
function onSay(cid, words, param)
local maxLen = 30 -- tamanho maximo do nome
local itemid = 2160 ------ Numero do Item que será removido
local proibido = {"ADM"} -- simbolos proibidos
vip = getPlayerStorageValue(cid,13540) --Storage da vip
if vip == -1 then
doPlayerSendCancel(cid,"Você Não e vip .")
return TRUE
end
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, 3*1000, cid, true)
else
doPlayerSendCancel(cid,"Você não possui o item " .. getItemNameById(itemid) .. ".")
end
return TRUE
end
alguem poderia arumar isso para min exemplo tenho um char chamado Thalles ai eu to com outro char e falo !changename thalles eu fico com o char do Thalles