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

Quest chest doesnt work

healer007

New Member
Joined
Nov 11, 2008
Messages
174
Reaction score
0
Location
doesnt matter
Hey my quest chests dont work iunnno why??
i do it the right way, put in price id in unique and stll doesnt work. Cna anyone help
 
Yep that is beta.

Check if you got action id/unique id added to the chest in the mapeditor.
Check if your actions.xml file loads that action/unique id.
Check if it loads the correct document in data/actions/scripts
Check if the script does anything with the action.
 
It's just a quest chest, do i have to write it in action xml and have a script for it? If yes can anyone make me a scrpit or anything that would get it working (realy need this)
 
yea, you ALWAYS have to have in quests, action id = 2000,
it's the damn new quest system, it took a while until i found out about it myself.

Unuiqe id should be the item that you want to loot from the chest,
action id to every quest should be "2000".

And it works :p
 
I got a new quest system that works find for me, but there's one thing im tryin to put a chest in the temple for new players gives 1cc. But it doesnt work at all anyone can help me
 
This script is for TFS 0.3+

Add this to actions folder in scripts:

PHP:
local specialQuests = {
	[2001] = 30015 --Annihilator
}

local questsExperience = {
	[30015] = 10000
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges) == TRUE) then
		return TRUE
	end

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

	local result = "It is empty."
	if(getPlayerStorageValue(cid, storage) == -1) then
		local items = {}
		local reward = 0

		local size = isContainer(item.uid) == TRUE 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

		if(reward ~= 0) then
			local ret = getItemDescriptions(reward.uid)
			if(reward.type > 0 and isItemRune(reward.itemid) == TRUE) then
				result = reward.type .. " charges " .. ret.name
			elseif(reward.type > 0 and isItemStackable(reward.itemid) == TRUE) then
				result = reward.type .. " " .. ret.plural
			else
				result = ret.article .. " " .. ret.name
			end
		else
			result = ""
			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) == TRUE) then
						result = result .. tmp.type .. " charges " .. ret.name
					elseif(tmp.type > 0 and isItemStackable(tmp.itemid) == TRUE) 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
	end

	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, result)
	return TRUE
end

And in actions.xml add this:

PHP:
<action actionid="2000" script="system.lua"/>
	<action actionid="2001" script="system.lua/>
 
Back
Top