PL
action

/Name

Por Pluzetti, 30 de out. de 2013 em Scripts

resolvido
script
37
4.1k
KilluaK
31 de outubro de 2013 às 23:22



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

PluzettiP
01 de novembro de 2013 às 00:11

Nada...

KilluaK
01 de novembro de 2013 às 06:44

Nossa... Tenta tira o return true do final

zipter98Z
01 de novembro de 2013 às 14:11

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

MaenilseM
01 de novembro de 2013 às 15:13

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.

zipter98Z
01 de novembro de 2013 às 15:20

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

MaenilseM
01 de novembro de 2013 às 16:43

agora sim, testado e 100% funcional aqui no meu, só pra deixar claro, uso tfs 0.3.6 e funfou legalzin.

PluzettiP
04 de novembro de 2013 às 17:49

Teria como por quando ele fala para aparecer uma mensagem em Orange, e desloga em 5 segundos?

 

Aproveitando...

 

 

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, MESSAGE_INFO_DESCR, "Você trocou de sexo, e com isso gastou 10 HD.")
else
doPlayerSendCancel(cid, "Você não tem 10 HD.")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
end
end

teria como por nesse também?

Editado Novembro 4 por Pluzetti

MaenilseM
04 de novembro de 2013 às 17:54

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

PluzettiP
04 de novembro de 2013 às 18:03

Maenilse eskeci de fala tem como por para remover diamond o do trocar de sexo?

MaenilseM
04 de novembro de 2013 às 18:12

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

PluzettiP
04 de novembro de 2013 às 18:18

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 ?

MaenilseM
04 de novembro de 2013 às 18:24

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
PluzettiP
04 de novembro de 2013 às 19:10

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?

zipter98Z
04 de novembro de 2013 às 19:33

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