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

Frag Reward help

Grzegory

New Member
Joined
Jul 21, 2009
Messages
3
Reaction score
0
Could you help me set this script that you can get 1 reward only 1 time ? Help :peace:
Code:
local fragRewards =
{
	--frag rewards configuration
	--from highest to lowest (by frags)
	{frags = 5, itemid = 3960}, --<1citizen>
        {frags = 5, itemid = 3960}
        {frags = 5, itemid = 3960}
        {frags = 5, itemid = 3960}
}

local function getRewardByName(name)
	local tmp = name:lower()
	local tmp2 = ""
	for _, reward in pairs(fragRewards) do
		tmp2 = getItemNameById(reward.itemid)
		if(tmp == tmp2) then
			reward.name = tmp2
			return reward
		end
	end

	return FALSE
end

function onSay(cid, words, param)
	if(param == "" or param:lower() == "list") then
		local str = "#Frag rewards:"
		for _, reward in pairs(fragRewards) do
			str = str .. "\n" .. getItemNameById(reward.itemid) .. " " .. (reward.count ~= nil and "(x" .. reward.count .. ")" or "") .. "- " .. reward.frags .. " frags"
			end

		doPlayerPopupFYI(cid, str .. "\n\nExample: " .. words .. " magic plate armor")
		return TRUE
	end

	local reward = getRewardByName(param)
	if(reward == FALSE) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Invalid item specified. Please use '" .. words .. " list' command to get valid rewards list.")
		return TRUE
	end

	local playerFrags = getPlayerFrags(cid)
	if(playerFrags < reward.frags) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You need " .. reward.frags .. " frags for this item.")
		return TRUE
	end

	itemWeight = getItemWeightById(reward.itemid, reward.count)
	if(isItemRune(reward.itemid) == TRUE) then
		itemWeight = getItemWeightById(reward.itemid, 1)
	end

	local rewardItem = doCreateItemEx(reward.itemid, reward.count)
	local freeCap = getPlayerFreeCap(cid)
	if(itemWeight > freeCap or doPlayerAddItemEx(cid, rewardItem) ~= RETURNVALUE_NOERROR) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have enought space/capacity for this item.")
		return TRUE
	end

	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have bought " .. reward.name .. " for " .. reward.frags .. " frags.")
	doPlayerAddFrags(cid, -reward.frags)
	return TRUE
end
 
Back
Top