Postado Dezembro 26, 2022 2 anos Rapaziada eu to com um script aqui, que ele troca o Nick do player falando com o NPC. Porém só da para colocar nicks normais, exemplo "Nick Um" "Nick", eu queria que pudesse dar pra colocar nicks personalizados tipo "NiCkUM" "NiiCKTeSTe" "NK TeSTe" Alguém poderia me ajudar? Otx 1.0 Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talk = {} local name = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end function creatureGreetCallback(cid) talk[cid] = 0 name[cid] = '' return true end local chars = {' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'} local forbiddenWords = {'gm', 'tutor', 'god', 'cm', 'admin', 'owner'} local maxWords = 3 local maxLength = 20 local minChars = 1 RET_VALID = 1 RET_EXISTS = 2 RET_INVALID = 3 local function wordCount(str) local count = 0 for word in string.gmatch(str, "%a+") do count = count + 1 end return count end local function validLen(s) for i in string.gmatch(s, "%a+") do if i:len() < minChars then return false end end return true end local function validName(name) if getPlayerGUIDByName(name) ~= nil then return RET_EXISTS end for i = 1, name:len() do if not(isInArray(chars, name:sub(i,i))) or isInArray(forbiddenWords, name:sub(i, i)) or wordCount(name) > maxWords or name:len() > maxLength or string.find(name, " ") or not validLen(name) then return RET_INVALID end end return RET_VALID end local function getValid(name, opt) local function tchelper(first, rest) return first:upper()..rest:lower() end return opt and name:gsub("(%a)([%w_']*)", tchelper) or name:gsub("^%l", string.upper) end local config = { type = 'item', -- or 'item' money = 0, -- = 1cc item = {13364, 5}, --item id, count everyFirstLetterCapital = true } function messageDefaultCallback(cid, type, msg) if not(npcHandler:isFocused(cid)) then return false end if msgcontains(msg, "nick") and talk[cid] == 0 then selfSay("Qual e o seu novo nome?", cid) talk[cid] = 1 elseif talk[cid] == 1 then local v = getValid(msg:lower(), config.everyFirstLetterCapital) local ret = validName(v) if ret == RET_VALID then selfSay("Novo nome:'" .. v .. "' para " .. (config.type == "money" and (config.money .. " gold") or (config.item[2] .. ' ' .. (config.item[2] > 1 and getItemPluralNameById(config.item[1]) or getItemNameById(config.item[1])))) .. "?", cid) talk[cid], name[cid] = 2, v else if ret == RET_INVALID then selfSay(msg .. " E um nome inválido. Tente outro.", cid) elseif ret == RET_EXISTS then selfSay(msg .. " Este nome ja existe. Tente outro.", cid) end end elseif talk[cid] == 2 then if msgcontains(msg, "yes") then if (config.type == 'money' and doPlayerRemoveMoney(cid, config.money)) or (config.type ~= 'money' and doPlayerRemoveItem(cid, config.item[1], config.item[2])) then local curName = getPlayerName(cid) doRemoveCreature(cid) db.query("UPDATE players SET name = '"..name[cid].."' WHERE name = '"..curName.."';") else selfSay("Voce nao tem " .. (config.type == "money" and (config.money .. " gold") or (config.item[2] .. ' ' .. (config.item[2] > 1 and getItemPluralNameById(config.item[1]) or getItemNameById(config.item[1])))) .. "!", cid) talk[cid] = 0 end else selfSay("Nao estou disponivel agora, talvez mais tarde.", cid) talk[cid] = 0 end end return true end npcHandler:setMessage(MESSAGE_FAREWELL, "Bye!") npcHandler:setMessage(MESSAGE_WALKAWAY, "Go away!") npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, messageDefaultCallback) npcHandler:setCallback(CALLBACK_FAREWELL, creatureFarewell) npcHandler:setCallback(CALLBACK_CREATURE_DISAPPEAR, creatureFarewell) npcHandler:setCallback(CALLBACK_GREET, creatureGreetCallback) npcHandler:addModule(FocusModule:new())
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.