• 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!

Npc Paradox Quest problem in tfs 0.3.6

Nacke

New Member
Joined
Feb 13, 2008
Messages
79
Reaction score
0
not work.what is the problem.



A Prisioner

PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)			npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)		npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)	npcHandler:onCreatureSay(cid, type, msg)	end
function onThink()						npcHandler:onThink()						end

function creatureSayCallback(cid, type, msg)
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	if(npcHandler.focus ~= cid) then
		return false
	end
		
		local key = "PD-D-KS-P-PD"
		local queststate1 = getPlayerStorageValue(cid,6667)

		if msgcontains(msg, 'math') and queststate1 == 1 then
        selfSay('My surreal numbers are based on astonishing facts. Are you interested in learning the secret of mathemagics?')
        talk_state = 1
		elseif msgcontains(msg, 'yes') and talk_state == 1 then
            selfSay('But first tell me your favourite colour please!')
                talk_state = 2
		elseif msgcontains(msg, 'green') and talk_state == 2 then
            selfSay('Very interesting. So are you ready to proceed in you lesson in mathemagics?')
				doPlayerRemoveMoney(cid,1000)
					talk_state = 3
		elseif msgcontains(msg, 'yes') and talk_state == 3 then
            selfSay('So know that everthing is based on the simple fact that 1 + 1 = 2!')
				setPlayerStorageValue(cid,6668,1)
                talk_state = 4
		elseif msgcontains(msg, 'bye') and (talk_state >= 1 and talk_state <= 4) then
			selfSay('Next time we should talk about my surreal numbers.')

			talk_state = 0
		elseif msgcontains(msg, 'key') then
		selfSay('Do you want a key to the mad mage room?')
		talk_state = 5
		elseif msgcontains(msg, 'yes') and talk_state == 5 then
		selfSay('Here you are a special key.')
		key = doPlayerAddItem(cid, 2088, 1)
		doSetItemActionId(key,3666)
		talk_state = 0
		elseif msgcontains(msg, 'bye') and (talk_state >= 1 and talk_state <= 6) then
		selfSay('Bye.')
		end
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Lubo
PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)			npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)		npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)	npcHandler:onCreatureSay(cid, type, msg)	end
function onThink()						npcHandler:onThink()						end

function creatureSayCallback(cid, type, msg)
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	if(npcHandler.focus ~= cid) then
		return false
	end

		local queststate = getPlayerStorageValue(cid,6666)
		
		if msgcontains(msg, 'crunors cottage') and queststate == 1 then
        selfSay('Ah yes, I remember my grandfather talking about that name. This house used to be an inn a long time ago. My family bought it from some of these flower')
        talk_state = 1
		elseif msgcontains(msg, 'flower guys') and talk_state == 1 then
            selfSay('Oh, I mean druids of course. They sold the cottage to my family after some of them died in an accident or something like that.')
                talk_state = 2
		elseif msgcontains(msg, 'accident') and talk_state == 2 then
            selfSay('As far as I can remember the story, a pet escaped its stable behind the inn. It got somehow involved with powerfull magic at a ritual and was transformed in some way.')
                talk_state = 3
		elseif msgcontains(msg, 'stable') and talk_state == 3 then
            selfSay('My grandpa told me, in the old days there were some behind this cottage. Nothing big though, just small ones, for chicken or rabbits.')
                setPlayerStorageValue(cid,6667,1)
				talk_state = 4
		elseif msgcontains(msg, 'bye') and (talk_state >= 1 and talk_state <= 4) then
			selfSay('Farewell.')

			talk_state = 0
		end
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Oldrak

This is the error of the first
Oldrak.lua:17: '>' expected symbol near 'then'

PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)			npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)		npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)	npcHandler:onCreatureSay(cid, type, msg)	end
function onThink()						npcHandler:onThink()						end

function creatureSayCallback(cid, type, msg)
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.", cid)

	if(npcHandler.focus ~= cid) then
		return false
	end


		if (msgcontains(msg, 'hugo') then
        npcHandler:say('Ah, the bane of the Plains of Havoc, the hidden beast, the unbeatable foe. I live here for years and I am sure it\'s only a myth.", cid)

        talk_state = 1
		elseif msgcontains(msg, 'myth') and talk_state == 1 then
            npcHandler:say('There are many tales about the fearsome Hugo. It\'s said it is an abomination, accidentally created by Yenny the Gentle. It\'s halve demon, halve something else and people say it\'s still alive after dozens of years.", cid)

                talk_state = 2
		elseif msgcontains(msg, 'yenny the gentle') and talk_state == 2 then
            npcHandler:say('Yenny, known as the Gentle, was one of most powerfull magicwielders in ancient times and known throughout the world for her mercy and kindness.", cid)

					setPlayerStorageValue(cid,6664,1)
					talk_state = 3
		elseif msgcontains(msg, 'no') and (talk_state >= 1 and talk_state <= 3) then
			npcHandler:say('Good Bye. |PLAYERNAME|!')

			talk_state = 0
		end
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())


Pradeia

PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)			npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)		npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)	npcHandler:onCreatureSay(cid, type, msg)	end
function onThink()						npcHandler:onThink()						end

