Ir para conteúdo
Close
Ackerzin

Scripting (luaDoTeleportThing) Thing not found

Posts Recomendados

Salve galera, acabei de pegar uma spell do @xWhiteWolf "Kamui on" mas no proprio topico dele, ele ja fala que tem um bugzinho, queria saber se alguem conseguiria me ajudar com esse errozinho, a spells é o seguinte, você usa ela e todos que estão ao seu redor vão para um local do mapa, e depois de alguns segundos todos são teleportados novamente, mas se alguem morrer nesse local, da um erro na distro, o @Vodkart me ajudou ontem mesmo com um erro identico, eu tava revendo os scripts e ele utilizou essas duas linhas que vou colocar logo abaixo, mas eu tentei de tudo que é jeito e continua o erro, kkkkkkkk.

 

 

Linhas que ele utlizou, acho que foram só essas duas.

if not isCreature(cid) then return LUA_ERROR end

~

if not isCreature(target) then return LUA_ERROR end

 

 

Script.

Spoiler

local config = {
pos = {x=42, y=234, z=7}, -- posição que será teleportado
tempo = 15, -- tempo pra voltar
effect1 = 66, -- efeito ao ser teleportado
effect2 = 10, -- efeito ao voltar
storage = 19329, -- storage que fica guardado o cooldown
from = {x=35, y=228, z=7}, --- quina do kamui (pra impedir players de usarem o kamui dentro do kamui)
to = {x=49, y=240, z=7}, --- quina do kamui (pra impedir players de usarem o kamui dentro do kamui)
cooldown = 60, --- tempo entre um uso e outro (após usar a spell vc vai ficar X segundos sem poder usar ela novamente)
msg = "KAMUI OUT!" -- mensagem ao sair do kamui
}


local exceptions = {'trainer', 'aegis', 'god anderson'} --- nome das criaturas que não poderão ser levadas pro kamui (sempre em minúsculo e entre aspas)


function canEffect(pos, pz, proj) -- Night Wolf based on Nord
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
if getTilePzInfo(pos) and not pz then return false end
local n = not proj and 3 or 2
for i = 0, 255 do
pos.stackpos = i
local tile = getTileThingByPos(pos)
if tile.itemid ~= 0 and not isCreature(tile.uid) then
if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
return false
end
end
end
return true
end




function onCastSpell(cid, var)
local pos = getPlayerPosition(cid)


if isInRange(pos, config.from, config.to) then
doPlayerSendCancel(cid, "You cannot use Kamui spell inside the Kamui!")
return false
end


if os.time() - getPlayerStorageValue(cid, config.storage) >= config.cooldown then
doPlayerSetStorageValue(cid, config.storage, os.time())
if isCreature(getCreatureTarget(cid)) then
target = getCreatureTarget(cid)
for i = 1, #exceptions do
if getCreatureName(target):lower() == exceptions[i] then
doPlayerSendCancel(cid, "You can't take ".. getCreatureName(target) .." to Kamui.")
return false
end
end
--------------- PLAYER-----------
addEvent(doTeleportThing, 1000*config.tempo, cid, pos, true)
addEvent(doCreatureSay, 1000*config.tempo, cid, config.msg, 20, false)
addEvent(doSendMagicEffect, 1000*config.tempo, pos, config.effect2)
doSendMagicEffect(pos, config.effect1)
doTeleportThing(cid, config.pos)
-------------------- OPONENTE ----------------
addEvent(doTeleportThing, 1000*config.tempo, target, getThingPos(target), true)
addEvent(doSendMagicEffect, 1000*config.tempo, getThingPos(target), config.effect2)
doSendMagicEffect(getThingPos(target), config.effect1)
doTeleportThing(target, config.pos)
-------------------------------------
if isPlayer(target) and isCreature(cid) then
doPlayerSendTextMessage(target, 27, "You were teleported by ".. getCreatureName(cid) ..".")
end
if isPlayer(cid) and isCreature(target) then
doPlayerSendTextMessage(cid, 27, "You teleported ".. getCreatureName(target) .."!")
end
for i = 1,config.tempo  do
addEvent(function()
if isPlayer(target) then
doPlayerSendTextMessage(target,25,"You'll be back in " .. config.tempo -i +1 .. " second(s)")
end
if isPlayer(cid) then
doPlayerSendTextMessage(cid,25,"You'll be back in " .. config.tempo -i +1 .. " second(s)")
end
end, 1000*i)
end
else
---------- levar quem tá em volta do player ---------------
local teleportPosition = {
{x = pos.x, y = pos.y - 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{x = pos.x - 1, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y + 1, z = pos.z}
}


local mobas = {}
local checker = 0


 for _, tPos in ipairs(teleportPosition) do
doSendMagicEffect(tPos, config.effect2)
local mob = getTopCreature(tPos).uid
    if canEffect (tPos) and mob ~= 0 and (isMonster(mob) or isPlayer(mob)) then
for i = 1, #exceptions do
if getCreatureName(mob):lower() == exceptions[i] then
checker = 1
break
end
end
if checker ~= 1 then
table.insert(mobas, mob) 
end
end
end


if #mobas > 0 then
for _, pid in ipairs(mobas) do
addEvent(doTeleportThing, 1000*config.tempo, pid, getThingPos(pid), true)
addEvent(doSendMagicEffect, 1000*config.tempo, getThingPos(pid), config.effect2)
doSendMagicEffect(getThingPos(pid), config.effect1)
doTeleportThing(pid, config.pos)
if isPlayer(pid) and isCreature(cid) then
doPlayerSendTextMessage(pid, 27, "You were teleported by ".. getCreatureName(cid) ..".")
end
for i = 1,config.tempo  do
addEvent(function()
if isPlayer(pid) then
doPlayerSendTextMessage(pid,25,"You'll be back in " .. config.tempo -i +1 .. " second(s)")
end
end, 1000*i)
end
end
end
----------------------------
addEvent(doTeleportThing, 1000*config.tempo, cid, pos, true)
addEvent(doCreatureSay, 1000*config.tempo, cid, config.msg, 20, false)
addEvent(doSendMagicEffect, 1000*config.tempo, pos, config.effect2)
doSendMagicEffect(pos, config.effect1)
doTeleportThing(cid, config.pos)
if isPlayer(cid) then
doPlayerSendTextMessage(cid, 27, "You teleported yourself.")
end
for i = 1,config.tempo do
addEvent(function()
if isPlayer(cid) then
doPlayerSendTextMessage(cid,25,"You'll be back in " .. config.tempo -i +1 .. " second(s)")
end
end, 1000*i)
end
end
else
doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, config.storage))).." seconds.")
end
return true
end

 

 

Erro.

[21:26:22.847] [Error - Spell Interface]
[21:26:22.852] In a timer event called from:
[21:26:22.855] data/spells/scripts/teste4.lua:onCastSpell
[21:26:22.858] Description:
[21:26:22.861] (luaDoTeleportThing) Thing not found

 


Editado por Zzyzx (veja o histórico de edições)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Criar Novo...