Kavalor
(Real)Creator of ChaosOT
Ok i'm having some trouble with the getcount function in tfs.
when I apply the entire system like so, to global.lua
I get no consol errors however npc's who use the getcount feature like this one.
Will not read the count correctly. I can say 12 shovels and they charge me for 12. however they only give one.
If I remove the code from global.lua (the dofile shown above)
then the npc halts at getcount and has an issue. If I add the getcount manually to the global as a single function then the npc halts at itemstackable.
Anyone know what the hell is going on?
when I apply the entire system like so, to global.lua
Code:
dofile('data/npc/scripts/lib/npc.lua')
dofile('data/npc/scripts/lib/npcsystem/npcsystem.lua')
dofile('data/npc/scripts/lib/npcsystem/keywordhandler.lua')
dofile('data/npc/scripts/lib/npcsystem/queue.lua')
dofile('data/npc/scripts/lib/npcsystem/npchandler.lua')
dofile('data/npc/scripts/lib/npcsystem/modules.lua')
I get no consol errors however npc's who use the getcount feature like this one.
Code:
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 ropes (50gp), shovels (20gp), backpacks (10gp), manafluids (100gp), lifefluids (60gp), fishing rods (100gp), amulet of loss (10k), and torches (2gp). I buy vials (10gp).')
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, 'shovel') then
buy(cid,2554,getCount(msg),20)
elseif msgcontains(msg, 'backpack') then
buy(cid,1988,getCount(msg),10)
elseif msgcontains(msg, 'manafluid') or msgcontains(msg, 'mana fluid') then
buyFluidContainer(cid,2006,getCount(msg),100,7)
elseif msgcontains(msg, 'lifefluid') or msgcontains(msg, 'life fluid') then
buyFluidContainer(cid,2006,getCount(msg),60,10)
elseif msgcontains(msg, 'fishing rod') then
buy(cid,2580,getCount(msg),100)
elseif msgcontains(msg, 'torch') then
buy(cid,2050,getCount(msg),2)
elseif msgcontains(msg, 'aol') then
buy(cid,2173,getCount(msg),10000)
elseif msgcontains(msg, 'vial') or msgcontains(msg, 'flask') then
sell(cid,2006,getCount(msg),10)
elseif msgcontains(msg, 'rope') or msgcontains(msg, 'rop') then
sell(cid,2120,getCount(msg),50)
elseif msgcontains(msg, 'pick') then
buy(cid,2173,getCount(msg),100)
elseif msgcontains(msg, 'hatchet') then
buy(cid,2173,getCount(msg),100)
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()
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
Will not read the count correctly. I can say 12 shovels and they charge me for 12. however they only give one.
If I remove the code from global.lua (the dofile shown above)
then the npc halts at getcount and has an issue. If I add the getcount manually to the global as a single function then the npc halts at itemstackable.
Anyone know what the hell is going on?