Nada...
info
Grupo: Artesão
Registrado: 18/03/13
Posts: 149
Reputação: +19
Gênero: Masculino
Char no Tibia: Cachero

info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Nossa... Tenta tira o return true do final
Prontinho, corrigido os erros, funcionando perfeitamente. No xml, coloque como words '/name'. Depois, in game, digite, por exemplo, /name test,testzin.
function onSay(cid, words, param, channel)
local p = string.explode(param, ',')
local item_id = 2145
local item_count = 1 --Mude aqui a qnt de diamonds q vai remover do player.
if(param == "") then
doPlayerSendCancel(cid, "Command requires param.")
return true
end
if getPlayerItemCount(cid, item_id) <= 4 then
return doPlayerSendCancel(cid, "vc precisa de 5 diamonds.")
end
if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then
return doPlayerSendCancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.")
elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then
return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.")
elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then
return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.")
end
doPlayerRemoveItem(cid, item_id, item_count)
db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have changed " .. p[1] .. "'s name to " .. p[2] .. ".")
return true
end
Editado Novembro 1 por zipter98
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

pra q usar um if words cara... vai se ele quer que o nome do comando seja outro? iai como fica... tira esse if words do script, e fica perfeito.
Ele postou o script assim, só editei o que ele pediu ._. Mas se for mesmo necessário, eu retiro o if words.
EDIT: Pronto, editei o post lá.
Editado Novembro 1 por zipter98
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

agora sim, testado e 100% funcional aqui no meu, só pra deixar claro, uso tfs 0.3.6 e funfou legalzin.
info
Grupo: Artesão
Registrado: 18/03/13
Posts: 149
Reputação: +19
Gênero: Masculino
Char no Tibia: Cachero

Teria como por quando ele fala para aparecer uma mensagem em Orange, e desloga em 5 segundos?
Aproveitando...
function onSay(cid, words, param)
teria como por nesse também?
Editado Novembro 4 por Pluzetti
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

