Ir para conteúdo

Oneshot

Marquês
  • Total de itens

    1347
  • Registro em

  • Última visita

  • Dias Ganhos

    36

Tudo que Oneshot postou

  1. Troca essa linha doAddPlayerBanishment(getPlayerGUID(cid), 3, (os.time() + (24 * 60 * 60)), 12, 2, "[sISTEMA ANTI-BOT]") Por essa doAddAccountBanishment(getAccountIdByName(getOnlinePlayers()[x])) No creaturescript e no globalevent. Abraços.
  2. Tô rindo disso aí, cara. Isso aí nem é uma função, está mais para uma piada sobre loops em Lua. Aquela raposa é louca mesmo.
  3. @ManelksCouto Também gostei de te reportar @TkSamer local config = { premium = "yes", protectionLevel = 50, var = { [PLAYERLOSS_EXPERIENCE] = "yes", [PLAYERLOSS_MANA] = "no", [PLAYERLOSS_SKILLS] = "no", [PLAYERLOSS_CONTAINERS] = "no", [PLAYERLOSS_ITEMS] = "no" } } function onDeath(cid, corpse, deathList) if getPlayerLevel(cid) > config.protectionLevel then return true end if getBooleanFromString(config.premium) == true and not isPremium(cid) then return true end if getCreatureSkullType(cid) > 3 then return true end for type, enabled in pairs(config.var) do enabled = getBooleanFromString(enabled) if enabled == true then doPlayerSetLossPercent(cid, type, 0) end end return true end Ah, nem vi que o Vodkart postou. Eu gosto de refazer scripts, aí eu demoro.
  4. Só executar querys, ué. Por exemplo: UPDATE `players` SET `maxhealth` = 100, `health` = 100 WHERE `vocation` = 2; Abraços.
  5. É que eu coloquei para enviar apenas para os outros jogadores e não para o próprio jogador. local config = { storage = 66998, delay = 2 * 60, needMoney = 10000 } function onSay(cid, words, param, channel) if param == "" then doPlayerSendCancel(cid, words .." [message]") return true end if not doPlayerRemoveMoney(cid, config.needMoney) then doPlayerSendCancel(cid, "Sorry, you need ".. config.needMoney .." to use this command.") return true end if getCreatureStorage(cid, config.storage) > os.time() then doPlayerSendCancel(cid, "Sorry, you need to wait ".. getCreatureStorage(cid, config.storage) - os.time() .." seconds to use this command.") return true end local msg = getCreatureName(cid) .." [".. getPlayerLevel(cid) .."]".. param for _, pid in ipairs(getPlayersOnline()) do doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_ORANGE, msg) end doCreatureSetStorage(cid, config.storage, os.time() + config.delay) return true end Agora está tudo certo.
  6. OTClient é realmente foda.
  7. local config = { storage = 66998, delay = 2 * 60, needMoney = 10000 } function onSay(cid, words, param, channel) if param == "" then doPlayerSendCancel(cid, words .." [message]") return true end if not doPlayerRemoveMoney(cid, config.needMoney) then doPlayerSendCancel(cid, "Sorry, you need ".. config.needMoney .." to use this command.") return true end if getCreatureStorage(cid, config.storage) > os.time() then doPlayerSendCancel(cid, "Sorry, you need to wait ".. getCreatureStorage(cid, config.storage) - os.time() .." seconds to use this command.") return true end local msg = getCreatureName(cid) .." [".. getPlayerLevel(cid) .."]".. param for _, pid in ipairs(getPlayersOnline()) do if pid != cid then doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_ORANGE, msg) end end doCreatureSetStorage(cid, config.storage, os.time() + config.delay) return true end Toma.
  8. @Slicer Não, não tem nada a ver com o que você disse. A função que eu usei é justamente o que o script estava precisando, se você usar a função desse jeito: doPlayerSendMailByName(cid, 2160, 1) Isso não vai funcionar, pois a função não use IDs de itens como parâmetros, mas sim UIDs. Pois seus parâmetros nas sources são esses. doPlayerSendMailByName(cid, item[, town]) Ou seja o certo é criar um UID com a função doCreateItemEx e então usar ele no doPlayerSendMailByName. No mais, deixo claro que testei o script no The Forgotten Server 0.4.0 rev4394 e ele funcionou perfeitamente. Abraços.
  9. Isso não é um erro, é simplesmente o aviso de que 6 mods (que é um tipo de script que fica na pasta /mods do seu servidor) foram carregados. Sobre o fato de demorar para carregar, depende muito do processador e da RAM do computador usado.
  10. @knightkunn Em data/creaturescripts/scripts, crie um arquivo chamado sameipkill.lua e cole o conteúdo abaixo: function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then local m = doConvertIntegerToIp(getPlayerIp(cid)) local n = doConvertIntegerToIp(getPlayerIp(target)) if m == n then local x, y = getPlayerExperience(cid), getExperienceForLevel(getPlayerLevel(cid) - 1) doPlayerAddExperience(cid, (y - x)) end end return true end No creaturescripts.xml, você deve colocar <event type="kill" name="SameIpKill" event="script" value="kill.lua"/> E no login.lua em data/creaturescripts/scripts, você deve colocar: registerCreatureEvent(cid, "SameIpKill") Antes de: return true O script faz com que o trapaceiro perca um nível toda vez que matar alguém de mesmo IP. Abraços.
  11. @SmiX O dono do tópico quer que quando o monstro use uma magia, ele fale algo, como se fosse um jogador invocando uma magia qualquer? Entendeu agora? @juliok80 Então, rapaz, não existe um método possível em Lua e nem opções no arquivo XML do monstro. Mas algumas edições nas sources podem simular algo parecido. Talvez eu faça algo e crie um tópico. Abraços.
  12. A função loadstring carrega a string fornecida na memória e executa ela como se fosse um script Lua.
  13. Sobre o tópico, acho que é a mesma coisa que aconteceu comigo, eu via muita gente sendo promovida a Moderação e Coordenação, enquanto eu criava teia no cargo de Colaboração. A diferença é que eu pedi a demissão. Tenho nada contra o Anyur, nem o conheço, mas se Critical, Vilden e até uma pessoa aí não gostavam dele, é algo que não dá para simplesmente relevar. Engraçado mesmo como ele sai e sempre volta para o cargo de Coordenação. Mas belê galera, aqui era um tópico de desabafo e não uma reunião de haters. Então chega rsrs.
  14. É a mesma que eu te passei por PM, lembra? /calc 2+2 /calc 2-2 /calc 2*2 /calc 2/2 /calc 2^2 /calc 2² /calc (2 + 2)² E por aí vai.
  15. Vou testar o script aqui e ver qual o erro. Abraços. @Edit Aqui funcionou perfeitamente
  16. function getInAOrder(t) table.sort(t, function(a, b) return string.byte(string.sub(a, 0, 1)) < string.byte(string.sub(b, 0, 1)) end) return t end Hehehe... No mais, ótima função mesmo, Max. Abração.
  17. Seu servidor não é The Forgotten Server 0.4, uma vez que essa versão não possui a função doSendMailByName, e possui a função getPlayerByNameWildcard, que achei estranho o seu servidor não ter. E quem disse que é para digitar os parâmetros sem vírgula?
  18. Reportado: O pedido ou dúvida do tópico foi atendido.
  19. Infelizmente não há como. Atributos como magic level, skills, dentre outros que precisam do movements.xml, não podem ser editados pelos comandos usados no sistema.
  20. function onSay(cid, words, param, channel) local ret = param .." = #return ".. param .."#" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, string.gsub(ret, "%#(.-)%#", function(str) return loadstring(str) () end)) return true end Tá aí uma calculadora que faz todas as mesmas operações que a sua.
  21. function isValidName(name) return db.getResult("SELECT `id` FROM `players` WHERE `name` = ".. db.escapeString(name) ..";"):getID() ~= -1 end function onSay(cid, words, param, channel) if param == "" then doPlayerSendCancel(cid, "Parameters missing. ".. words .." [name], [item_name], [amount].") return true end local t = string.explode(param, ",") local depot = false local pid = getPlayerByName(t[1]) if not pid then pid = t[1] depot = true if not isValidName(t[1]) then doPlayerSendCancel("A player with this name doesn't exists.") return true end end local itemid = getItemIdByName(t[2], false) if not itemid then doPlayerSendCancel(cid, "A item with this name doesn't exists.") return true end local amount = tonumber(t[3]) or 1 if depot == true then local item = doCreateItemEx(itemid, amount) doPlayerSendMailByName(pid, item) else doPlayerAddItem(pid, itemid, amount) end doPlayerSendTextMessage(cid, 20, "Item delivered to the player: ".. t[1] ..".") return true end
  22. function isValidName(name) return db.getResult("SELECT `id` FROM `players` WHERE `name` = ".. db.escapeString(name) ..";"):getID() ~= -1 end function onSay(cid, words, param, channel) if param == "" then doPlayerSendCancel(cid, "Parameters missing. ".. words .." [name], [id], [amount].") return true end local t = string.explode(param, ",") local depot = false local pid = getPlayerByNameWilcard(t[1]) if not pid then pid = t[1] depot = true if not isValidName(t[1]) then doPlayerSendCancel("A player with this name doesn't exists.") return true end end local itemid = getItemIdByName(t[2], false) if not itemid then doPlayerSendCancel(cid, "A item with this name doesn't exists.") return true end local amount = tonumber(t[3]) or 1 if depot == true then local item = doCreateItemEx(itemid, amount) doPlayerSendMailByName(pid, item) else doPlayerAddItem(pid, itemid, amount) end doPlayerSendTextMessage(cid, 20, "Item delivered to the player: ".. t[1] ..".") return true end
  23. Consegui reduzir só 26 linhas da função do Dokmos. Preciso treinar mais x__x
  24. Nossa, essa função do Dokmos dá para reduzir MUITO. haha
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...