[Quest-Release] DE Like SD3

05/01/2013 22:03 Lord iRemix#1
Abend,

Habe zu dem Thema nichts gefunden und mir wurde auch gesagt, dass es nicht Pub ist, deswegen habe ich mal den Sd3 bzw die Bruthöhle, wie auf Metin2Wiki beschrieben, gemacht.

Vorab: Bevor ihr sagt, es geht nicht o.ä: Guckt, ob alle Vnums angepasst sind.
Hatte die so nicht da, deswegen sind nicht die richtigen Vnums der Items oder Npc drin.

Special Thanks an: .CHHorny

Quests:

Schlüssel bekommen:
Code:
quest get_sd3_key begin
	state start begin
		when 20355.chat."Schlüssel zum SD3" with pc.get_level() > 49 begin
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say()
			say("Besorge für mich eine Kopie einer")
			say("Inschrift aus dem SD3.")
			wait()
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say()
			say("Du erhältst von mir nun einen Passierschein,")
			say("damit du den SD2 betreten kannst.")
			wait()
			if not pc.enough_inventory() then
				say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
				say("Du hast nicht genug Platz in deinem Inventar.")
				return
			end
			pc.give_item2(71095, 1)
			set_state(get_schrift)
		end
	end
	state get_schrift begin
		when kill with not npc.is_pc() and pc.get_map_index() == x begin -- Index für Sd2 anpassen
			if number(1, 10) then -- Dropchance kann angepasst werden // 1 zu x
				game.drop_item(xxx, 1) -- Vnum anpassen für Inschrift
				set_state(back_to_hauptmann)
			end
		end
	end
	state back_to_hauptmann begin
		when 20355.chat."Ich habe die Inschrift!" with pc.count_item(xxx) >= 1 begin -- Vnum für Inschrift anpassen
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say("Wie ich sehe hast du die Inschrift gefunden")
			say("Gehe nun zu Uriel.")
			wait()
			pc.setqf("uriel",1)
		end
		when 20011.chat."Ich soll mich bei dir melden" with pc.getqf("uriel") == 1 begin
			pc.setqf("uriel",0)
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say("Ich habe soeben einen Weg gefunden,")
			say("um einen Schlüssel herzustellen, welcher es")
			say("ermöglicht den SD3 zu betreten.")
			wait()
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say("Gehe wieder zum Hauptmann.")
			say("Er sagt dir, welche Gegenstände du")
			say("für die Herstellung benötigst.")
			wait()
			pc.setqf("haupt",1)
		end
		when 20355.chat."Zutaten für den Schlüssel" with pc.getqf("haupt") == 1 begin
			pc.setqf("haupt",0)
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say("Für den Schlüssel benötigst du:")
			say_reward("1x Spinnen-Giftsack")
			say_reward("1x Spinnen-Eiersack")
			say_reward("1x Spinnennetz")
			say_reward("1x Spinnenaugen")
			say_reward("1x Spinnenbeine")
			say_reward("1x Gift der Spinnenkönigin")
			wait()
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say("Gehe nun wieder zu Uriel.")
			wait()
			pc.give_item2(71095, 1)
			pc.setqf("uriel",2)
		end
		when 20011.chat."Ich kenne die Zutaten" with pc.getqf("uriel") == 2 begin
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say("Du kennst also die Zutaten für den Schlüssel?")
			say()
			say("Gut..")
			say("Geh nun in den SD2 und besorge die Zutaten.")
			pc.setqf("uriel",0)
			set_state(get_items)
		end
	end
	state get_items begin
		when kill with pc.get_map_index() == x begin -- Index für SD2 anpassen
			if number(1, 10) then
				local item = {
					{30025},
					{30058},
					{30056},
					{30059},
					{19} -- Vnum für Gift der Spinnenkönigin anpassen
				}
				local anz = number(1, table.getn(item))
				game.drop_item_with_ownership(item[anz][1], 1)
			end
		end
		when 20011.chat."Ich habe die Zutaten!" with
		pc.count_item(30025) > 0
		and pc.count_item(30058) > 0
		and pc.count_item(30056) > 0
		and pc.count_item(30059) > 0
		and pc.count_item(19) > 0 begin -- Vnum für GdS anpassen
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say()
			say("Okay, du hast alle Zutaten.")
			say("Willst du nun den Schlüssel herstellen?")
			if select("Ja","Nein") == 2 then return end
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say()
			say("[DELAY value; 750]....[/DELAY]")
			wait()
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			say()
			say("Der Schlüssel wurde erfolgreich hergestellt.")
			wait()
			pc.give_item2(xx, 1) -- Vnum für Schlüssel anpassen
			pc.remove_item(30025,1) pc.remove_item(30058,1) pc.remove_item(30056, 1) pc.remove_item(30059,1) pc.remove_item(19,1) -- Vnum für GdS anpassen
			set_state(start)
		end
	end
