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

Addon NPC Not Working (Help Please!)

Nicko

New Member
Joined
Aug 6, 2007
Messages
7
Reaction score
0
I am using The Forgotten Server for client 8,5

And when i say "First addon" he respons as he should.. Do you want to buy it for 5k

I say yes and he doesnt say anything, he doesnt take money, he doesnt give the addons..

If anyone knows what the problem could be I would love if you would help :D

Oh here is the npc's script!?

local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end


function onCreatureTurn(creature)

end


function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end


function onCreatureSay(cid, type, msg)
msg = string.lower(msg)

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. creatureGetName(cid) .. '! I sell the first addon for 5k and the second addon for 10k.')
focus = cid
talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')

elseif focus == cid then
talk_start = os.clock()

if msgcontains(msg, 'first addon') then
selfSay('Do you want to buy the first addon for 5k?')
talk_state = 1

elseif msgcontains(msg, 'second addon') then
selfSay('Do you want to buy the second addon for 10k?')
talk_state = 2

elseif talk_state == 1 then
if msgcontains(msg, 'yes') then
if pay(cid,5000) then
addon(cid,1)
else
selfSay('Sorry, you don\'t have enough money.')
end
end
talk_state = 0

elseif talk_state == 2 then
if msgcontains(msg, 'yes') then
if pay(cid,10000) then
addon(cid,2)
else
selfSay('Sorry, you don\'t have enough money.')
end
end
talk_state = 0

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end


function onCreatureChangeOutfit(creature)

end


function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 30 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end

Thanks in advance!

Nicko
 
VERY outdated.
Anyways,
Lua:
local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)
end

function onCreatureAppear(creature)
end

function onCreatureDisappear(cid, pos)
	if focus == cid then
		selfSay('Good bye then.')
		focus = 0
	talk_start = 0
	end
end

function onCreatureTurn(creature)
end

function msgcontains(txt, str)
	return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end

function onCreatureSay(cid, type, msg)
msg = string.lower(msg)

	if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
		selfSay('Hello ' .. getCreatureName(cid) .. '! I sell the first addon for 5k and the second addon for 10k.')
		focus = cid
		talk_start = os.clock()

	elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
		selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')

	elseif focus == cid then
		talk_start = os.clock()

		if msgcontains(msg, 'first addon') then
			selfSay('Do you want to buy the first addon for 5k?')
			talk_state = 1

		elseif msgcontains(msg, 'second addon') then
		selfSay('Do you want to buy the second addon for 10k?')
		talk_state = 2

		elseif talk_state == 1 then
			if msgcontains(msg, 'yes') then
				if doPlayerRemoveMoney(cid, 5000) == TRUE then
					doPlayerAddOutfit(cid, 128, 1)
				else
					selfSay('Sorry, you don\'t have enough money.')
				end
			end
			talk_state = 0

		elseif talk_state == 2 then
			if msgcontains(msg, 'yes') then
				if doPlayerRemoveMoney(cid, 10000) == TRUE then
					doPlayerAddOutfit(cid, 128, 2)
				else
					selfSay('Sorry, you don\'t have enough money.')
				end
			end
			talk_state = 0

		elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
			selfSay('Good bye, ' .. getCreatureName(cid) .. '!')
			focus = 0
			talk_start = 0
		end
	end
end

function onCreatureChangeOutfit(creature)
end

function onThink()
doNpcSetCreatureFocus(focus)
	if (os.clock() - talk_start) > 30 then
		if focus > 0 then
			selfSay('Next Please...')
		end
		focus = 0
	end
	if focus ~= 0 then
		if getDistanceToCreature(focus) > 5 then
			selfSay('Good bye then.')
			focus = 0
		end
	end
end
Please use
Code:
[/ CODE] tags next time.
 
Lua:
local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)
end

function onCreatureAppear(creature)
end

function onCreatureDisappear(cid, pos)
        if focus == cid then
                selfSay('Good bye then.')
                focus = 0
        talk_start = 0
        end
end

function onCreatureTurn(creature)
end

function msgcontains(txt, str)
        return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end

function onCreatureSay(cid, type, msg)
msg = string.lower(msg)

        if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
                selfSay('Hello ' .. getCreatureName(cid) .. '! I sell the first addon for 5k and the second addon for 10k.')
                focus = cid
                talk_start = os.clock()

        elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
                selfSay('Sorry, ' .. getCreatureName(cid) .. '! I talk to you in a minute.')

        elseif focus == cid then
                talk_start = os.clock()

                if msgcontains(msg, 'first addon') then
                        selfSay('Do you want to buy the first addon for 5k?')
                        talk_state = 1

                elseif msgcontains(msg, 'second addon') then
                selfSay('Do you want to buy the second addon for 10k?')
                talk_state = 2

				end
				
                if msgcontains(msg, 'yes') and talk_state == 1 then 
					if doPlayerRemoveMoney(cid, 5000) == TRUE then
						doPlayerAddOutfit(cid, 128, 1)
					else
						selfSay('Sorry, you don\'t have enough money.')
					end
                talk_state = 0

                elseif msgcontains(msg, 'yes') and talk_state == 2 then
					if doPlayerRemoveMoney(cid, 10000) == TRUE then
						doPlayerAddOutfit(cid, 128, 2)
                    else
                        selfSay('Sorry, you don\'t have enough money.')
                    end
                talk_state = 0

                elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
                        selfSay('Good bye, ' .. getCreatureName(cid) .. '!')
                        focus = 0
                        talk_start = 0
                end
        end
end

function onCreatureChangeOutfit(creature)
end

function onThink()
doNpcSetCreatureFocus(focus)
        if (os.clock() - talk_start) > 30 then
                if focus > 0 then
                        selfSay('Next Please...')
                end
                focus = 0
        end
        if focus ~= 0 then
                if getDistanceToCreature(focus) > 5 then
                        selfSay('Good bye then.')
                        focus = 0

I hope all bugs are removed now;/ Also it isn't tabbed corectly because of the luacodetag;(. Tell me if it works or what error you get:).
 
thanks for tryng to help but it doesnt work either :S says something about unexpected "if" when it thought it was the end
 
Back
Top Bottom