Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. O problema é que ele reconhece a função getGlobalStorageValue como um valor nulo. Quando executar no OT Server provavelmente não irá ocorrer erro. Para confirmar isso, execute no script live, o seguinte código: function teste() return getGlobalStorageValue(30000) - os.clock() end teste() Ai então, temos o seguinte erro: ERROR: untitled.lua:3: attempt to perform arithmetic on a nil value Você não tem um erro como esse quando usa em um outro script pois não executa a função. Se executar o seguinte código: function getEventTime() if 0 > (getGlobalStorageValue(12000) - os.clock())then -- essa é a linha 60 do erro return false end return(getGlobalStorageValue(12000) - os.clock()) end getEventTime() Irá acusar erro. -- Acho que é isso, abraços.
  2. Sua dúvida foi sanda? Posso mover para dúvidas sanadas? Abraços.
  3. Este tópico não é a respeito da sua dúvida, e sim à dúvida do Frenesy. Como a dúvida dele foi resolvida, eu movi o tópico. Caso ele precise de assistência neste script, pode usar este tópico para consultar. Até.
  4. Beleza, vou mover para seção de Pedidos atendidos. Abraços.
  5. @Frenesy Vamos lá. Primeiro vá em data/movements/script, crie um arquivo .lua e cola isso nele: function onStepIn(cid, item, position, fromPosition) if getGlobalStorageValue(30050) == -1 then addEvent(doMsg, 0, position) end setGlobalStorageValue(30050, getGlobalStorageValue(30050) + 1) return TRUE end function doMsg(pos) local delay = 3 if getGlobalStorageValue(30050) ~= -1 then doSendAnimatedText(pos, "Ocupado", math.random(3, 12)) addEvent(doMsg, delay*1000, pos) end end Configure o delay, que é o tempo entre as mensagens. Depois, ainda nessa mesma pasta, crie outro arquivo .lua e cole este script: function onStepIn(cid, item, position, fromPosition) setGlobalStorageValue(30050, getGlobalStorageValue(30050) -1) return TRUE end Feito. Agora vá em data/movements, abra o arquivo movements.xml e cole estas duas tags nele: <movevent type="StepIn" actionid="AID1" event="script" value="NomeDoArquivo1.lua"/> <movevent type="StepIn" actionid="AID2" event="script" value="NomeDoArquivo2.lua"/> Só colocar os actionids dos portais e o nome dos scripts. Testa ai. OBS: O primeiro script é para entrada e o segundo para a saida.
  6. Opa, então eu não entendi direito. Se 1 passar fica ocupado. Ai se mais outro entrar continua ocupado. Ai se 1 sair tira o ocupado? Ou tem que sair os dois? Aguardando reposta.
  7. Só uma dúvida, os outros podem passar pelo teleport enquanto ele estiver ocupado?
  8. Para de floodar, caso contrário vou te alertar. Affs, fiz o script errado. Já edito aqui. -- Acho que não tem como fazer com que a mensagem de Canal 1 pare só em um teleport. Tem como ficar mandando, também, a mensagem de ocupado.
  9. Isso é uma action, vê ai: Crie um arquivo .lua em data/actions/scripts, e cole o script abaixo: function onUse(cid, item) local pos = {x=???, y=??, z=?} if getGlobalStorageValue(30010) - os.time() <= 0 then doTeleportThing(cid, pos) setGlobalStorageValue(30010, 24*60*60 + os.time()) else doPlayerSendCancel(cid, "Esta alavanca já foi usada hoje.") end return TRUE end Edite as posições onde estão os pontos de interrogação, esta será a posição para onde ele será teleportado. Depois vá em data/actions, abra o arquivo actions.xml e cole esta tag: <action actionid="????" event="script" value="nomeDoArquivo.lua"/> Vá no map editor, coloque um actionid na alavanca e então substitua os pontos de interrogação na tag por este actionid. Depois substitua onde esta nomeDoArquivo pelo nome do arquivo .lua que você criou para colar o script. Abraços.
  10. Só para dar um toque, se colocar vírgula no ultimo não tem problema.
  11. Haha, foi mesmo, mas ainda sim o script ficou interessante. O equivoco aconteceu porque ele postou em actions, entretanto, depois de perceber o erro, eu mesmo movi para Duvidas de Scripts. Se a duvida foi sanada, reporte para moderação, ate.
  12. Genial, ótimo sistema, gostei muito! Vê se não tira esse. Abraços. :button_ok:
  13. Bom, você criou double-topic, vou deixar este aberto, pois já há bastantes respostas. Mais cuidado da próxima vez, abraços.
  14. Sherman Itoouch Cmgabriel *Cmgabriel foi o ultimo lugar apenas porque eu não gostei nada da sua be.
  15. Hmm, parece que o nosso amigo Doidin se equivocou um pouquinho. Vamos lá, observe esta parte do código: function Summon() doSummonCreature(monstername1,monster1) doSummonCreature(monstername1,monster2) doSummonCreature(monstername1,monster3) doSummonCreature(monstername2,monster4) doSummonCreature(monstername2,monster5) doSendMagicEffect(monster1,36) doSendMagicEffect(monster2,36) doSendMagicEffect(monster3,36) doSendMagicEffect(monster4,36) doSendMagicEffect(monster5,36) end addEvent(Summon,100) addEvent(Summon,15000) addEvent(Summon,30000) addEvent(Summon,45000) addEvent(Summon,60000) addEvent(Summon,75000) Agora pense comigo. Ele criou uma função que sumona 5 monstros quando executada. E ele usou a função addEvent que faz essa função ser executada após tanto tempo. Porém, ele usou o addEvent 5 vezes, logo, 5 monstros vão ser criados depois de tanto tempo, depois de mais tanto tempo mais 5, e assim vai... (se eles não estão sendo criado deve ser por falta de espaço na área) A solução é fazer como henrique sugeriu.
  16. Haha, vamos lá. Veja bem, neste código temos o timeNow que é igual a função os.time(). Essa função retorna o tempo da CPU em segundos. Depois temos o tempo, também em segundos, na seguinte variável: local daysValue = days * 24 * 60 * 60 Pense comigo, 60 segundos vezes 60 equivale a 1 hora. 1 hora vezes 24 equivale a 1 dia. Então temos days que é a variável que vai multiplicar 1 dia. Se days for 4, por exemplo, vai ser 4 multiplicando 1 dia, totalizando 4 dias em segundos. Depois é somada a função os.time e a conta dos dias. -- Para conseguirmos ver quanto tempo ainda resta, revertemos isso, deste jeito: math.floor(tempo - os.time()) Onde tempo é viptime. O valor retornado será em segundos; caso queira em dias, use assim: math.floor((tempo - os.time())/(24*60*60))
  17. Script: function onAdvance(cid, skill, oldLevel, newLevel) local config = { [60] = {item = 2160, count = 1}, [61] = {item = 2421, count = 1}, } if skill == 8 then for level, info in pairs(config) do if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then doPlayerAddItem(cid, info.item, info.count) doPlayerSendTextMessage(cid, 27, "Parabéns você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".") local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'" setPlayerStorageValue(cid, 30700, sat) end end end return TRUE end Como configurar: Para colocar mais prêmios para cada level, adicione uma linha como esta em baixo de local config = { [20] = {item = 2160, count = 1}, O número entre colchetes é o level mínimo. Por exemplo, se ele for do level 19 ao 120, ele irá ganhar o item do mesmo jeito. Item é o id do item. Count é a quantidade desse item que será ganho. -- As tags são as que ele te passou.
  18. Exatamente, atualizações do mesmo OT devem ser atualizadas no mesmo tópico! Tópico fechado.
  19. bom, quem quiser o leite fala comigo

  20. só exijo de quem tem potencial, isso foi um elogio haha
  21. Caro Orejon, peço que organize melhor seu tópico e faça o scan do OT Server. Se puder traduzir o seu tópico, por favor, faça. Traduzir o tópico não é uma regra, mas ajudará no entendimento da maioria dos nossos membros. No entanto, o scan deve conter no seu tópico, caso contrário, este será fechado. Você tem 48 horas para incluir o scan no seu tópico. Notificado, também, via mensagem pessoal. Abraços. -- Scan adicionado.
  22. @Apocarai Valeu, não sou muito de identar, tenho preguiça haha. @Kakilo Riairiai, tenta começar a aprender, é bacana. -- Abraços.
  23. Pow bem legal. Só explica melhor o que seria esse pack, seria algo para o autoborder? Leigos no assunto como eu não entendem assim rsrs. Abraços.
  24. Cara, vocês me deixam exausto

    1. Caronte

      Caronte

      KKK Eles Te Aman !

  25. Script bem interessante, agora facilitou ainda mais a configuração. Não vou colocar como um tutorial, mas sim como um script de Action. Enfim, aprovado. Abraços.
  • Quem Está Navegando   0 membros estão online

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