• 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 Quest System Prob

skywalker16

New Member
Joined
Nov 5, 2008
Messages
250
Reaction score
1
Location
Switzerland
I'm using the quest system.lua of the latest TFS but still something is wrong... when i open the chest it says nothing, just the small cloud on yourself. Is there anyone who has an idea?

My quest chest:
11:01 You see a chest (Vol:15).
It weighs 121.00 oz.
ItemID: [1740], ActionID: [2000], UniqueID: [30001].
Position: [X: 901] [Y: 4350] [Z: 6].
 
In my opinion script one yourself. It would be much easier in my eyes because then u are learning how lua is structured. I'm learning lua atm aswell.
 
In my opinion script one yourself. It would be much easier in my eyes because then u are learning how lua is structured. I'm learning lua atm aswell.

You are noob.

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

local questsExperience = {
	[30015] = 10000
}

[COLOR="Red"]function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF, cid)
		return true
	end[/COLOR]

	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

remove this

Code:
[COLOR="Red"]function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES)) then
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF, cid)
		return true
	end[/COLOR]

And if you do that, gamemasters can test quest chests
 
If this is happening to you, opening the chest with a GOD, CM or any other server admin, is because the system doesn't let server officials open chest. You can change that in the system, by removing like 3 lines.

If this is happening openning with a regular player, if you get clouds, post your system here, if you get nothing, remember that for the latest quest system:

Actionid: 2000
Uniqueid: the ID of the storage that you want to use for this quest

Then you have to add the items inside the chest, in the mapeditor.

@all
the 0.3.5 system is protek system, don't use any other.
 
If this is happening to you, opening the chest with a GOD, CM or any other server admin, is because the system doesn't let server officials open chest. You can change that in the system, by removing like 3 lines.

If this is happening openning with a regular player, if you get clouds, post your system here, if you get nothing, remember that for the latest quest system:

Actionid: 2000
Uniqueid: the ID of the storage that you want to use for this quest

Then you have to add the items inside the chest, in the mapeditor.

@all
the 0.3.5 system is protek system, don't use any other.

Wow you guy really helped me! :)
Thank you so much!
 
Back
Top