• 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 Reward System

AnarchGov

Member
Joined
Oct 3, 2011
Messages
263
Reaction score
6
LUA:
local prizes = {
    [60000] = {level = 15, reward = {2160, 1}},
    [60001] = {level = 20, reward = {2160, 2}},
    [60002] = {level = 35, reward = {2160, 5}},
    [60003] = {level = 50, reward = {7589, 100}},
    [60004] = {level = 75, reward = {2160, 5}},
    [60005] = {level = 80, reward = {7590, 100}},
    [60006] = {level = 100, reward = {2160, 20}},
    [60006] = {level = 120, reward = {2160, 8}}
}
 
function onAdvance(cid, skill, oldlevel, newlevel)
    if(skill ~= SKILL__LEVEL)then return TRUE end
    for i,t in ipairs(prizes) do
        if not(getPlayerStorageValue(cid, i)) and t.level <= newlevel then
            if type(t.reward[1] ~= "table") then
                local add = doPlayerAddItem(cid, t.reward[1], t.reward[2])
                if add then
                    doPlayerSendTextMessage(cid, 19, "You have received "..t.reward[2].." "..getItemNameById(t.reward[2]).." due to reaching level "..t.level..".")
                    setPlayerStorageValue(cid, i, true)
                end
            else    
                local bp = doCreateItemEx(1988, 1)
                for _,item in ipairs(t.reward) do
                    doAddContainerItem(bp, item[1], item[2])
                end
                local add = doPlayerAddItemEx(cid, bp)
                if add then
                    doPlayerSendTextMessage(cid, 19, "You have received a backpack with items due to reaching level "..t.level..".")
                    setPlayerStorageValue(cid, i, true)
                end
            end
        end
    end
    return TRUE
end

This script gives rewards automatically when a player reaches a level. However, it is not working. Weird part is there is NO error whatsoever regarding the script on my server. Anyone have any ideas?

REP++
 
LUA:
local prizes = {
	[6000] = name = "x1 Crystal Coins", {15, 2160, 1},
	[6001] = name = "x2 Crystal Coins", {20, 2160, 2},
	[6002] = name = "x5 Crystal Coins", {35, 2160, 5},
	[6003] = name = "100 Strong Mana Potion", {50, 7589, 100},
	[6004] = name = "x5 Crystal Coins", {75, 2160, 5},
	[6005] = name = "100 Great Mana Potion", {80, 7590, 100},
	[6006] = name = "x20 Crystal Coins", {100, 2160, 20},	
        [6007] = name = "x8 Crystal Coins", {120, 2160, 8}
}
function onAdvance(cid, skill, oldLevel, newLevel)
	if skill == SKILL__LEVEL then
		for storage, v in pairs(prizes) do
			if newLevel >= v[1] and getPlayerStorageValue(cid, storage) < 1 then
				doPlayerAddItem(cid, v[2], v[3])
				setPlayerStorageValue(cid, storage, 1)
               doPlayerSendTextMessage(cid, 19, "You have received ".. v[1].name .." due to reaching level " .. v[1] .. ".")			
				break
			end
		end
	end
	return true
end
 
Last edited:

Similar threads

Back
Top