What's new

Problem z questami<Rozwi?zany>

Status
Not open for further replies.

McFreeq

Advanced User
Joined
Nov 15, 2009
Messages
381
Reaction score
40
Siema. Pewnie wielu z was ma problem z questami w Tfs'ie 0.3.6 Crying Damson.
Teraz znalaz?em rozwi?zanie i daje wam skrypt jak robi? questy szybko w map edytorze;]
Ok zaczynamy.
1. Skrypt
Code:
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
Nazywamy go system.lua i wrzucamy go do:
Code:
actions>scripts>quests
nastepnie wchodzimy w actions.xml
i na samym poczotku w 'Quests' dodajemy:
Code:
	<action actionid="2000" event="script" value="quests/system.lua"/>
	<action actionid="2001" event="script" value="quests/system.lua"/>
A teraz jak doda? quest w map edytorze:
Wchodzimy w map edytora stawiamy chesta i klikamy na niego prawym i propierties w action id wpisujemy 2000 i w unique id wpisujemy 2000 i w te czarne pola wstawiamy rzeczy jakie maj? by? w tym questcie.
Je?li robimy nastepny quest to tak samo jak wy?ej tylko dajemy action id 2001 i unique id 2001 I tak dalej. Je?li damy te same action id i unique to i wzielismy kiedy? tego questa to jak zrobimy jeszcze raz o tym samym id to ju? nie b?dziemy mogli wsi??? tego questu.
Testowany na TFS 0.3.5 Crying damson i na Crying Damson 0.3.6pl1
Koniec. Komentujcie, oceniajcie...
McFreeq
 

Bvbb

User
Joined
Apr 8, 2008
Messages
35
Reaction score
0
Odp: Problem z questami<Rozwi?zany>

hmm nie wystarczy przypadkiem ustawi? w skrzynkach ten sam unique, a r??ne nagrody?
TFS ma wbudowany questsystem czy jako? tak gdzie unique oznacza storage.
Wi?c je?li skrzynki b?d? mia?y te same unique to ten sam storage.
Tylko obawiam si? ?e wtedy mog?oby wywali? b??d podczas ?adowania mapy.
W stylu Duplicate Unique ID
 

Jazper

Advanced User
Joined
Nov 22, 2009
Messages
448
Reaction score
31
Odp: Problem z questami<Rozwi?zany>

@up dlatego mo?na to przerobi? na action id ;), kt?re mo?na przypisa? wi?cej ni? 1 elementowi ;)
 

McFreeq

Advanced User
Joined
Nov 15, 2009
Messages
381
Reaction score
40
Odp: Problem z questami<Rozwi?zany>

musi by? wpisane aid,unique id bo jak by? robi? drugiego questa to by by?o it's empty
 

Kopek14

Advanced User
Joined
May 19, 2008
Messages
226
Reaction score
10
Odp: Problem z questami<Rozwi?zany>

Ten skrypt wzi??e? ze skryptu ani? To wydaje mi si?, ?e ten skrypt b?dzie dzia?a?, ale gdy we?mie si? 1 nagrod? z questu to ju? z innej skrzynki z tego samego skryptu nie b?dzie mo?na bra?... Skrypt w sumie bezu?yteczny s? lepsze i kr?tsze skrypty na szynki questowe...
 

McFreeq

Advanced User
Joined
Nov 15, 2009
Messages
381
Reaction score
40
Odp: Problem z questami<Rozwi?zany>

napisalem musisz inne wziasc action i unique id ^^ i to nie jest anhi. przeczytaj dobrze. i wystarczy go tylko raz dodac a potem tylko aid i uid sie zmienia w map edytorze..
 
Joined
Mar 28, 2010
Messages
42
Reaction score
1
Odp: Problem z questami<Rozwi?zany>

A tam gadanie questa to trzeba mie? na blaszce polecam Demon i Arena by me :D
 

Basta4

Active User
Joined
Dec 18, 2009
Messages
92
Reaction score
2
Odp: Problem z questami<Rozwi?zany>

McFreeq nie pomog?e? mi, bo ten skrypt akurat jest ju? w silniku freeq's project, wi?c ten skrypt nie jest Tw?j :)
Pozdrawiam Basta4
 

Godownik

New User
Joined
Aug 15, 2009
Messages
8
Reaction score
0
Odp: Problem z questami<Rozwi?zany>

Besta4 mozesz zobaczyc na twojim silniku jakis prosty quest skopiowac go i zmienic tylko aid,unique id i zecz jaka chcesz miec w skrzyni a reszte napisal MCFreeq ; )
 

McFreeq

Advanced User
Joined
Nov 15, 2009
Messages
381
Reaction score
40
Odp: Problem z questami<Rozwi?zany>

McFreeq nie pomog?e? mi, bo ten skrypt akurat jest ju? w silniku freeq's project, wi?c ten skrypt nie jest Tw?j :)
Pozdrawiam Basta4
ja nic o tym nie wiedzia?em czy jest jak nie pomog?em to po co piszesz?
 

eldorado

Active User
Joined
Aug 3, 2009
Messages
94
Reaction score
2
Age
30
Odp: Problem z questami<Rozwi?zany>

Mam inny skrypt i mam problem ze moge przesowac skrzynki questowe ;/ moze wie jak to zmienic? prosze o szybka odpowiedz
 
Status
Not open for further replies.
Top