Ir para conteúdo

Caronte

Marquês
  • Total de itens

    1340
  • Registro em

  • Última visita

  • Dias Ganhos

    21

Tudo que Caronte postou

  1. Claro. O for um pairs() desmembra uma tabela através de duas variáveis, no caso K e V, eu tô acostumado a usar K e V porque elas dizem o que são (KEY e VALUE) no caso KEY seria o índice, VALUE seria o que está dentro do índice. Exemplo: local t = {[1] = {1, 2, 3}, [2] = {4, 5, 6} } for k, v in pairs(t) do print(k, v) end Aqui será retornado os seguintes elementos: 1 e {1, 2, 3} 2 e {4, 5, 6} No caso do getOnlinePlayers, eu fiz isso porque essa função retorna uma tabela, com índices númericos que representam o Id de cada player online, que seria o K do for. Já o V, se não me engano é o nome. Logo a tabela seria algo assim Online = {[173726437] = "Caronte"} Tem o ipairs também, que em vez de retornar o índice, retorna a posição se não me engano. Qualquer dúvida só perguntar de novo
  2. function onCastSpell(cid, var) local tempo = 5 local monstro1 = doSummonCreature("Demon", getThingPos(cid)) local monstro2 = doSummonCreature("Demon", getThingPos(cid)) local monstro3 = doSummonCreature("Demon", getThingPos(cid)) doConvinceCreature(cid, monstro1) doConvinceCreature(cid, monstro2) doConvinceCreature(cid, monstro3) addEvent( function() doRemoveCreature(monstro1) doRemoveCreature(monstro2) doRemoveCreature(monstro3) end, 1000 * tempo) return true end <instant name="Summon Monster" words="xtibia" lvl="8" mana="20" prem="0" exhaustion="2000" event="script" value="attack/test.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> </instant>
  3. function onThink() local tab {-- Siga o exemplo: --[hora] = {[itemid] = quantidade}, [1] = {[2160] = 10, [2161] = 20}, [2] = {[2162] = 30, [2163] = 40}, } for k, v in pairs(getOnlinePlayers()) do for i = #tab, 0 in pairs(tab) do -- 1 = hora inicial para receber, caso mudar acima, mudar aqui também if tab[i] and (os.time() - getCreatureStorage(cid, 5412) / 360000) > i then for item, count in pairs(tab[i]) doPlayerAddItem(k, item, count) end if tab[i] == tab[#tab] and (os.time() - getCreatureStorage(cid, 5412) / 360000) > i then doCreatureSetStorage(cid, 5412, 0) end break return true end end end return true end aaa só adicionando: doCreatureSetStorage(cid, 5412, 0) vai fazer ele parar de receber, até logar novamente. doCreatureSetStorage(cid, 5412, os.time()) vai fazer ele voltar do inicio da tabela de prêmios, ou seja, se ele chegar ao 500 e 500 for o último, ele vai voltar ao 1...
  4. Eu até jogaria, mas meu PC tá com placa de vídeo fudida, aí fica dando quebra de frame, é quase nada, mas faz uma baita diferença na hora da mira, toda vez que fica sem a quebra, eu tiro top 3...
  5. Acho que sim, se acontecer, você manda uma resposta, eu dou umas editadas.
  6. Vá em seu login.lua, e em baixo de: if(lastLogin > 0) then adicione: doCreatureSetStorage(cid, 5412, os.time()) agora crie um arquivo.lua na mesma pasta do login.lua, e adicione isto dentro: function onLogout(cid) doCreatureSetStorage(cid, 5412, 0) return true end vá em data/creaturescripts/creaturescripts.xml adicione esta tag: <!-- nao se esqueca de colocar o nome do seu arquivo --> <event type="logout" name="ResetTime" event="script" value="arquivo.lua"/> Agora vá para pasta globalevents/scripts e crie um arquivo.lua adicione dentro: function onThink() local tab {-- Siga o exemplo: --[hora] = {id do item, quantidade}, [1] = {2160, 10}, [2] = {2160, 20}, } for k, v in pairs(getOnlinePlayers()) do for i = #tab, 0 do -- 1 = hora inicial para receber, caso mudar acima, mudar aqui também if tab[i] and (os.time() - getCreatureStorage(cid, 5412) / 60*60) > i then doPlayerAddItem(k, tab[i][1], tab[i][2]) if tab[i] == tab[#tab] and (os.time() - getCreatureStorage(cid, 5412) / 60*60) > i then doCreatureSetStorage(cid, 5412, os.time()) end break return true end end end return true end em globalevents.xml adicione: globalevent name="CheckTimePrize" interval="60000" event="script" value="arquivo.lua"/> PS: editei umas coisinhas, que adicionei.
  7. Não sei para que isso tudo, o player que deslogar não tem nenhuma intenção em fazer a hunt. se ele clicou no item é porque ele quer fazer a hunt..., fiz isso só para ninguém burlar. @@Danihcv, não se esqueça que a variável tempo não está no login.lua huehehueehu, já ia falar. Bom como meu nome é Daniel, vou responder essa: o os.time() é uma função que quando você chama ela sem parametros ela retornar números que significam uma data, só que codificados, e mudam a cada segundo... Veja aqui: http://www.lua.org/pil/22.1.html
  8. local storage = 79845 --storage para o exhaustion local tempo = 5 --em segundos local monsters = { [1] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 2 }, [2] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [5] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [6] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 6 }, } function onSay(cid, words, param, channel) if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, 22, "You are exhausted.") return true end --Player Status local playerpos = getPlayerPosition(cid) param = string.lower(param) local loop = 0 function checkSummon() for k, v in pairs(monsters[getPlayerVocation(cid)].summons) do if param == k then return true end end return false end if not checkSummon() then doPlayerSendCancel(cid, "You can't summon this monster.") return true end for k, v in pairs(monsters[getPlayerVocation(cid)].summons) do loop = loop + 1 if (param == k) then if (monsters[getPlayerVocation(cid)]) and #getCreatureSummons(cid) >= monsters[getPlayerVocation(cid)].maxSummons then return doPlayerSendCancel(cid, "Você já tem sumons demais.") else --Summon if getPlayerLevel(cid) < v.level then return doPlayerSendCancel(cid, "Level insuficiente.") elseif getCreatureMana(cid) < v.mana then return doPlayerSendCancel(cid, "Mana insuficiente.") end doConvinceCreature(cid, doCreateMonster(param, playerpos)) doPlayerAddMana(cid, -v.mana, false) exhaustion.set(cid, storage, tempo) doSendMagicEffect(playerpos, 2) return true end end end return true end
  9. é só colocar assim: local tempo = 10 * 60 os 10 são os minutos.
  10. Sim, levará. o tempo eu tinha esquecido de colocar ali em cima, mas já editei, é só configurar os segundos lá.
  11. Vá em actions/scripts e adicione isto: local position = {x = 123, y = 456, z = 7} local templepos = {x = 123, y = 456, z = 7} local tempo = 10 function onUse(cid) doTeleportThing(cid, position) doCreatureSetStorage(cid, 5834, 1) addEvent( function() doTeleportThing(cid, templepos) doPlayerSendTextMessage(cid, 22, "Seu tempo acabou, e foi transportado de volta ao templo!") doCreatureSetStorage(cid, 5834, -1) end, 1000 * tempo) return true end agora vá em actions.xml e adicione isto: <action itemid="1234" event="script" value="arquivo.lua"/> mude o itemid, para o id do seu item... Importante, para que os players não desloguem e deixem de ser teleportados: vá em creaturescripts/scripts/login.lua Abra o arquivo e depois de: function onLogin(cid) adicione: if getCreatureStorage(cid, 5834) == 1 then doCreatureSetStorage(cid, 5834, -1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end
  12. Cresceu até certo ponto né. O que ele quis dizer é: Porque tibia não tem futuro? kkkkkk
  13. Sim, só copiar a tabela do monstro, e colocar no final, com uma vírgula separando: {["rat"] = {level = 10, mana = 20}, é só colocar dentro da tabela summons. vou editar um negócio no meu post, é que o script só vai funcionar se o parametro estiver em minúsculo. quando eu editar você substitui lá.
  14. local storage = 79845 --storage para o exhaustion local tempo = 5 --em segundos local monsters = { [1] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 2 }, [2] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [5] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [6] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 6 }, } function onSay(cid, words, param, channel) if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, 22, "You are exhausted.") return true end --Player Status local playerpos = getPlayerPosition(cid) param = string.lower(param) for k, v in pairs(monsters[getPlayerVocation(cid)].summons) do if (param == k)then if (monsters[getPlayerVocation(cid)]) and #getCreatureSummons(cid) >= monsters[getPlayerVocation(cid)].maxSummons then return doPlayerSendCancel(cid, "Você já tem sumons demais.") else --Summon if getPlayerLevel(cid) < v.level then return doPlayerSendCancel(cid, "Level insuficiente.") elseif getCreatureMana(cid) < k.mana then return doPlayerSendCancel(cid, "Mana insuficiente.") end doConvinceCreature(cid, doCreateMonster(param, playerpos)) doPlayerAddMana(cid, -k.mana, false) exhaustion.set(cid, storage, tempo) doSendMagicEffect(playerpos, 2) return true end else doPlayerSendCancel(cid, "You can't summon this monster.") end end return true end
  15. Pô, @@Gabriel Couto, maneiro, só não vou poder ver porque estou sem caixa de som aqui. (achei o fone) mas apoio e gostaria de assistir depois... kkkkk, o cara não sabe nem pronunciar o nome do próprio character.... vou dar like lá no youtube pesquisei sobre aquela porra nova que você viu.... são vários ranks... http://www.tibiabr.com/2015-01-27-apresentando-o-sistema-de-lealdade-tibiano +1 nota: não é spider sword, e sim, serpent sword kkkkk
  16. @, coloque no seu título o que seu tópico trata, porque assim dificulta o entendimento dos usuários, e consequentemente, dificulta a resolução do seu problema...
  17. Só para dar um up. não é a melhor música, mas para mim, qualquer música que eu gosto é muito boa, música é a melhor coisa que o homi inventou...
  18. Seria lindo tudo voltar como era antes... só que não temos ainda uma maquina do tempo. Antes era muuuuuito bom jogar tibia.
  19. @@valakas, aqui não é área para suporte, por favor, poste na área correta, vou mover para ela. Tópico Movido Este tópico foi movido de "OTServ → Scripting → Downloads Scripts → Globalevents, spells e creatureevents" para "OTServ → Scripting → Suporte Scripting".
  20. Bom, próximo de vinte, fazendo uma regra de três é 66, então: é só você fazer um script onEquip e outro onDeEquip. no onEquip, coloca isto: function onEquip(player) player:setDodgeLevel(player:getDodgeLevel() + 66) return true end no onDeEquip, coloca isto: function onDeEquip(player) player:setDodgeLevel(player:getDodgeLevel() - 66) return true end Ambos os scripts devem se colocados na pasta scripts, da pasta movements, e devem conter extensão .lua agora abra o movements.xml na pasta movements e adicione duas tags: <movevent type="Equip" itemid="ID_DA_BOTA_AQUI" slot="feet" event="script" value="nome do arquivo.lua"/> <movevent type="DeEquip" itemid="ID_DA_BOTA_AQUI" slot="feet" event="script" value="nome do arquivo.lua"/> Em lugar nenhum, você tem que criar... [titulo][/titulo] @Tópico: Bom script @Bruno, parabéns.
  21. :drunk: Feliz ano novo, que esse ano seja tão produtivo que 2015 fique no chinelo. são os meus votos para toda comunidade XTibia!
  22. Caronte

    Sem tempo

    Vou banir! Pera aí.... ... Opz, @Daniel, tirou minhas permissões ... E não coloca de volta :S
  • Quem Está Navegando   0 membros estão online

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