Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. elseif spell == "Mamaragan" then local ret = {} ret.id = 0 ret.cd = 9 ret.eff = 136 ret.check = 0 ret.spell = spell ret.cond = "Stun" local pos = getThingPosWithDebug(cid) local areas = {rock1, rock2, rock1, rock3, rock1, rock4, rock1, rock5} for i = 0, 7 do addEvent(doMoveInArea2, i*320, cid, 170, areas[i+1], ELECTRICDAMAGE, min, max, spell, ret) addEvent(doMoveInArea2, i*330, cid, 170, areas[i+1], ELECTRICDAMAGE, 0, 0, spell) end
  2. zipter98

    weapons

    local w = { [1] = {ef = 36, sh = 24, dmg = COMBAT_FIREDAMAGE}, [2] = {ef = 42, sh = 24, dmg = COMBAT_ICEDAMAGE}, [3] = {ef = 45, sh = 24, dmg = COMBAT_POISONDAMAGE}, [4] = {ef = 11, sh = 24, dmg = COMBAT_ENERGYDAMAGE} } local combat_area = createCombatArea{ {1, 1, 1}, {1, 2, 1}, {1, 1, 1}, } function onUseWeapon(cid, var) min, max = 1080 , 16123 -- dano minimo e maximo target = getCreatureTarget(cid) if target ~= 0 then wx = w[math.random(1, #w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), combat_area, -min, -max, wx.ef) end return true end
  3. Tópico movido para dúvidas / pedidos resolvidos.
  4. Tópico Movido Este tópico foi movido de "OTServ → Scripting → Scripts Prontos → Outros" para "OTServ → Suporte → Suporte Servidores derivados".
  5. Tópico movido para dúvidas / pedidos resolvidos.
  6. zipter98

    Really?

    Eu não dei ideia alguma.
  7. zipter98

    Yourots Remake

    Tópico Movido Este tópico foi movido de "OTServ → Downloads → Servidores → Servidores → OTserv 8.6x e 8.7x" para "OTServ → Downloads → Mapas → Aprovados → Mapas 8.6x e 8.7x".
  8. É, imaginei que isso fosse acontecer. Editei meu comentário anterior com as correções (tanto na modificação do NPC quanto no creatureevent).
  9. No código do NPC, troque: local stoTime = 96588 local stoKill = 96589 local stoName = 96590 por: local stoTime = 96586 local stoKill = 96585 local stoName = 96587 E, para evitar futuros erros, troque seu creatureevent por este: local function isSummon(cid) if not isCreature(cid) then return false end if getCreatureMaster(cid) ~= cid then return true end return false end function onDeath(cid, corpse, deathList) local stoTime = 96586 local stoKill = 96585 local stoName = 96587 local task = { ["dragon"] = {kill = "Dragon", qnt = 1500, exp = 1000000}, ["dragon lord"] = {kill = "Dragon Lord", qnt = 1000, exp = 800000}, ["hydra"] = {kill = "Hydra", qnt = 800, exp = 700000}, ["frost dragon"] = {kill = "Frost Dragon", qnt = 600, exp = 500000}, ["dragon guardian"] = {kill = "Dragon Guardian", qnt = 500, exp = 400000}, ["thunder dragon"] = {kill = "Thunder Dragon", qnt = 400, exp = 300000}, ["multi"] = {kill = "Multi", qnt = 600, exp = 200000}, ["demodras"] = {kill = "Demodras", qnt = 300, exp = 200000}, } for a = 1, #deathList do local pk = deathList[a] local myTask = task[string.lower(getPlayerStorageValue(pk, stoName))] local left = math.ceil((getPlayerStorageValue(pk, stoTime) - os.time())/(24 * 60 * 60)) if myTask and getCreatureName(cid) == getPlayerStorageValue(pk, stoName) and not isSummon(cid) then if left > 0 and getPlayerStorageValue(pk, stoKill) > 0 then setPlayerStorageValue(pk, stoKill, getPlayerStorageValue(pk, stoKill) - 1) local sto = getPlayerStorageValue(pk, stoKill) local jaMatou = math.abs(getPlayerStorageValue(pk, stoKill)-myTask.qnt) if sto == 0 then doPlayerSendTextMessage(pk, 22, "["..myTask.kill.." Task Finalizada] ("..myTask.qnt.."/"..myTask.qnt..")") else doPlayerSendTextMessage(pk, 22, "["..myTask.kill.." Task] ("..jaMatou.."/"..myTask.qnt..")") end end end end return true end
  10. OK, já sabemos onde o erro está. Agora, veremos qual é o erro. local function isSummon(cid) if not isCreature(cid) then return false end if getCreatureMaster(cid) ~= cid then return true end return false end function onDeath(cid, corpse, deathList) local stoTime = 96586 local stoKill = 96587 local stoName = 96587 local task = { ["dragon"] = {kill = "Dragon", qnt = 1500, exp = 1000000}, ["dragon lord"] = {kill = "Dragon Lord", qnt = 1000, exp = 800000}, ["hydra"] = {kill = "Hydra", qnt = 800, exp = 700000}, ["frost dragon"] = {kill = "Frost Dragon", qnt = 600, exp = 500000}, ["dragon guardian"] = {kill = "Dragon Guardian", qnt = 500, exp = 400000}, ["thunder dragon"] = {kill = "Thunder Dragon", qnt = 400, exp = 300000}, ["multi"] = {kill = "Multi", qnt = 600, exp = 200000}, ["demodras"] = {kill = "Demodras", qnt = 300, exp = 200000}, } for a = 1, #deathList do local pk = deathList[a] local myTask = task[string.lower(getPlayerStorageValue(pk, stoName))] local left = math.ceil((getPlayerStorageValue(pk, stoTime) - os.time())/(24 * 60 * 60)) print(myTask or "Task não existente: "..getPlayerStorageValue(pk, stoName)) print("Task do jogador "..getPlayerStorageValue(pk, stoName)) print("Nome do monstro: "..getCreatureName(cid)) if myTask and getCreatureName(cid) == getPlayerStorageValue(pk, stoName) and not isSummon(cid) then print("Primeira condição sendo executada.") if left > 0 and getPlayerStorageValue(pk, stoKill) > 0 then print("Segunda condição sendo executada.") setPlayerStorageValue(pk, stoKill, getPlayerStorageValue(pk, stoKill) - 1) local sto = getPlayerStorageValue(pk, stoKill) local jaMatou = math.abs(getPlayerStorageValue(pk, stoKill)-myTask.qntdade) if sto == 0 then doPlayerSendTextMessage(pk, 22, "["..myTask.kill.." Task Finalizada] ("..myTask.qntdade.."/"..myTask.qnt..")") else doPlayerSendTextMessage(pk, 22, "["..myTask.kill.." Task] ("..jaMatou.."/"..myTask.qntdade..")") end end end end return true end
  11. Sim, o que me leva a indagar do porquê não tem aparecido erro algum na distro. É sempre informado no console quando uma variável inexistente é declarada. Mesmo assim, a storage responsável por armazenar os dados da task é ainda alterada.
  12. Por gentileza, informe se alguma mensagem é imprimida na distro. Assim, saberemos onde exatamente se encontra o erro. local function isSummon(cid) if not isCreature(cid) then return false end if getCreatureMaster(cid) ~= cid then return true end return false end function onDeath(cid, corpse, deathList) print("Script sendo executado.") local stoTime = 96586 local stoKill = 96587 local stoName = 96587 local task = { ["dragon"] = {kill = "Dragon", qnt = 1500, exp = 1000000}, ["dragon lord"] = {kill = "Dragon Lord", qnt = 1000, exp = 800000}, ["hydra"] = {kill = "Hydra", qnt = 800, exp = 700000}, ["frost dragon"] = {kill = "Frost Dragon", qnt = 600, exp = 500000}, ["dragon guardian"] = {kill = "Dragon Guardian", qnt = 500, exp = 400000}, ["thunder dragon"] = {kill = "Thunder Dragon", qnt = 400, exp = 300000}, ["multi"] = {kill = "Multi", qnt = 600, exp = 200000}, ["demodras"] = {kill = "Demodras", qnt = 300, exp = 200000}, } for a = 1, #deathList do print("Loop iterando jogadores sendo executado.") local pk = deathList[a] local myTask = task[string.lower(getPlayerStorageValue(pk, stoName))] local left = math.ceil((getPlayerStorageValue(pk, stoTime) - os.time())/(24 * 60 * 60)) if myTask and getCreatureName(cid) == getPlayerStorageValue(pk, stoName) and not isSummon(cid) then print("Primeira condição sendo executada.") if left > 0 and getPlayerStorageValue(pk, stoKill) > 0 then print("Segunda condição sendo executada.") setPlayerStorageValue(pk, stoKill, getPlayerStorageValue(pk, stoKill) - 1) local sto = getPlayerStorageValue(pk, stoKill) local jaMatou = math.abs(getPlayerStorageValue(pk, stoKill)-myTask.qntdade) if sto == 0 then doPlayerSendTextMessage(pk, 22, "["..myTask.kill.." Task Finalizada] ("..myTask.qntdade.."/"..myTask.qnt..")") else doPlayerSendTextMessage(pk, 22, "["..myTask.kill.." Task] ("..jaMatou.."/"..myTask.qntdade..")") end end end end return true end
  13. zipter98

    Erro Estranho

    Você provavelmente está usando um creatureevent executado quando um monstro morre, com uma de suas características a modificação de valores em duas tabelas da database que estão faltando no seu servidor (killed_monsters e player_advances). Talvez seja um onDeath ou um onKill. Recomendaria dar uma olhada nos códigos de data/creaturescripts/scripts e procurar por aqueles que ou chamam a função db.executeQuery ou db.query. Se você não os estiver usando, basta deletá-los que o erro não mais acontecerá. Caso contrário, responda a pergunta do Adriano.
  14. Tópico movido para dúvidas / pedidos resolvidos.
  15. Troque: if getTileInfo(getThingPos(mypoke)).protection then por: if getTileInfo(getThingPos(cid)).protection then
  16. zipter98

    Moveevents ERRO

    Troque: doTransformItem(item.uid, 7697) por: if item.uid > 0 then doTransformItem(item.uid, 7697) end
  17. Caso o código do Adriano ainda não funcione, peço que me responda uma coisa: você possui as sources do seu servidor? Gostaria de tentar uma coisa diferente.
  18. Os status do PDA sem level são calculados de maneira diferente da versão com esta característica. Os fatores que influenciam na fórmula do cálculo de defesa, vida, ataque e etc são poucos, como boost e nível do jogador, visto que os status de cada pokémon são constantes. Já na versão com level, os atributos são variáveis, sendo avançar de nível um fator que os alteram. Mas como ninguém se importa com esta explicação, vou direto ao ponto: você quer que os atributos sejam aumentos por valores fixos ou percentuais? Por exemplo, um aumento de ataque em 10% ou um aumento de defesa em 300 (para o segundo caso, eu recomendaria um estudo sobre as fórmulas de status para ter uma melhor noção dos valores apropriados).
  19. Gostei do resultado apresentado no vídeo. Sério, ficou muito legal. Tópico aprovado e movido para a área adequada. Obrigado pelo conteúdo. )
  20. Tópico movido para dúvidas / pedidos resolvidos.
  21. Você não vai conseguir fazer isso sem modificações nas sources. http://www.xtibia.com/forum/topic/236635-ontarget-tambem-executado-por-monstros/
  22. Troque: db.query por: db.executeQuery Esta correção também serve para aquele código que você mostrou no tópico.
  23. zipter98

    Surprise box

    Desculpe, corrigido.
  • Quem Está Navegando   0 membros estão online

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