EN
bug

Kamui me (NTO, 8.54)

Por Entus, 08 de out. de 2015 em Scripts

nto
8.54
otserv
7
2.1k
EntusE
08 de outubro de 2015 às 21:59

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!

Night WolfN
08 de outubro de 2015 às 22:08

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

Zeero CalZ
09 de outubro de 2015 às 11:59

Conseguiu concertar ? Se sim pode me passar o script ?

EntusE
09 de outubro de 2015 às 13:53

Conseguiu concertar ? Se sim pode me passar o script ?

 

Ainda não consegui consertar.

 

@UP

 

Aguardo alguma script funcional =]

Night WolfN
09 de outubro de 2015 às 23:37

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
2 semanas depois...
Zeero CalZ
23 de outubro de 2015 às 20:11

Essa ai que você postou precisa de mudar outra coisa além das cordenadas ?

Night WolfN
24 de outubro de 2015 às 00:21

sim, o tempo e o cooldown são opcionais