W0
dúvida

NPC Arena [Erro]

Por W0lfer, 30 de dez. de 2012 em Scripts

script
1
688
W0lferW
30 de dezembro de 2012 às 15:41

[15:39:56.383] [Error - NpcScript Interface]

[15:39:56.383] data/npc/scripts/arena.lua:onCreatureSay

[15:39:56.383] Description:

[15:39:56.383] data/npc/scripts/arena.lua:46: attempt to compare number with boolean

[15:39:56.383] stack traceback:

[15:39:56.383] data/npc/scripts/arena.lua:46: in function <data/npc/scripts/arena.lua:34>

[15:39:56.383] [C]: in function 'selfSay'

[15:39:56.383] data/npc/scripts/arena.lua:37: in function <data/npc/scripts/arena.lua:34>

 

Script:

 

domodlib('arenaFunctions')

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

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

 

local focus = 0

local talk_start = 0

local TS = 0

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end

 

local function BYE()

focus = 0

talk_start = 0

TS = 0

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)) then

selfSay('Hello ' .. getCreatureName(cid) .. ', do you want to make arena?')

focus = cid

talk_start = os.clock()

TS = 1

elseif msgcontains(msg, 'hi') and (focus ~= cid) then

selfSay('Im Bussy')

elseif TS == 1 and msgcontains(msg, 'yes') or msgcontains(msg, 'fight') or msgcontains(msg, 'arena') then

if getPlayerStorageValue(cid, myArenaLevel) < 3 then

local enterArena = myArenaLevelIs(cid)

if getPlayerLevel(cid) >= enterArena.RLV then

if getPlayerMoney(cid) >= enterArena.RC then

setPlayerStorageValue(cid, talkNPC, 1)

doPlayerRemoveMoney(cid, enterArena.RC)

selfSay("Now you can go to test... ".. enterArena.LN .."!")

BYE()

else

selfSay("You don\'t have "..enterArena.RC.." gp! Come back when you will be ready!")

BYE()

end

else

selfSay("You don\'t have "..enterArena.RLV.." level! Come back when you will be ready!")

BYE()

end

else

selfSay(Cancel[6])

BYE()

end

elseif TS == 1 and msgcontains(msg, 'no') then

selfSay("Bye!")

BYE()

elseif msgcontains(msg, 'bye') then

selfSay("Bye!")

BYE()

end

return true

end

 

function onThink()

doNpcSetCreatureFocus(focus)

if (os.clock() - talk_start) > 10 then

if focus > 0 then

selfSay('Good bye then.')

end

focus = 0

end

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())