function creatureSayCallback(cid, type, msg)
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	if(npcHandler.focus ~= cid) then
		return false
	end

		local queststate = getPlayerStorageValue(cid,6665)
		
		if msgcontains(msg, 'crunors caress') and queststate == 1 then
        selfSay('Don\'t ask. They were only an unimportant footnote of history.')
        talk_state = 1
		elseif msgcontains(msg, 'footnote') and talk_state == 1 then
            selfSay('They thought they have to bring Crunor to the people, if people did not find to Crunor of their own. To achieve that they founded the inn Crunor\'s Cottage, south of Mt. Sternum.')
				setPlayerStorageValue(cid,6666,1)
                talk_state = 2
		elseif msgcontains(msg, 'bye') and (talk_state >= 1 and talk_state <= 2) then
			selfSay('Farewell.')

			talk_state = 0
		end
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())


Riddler


PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

-- OTServ event handling functions start
function onCreatureAppear(cid)                npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid)             npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg)     npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                         npcHandler:onThink() end
-- OTServ event handling functions end

function creatureSayCallback(cid, type, msg)
    if(npcHandler.focus ~= cid) then
        return false
    end
    

    -- start config
	local queststate1 = getPlayerStorageValue(cid,6667)
	local queststate2 = getPlayerStorageValue(cid,6668)
    local response01 = "Death awaits those who fail the test of the three seals! Do you really want me to test you?"
    local response02 = "FOOL! Now you're doomed! But well ... So be it! Let's start out with the Seal of Knowledge and the first question: What name did the necromant king choose for himself?"
    local response03 = "HOHO! You have learned your lesson well. Question number two then: Who or what is the feared Hugo?"
    local response04 = "HOHO! Right again. All right. The final question of the first seal: Who was the first warrior to follow the path of the Mooh'Tah?"
    local response05 = "HOHO! Lucky you. You have passed the first seal! So ... would you like to continue with the Seal of the Mind?"
    local response06 = "As you wish, foolish one! Here is my first question: Its lighter then a feather but no living creature can hold it for ten minutes?"
    local response07 = "That was an easy one. Let's try the second: If you name it, you break it."
    local response08 = "Hm. I bet you think you're smart. All right. How about this: What does everybody want to become but nobody to be?"
    local response09 = "ARGH! You did it again! Well all right. Do you wish to break the Seal of Madness?"
    local response10 = "GOOD! So I will get you at last. Answer this: What is my favourite colour?"
    local response11 = "UHM UH OH ... How could you guess that? Are you mad??? All right. Question number two: What is the opposite?"
    local response12 = "NO! NO! NO! That can't be true. You're not only mad, you are a complete idiot! Ah well. Here is the last question: What is 1 plus 1?"
    local response13 = "WRONG!"
    local response14 = "RIGHT!"

    local wrong = "NO! HAHA! YOU FAILED!"
    local keywordAbadon = "no"
    local abadon = "Better for you..."

    -- all keywords MUST be lower-case
    local keyword01 = "test"
    local keyword02 = "yes"
    local keyword03 = "goshnar"
    local keyword04 = "demonbunny"
    local keyword05 = "tha'kull"
    local keyword06 = "yes"
    local keyword07 = "breath"
    local keyword08 = "silence"
    local keyword09 = "old"
    local keyword10 = "yes"
    local keyword11 = "green"
    local keyword12 = "none"
    local keyword13 = "1132asas"
    local keyword14 = "2"
    
    local posPass = {x=32478, y=31905, z=1, stackpos=0}
    local posFail = {x=32725, y=31589, z=12, stackpos=0}

    -- end config
    if msgcontains(msg, keyword01) and queststate2 == 1 then
        selfSay(response01)
        talkState = 13
    elseif msgcontains(msg, keyword02) and talkState == 13 then
        selfSay(response02)
        talkState = 14
    elseif msgcontains(msg, keywordAbadon) and talkState == 13 then
        selfSay(abadon)
        talkState = 0
    -- let's start the right answers
    elseif msgcontains(msg, keyword03) and talkState == 14 then
        selfSay(response03)
        talkState = 15
    elseif msgcontains(msg, keyword04) and talkState == 15 then
        selfSay(response04)
        talkState = 16
    elseif msgcontains(msg, keyword05) and talkState == 16 then
        selfSay(response05)
        talkState = 17
    elseif msgcontains(msg, keyword06) and talkState == 17 then
        selfSay(response06)
        talkState = 18
    elseif msgcontains(msg, keyword07) and talkState == 18 then
        selfSay(response07)
        talkState = 19
    elseif msgcontains(msg, keyword08) and talkState == 19 then
        selfSay(response08)
        talkState = 20
    elseif msgcontains(msg, keyword09) and talkState == 20 then
        selfSay(response09)
        talkState = 21
    elseif msgcontains(msg, keyword10) and talkState == 21 then
        selfSay(response10)
        talkState = 22
    elseif msgcontains(msg, keyword11) and talkState == 22 then
        selfSay(response11)
        talkState = 23
    elseif msgcontains(msg, keyword12) and talkState == 23 then
        selfSay(response12)
        talkState = 24
    elseif msgcontains(msg, keyword14) and talkState == 24 then
		doTeleportThing(cid,posPass)
        selfSay(response14)
    -- let's start the wrong answers annd the "death" teleport :D
    elseif msgcontains(msg, keyword03) == nil and talkState == 13 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword04) == nil and talkState == 14 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword05) == nil and talkState == 15 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword06) == nil and talkState == 16 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword07) == nil and talkState == 17 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword08) == nil and talkState == 18 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword09) == nil and talkState == 19 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword10) == nil and talkState == 20 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword11) == nil and talkState == 21 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword12) == nil and talkState == 22 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword13) == nil and talkState == 23 then
        selfSay(wrong)
        talkState = 0
	--1st--
    elseif msgcontains(msg, keyword01) and queststate1 == 1 then
        selfSay(response01)
        talkState = 1
    elseif msgcontains(msg, keyword02) and talkState == 1 then
        selfSay(response02)
        talkState = 2
    elseif msgcontains(msg, keywordAbadon) and talkState == 1 then
        selfSay(abadon)
        talkState = 0
    -- let's start the right answers
    elseif msgcontains(msg, keyword03) and talkState == 2 then
        selfSay(response03)
        talkState = 3
    elseif msgcontains(msg, keyword04) and talkState == 3 then
        selfSay(response04)
        talkState = 4
    elseif msgcontains(msg, keyword05) and talkState == 4 then
        selfSay(response05)
        talkState = 5
    elseif msgcontains(msg, keyword06) and talkState == 5 then
        selfSay(response06)
        talkState = 6
    elseif msgcontains(msg, keyword07) and talkState == 6 then
        selfSay(response07)
        talkState = 7
    elseif msgcontains(msg, keyword08) and talkState == 7 then
        selfSay(response08)
        talkState = 8
    elseif msgcontains(msg, keyword09) and talkState == 8 then
        selfSay(response09)
        talkState = 9
    elseif msgcontains(msg, keyword10) and talkState == 9 then
        selfSay(response10)
        talkState = 10
    elseif msgcontains(msg, keyword11) and talkState == 10 then
        selfSay(response11)
        talkState = 11
    elseif msgcontains(msg, keyword12) and talkState == 11 then
        selfSay(response12)
        talkState = 12
    elseif msgcontains(msg, keyword13) == nil and talkState == 12 then
        selfSay(response13)
        doTeleportThing(cid,posFail)
    -- let's start the wrong answers annd the "death" teleport :D
    elseif msgcontains(msg, keyword03) == nil and talkState == 2 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword04) == nil and talkState == 3 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)

    elseif msgcontains(msg, keyword05) == nil and talkState == 4 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword06) == nil and talkState == 5 then
        selfSay(wrong)
        talkState = 0


        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword07) == nil and talkState == 6 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword08) == nil and talkState == 7 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword09) == nil and talkState == 8 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword10) == nil and talkState == 9 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword11) == nil and talkState == 10 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword12) == nil and talkState == 11 then
        selfSay(wrong)
        talkState = 0
        doTeleportThing(cid,posFail)
    elseif msgcontains(msg, keyword13) == nil and talkState == 12 then
        selfSay(wrong)
        talkState = 0
		
		
	


    end
    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Zoltan

PHP:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

function onCreatureAppear(cid)			npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)		npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)	npcHandler:onCreatureSay(cid, type, msg)	end
function onThink()						npcHandler:onThink()						end

function creatureSayCallback(cid, type, msg)
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	if(npcHandler.focus ~= cid) then
		return false
	end

		local queststate = getPlayerStorageValue(cid,6664)
		
		if msgcontains(msg, 'yenny the gentle') and queststate == 1 then
        selfSay('Ah, Yenny the Gentle was one of the founders of the druid order called Crunors Caress, that has been originated in her hometown Carlin.')
        talk_state = 1
		elseif msgcontains(msg, 'crunors caress') and talk_state == 1 then
            selfSay('A quite undruidic order of druids they were, as far as we know. I have no more enlightening knowledge about them though.')
				setPlayerStorageValue(cid,6665,1)
                talk_state = 2
		elseif msgcontains(msg, 'no') and (talk_state >= 1 and talk_state <= 2) then
			selfSay('Good Bye. |PLAYERNAME|!')

			talk_state = 0
		end
	-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Last edited:
Back
Top Bottom