o 1°, que vc pediu.
function onSay(cid, words, param) if getPlayerMoney(cid) > 2 then doPlayerRemoveMoney(cid, 100000) if getPlayerSex(cid) == 0 then doPlayerSetSex(cid, 1) else doPlayerSetSex(cid, 0) end doPlayerSendTextMessage(cid, 20, "Você trocou de sexo, e com isso gastou 10 HD, Voce sera kikado em 5 segundos.") addEvent(doRemoveCreature, 5*1000, cid, true) else doPlayerSendCancel(cid, "Você não tem 10 HD.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end
o 2°.
function onSay(cid, words, param, channel)
local p = string.explode(param, ',')
local item_id = 2145
local item_count = 1 --Mude aqui a qnt de diamonds q vai remover do player.
if(param == "") then
doPlayerSendCancel(cid, "Command requires param.")
return true
end
if getPlayerItemCount(cid, item_id) <= 4 then
return doPlayerSendCancel(cid, "vc precisa de 5 diamonds.")
end
if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then
return doPlayerSendCancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.")
elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then
return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.")
elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then
return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.")
end
doPlayerRemoveItem(cid, item_id, item_count)
db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';")
doPlayerSendTextMessage(cid, 20, "You have changed " .. p[1] .. "'s name to " .. p[2] .. " You will be logged out in 5 seconds.")
addEvent(doRemoveCreature, 5*1000, cid, true)
return true
end
Editado Novembro 4 por Maenilse
info
Grupo: Artesão
Registrado: 18/03/13
Posts: 149
Reputação: +19
Gênero: Masculino
Char no Tibia: Cachero

Maenilse eskeci de fala tem como por para remover diamond o do trocar de sexo?
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

prontinho.
function onSay(cid, words, param) local diamond = 2145 local count = 5 if getPlayerItemCount(cid, diamond) > count then doPlayerRemoveItem(cid, diamond, count) if getPlayerSex(cid) == 0 then doPlayerSetSex(cid, 1) else doPlayerSetSex(cid, 0) end doPlayerSendTextMessage(cid, 20, "Você trocou de sexo, e com isso gastou 10 HD, Voce sera kikado em 5 segundos.") addEvent(doRemoveCreature, 5*1000, cid, true) return TRUE end if getPlayerItemCount(cid, diamond) < count then doPlayerSendCancel(cid, "Você não tem " ..count.. " Diamond.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end
edit nessa linha, altere o valor 5 para o desejado.
local count = 5
Editado Novembro 4 por Maenilse
info
Grupo: Artesão
Registrado: 18/03/13
Posts: 149
Reputação: +19
Gênero: Masculino
Char no Tibia: Cachero

A respeito do /name tipo eu pensei...
eu so [ADM] eo player vaila e coloca [Tutor] Player tem como proibir no script esse tipo de rename?
Tipo:
/name Noobzin, [Tutor] Noobzin. tem como bloquear esse tipo ?
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

a respeito do q vc falo, toma ae.
function onSay(cid, words, param, channel)
local p = string.explode(param, ',')
local item_id = 2145
local item_count = 1 --Mude aqui a qnt de diamonds q vai remover do player.
local proibido = {"tutor", "gm", "cm", "god", "mapper", "scripter", "programador", "spriter", "account manager", "character"} -- simbolos proibidos
if(param == "") then
doPlayerSendCancel(cid, "Command requires param.")
return true
end
if getPlayerItemCount(cid, item_id) <= 4 then
return doPlayerSendCancel(cid, "vc precisa de 5 diamonds.")
end
if(string.find(param:lower(), "[^%l%s]") ~= nil) then
doPlayerSendCancel(cid, 20, "Voce nao pode usar simbolos no nome.")
return TRUE
end
if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then
return doPlayerSendCancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.")
elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then
return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.")
elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then
return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.")
end
doPlayerRemoveItem(cid, item_id, item_count)
db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';")
doPlayerSendTextMessage(cid, 20, "You have changed " .. p[1] .. "'s name to " .. p[2] .. " You will be logged out in 5 seconds.")
addEvent(doRemoveCreature, 5*1000, cid, true)
return true
end
info
Grupo: Artesão
Registrado: 18/03/13
Posts: 149
Reputação: +19
Gênero: Masculino
Char no Tibia: Cachero

Estava analisando o sistema e um player pode mudar meu nome
Ex: Treinador Jhon
/name [ADM] DmC , Kevin .. Dá que o player será logado até aqui okay ...
Quando eu logo meu Admin o Meu nome fica como Kevin que o player mudou...
Tem como resolver isto?
Tenta assim, fica rapidin:
function onSay(cid, words, param, channel)
local p = string.explode(param, ',')
local item_id = 2145
local item_count = 1 --Mude aqui a qnt de diamonds q vai remover do player.
local proibido = {"tutor", "gm", "cm", "god", "mapper", "scripter", "programador", "spriter", "account manager", "character"} -- simbolos proibidos
if(param == "") then
doPlayerSendCancel(cid, "Command requires param.")
return true
end
if getPlayerItemCount(cid, item_id) <= 4 then
return doPlayerSendCancel(cid, "vc precisa de 5 diamonds.")
end
if(string.find(param:lower(), "[^%l%s]") ~= nil) then
doPlayerSendCancel(cid, 20, "Voce nao pode usar simbolos no nome.")
return TRUE
end
if getPlayerGroupId(p[1]) >= 3 then
return doPlayerSendCancel(cid, "Você não pode alterar o nick de tutores, GMs, Subs e GODs.")
end
if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then
return doPlayerSendCancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.")
elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then
return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.")
elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then
return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.")
end
doPlayerRemoveItem(cid, item_id, item_count)
db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';")
doPlayerSendTextMessage(cid, 20, "You have changed " .. p[1] .. "'s name to " .. p[2] .. " You will be logged out in 5 seconds.")
addEvent(doRemoveCreature, 5*1000, cid, true)
return true
end




info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
function onSay(cid, words, param, channel)
local p = string.explode(param, ',')
local item_id = 2195
if(param == "") then
doPlayerSendCancel(cid, "Command requires param.")
doPlayerRemoveItem(cid, item_id, 1)
return true
end
if(words == "/name") then
if getPlayerItemCount(cid, 2145) >= 5 then
if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then
return doPlyyereenCaancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.")
elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then
return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.")
elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then
return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.")
end
doPlayerRemoveItem(cid, 2145, 5)
return db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';") and doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have changed " .. p[1] .. "'s name to " .. p[2] .. ".")
end
else
doPlayerSendCancel(cid, "Voce precisa de pelo menos 5 diamonds.")
return true
end
end