Postado Julho 6, 2015 9 anos Solução Deu um trabalho do cão arrumar o banco de dados, mas enfim: local seconds = 4 -- tempo pra ler a msg de mudanca de nome local maxTextLenght = 15 -- limite de caracteres do nome local blacklistParam = {"account manager", "god", "cm", "gm", "tutor", "tester"} -- nomes proibidos pra usar local minWordLenght = 3 -- min de caracteres local qtd = 1 -- quantidade do item necessario local item = 1984 -- id do item necessario local function changeName(param) local guid = getPlayerGUID(param.pid) doRemoveCreature(param.pid) db.query("UPDATE `players` SET `name` = '"..param.params.."' WHERE `id` = " .. guid .. ";") doRemoveCreature(guid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Jogador com nome: '..param.nome..' Mudou para: '..param.params..'.') return true end function onSay(cid, words, param) dofile("./config.lua") nome = getCreatureName(cid) params = param pid = cid if param ~= "" then local resultx = db.storeQuery("SELECT `name` FROM `players` WHERE `name` = " .. db.escapeString(param)) if not resultx then end local value = result.getDataString(resultx, 'name') result.free(resultx) print("chegou aki a") if (value == param) then print("chegou aki b") doPlayerSendCancel(cid, "Nome ja em uso.") return false end if (getPlayerItemCount(cid, item) < qtd) then doPlayerSendCancel(cid, "Voce nao possui o item.") elseif(not getTilePzInfo(getCreaturePosition(cid))) then doPlayerSendCancel(cid, "Voce precisa estar em pz para usar.") else if(string.len(tostring(params)) >= maxTextLenght) then doPlayerSendCancel(cid, "Ha um limite de " .. maxTextLenght .. "caracteres.") elseif(string.find(params:lower(), "[^%l%s]") ~= nil) then doPlayerSendCancel(cid, "Voce nao pode usar simbolos.") else for blacklist = 1, table.maxn(blacklistParam) do if(string.find(params:lower(), blacklistParam[blacklist]) ~= nil) then doPlayerSendCancel(cid, "Nome proibido.") return false end end local paramTemp, space, oldName = '', '', getCreatureName(cid) for word in string.gmatch(params, "%a+") do if(string.len(word) < minWordLenght) then doPlayerSendCancel(cid, "Cada palavra tem um minimo de " .. minWordLenght .. " caracteres.") return true end paramTemp = "" .. paramTemp .. "" .. space .. "" .. word .. "" if(space == '') then space = " " end end local guid = getPlayerGUID(cid) params = paramTemp if(pcall(doPlayerChangeName, guid, oldName, params) == false) then doPlayerRemoveItem(cid, item, qtd) doPlayerPopupFYI(cid, " Voce mudou o nome para "..params..".\nEntre denovo para aplicar as mudancas.") addEvent(changeName, seconds * 1000, {cid = cid, pid = pid, params = params, nome = nome}) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mudara o nome para "..params.." em "..seconds.." segundos.") end end end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Use: /changename Novonome') end return true end talkactions.xml: <talkaction words="!changename" separator=" " script="NomedoScript.lua"/> Editado Julho 6, 2015 9 anos por rogaforyn2 (veja o histórico de edições) Life is so meaningless, there is nothing worth a smile So goodbye, I'll miss you sugestões?
Postado Julho 6, 2015 9 anos #edit, comentei no errado. O melhor resposta bugou aki Editado Julho 6, 2015 9 anos por rogaforyn2 (veja o histórico de edições) Life is so meaningless, there is nothing worth a smile So goodbye, I'll miss you sugestões?
Postado Julho 6, 2015 9 anos O tópico foi movido para a área correta, preste mais atenção da próxima vez!Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido:De: "OTServ → Scripting → Geral"Para: "OTServ → Suporte OTServ → Suporte de Scripts" STYLLER OT 2022
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.