• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua hey guys can u help me with error teleport thing

FinalX

New Member
Joined
Nov 27, 2012
Messages
36
Reaction score
2
guys please help me
this error is get:

Code:
[08/12/2012 00:33:11] [Error - Npc interface] 
[08/12/2012 00:33:11] data/npc/scripts/Agatha.lua:onThink
[08/12/2012 00:33:11] Description: 
[08/12/2012 00:33:11] (luaDoTeleportThing) Thing not found

please help me with it
im using tfs version: 1.0, patch: 1, build: 3429, timestamp: 1261647210.

please help me with it i use the function on rule 58
doTeleportThing(cid, win)
and on rule 195
doTeleportThing(cid, lose)

Code:
local focus = 0
local max_distance = 8
local talk_start = 0
local conv = 0
local fighting = false
local challenger = 0
local afk_limit_time = 30	-- seconds
local afk_time = 0		-- don't change
local battle_turn = 1		-- don't change
local challenger_turn = 0	-- don't change


local lose = {x=1050, y=1050, z=6}
local win = {x=1050, y=1050, z=6}

local pokemons = {
{name = "Geodude", level = 56, extralevel = 12, sex = SEX_MALE, nick = "", ball = "normal"},
{name = "Rhyhorn", level = 54, extralevel = 17, sex = SEX_MALE, nick = "", ball = "normal"},
{name = "Graveler", level = 62, extralevel = 19, sex = SEX_MALE, nick = "", ball = "normal"},
{name = "Onix", level = 80, extralevel = 12, sex = SEX_MALE, nick = "", ball = "normal"},
{name = "Golem", level = 86, extralevel = 18, sex = SEX_MALE, nick = "Golemniso", ball = "normal"},
}

function onThingMove(creature, thing, oldpos, oldstackpos)

end

local function doSummonGymPokemon(npc)
	local this = npc
	if not isCreature(this) then return true end
	if #getCreatureSummons(this) >= 1 or focus == 0 then return true end
	local it = pokemons[battle_turn]
	doSummonMonster(this, it.name)
	local summon = getCreatureSummons(this)[1]
	local balleffect = pokeballs["normal"].effect
		if it.ball and pokeballs[it.ball] then
			balleffect = pokeballs[it.ball].effect
		end
	doSendMagicEffect(getThingPos(summon), balleffect)
	setPlayerStorageValue(summon, 10000, balleffect)
	setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name))
	setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name)
	doSetMonsterGym(summon, focus)
	local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name
	setWildPokemonLevel(summon, it.level, getPokemonStatus(it.name, (it.extralevel + it.level)), name, 1.5)
	doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1)
	fighting = true
	battle_turn = battle_turn + 1
end

function onThingMove(creature, thing, oldpos, oldstackpos)

end

local function doWinDuel(cid, npc)
	if not isCreature(cid) then return true end
	doCreatureSay(npc, "You won the duel! Congratulations, take this trophy as a prize.", 1)
	doPlayerAddItem(cid, 7377, 30)
	doTeleportThing(cid, win)
end

function onCreatureSay(cid, type, msg)

	local msg = string.lower(msg)

	if focus == cid then
		talk_start = os.clock()
	end

	if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then
		focus = cid
		talk_start = os.clock()
		conv = 1
		selfSay("Hello "..getCreatureName(cid)..", my name is Brock and I'm Pewter's Gym Leader. How may I help you?")
	return true
	end

	if isDuelMsg(msg) and conv == 1 and focus == cid then

	--if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then
	--selfSay("You have already won my Boulder Badge, maybe some other day we can fight.")
	--focus = 0
	--return true
	--end

		if not hasPokemon(cid) then
			selfSay("To battle agains't a gym leader you need pokemons.")
		return true
		end

		selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?")
		conv = 2

	return true
	end

	if isConfirmMsg(msg) and conv == 2 and focus == cid then

		challenger = focus
		setPlayerStorageValue(cid, 990, 1)
		selfSay("Yea, let's fight!")
		talk_start = os.clock()
		addEvent(doSummonGymPokemon, 850, getThis())
		conv = 3

	return true
	end

	if isNegMsg(msg) and conv == 2 and focus == cid then

		focus = 0
		selfSay("It is better for you to refuse a battle against me!")

	return true
	end

	if msgcontains(msg, 'bye') and focus == cid then
		selfSay('Bye and do your best trainer!')
		setPlayerStorageValue(focus, 990, -1)
		focus = 0
	return true
	end
end

local afk_warning = false
local change = false

function onThink()

	if focus == 0 then
		selfTurn(2)
		fighting = false
		challenger = 0
		challenger_turn = 0
		battle_turn = 1
		afk_time = 0
		afk_warning = false

		if #getCreatureSummons(getThis()) >= 1 then
			setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0)
			doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1]))
		end

	return true
	else

	if not isCreature(focus) then
		focus = 0
	return true
	end

	if fighting then

		talk_start = os.clock()

		if not isCreature(getCreatureTarget(getThis())) then
			if #getCreatureSummons(challenger) >= 1 then
				selfAttackCreature(getCreatureSummons(challenger)[1])
				change = true
				afk_time = 0
			else
				afk_time = afk_time + 0.5
				if change then
					change = false
					challenger_turn = challenger_turn + 1
				end
			end
		end

		if afk_time > afk_limit_time then
			setPlayerStorageValue(focus, 990, -1)
			focus = 0
			selfSay("I have waited too long, come back when you are ready!")
		return true
		end

		if not afk_warning and afk_time > afk_limit_time / 2 then
			selfSay("Where's your pokemon? Let's fight!")
			afk_warning = true
		end


		if #getCreatureSummons(getThis()) == 0 then
			if battle_turn > #pokemons then
				addEvent(doWinDuel, 1000, focus, getThis())
				setPlayerStorageValue(focus, 990, -1)
				focus = 0
			return true
			end
			addEvent(doSummonGymPokemon, 1000, getThis())
		end

		if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then
			selfSay("You lost our duel! Maybe some other time you'll defeat me.")			
			doTeleportThing(cid, lose)
			focus = 0
		return true
		end

	end

		local npcpos = getThingPos(getThis())
		local focpos = getThingPos(focus)

		if npcpos.z ~= focpos.z then
			setPlayerStorageValue(focus, 990, -1)
			focus = 0
			selfSay("Bye then.")
		return true
		end

		if (os.clock() - talk_start) > 30 then
			selfSay("Good bye and keep training!")
			setPlayerStorageValue(focus, 990, -1)
			focus = 0
		end

		if getDistanceToCreature(focus) > max_distance then
			setPlayerStorageValue(focus, 990, -1)
			focus = 0
		return true
		end

		local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))	
		selfTurn(dir)
	end
return true
end

Code:
<?xml version="1.0" encoding="UTF-8"?>

<npc name="Agatha" script="Agatha.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1">

	<health now="150" max="150"/>

	<look type="529" head="91" body="114" legs="86" feet="0"/>

	<parameters>


	</parameters>

</npc>
 
Last edited:
Back
Top