[HOW TO] Monster über Quest spawnen!

07/01/2010 19:33 Anohros#1
Tag Leute,
Ich zeige euch hiermit wie man Monster für eine Quest richtig spawnt.
Kenne es schon eine lange Zeit, aber weil vor kurzem erst danach gefragt wurde veröffentliche ich dieses [How To]


Monster spawnen:
Code:
mob.spawn( mob_id , map_local_x , map_local_y , 1, 1, 1)
Monster spawnen und als Ziel:
Code:
local v=mob.spawn( mob_id , map_local_x , map_local_y , 1, 1, 1)
target.npc(" target_name ", v)
Kleines Beispiel zur Anwendung:
Code:
quest kill_spawn_mob begin
	state start begin
		when login or levelup begin
			set_state( goto_spawn_mob )
		end
	end
	state goto_spawn_mob begin
		when letter begin
			send_letter("Erledige 3 Wildhunde!")
		end
		when button or info begin
			say("")
			say_reward("Erledige 3 Wildhunde!")
			say("")
			say_reward("Zu beachten:")
			say_reward("Das sie mit einem Schwert und")
			say_reward("einer Rüstung ausgestattet sind!")
			say("")
			local v=mob.spawn(101, pc.get_local_x(),  pc.get_local_y(), 1, 1, 1)
			target.npc("mob1", v)
			local v=mob.spawn(101, pc.get_local_x(),  pc.get_local_y(), 1, 1, 1)
			target.npc("mob2", v)
			local v=mob.spawn(101, pc.get_local_x(),  pc.get_local_y(), 1, 1, 1)
			target.npc("mob3", v)
			set_state( goto_kill_mob )
		end
	end
	state goto_kill_mob begin
		when login begin
			local i = 3 - pc.getqf("101_count")
			send_letter(i.." Wildhunde zu erledigen!")
		end
		when button or info begin
			local i = 3 - pc.getqf("101_count")
			say("")
			say_reward("Erledige "..i.." Wildhunde!")
			say("")
		end
		when 101.kill begin
			if pc.getqf("101_count") == 0 then
				pc.setqf("101_count", 1)
			elseif pc.getqf("101_count") == 1 then
				pc.setqf("101_count", 2)
			elseif pc.getqf("101_count") == 2 then
				pc.setqf("101_count", 2)
				target.delete("mob1")
				target.delete("mob2")
				target.delete("mob3")
				set_state( goto_complete )
			end
		end
	end
	state goto_complete begin
		when letter begin
			send_letter("Die Quest ist abgeschlossen!")
		end
		when button or info begin
			say("")
			say_reward("Wunderbar, sie haben jetzt bewiesen das")
			say_reward("ihre Erfahrung ausreicht um alleine")
			say_reward("auf die *servername* Welt loszugehen!")
			say("")
			pc.delqf("count")
			-- hier kann noch eine belohnung hin
			set_state( complete )
		end
	end
	state complete begin
	end
end
Die map_local_x/y Koordinaten sind nicht die Weltübergreifenden 6255000 1355000, sondern die localen map Koordinaten wie zbs. (231;381).

Ich hoffe es hilft euch weiter.

MfG. Anohros
07/01/2010 19:37 SoNiiice#2
Danke <3
07/01/2010 20:15 jackdown9#3
Kann zwar Quest scripten, aber denke, dass das hier vielen hilfe.

mfg. jackdown
07/01/2010 20:37 mufkeksy#4
was ist target_name ?
07/01/2010 20:52 Anohros#5
target_name ist einfach ein name für das makierte ziel.
Dazu gibt es ein beispiel bei dem Punkt "Kleines Beispiel zur Anwendung:"

Mg. Anohros
07/01/2010 21:46 3jfx#6
Moin, fehlt die Hälfte. Beispielsweise was die drei letzten Argumente bezwecken. Ansonsten thx
07/01/2010 21:53 ReLaXe#7
Irgendwo hab ich sowas schon gesehen. Aber kann mich nicht errinnern.
07/01/2010 21:54 .NoMercy.#8
Sehr Hilfreich

Danke
07/02/2010 12:20 mufkeksy#9
Weiß jemand was an der Quest falsch ist:

Quote:
quest Bosse begin
state start begin
when 20095.chat."Ich bin auch ein Beschwörer!" begin
say("Ich kann dir etwas beschwören!")
say("Wähle aus was ich beschwören soll!"

local s=select("Königsspinne","Flammenkönig","Oberork"," Neunschwanz","Gelber Tigergeist","Stolzer Dämonenkönig")

if s==1 then
local v=mob.spawn(2091, map_local_x , map_local_y , 1, 1, 1)
target.npc("20095", v)
say("Vernichte das Monster!!")
end

if s==2 then
local v=mob.spawn(2206, map_local_x , map_local_y , 1, 1, 1)
target.npc("20095", v)
say("Vernichte das Monster!!")
end

if s==3 then
local v=mob.spawn(691, map_local_x , map_local_y , 1, 1, 1)
target.npc("20095", v)
say("Vernichte das Monster!!")
end

if s==4 then
local v=mob.spawn(1901, map_local_x , map_local_y , 1, 1, 1)
target.npc("20095", v)
say("Vernichte das Monster!!")
end

if s==5 then
local v=mob.spawn(1304, map_local_x , map_local_y , 1, 1, 1)
target.npc("20095", v)
say("Vernichte das Monster!!")
end

if s==6 then
local v=mob.spawn(1092, map_local_x , map_local_y , 1, 1, 1)
target.npc("20095", v)
say("Vernichte das Monster!!")
end




end
end
end
end
end
07/02/2010 12:25 Priince_D#10
Quote:
Originally Posted by mufkeksy View Post
Weiß jemand was an der Quest falsch ist:
Ich weiß es nicht, aber vielleicht das es nicht so schön gegliedert ist? Kenne mich damit nicht aus :p
07/02/2010 12:39 mufkeksy#11
Ist nur weil es im Zitat ist also die Quest soll eigendlich bringen dass:
Man kann bein WeisenMann klicken "Ich bin auch ein Beschwörer!" Und dann kommt halt "Was soll ich beschwören bitte sag es mir" Dann kommen Felder mit den Bossen Neunscwahnz etc und wenn man draufklickt spawnt der den Boss und sagt "Vernichte das Monster"


mfg mufkeksy
07/02/2010 19:50 Anohros#12
Hallo,
mufkeksy das "map_local_x , map_local_y" durch "pc.get_local_x(), pc.get_local_y()" ersetzen, dann geht es!

Und was mir auffällt das 2 "end" zuviel am ende vorhanden sind.

MfG. Anohros
07/02/2010 21:51 3jfx#13
Moin, bei mir wird trotzdem nichts gespawnt.

Auszug:
local v = mob.spawn(8023, 130, 105, 1, 1, 1)
target.npc("ev_063", v)
08/02/2011 15:49 xenor#14
hatte ich zwar schon vor dir raus aber trotzdem danke dass dus nochmal aufschreibst
hatte es schon wieder vergessen ^^

lg xenor
08/02/2011 16:15 ♛ SoD ♛#15
alten Thread hochpushen *hust*
gleich Meldet dich ein kiddy.