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

Solved Help with svargrond arena problem..

Believer

Aashora.net
Joined
Aug 26, 2010
Messages
423
Reaction score
7
Location
Far away from home.
Players can't log in when they have done svargrond arena.. please help and you will gain rep!

Error:
[21:40:48.283] [Error - CreatureScript Interface]
[21:40:48.283] data/creaturescripts/scripts/login.lua:eek:nLogin
[21:40:48.283] Description:
[21:40:48.283] data/creaturescripts/scripts/login.lua:68: attempt to compare string with number
[21:40:48.283] stack traceback:
[21:40:48.283] data/creaturescripts/scripts/login.lua:68: in function <data/creaturescripts/scripts/login.lua:6>


login.lua:
Lua:
 local config = {
	loginMessage = getConfigValue('loginMessage'),
	useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
}

function onLogin(cid)
	local loss = getConfigValue('deathLostPercent')
	if(loss ~= nil) then
		doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
	end

	local accountManager = getPlayerAccountManager(cid)
	if(accountManager == MANAGER_NONE) then
		local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
		if(lastLogin > 0) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
			str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
		else
			str = str .. " Please choose your outfit."
			doPlayerSendOutfitWindow(cid)
		end

		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
	elseif(accountManager == MANAGER_NAMELOCK) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
	elseif(accountManager == MANAGER_ACCOUNT) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
	end

	if(not isPlayerGhost(cid)) then
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
	end

	registerCreatureEvent(cid, "Mail")
	registerCreatureEvent(cid, "GuildMotd")

	registerCreatureEvent(cid, "Idle")
	if(config.useFragHandler) then
		registerCreatureEvent(cid, "SkullCheck")
	end
	registerCreatureEvent(cid, "inquisitionPortals")
	registerCreatureEvent(cid, "KillingInTheNameOf")
	registerCreatureEvent(cid, "ReportBug")
	registerCreatureEvent(cid, "AdvanceSave")
	registerCreatureEvent(cid, "reward")
	registerCreatureEvent(cid, "missions")
	registerCreatureEvent(cid, "pointsforlvl")
	registerCreatureEvent(cid, "deadlyArena")
	registerCreatureEvent(cid, "deadlyArena1")
	registerCreatureEvent(cid, "deadlyArena2")
	registerCreatureEvent(cid, "deadlyArena3")
	registerCreatureEvent(cid, "deadlyArena4")
	registerCreatureEvent(cid, "deadlyArena5")
	registerCreatureEvent(cid, "deadlyArena6")
	registerCreatureEvent(cid, "deadlyArena7")
	registerCreatureEvent(cid, "deadlyArena8")
	registerCreatureEvent(cid, "PythiusTheRotten")
	registerCreatureEvent(cid, "PlayerAdvance")
	registerCreatureEvent(cid, "KilledMonstersCounter")
	registerCreatureEvent(cid, "demonOakLogout")
	registerCreatureEvent(cid, "demonOakDeath")
	registerCreatureEvent(cid, "DonationTrade")
	registerCreatureEvent(cid, "loss")
	registerCreatureEvent(cid, "ArenaKill") 
    -- if he did not make full arena 1 he must start from zero 
    if getPlayerStorageValue(cid, 42309) < 1 then 
        for i = 42300, 42309 do 
            setPlayerStorageValue(cid, i, 0) 
        end 
    end 
    -- if he did not make full arena 2 he must start from zero 
    if getPlayerStorageValue(cid, 42319) < 1 then 
        for i = 42310, 42319 do 
            setPlayerStorageValue(cid, i, 0) 
        end 
    end 
    -- if he did not make full arena 3 he must start from zero 
    if getPlayerStorageValue(cid, 42329) < 1 then 
        for i = 42320, 42329 do 
            setPlayerStorageValue(cid, i, 0) 
        end 
    end 
    if getPlayerStorageValue(cid, 42355) == -1 then 
        setPlayerStorageValue(cid, 42355, 0) -- did not arena level 
    end 
    setPlayerStorageValue(cid, 42350, 0) -- time to kick 0 
    setPlayerStorageValue(cid, 42352, 0) -- is not in arena  
	return true
end

What's the problem?:/

Greetings!
 
Last edited:
The script is not even 68 lines long.
Also, tags have to be
Lua:
[[B]/[/B]lua][/B]
 
The only thing I can think of is the value of deathLostPercent is abnormal (not a number).
Everything else looks fine, you should post the whole thing so we know exactly where line 68 is.
 
Replace:
Lua:
if getPlayerStorageValue(cid, 42309) < 1 then
with:
Lua:
if tonumber(getPlayerStorageValue(cid, 42309)) and tonumber(getPlayerStorageValue(cid, 42309)) < 1 then
 
I don't know what the other storages are set to, but to be sure that it works you can add it on the other lines too.
 
Back
Top