Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    72

Tudo que zipter98 postou

  1. Área incorreta, tópico movido. Mais cuidado da próxima vez. PS: Use spoiler assim: [.spoiler]conteúdo[./spoiler], sem os pontos.
  2. Área incorreta, tópico movido. Mais cuidado da próxima vez. @erro Aparentemente, a função isSummon não existe, ou não está sendo encontrada.
  3. Infelizmente, não sei o quê pode estar causando o primeiro erro com você (o de não poder usar o comando no chão). Pelo menos aqui, está funcionando perfeitamente. Sobre o segundo erro, foi falta de atenção minha. Corrigi ele e mais um "erro". Código alterado. PS: Sobre o pedido de aumentar a velocidade neste comando, acontece o seguinte: na verdade, o jogador se teleporta, e não "anda", como parece na prática. E o intervalo de tempo entre estes teleportes é de 500 milésimos. Ou seja, a velocidade do jogador de nada altera nisto. Tanto um jogador com slow que anula 90% de sua velocidade, quanto um jogador com o triplo de sua real velocidade "voariam" na mesma velocidade. Porém, se você quiser mesmo que a velocidade seja aumentada, pode ser feita um cálculo com a speed do jogador para altear o intervalo de tempo.
  4. Esse código que eu enviei é para colocar no exp2.0.lua.
  5. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  6. Sobre o primeiro caso, é porquê não é possível andar normalmente em pisos "vazios" (no caso do Fly, o "ar"). Como, no código, para teleportar o jogador é necessário que o piso seja "andável", retorna ao jogador esta mensagem, pelo motivo que citei. Como corrigir, é algo que vou pensar. Sobre o segundo, logo edito o código com isso. #EDIT: Primeiro erro, corrigido. Código alterado.
  7. Hoje provavelmente não conseguirei fazer o código, portanto darei uma pequena explicação de como fazer: action que seta atributo; exp2.0.lua, procure por onde calcula o damage (variável valor, se não me engano). E então, faça algo tipo assim: local tabela_de_exemplo = { ["fire"] = FIREDAMAGE, ["water"] = WATERDAMAGE, --["elemento 1 do pokémon"] = damage, } if isSummon(attacker) then local owner = getCreatureMaster(attacker) if getItemAttribute(getPlayerSlotItem(owner, 8).uid, "atributo_setado_na_action") then if tabela_de_exemplo[pokes[getCreatureName(attacker)].type] then local damage = tabela_de_exemplo[pokes[getCreatureName(attacker)].type] if damageCombat == damage then valor = valor * 2 end end end end Aí, no look.lua, fazer algo assim: if getItemAttribute(thing.uid, "atributo_setado_na_action") then table.insert(str, "Esta pokeball possui o atributo setado na action.\n") end Por exemplo, pelo elemento "1" do Slowking ser water, ataques aquáticos dariam o dobro do dano.
  8. Infelizmente, não encontrei uma maneira funcional de o jogador continuar andando "infinitamente". As que encontrei, geravam algum tipo de bug (travavam o servidor e etc). Para evitar tais erros, fiz assim: após x segundos (configuráveis, claro), o jogador "se cansa". Ou seja, o comando !fly é desativado. Espero que mesmo assim o código lhe satisfaça. PS: Como informado no script, não coloque valores muito altos nos segundos, pois o servidor pode travar. local cfg = { storage = 918311, fly_storage = 17000, seconds = 20, --Quantos segundos até o jogador "cansar". Recomendo não colocar um valor muito alto. } function isWalkable(pos)-- by Nord / editado por Omega if isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false else if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid ~= 0 then if hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end end end return true end function autoWalk(cid, id) local a = 0 for i = 1, (cfg.seconds * 2) do if getPlayerStorageValue(cid, cfg.storage) < 1 then break end if a == (cfg.seconds * 2) then setPlayerStorageValue(cid, cfg.storage, -1) doPlayerSendTextMessage(cid, 27, "Your character is exausted.") doCreatureSay(cid, "*Puff*", TALKTYPE_MONSTER) break end addEvent(function() if not isCreature(cid) then if id then return db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = 918311 AND player_id = "..id) end end local tab = { [0] = {x = getThingPos(cid).x, y = getThingPos(cid).y - 1, z = getThingPos(cid).z}, [1] = {x = getThingPos(cid).x + 1, y = getThingPos(cid).y, z = getThingPos(cid).z}, [2] = {x = getThingPos(cid).x, y = getThingPos(cid).y + 1, z = getThingPos(cid).z}, [3] = {x = getThingPos(cid).x - 1, y = getThingPos(cid).y, z = getThingPos(cid).z}, } local lookdir = getCreatureLookDir(cid) local topos = tab[lookdir] if getPlayerStorageValue(cid, cfg.storage) < 1 then return true elseif isWalkable(topos) then if getTileThingByPos({x = topos.x, y = topos.y, z = topos.z, stackpos = 0}).itemid == 0 then doCombatAreaHealth(cid, 0, topos, 0, 0, 0, CONST_ME_NONE) doCreateItem(11676, 1, topos) end doTeleportThing(cid, topos) a = a + 1 else setPlayerStorageValue(cid, cfg.storage, -1) doPlayerSendTextMessage(cid, 27, "Há algum objeto à sua frente impedindo a passagem.") return true end end, i * 500) end end function onSay(cid, words) if getPlayerStorageValue(cid, cfg.fly_storage) < 1 then return doPlayerSendCancel(cid, "Para usar este comando, você deve estar em Fly.") elseif getPlayerStorageValue(cid, cfg.storage) >= 1 then return setPlayerStorageValue(cid, cfg.storage, -1) and doPlayerSendTextMessage(cid, 27, "Comando !fly desativado.") else doPlayerSendTextMessage(cid, 27, "Comando !fly ativado.") setPlayerStorageValue(cid, cfg.storage, 1) autoWalk(cid, getPlayerGUID(cid)) end return true end
  9. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  10. zipter98

    Bleach GT

    Área incorreta, tópico movido. Mais cuidado da próxima vez.
  11. Como dito acima pelo Incur, área incorreta. Mais cuidado da próxima vez. Tópico movido.
  12. Área incorreta, tópico movido. Mais cuidado da próxima vez. PS: Recomendo ler este manual do fórum para evitar cometer mais erros como este.
  13. zipter98

    Avatar

    Tópico atendido e movido para a seção de pedidos entregues.
  14. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  15. elseif spell == "Escapar" then local target = getCreatureTarget(cid) local lookdir = getCreatureLookDir(target) local tab = { [0] = {x = getThingPos(target).x, y = getThingPos(target).y + 1, z = getThingPos(target).z}, [1] = {x = getThingPos(target).x - 1, y = getThingPos(target).y, z = getThingPos(target).z}, [2] = {x = getThingPos(target).x, y = getThingPos(target).y - 1, z = getThingPos(target).z}, [3] = {x = getThingPos(target).x + 1, y = getThingPos(target).y, z = getThingPos(target).z}, } local pos = tab[lookdir] doTeleportThing(cid, pos)
  16. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  17. zipter98

    For _, pid

    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  18. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  19. local posis = { {x = x, y = y, z = z}, --Posição onde o jogador deve ficar. {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, } local wall_pos = {x = x, y = y, z = z} --Coordenadas da posição da parede. local wall = x --ID da parede. local time = 5 --Tempo, em minutos, para a parede reaparecer. local check = 0 function onUse(cid, item, frompos, item2, topos) for a, b in pairs(posis) do if not isPlayer(getThingFromPos(b)) then return doPlayerSendCancel(cid, "Um ou mais jogadores não estão nas posições corretas.") else check = check + 1 end end if check == #posis and getTileItemById(wall_pos, wall).uid > 0 then doRemoveItem(getTileItemById(wall_pos, wall).uid, 1) addEvent(function() doCreateItem(wall, 1, wall_pos) end, time * 60 * 1000) end return true end
  20. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  21. Fiz por action, se não se importa. local posis = { {x = x, y = y, z = z}, --Posição onde o jogador deve ficar. {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, {x = x, y = y, z = z}, } local wall_pos = {x = x, y = y, z = z} --Coordenadas da posição da parede. local wall = x --ID da parede. local check = 0 function onUse(cid, item, frompos, item2, topos) for a, b in pairs(posis) do if not isPlayer(getThingFromPos(b)) then return doPlayerSendCancel(cid, "Um ou mais jogadores não estão nas posições corretas.") else check = check + 1 end end if check == #posis and getTileItemById(wall_pos, wall).uid > 0 then doRemoveItem(getTileItemById(wall_pos, wall).uid, 1) end return true end
  • Quem Está Navegando   0 membros estão online

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