end
Bruthöhle:
Code:
quest sd3_bruthoehle begin
	state start begin
		when xxx.chat."In die Bruthöhle" with pc.get_level() > 49 begin
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			if game.get_event_flag("sd3_frei") == 1 then
				say("Die Bruthöhle ist zur Zeit besetzt.")
				return
			end
			if not party.is_party() then
				say("Du kannst nur in einer Gruppe die")
				say("Bruthöhle betreten.")
				return
			end
			if not party.is_leader() then
				say("Nur der Gruppenleiter kann das")
				say("Portal zur Bruthöhle öffnen.")
				return
			end
			say("Möchtet ihr die Bruthöhle betreten?")
			if select("Ja","Nein") == 2 then return end
			d.join(xx) -- Mapindex anpassen
			game.set_event_flag("sd3_frei",1)
			server_timer("exit",60*20)
		end
		when login with pc.get_map_index() == xx and party.is_party() begin -- Index anpassen
			d.set_regen_file("data/dungeon/sd3/eier.txt")
			d.regen_file("data/dungeon/sd3/boss.txt")
			d.notice("Ihr habt 20 Minuten Zeit, um den Spinnenbaron zu töten.")
		end
		when exit.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.exit_all()
				server_timer("sd3_set_free",60*60)
			end
		end
		when xxx.kill with party.is_party() and pc.get_level() > 49 begin
			local count = tonumber(party.get_near_count()-1)
			notice_all(string.format("%s und %d weitere Mitglieder haben den Spinnenbaron besiegt!", pc.get_name(), count))
			server_timer("sd3_set_free", 60*60)
			server_timer("exit",60*5)
			d.notice("In 5 Minuten werdet ihr hinausteleportiert")
		end
		when sd3_set_free.server_timer begin
			game.set_event_flag("sd3_frei",0)
		end
	end
end
MfG .Remix
05/01/2013 22:04 Lord Elinoy#2
RLLY Nice,
ty Michi
05/01/2013 22:05 .RuffyDCapone™#3
Nice danke dir :P
05/01/2013 22:12 SandEimer#4
Gibts schon [Only registered and activated users can see links. Click Here To Register...]
05/01/2013 22:14 .Trinity#5
Danke für die Mühe
05/01/2013 22:19 tяuє Ðevin#6
Finde Remix's umsetzung deutlich besser.
[Only registered and activated users can see links. Click Here To Register...]
(nohomo)
05/01/2013 22:20 SandEimer#7
Quote:
Originally Posted by Sodii View Post
Finde Remix's umsetzung deutlich besser.
[Only registered and activated users can see links. Click Here To Register...]
(nohomo)
Schon Möglich ich wollte damit nur sagen das es bereits eine gibts....
05/01/2013 22:38 .Pr0#8
ich finde die quest auch super aufgebaut aber du könntest dazu noch die Regen vom SD 3 dazu machen und Serverside ^^
05/01/2013 22:51 Stαgє6#9
Sieht sehr gut aus danke fürs teilen ^^
05/01/2013 22:56 Whit3W0lf#10
Schaut gut aus danke:D
05/01/2013 22:58 iYoshix3#11
Sind nun 8 Spieler in der Gruppe, wird der Boss 8 mal gespawnt:)
Ansonnsten ist es ganz okay.

Mfg,
Yoshix3
05/01/2013 23:01 Lord iRemix#12
Hab mal noch ein party.is_master() dazugepackt.
Sollte damit nur einmal gespawnt werden.

Danke für den Hinweis :)
05/01/2013 23:31 iYoshix3#13
Quote:
Originally Posted by .Remix. View Post
Hab mal noch ein party.is_master() dazugepackt.
Sollte damit nur einmal gespawnt werden.

Danke für den Hinweis :)
Evntl. noch den Eventflag auf die aktuelle Zeit stellen, und beim anklicken
des NPC´s prüfen, ob Flagzeit + vorhandene Zeit überschritten sind.
Würde z.b. fixxen, fals der Gruppen Leader beim warpen einen kick bekommt
und sich nichtmehr einloggt (passiert zwar selten, aber schadet ja nicht).
Weil sonnst wird der Zugang dauerhaft geblockt, weil der Timer nicht startet.

Bzw. dann braucht man den Timer nicht mehr.

Mfg,
Yoshix3
05/02/2013 09:57 Prince43™#14
Vielen Dank für die quest brauche es für mein server. da ich Questen nnich so gut kann freut mich dass sowas released wird. Thanks boy well done


Kind Regards

Prince43™
05/02/2013 11:53 Invoice™#15
vielleicut solltest du die txt dateien dazu tun , oder ich schreib s
welche wenn ich zuhause bin