-
Total de itens
2553 -
Registro em
-
Última visita
-
Dias Ganhos
72
Tudo que zipter98 postou
-
Entenderei isso como dúvida sanada. Movido.
-
Área incorreta, tópico movido. Mais cuidado da próxima vez. PS: Use spoiler assim: [.spoiler]conteúdo[./spoiler], sem os pontos.
-
Á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.
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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. -
Esse código que eu enviei é para colocar no exp2.0.lua.
-
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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. -
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.
-
[Encerrado] [Pedido] Comando !fly
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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 -
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
Área incorreta, tópico movido. Mais cuidado da próxima vez.
-
Como dito acima pelo Incur, área incorreta. Mais cuidado da próxima vez. Tópico movido.
-
[Encerrado]Procurando Scripter !
tópico respondeu ao BackOfTheHell de zipter98 em Formação de Equipes
Á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.- 2 respostas
-
- procurando
- otserv
-
(e 2 mais)
Tags:
-
Base do seu servidor?
-
dúvida Teleportar sem precisar ter falado com Nurse Joy
tópico respondeu ao Pokerangers de zipter98 em Lixeira Pública
Área incorreta, tópico movido. Mais cuidado da próxima vez. -
[Encerrado] [PEDIDO]Magia que teletransporta o pokekmon!
tópico respondeu ao Drk Shadow de zipter98 em Tópicos Sem Resposta
Tópico movido para a seção de dúvidas e pedidos resolvidos. -
[Encerrado] [PEDIDO]Magia que teletransporta o pokekmon!
tópico respondeu ao Drk Shadow de zipter98 em Tópicos Sem Resposta
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) -
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
[Encerrado] [Pedido] Parede Que Abre
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
Tópico movido para a seção de dúvidas e pedidos resolvidos. -
[Encerrado] [Pedido] Parede Que Abre
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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 -
Tópico movido para a seção de dúvidas e pedidos resolvidos.
-
[Encerrado] [Pedido] Parede Que Abre
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
Em segundos ou minutos? -
[Encerrado] [Pedido] Parede Que Abre
tópico respondeu ao FlamesAdmin de zipter98 em Tópicos Sem Resposta
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.