• 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 NPC Halvar

Naaano201

Member
Joined
Jun 5, 2011
Messages
241
Reaction score
8
Location
Barcelona
Code:
[6/11/2012 14:29:34] [Error - NpcScript Interface] 
[6/11/2012 14:29:34] data/npc/scripts/svargrond_arena.lua:onCreatureSay
[6/11/2012 14:29:34] Description: 
[6/11/2012 14:29:34] (LuaInterface::internalGetPlayerInfo) Player not found when requesting player info #3

[6/11/2012 14:29:35] [Error - NpcScript Interface] 
[6/11/2012 14:29:35] data/npc/scripts/svargrond_arena.lua:onCreatureSay
[6/11/2012 14:29:35] Description: 
[6/11/2012 14:29:35] data/npc/scripts/svargrond_arena.lua:81: attempt to compare number with boolean
[6/11/2012 14:29:36] stack traceback:
[6/11/2012 14:29:36] 	data/npc/scripts/svargrond_arena.lua:81: in function <data/npc/scripts/svargrond_arena.lua:55>
[6/11/2012 14:29:36] 	[C]: in function 'selfSay'
[6/11/2012 14:29:36] 	data/npc/scripts/svargrond_arena.lua:63: in function <data/npc/scripts/svargrond_arena.lua:55>

Getting this npc error, with the script from this post:
http://otland.net/f163/mod-perfect-svargrond-arena-system-64968/

Somebody can help me?
 
I already writed the post from where I get

Anyways here is the script:

Lua:
        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) > 60 then

          if focus > 0 then

              selfSay('Good bye then.')

          end

          focus = 0

      end

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

- - - Updated - - -

BUMP
 
If I am correct this is line 81:
Lua:
if getPlayerLevel(cid) >= enterArena.RLV then

So it would be myArenaLevelIs(cid) returning wrong values.
Try testing the values with:
Lua:
for a, b in pairs(enterArena) do
print(tostring(a) .. " -> " .. tostring(b))
end
 
Back
Top