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

Reward item for lvl problem

Exactly

New Member
Joined
Jul 14, 2014
Messages
117
Reaction score
4
Hello i have problem on script:

Lua:
--//Credits: Printer//--
local config = {
    savePlayer = true, --Save Player When The Gain Level!
    healPlayerOnLevel = true, --Heal Players Hp And Mana On Level!
        effectOnLevel = true, --Fireworks Effect On Level!
        getServerVersionUnder860 = true, --If the server is 860 and lower than that, leave it true! If its over 860, use false!
        levelText = "LEVEL UP!", --Gain Level Text!
    Sorcerer = {
        Vocsid = {1,5,9}, --Vocs id for Wizards  
        [20] = {item = 2160, count = 5, storage = 3001}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [15] = {item = 2188, count = 1, storage = 3002}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [21] = {item = 8921, count = 1, storage = 3003}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [30] = {item = 2187, count = 1, storage = 3004}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [10] = {item = 2191, count = 1, storage = 3005}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [40] = {item = 2160, count = 10, storage = 3006}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [41] = {item = 8922, count = 1, storage = 3007}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [50] = {item = 8902, count = 1, storage = 3008}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [100] = {item = 2160, count = 25, storage = 3017}, --///[Level] = {item = ItemId, count = ItemCount}///--
    },
    Druid = {
        Vocsid = {2,6}, --Vocs id for Priest
        [10] = {item = 2186, count = 1, storage = 3009}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [15] = {item = 2185, count = 1, storage = 3010}, --///[Level] = {item = ItemId, count = ItemCount}///--
            [20] = {item = 2160, count = 5, storage = 3011}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [21] = {item = 8911, count = 1, storage = 3012}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [30] = {item = 8912, count = 1, storage = 3013}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [41] = {item = 8910, count = 1, storage = 3014}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [40] = {item = 2160, count = 10, storage = 3015}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [50] = {item = 8922, count = 1, storage = 3016}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [100] = {item = 2160, count = 25, storage = 3018}, --///[Level] = {item = ItemId, count = ItemCount}///--
    },
    Paladin = {
        Vocsid = {3,7}, --Vocs id for Rangers    
        [20] = {item = 2160, count = 5, storage = 3019}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [35] = {item = 7367, count = 1, storage = 3020}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [40] = {item = 2160, count = 10, storage = 3021}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [50] = {item = 8891, count = 1, storage = 3022}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [70] = {item = 7368, count = 1, storage = 3023}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [100] = {item = 2160, count = 25, storage = 3024}, --///[Level] = {item = ItemId, count = ItemCount}///--
    },
    Knight = {
        Vocsid = {4,8}, --Vocs id for Warriors  
        [20] = {item = 2160, count = 5, storage = 3025}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [30] = {item = 2407, count = 1, storage = 3026}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [30] = {item = 2430, count = 1, storage = 3027}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [30] = {item = 2434, count = 1, storage = 3028}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [40] = {item = 2160, count = 10, storage = 3029}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [60] = {item = 2446, count = 1, storage = 3030}, --///[Level] = {item = ItemId, count = ItemCount}///--
        [100] = {item = 2160, count = 25, storage = 3031} --///[Level] = {item = ItemId, count = ItemCount}///--
    },
}
function onAdvance(cid, skill, oldLevel, newLevel)
    if(skill == SKILL__EXPERIENCE) then
        return true
    end
        if(newLevel < oldLevel)then return true end
    if(skill == SKILL__LEVEL and config.healPlayerOnLevel) then
        doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid))
        doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid))
        doSendMagicEffect(getCreaturePosition(cid), math.random(28, 30))
    if config.getServerVersionUnder860 then
        doSendAnimatedText(getCreaturePosition(cid), config.levelText, math.random(1,255))
    else
        doCreatureSay(cid,config.levelText,TALKTYPE_ORANGE_1)
        end
    end
    if(config.savePlayer) then
        doPlayerSave(cid, true)
    end
    local sorc,druid,pally,knight = config.Sorcerer[getPlayerLevel(cid)],config.Druid[getPlayerLevel(cid)],config.Paladin[getPlayerLevel(cid)],config.Knight[getPlayerLevel(cid)]
    if (isInArray(config.Sorcerer.Vocsid, getPlayerVocation(cid)) or isInArray(config.Druid.Vocsid, getPlayerVocation(cid)) or isInArray(config.Paladin.Vocsid, getPlayerVocation(cid)) or isInArray(config.Knight.Vocsid, getPlayerVocation(cid))) then
    if (sorc and isInArray(config.Sorcerer.Vocsid, getPlayerVocation(cid)) and (getPlayerStorageValue(cid,config.Sorcerer.storage) == -1)) then
        doPlayerAddItem(cid,sorc.item,sorc.count)
        setPlayerStorageValue(cid, config.sorc.storage,1)
        doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have recived "..sorc.count.."x "..getItemNameById(sorc.item).."." )
    elseif (druid and isInArray(config.Druid.Vocsid, getPlayerVocation(cid)) and (getPlayerStorageValue(cid,config.Druid.storage) == -1)) then
        doPlayerAddItem(cid,druid.item,druid.count)
        setPlayerStorageValue(cid, config.druid.storage,1)
        doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have recived "..druid.count.."x "..getItemNameById(druid.item).."." )
    elseif (pally and isInArray(config.Paladin.Vocsid, getPlayerVocation(cid)) and (getPlayerStorageValue(cid,config.Paladin.storage) == -1)) then
        doPlayerAddItem(cid,pally.item,pally.count)
        setPlayerStorageValue(cid, config.pally.storage,1)
        doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have recived "..pally.count.."x "..getItemNameById(pally.item).."." )
    elseif (Knight and isInArray(config.Knight.Vocsid, getPlayerVocation(cid)) and (getPlayerStorageValue(cid,config.Knight.storage) == -1)) then
        doPlayerAddItem(cid,Knight.item,Knight.count)
        setPlayerStorageValue(cid, config.Knight.storage,1)
        doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have recived "..knight.count.."x "..getItemNameById(knight.item).."." )
    end
    else
        print("Your vocation id doesn't exsist: "..getPlayerVocation(cid)..".")
    end
    return true
end


Error on console:

Code:
[Error - CreatureScript Interface]
data/creaturescripts/scripts/levelup.lua:onAdvance
Description:
data/creaturescripts/scripts/levelup.lua:90: attempt to index field 'knight' (a nil value)
stack traceback:
    data/creaturescripts/scripts/levelup.lua:90: in function <data/creaturescripts/scripts/levelup.lua:53>


Thanks rep for help +++
 
Does the line 90 on the script represents line 90 in this embedded code? I am guessing it actually represents some of the lines between 84-87.

It could be a case sensitive issue, Knight is used in the config, but knight is used as the local representation of the config.

However, it seems that Knight (with a big K) is miss used in the lines 84-87

Script seem to be created by @Printer, perhaps he can help you.
 
Back
Top