Postado Outubro 31, 2014 10 anos String.Explode é uma função adicionada, não é nativa do lua. string.trim = function (str) return str:gsub("^%s*(.-)%s*$", "%1") end string.explode = function (str, sep, limit) if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then return {} end local i, pos, tmp, t = 0, 1, "", {} for s, e in function() return string.find(str, sep, pos) end do tmp = str:sub(pos, s - 1):trim() if tmp ~= "" then --alterado v1.8 table.insert(t, tmp) end pos = e + 1 i = i + 1 if(limit ~= nil and i == limit) then break end end tmp = str:sub(pos):trim() if tmp ~= "" then --alterado v1.8 table.insert(t, tmp) end return t end Editado Outubro 31, 2014 10 anos por Gabrielbsales (veja o histórico de edições) Att. Featzen.
Postado Outubro 31, 2014 10 anos @Gabrielbsales, oque eu quis dizer é que ela é feita somente com base nas próprias funções da linguagem, não tem nenhum comando da source nela e por conta disso ela é utilizada amplamente, é uma das primeiras coisas que as pessoas fazem quando criam a source/lib mas não sabia que mudaram o nome pra string.split em 1.0; Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Outubro 31, 2014 10 anos Mas string split é outra função(deveria ser a mesma coisa): string.split = function (str) local t = {} return not str:gsub("%w+", function(s) table.insert(t, s) return "" end):find("%S") and t or {} end Não tem as mesmas propriedades. .-. Editado Outubro 31, 2014 10 anos por Gabrielbsales (veja o histórico de edições) Att. Featzen.
Postado Novembro 1, 2014 10 anos Depois de tanto tempo consegui: Mostrar conteúdo oculto string.trim = function (str) return str:gsub("^%s*(.-)%s*$", "%1") end string.explode = function (str, sep, limit) if(type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then return {} end local i, pos, tmp, t = 0, 1, "", {} for s, e in function() return string.find(str, sep, pos) end do tmp = str:sub(pos, s - 1):trim() table.insert(t, tmp) pos = e + 1 i = i + 1 if(limit ~= nil and i == limit) then break end end tmp = str:sub(pos):trim() table.insert(t, tmp) return t end function onSay(cid, words, param, channel) local t = string.explode(string.lower(param), ",") local player = Player(cid) if not player:getGroup():getAccess() then return true end local accountId = getAccountNumberByPlayerName(t[1]) if (accountId == 0) or (not t[1]) then doPlayerSendCancel(cid,"Insira um nome valido") return true end local resultId = db.storeQuery("SELECT 1 FROM `account_bans` WHERE `account_id` = " .. accountId) if resultId ~= false then result.free(resultId) return false end local coment,banDays = t[2],tonumber(t[3]) if (not t[2])then coment = "Quebra de regra" end if (not tonumber(t[3])) then banDays = 7 end local timeNow = os.time() db:query("INSERT INTO `account_bans` (`account_id`, `reason`, `banned_at`, `expires_at`, `banned_by`) VALUES (" .. accountId .. ", '"..coment.."', " .. timeNow .. ", " .. timeNow + (banDays * 86400) .. ", " .. player:getGuid() .. ")") local target = Player(t[1]) if target then for _, pid in ipairs(Game.getPlayers()) do pid:sendTextMessage(MESSAGE_STATUS_WARNING, "" .. getPlayerName(cid) .. ": A conta do jogador ".. t[1].. " foi banida por "..banDays.." dias. Motivo: "..coment..".") end target:remove() else for _, pid in ipairs(Game.getPlayers()) do pid:sendTextMessage(MESSAGE_STATUS_WARNING, "" .. getPlayerName(cid) .. ": A conta do jogador ".. t[1].. " foi banida por "..banDays.." dias. Motivo: "..coment..".") end end end como usar: /ban nome,coment,dias ou /ban nome, comentario ou ainda: /ban nome Pode usar tanto em jogadores off ou online Espero ter ajudado. Editado Novembro 1, 2014 10 anos por narazaky (veja o histórico de edições) Te ajudei? Então Rep +
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.