Ir para conteúdo
  • 0

Kamui me (NTO, 8.54)


Entus

Pergunta

Hey!

Eu fui usar um script feito aqui no xtibia, porém tem um bug que eu não sei o porque de estar acontecendo.

Qual é o bug?

 

Simplesmente, o Obito (player) usa o Kamui me, se teleporta para a dimensão mas não volta. SENDO QUE ESTÁ PROGRAMADO NA SCRIPT PARA VOLTAR EM 3 SEGUNDOS.

 

 

local toPos = {x = 1596, y = 738, z = 7}

local tempo = 3
local cooldown = 40
local function teleport(cid, pos)
if isCreature(cid) then
doSendMagicEffect(pos, 20)
doTeleportThing(cid, pos, false)
end
end
function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 2938) > os.time() then
return doPlayerSendCancel(cid, "Aguarde "..getPlayerStorageValue(cid, 2938) - os.time().." segundos para usar esse jutsu novamente.")
end
local pos = getPlayerPosition(cid)
doTeleportThing(cid, toPos, false)
setPlayerStorageValue(cid, 2938, os.time() + exhaust)
doSendMagicEffect(pos, 20)
addEvent(teleport, tempo*1000, cid, pos)
return true
end

 

No aguardo!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

o problema nesse caso é que quando vc chama o addEvent passando a pos dessa forma ele irá calcular a posição na hora que a função teleport for chamada, ou seja.. ele vai passar no pos ali a posição que vc está após ser teleportado a {x = 1596, y = 738, z = 7}.

O ideal nesses casos é separar 3 storages pra salvar a posição em x, y, z e poder puxar essas posições na hora de chamar a posição a teleport

Link para o comentário
Compartilhar em outros sites

  • 0

era isso que eu tava falando..

local toPos = {x = 1596, y = 738, z = 7}
local tempo = 3
local cooldown = 40
 
function onCastSpell(cid, var)
 
    if getPlayerStorageValue(cid, 2938) > os.time() then
        return doPlayerSendCancel(cid, "Aguarde "..getPlayerStorageValue(cid, 2938) - os.time().." segundos para usar esse jutsu novamente.")
    end
    
    local pos = getPlayerPosition(cid)
	doSendMagicEffect(pos, 20)    
    setPlayerStorageValue(cid, 2938, os.time() + exhaust)
	setPlayerStorageValue(cid, 28101, pos.x) -- salva x
	setPlayerStorageValue(cid, 28102, pos.y) -- salva y
	setPlayerStorageValue(cid, 28103, pos.z) -- salva z
	doTeleportThing(cid, toPos, false) -- teleporta nova pos
    addEvent(function()	
		if isCreature(cid) then
			doSendMagicEffect(pos, 20)
			doTeleportThing(cid, {x = getPlayerStorageValue(cid, 28101), y = getPlayerStorageValue(cid, 28102), z= getPlayerStorageValue(cid, 28103)}, false)
		end	
	end, tempo * 1000)
    return true
end
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...