Ir para conteúdo

Lordfire

Lenda
  • Total de itens

    2605
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que Lordfire postou

  1. Metralhadora em avião é op
  2. Garçom burro é burro porra
  3. Lordfire

    Premium Door

    Se você usa o TFS, é só colocar o Action ID 189 na porta.
  4. RT @ohseugordo: Eu não sou: ( ) obrigado ( ) tuas negas (×) cachorro não
  5. puta merda I've wasted 144 days, 2 hours and 6 minutes on Facebook since May 06, 2009 http://t.co/MnqpmTIvm9 #FBTime
    1. Oneshot

      Oneshot

      Só gastei uns 17 dias. Pensei que fosse algo realmente exato que pegasse todo meu tempo online, mas ele pede "quantos minutos" eu fico por dia no Facebook pra fazer o cálculo.

  6. Tem sim, outubro de 2006 aqui. Comecei a jogar quando a Bubble não era level 200 ainda, vi o Cachero passar voando ela, o Setzer Gambler ser o primeiro brasileiro level 200, essas coisas.
  7. Abra esse arquivo, e nessa linha que deu erro substitua leaf() por .path().filename().
  8. esse "sou free" tocou right in the feel
  9. Achei mais barato http://www.kabum.com.br/produto/46554/placa-de-video-vga-msi-geforce-gtx650-1gb-ddr5-128-bit-pci-express-3-0-x16-n650-md1gd5-oc/ Eu compro na Kabum desde 2010 e nunca tive problema algum.
  10. Iteradores são funções especiais criadas para iterar, ou seja, percorrer, listas, vetores (arrays), matrizes, tabelas ou o que quisermos. Nós criamos iteradores para usar na função for. Um exemplo de iterador que você já deve conhecer é o pairs. Vamos supor que eu tenha a seguinte tabela: k = {1, 2, 3, 4, 5}E eu queira iterar por todos eles imprimindo o seu quadrado. Como faríamos isso? Casualmente, o código seria este: for i = 1, 5 do print(i ^ 2) endMas e se eu quiser fazer isso várias vezes? Com uma lista que não segue um padrão? Então criamos um iterador, mas primeiro, vamos entender a estrutura de um em pseudocódigo Lua: function iterator(values) local pos = 0 --posição do iterador na lista return function() pos = pos + 1 if values[pos] ~= nil then return values[pos] end return nil end endPerceba que eu não retorno um valor especifico ao chamar a função iterator(), eu retorno uma nova função. Essa função será chamada pelo for até que seu retorno seja nil, onde Lua assume que o iterador acabou. E como eu sei quando acaba? Simples, há uma variável (chamei, neste caso, de pos) que armazena a posição dentro do array values do próximo valor a ser retornado. A cada iteração, o valor aumenta em 1 dentro da função. Quando eu acessar um índice dentro do array que não existe, seu valor (values[pos]) será nil, portanto eu testo essa condição. Parece bastante complexo, mas vamos voltar ao exemplo do quadrado. Chamarei minha função iteradora de square: function square(numbers) local pos = 0 return function() pos = pos + 1 if values[pos] ~= nil then return values[pos] ^ 2 end return nil end endA cada chamada da função de retorno, eu aumento a posição e retorno este elemento elevado ao quadrado. Então, usarei a função assim: for i in square(k) do print(i) endQue funciona como o esperado: O que mais podemos fazer com iteradores? Podemos, por exemplo, bloquear uma palavra usando a função onTalk do xotservx: local palavra = "jujuba" function splitWords(phrase) local pos = 0, words = phrase:gmatch("%w+") return function() pos = pos + 1 if words[pos] ~= nil then return words[pos] end return nil end end function onTalk(cid, type, text, position) for w in splitWords(text) do if w = palavra then return false end end return true endClaro que esse exemplo é bastante simplório, mas demonstra a utilidade dos iteradores. Neste caso, eu testo todas as palavras que o player falou para encontrar uma palavra especifica que eu defini. Podemos transformar isso tudo em um loop while, para você entender um pouco melhor: local words = splitWords(text) while w = words() do if w == nil then break end if w = palavra then return false end end end return trueUsando o iterador, ganhamos organização no código e o controle do for. Espero que façam bom uso de iteradores para organizar seus códigos
  11. Tenta trocar doRemoveItem(item.uid)por doRemoveItem(item.uid, 1)Perto do final. Achei um script aqui de outra coisa que exigia a quantidade.
  12. Lordfire

    Comando pvp on

    Talvez que seu servidor já tenha. Tente: /pvp optional /pvp open
  13. Usar while no lugar de for não é problema, mas o for foi criado justamente pra isso (iterar de x até y), aí faz a mesma coisa sem você precisar se preocupar com o iterador. Do mais foi só mania minha de DRY. Uma sugestão, faça seu script receber várias waves com delays diferentes, tipo assim: { name = "Dragons", waves = { { monsters = {"Dragon Hatchling", "Dragon Lord Hatchling"}, maxMonsters = 15 }, { delay = 120, monsters = {"Dragon Hatchling", "Dragon Lord Hatchling", "Dragon"}, maxMonsters = 18 }, { delay = 300, monsters = {"Dragon Hatchling", "Dragon Lord Hatchling", "Dragon", "Dragon Lord"}, maxMonsters = 21 }, { delay = 600, monsters = {"Dragon Hatchling", "Dragon Lord Hatchling"}, maxMonsters = 24 }, }, boss = "Orshabaal", fromPos = {x=150, y=37, z=7}, toPos = {x=157, y=42, z=7}, dates = {"Thursday-15:00", "Saturday-22:12"}, bossDelay = 900 }
  14. É que variáveis chamadas "playerz" e "bonsters" (de outro script seu, acho) não ajudam quem quer modificar mas só isso também, fiquei curioso até.
  15. Por que vocês usam table.insert quando não tem índice/é pra adicionar na última posição? Esse código playersInArea[#playersInArea + 1] = playerz.uidTem uma performance ~20% superior pelos meus testes. É costume ou organização? Aliás, cara, crie uma variável chamada _player, mas não crie uma chamada playerz.
  16. Acho que você se perdeu na configuração. Não precisa de 2 tabelas pra ter valores da configuração, simplifique em uma só. Também mudei outras coisinhas para limpar e deixar mais eficiente (note o string.format): local config = { exhaustion = 120, health = 1000, mana = 1000, level = 5, pos = {x = 1024, y = 1025, z = 7}, storage = 3870, } function onUse(cid, item, fromPos, itemEx, topos) local storage = getPlayerStorageValue(cid, config.storage) if storage > os.time() and storage < 100 + os.time() then doPlayerSendTextMessage(cid, 24, string.format("The stone is charging, please wait %d second%s", storage - os.time(), storage - os.time() == 1 and "" or "s")) return true elseif getPlayerLevel(cid) < config.level then doPlayerSendCancel(cid, string.format("You need to be at least level %d.", config.level)) return true end doTeleportThing(cid, config.pos) doCreatureAddHealth(cid, config.health) doCreatureAddMana(cid, config.mana) doRemoveItem(item.uid, 1) doSendMagicEffect(getCreaturePosition(cid), 15) setPlayerStorageValue(cid, config.storage, os.time() + config.exhausted) return true end
  • Quem Está Navegando   0 membros estão online

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