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

[Action] Need Script Quest Chest System

Crayon

New Member
Joined
Mar 23, 2009
Messages
29
Reaction score
0
In My Server not works this option, for example..

ActionID: 2000
UniqueID: 20001

in others servers it works but in my server nnot :(

how can i do to fix that ??
 
its works! :) but if i wanna 2 items per chest? for example magic long sword and golden boots? how can i do that?


thanks...
 
does this not make sence?

just use the storage id of both the items...
this makes sence santig???

Code:
---CONFIGS---
local itemOneID =
local itemTwoID =
--/CONFIGS---
--locals--
local itemOneStorage = getPlayerStorageValue(cid,itemOneID)
local itemTwoStorage = getPlayerStorageValue(cid,itemTwoID)
-/locals--

         if itemOneStorage == -1 and itemTwoStorage == -1 then
                 doPlayerSetStorageValue(cid,itemOneID,1)
                 doPlayerSetStorageValue(cid,itemTwoID,1)
                 doPlayerAddItem(cid,itemOneID,1)
                 doPlayerAddItem(cid,itemTwoID,1)
        else
                 doPlayerSendCancle(cid,"You've already done this quest")
        end
return true
end
 
Easiest chest ever..

Lua:
function onUse(cid, item, frompos, item2, topos)


if item.uid == xxxxx then           -----------uniqueID = pick it. any number from 1-55000 (any that arent taken)
if getPlayerStorageValue(cid,xxxxx) == -1 then --------same as above ^
doPlayerSendTextMessage(cid,25,"You have found xxxxxx")  ------whatever item you decide to put in the chest
doPlayerAddItem(cid,xxxx,xx) -------------- item ID, and amount
setPlayerStorageValue(cid,xxxxx,1) ------------ same as above
else
doPlayerSendTextMessage(cid,25,"The chest is empty.")
end

end
return TRUE
end
 
Easiest chest ever..

Lua:
function onUse(cid, item, frompos, item2, topos)


if item.uid == xxxxx then           -----------uniqueID = pick it. any number from 1-55000 (any that arent taken)
if getPlayerStorageValue(cid,xxxxx) == -1 then --------same as above ^
doPlayerSendTextMessage(cid,25,"You have found xxxxxx")  ------whatever item you decide to put in the chest
doPlayerAddItem(cid,xxxx,xx) -------------- item ID, and amount
setPlayerStorageValue(cid,xxxxx,1) ------------ same as above
else
doPlayerSendTextMessage(cid,25,"The chest is empty.")
end

end
return TRUE
end

Uhm, read the posts above lol :p
He can use my chest sys for that.
He was asking for 2 items in 1 chest, and Blood it would be like this actually:
Lua:
---CONFIGS---
local itemOneID = xxxx
local itemTwoID = xxxx
--/CONFIGS---
--locals--
local storage = 7878
--/locals--
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerStorageValue(cid,storage) == -1 then
   setPlayerStorageValue(cid,storage,1)
   doPlayerAddItem(cid,itemOneID,1)
   doPlayerAddItem(cid,itemTwoID,1)
else
    doPlayerSendCancel(cid,"You've already done this quest")
end
return true
end

No need to check for 2 storages, its not 1 storage per item
 
In My Server not works this option, for example..

ActionID: 2000
UniqueID: 20001

in others servers it works but in my server nnot :(

how can i do to fix that ??
Use this...

system.lua:
Lua:
local specialQuests = {
	[2001] = 30015 --Annihilator
}

local questsExperience = {
	[30015] = 10000
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF, cid)
		return true
	end

	local storage = specialQuests[item.actionid]
	if(not storage) then
		storage = item.uid
		if(storage > 65535) then
			return false
		end
	end

	if(getPlayerStorageValue(cid, storage) > 0) then
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")
		return true
	end

	local items = {}
	local reward = 0

	local size = isContainer(item.uid) and getContainerSize(item.uid) or 0
	if(size == 0) then
		reward = doCopyItem(item, false)
	else
		for i = 0, size do
			local tmp = getContainerItem(item.uid, i)
			if(tmp.itemid > 0) then
				table.insert(items, tmp)
			end
		end
	end

	size = table.maxn(items)
	if(size == 1) then
		reward = doCopyItem(items[1], true)
	end

	local result = ""
	if(reward ~= 0) then
		local ret = getItemDescriptions(reward.uid)
		if(reward.type > 0 and isItemRune(reward.itemid)) then
			result = reward.type .. " charges " .. ret.name
		elseif(reward.type > 0 and isItemStackable(reward.itemid)) then
			result = reward.type .. " " .. ret.plural
		else
			result = ret.article .. " " .. ret.name
		end
	else
		if(size > 20) then
			reward = doCopyItem(item, false)
		elseif(size > 8) then
			reward = getThing(doCreateItemEx(1988, 1))
		else
			reward = getThing(doCreateItemEx(1987, 1))
		end

		for i = 1, size do
			local tmp = doCopyItem(items[i], true)
			if(doAddContainerItemEx(reward.uid, tmp.uid) ~= RETURNVALUE_NOERROR) then
				print("[Warning] QuestSystem:", "Could not add quest reward")
			else
				local ret = ", "
				if(i == 2) then
					ret = " and "
				elseif(i == 1) then
					ret = ""
				end

				result = result .. ret
				ret = getItemDescriptions(tmp.uid)
				if(tmp.type > 0 and isItemRune(tmp.itemid)) then
					result = result .. tmp.type .. " charges " .. ret.name
				elseif(tmp.type > 0 and isItemStackable(tmp.itemid)) then
					result = result .. tmp.type .. " " .. ret.plural
				else
					result = result .. ret.article .. " " .. ret.name
				end
			end
		end
	end

	if(doPlayerAddItemEx(cid, reward.uid, false) ~= RETURNVALUE_NOERROR) then
		result = "You have found a reward weighing " .. getItemWeight(reward.uid) .. " oz. It is too heavy or you have not enough space."
	else
		result = "You have found " .. result .. "."
		setPlayerStorageValue(cid, storage, 1)
		if(questsExperience[storage] ~= nil) then
			doPlayerAddExp(cid, questsExperience[storage])
			doSendAnimatedText(getCreaturePosition(cid), questsExperience[storage], TEXTCOLOR_WHITE)
		end
	end

	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, result)
	return true
end

...plus this: http://otland.net/f55/0-3-quest-system-15890/

And there you go (yes, it supports many items in one chest).
 
Back
Top