[SERVICE] Die Questerstellung

01/15/2015 16:06 #AnymRolex*#1996
Kann da wer noch einfügen das man 250KK Yang braucht:

01/15/2015 18:13 .yorliK#1997
##
Quote:
Originally Posted by °Ace° View Post
#
Code:
quest regenbogenstein begin
	state start begin
		function BuildPerfectMasterSkillList(job, group)
		GRAND_MASTER_SKILL_LEVEL =20
		PERFECT_MASTER_SKILL_LEVEL = 40
		local skill_list = special.active_skill_list[job+1][group]
		local ret_vnum_list = {}
		local ret_name_list = {}

		-- test_chat(string.format("job=%d, group=%d", job, group))

		table.foreach(skill_list, 
		function(i, skill_vnum) 
		local skill_level = pc.get_skill_level(skill_vnum)

		-- test_chat(string.format("[%d]=%d", skill_vnum, skill_level))
		if skill_level >= GRAND_MASTER_SKILL_LEVEL then

			table.insert(ret_vnum_list, skill_vnum)
			local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
			if name == nil then name=skill_vnum end
			table.insert(ret_name_list, name)
			end
		end)
		return {ret_vnum_list, ret_name_list}


		--return {ret_vnum_list, ret_name_list}
		end
		when 50512.use begin
			if pc.getqf("Regenbogensteine")>=5 then syschat("Du kannst keine Regenbogensteine mehr verwenden.") return end
			if pc.get_skill_group() == 0 then
				say("Du hast noch keine Fertigkeiten.")
				say("Versuche es später erneut.")
				return
			end
			local result = regenbogenstein.BuildPerfectMasterSkillList(pc.get_job(), pc.get_skill_group())
			local vnum_list = result[1]
			local name_list = result[2]
			if table.getn(vnum_list) == 0 then
				say("Du hast keine Großmeister-Fertigkeiten.")
				return
			end
			local menu_list = {}
			table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
			table.insert(menu_list, "Abbrechen") 
			local s=select_table(menu_list)
			if table.getn(menu_list) == s then
				return
			end
			local skill_name=name_list[s]
			local skill_vnum=vnum_list[s]
			say("Soll "..skill_name.." wirklich auf P")
			say("geskillt werden?")
			if select("Ja","Nein")==2 then return end
			if pc.count_item(50512) >0 then
				pc.set_skill_level(skill_vnum, 59)
				say(skill_name.." wurde auf P gesetzt.")
			else
				say("Buguser bekommen keine Skills ! ")
			end
			pc.setqf("Regenbogensteine", pc.getqf("Regenbogensteine")+1)
			pc.remove_item(50512, 1)
		end
	end
end
Quote:
Originally Posted by IceCreamx3 View Post
Ich bin auf der Suche nach folgender Quest:

Sobald man das Level 10 erreicht hat wird man vom Hauptmann zu sich gerufen.
Dieser befiehlt einem 100 Monster im Gebiet Map1 zu töten.
Sobald man die 100 Mobs gekillt hat, wird man wieder zum Hauptmann gerufen & man erhält eine Belohnung.

Hoffe jemand erstellt mir die Quest - Danke!
Code:
quest haupti begin
	state start begin
		when login or levelup with pc.level>9 begin
			set_state(information)
		end
	end
	state information begin
		when letter begin
			local v = find_npc_by_vnum(20355)
			if v != 0 then
				target.vid("Target1", v, "Hauptmann")
			end
			send_letter("Hauptmann braucht dich!")
		end
		when button or info begin
			say_title("Hauptmann braucht dich!")
			say("")
			say("Begib dich schnellstmöglich zum")
			say("Hauptmann und sprich mit ihm.")
			say("")
			say_reward("Sprich mit dem Hauptmann")
			say("")
		end
		when Target1.target.click or 20355.chat."Ich brauche dich!" begin
			target.delete("Target1")
			say_title("Hauptmann:")
			say("Hallo,")
			say("im Dorf wüten")
			say("die Monster und")
			say("zerstören das Dorf.")
			say("Ich bitte dich 100 davon")
			say("in Map1 zu töten.")
			say("")
			say_reward("Kill 100 Monster Map1")
			pc.setqf("kills", 0)
			set_state(monsterkill)
		end 
	end
	state monsterkill begin
		when letter begin
			send_letter("100 Monster Map1")
		end
		when button or info begin
			say_title("Hauptmann")
			say("")
			say("Der Hauptmann befahl dir, 100 Monster")
			say("in Map1 zu töten.")
			say("")
			say("Verbleibend: "..(100-pc.getqf("kills")))
		end
		when kill with not npc.is_pc() and (pc.get_map_index()==1 or pc.get_map_index()==21 or pc.get_map_index()==41) begin
			if pc.getqf("kills") >= 100 then
				set_state(monsterfinish)
			else
				pc.setqf("kills",pc.getqf("kills")+1)
				q.set_counter("Verbleibend", 100-pc.getqf("kills"))
			end
		end
	end
	state monsterfinish begin
		when letter begin
			local v = find_npc_by_vnum(20355)
			if v != 0 then
				target.vid("Target2", v, "Hauptmann")
			end
			send_letter("Zurück zum Hauptmann!")
		end
		when button or info begin
			say_title("Zurück zum Hauptmann!")
			say("")
			say("Du hast 100 Monster erledigt!")
			say("Begib dich nun zu Hauptmann")
			say("und erzähle ihm das du's ")
			say("erledigt hast.")
			say("")
			say_reward("Gehe zurück zum Hauptmann")
		end
		when Target2.target.click or 20355.chat."Monster erledigt!" begin
			target.delete("Target2")
			say("Ich habe schon gehört was du")
			say("getan hast. Du bist tapfer!")
			say("")
			say("")
			wait()
			say_title("Belohnung")
			say("Da du die Mission erfolgreich")
			say("abgeschlossen hast, bekommst du")
			say("folgendes von mir.")
			say("")
			say_reward("1.000.000 Erfahrungspunkte")
			say_reward("7 x Konzentriertes Lesen")
			say_reward("3 Segenskugeln")
			pc.give_exp2(1000000)
			pc.give_item2(39030, 7)
			pc.give_item2(70024, 3)
			set_state(__COMPLETE__)
		end 
	end
	state __COMPLETE__ begin
		q.done()
	end
end


Quote:
Originally Posted by ASFIREx3 View Post
Hat jemand grade ne idee wie man es ändern könnte , das man für eine Gilde erstellen anstat Yang ein bestimmtes Item braucht?
Hier noch die mit Yang.



mfg. ASFIREx3
Code:
quest guild_manage begin 
	state start begin 
		when 11000.chat."Gilde gründen" or 11002.chat."Gilde gründen" or 11004.chat."Gilde gründen" with not pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin         
			if game.get_event_flag("guild_withdraw_delay")*86400 >  
			get_global_time() - pc.getqf("new_withdraw_time") or 
			game.get_event_flag("guild_disband_delay")*86400 >  
			get_global_time() - pc.getqf("new_disband_time")    then 
				say_title("Wächter des Dorfplatzes") 
				say("Du kannst jetzt noch keine neue Gilde gründen!") 
				say("Warte noch eine Weile!") 
				return 
			end 
			say_title("Wächter des Dorfplatzes") 
			say("Um eine neue Gilde zu gründen") 
			say("brauchst du:") 
			say("-Level 40") 
			say("- Ein Item!")  -- Item Namen eintragen
			say("Möchtest du eine Gilde gründen?") 
			local s = select("Ja", "Nein") 
			if s == 2 then 
				return 
			elseif pc.get_level()<40 then 
				say_title("Wächter des Dorfplatzes") 
				say("Du bist noch nicht Level 40.") 
				return 
			elseif pc.count_item(ItemID)<1 then -- Item ID eintragen
				say_title("Wächter des Dorfplatzes") 
				say("Du hast das Item nicht.") -- Item Namen eintragen
				return 
			end             
			game.request_make_guild() 
		end 
	end 
end
Quote:
Originally Posted by #AnymRolex* View Post
Kann da wer noch einfügen das man 250KK Yang braucht:

Code:
				say_reward("Dafür brauchst du diese Items:") 
				say_reward("ITEM") 
				say_reward("ITEM") 
				say_reward("250kk YANG") 
				say("Möchtest du tauschen?") 
				if select("Weiter", "Abbrechen") == 2 then return end
				if pc.get_money()<250000000 then syschat("Du hast nicht genug Yang") return end
				local items = {ITEM, ITEM, ITEM} 
			end
01/16/2015 03:40 #AnymRolex*#1998
Kann mir wer ne kurze funktonierende Tausch Quest schreiben?
01/16/2015 09:34 G.I Duke#1999
Quote:
Originally Posted by #AnymRolex* View Post
Kann mir wer ne kurze funktonierende Tausch Quest schreiben?
Wie soll sie denn genau aussehen?
01/16/2015 11:28 Pasha#2000
Kann mir einer die folgende quest so umschreiben, dass man die Pets mit strg und b wegschicken kann und die Bonis immernoch bleiben? Hat ja was mit der quest zu tun.
01/16/2015 15:57 .yorliK#2001
Quote:
Originally Posted by Yuroshi View Post
Kann mir einer die folgende quest so umschreiben, dass man die Pets mit strg und b wegschicken kann und die Bonis immernoch bleiben? Hat ja was mit der quest zu tun.
Das du die Pets mit Strg+B wegschickst, musst du Clientside (Client-Quest-Kommunikation) regeln oder im Source das du dir nen net. Befehl für'n Client schreibst..
01/16/2015 21:00 rollback#2002
Quote:
Originally Posted by Kilroy. View Post
Das du die Pets mit Strg+B wegschickst, musst du Clientside (Client-Quest-Kommunikation) regeln oder im Source das du dir nen net. Befehl für'n Client schreibst..
er will ja dass die pets nicht wirklich weggeschickt werden sondern nur, dass sie unsichtbar sind (die bonis sollen ja bleiben) also sollte es auch ohne client-quest kommunikation gehen (strg + b = pet.hide oder so :D)
01/16/2015 21:54 #AnymRolex*#2003
Also die Tauschquest soll etwa so aussehen:

Man klickt auf den NPC , er sagt etwas erstmal, dann wählt man aus was man haben möchte, danach zeigt er an was man dafür braucht dann fragt er Weiter or Schließen.
So in etwa
01/16/2015 23:05 Darryus98#2004
Hallo!

Ich brauche eine Quest in dem man ab level 30 ein VMS mit 40 DSS.
So viel ich verstanden habe klappt es ab r34k und r40k.
Es wäre nett wenn jemand beide machen konnte :D
01/17/2015 11:15 .yorliK#2005
Quote:
Originally Posted by [Sensenmann] View Post
er will ja dass die pets nicht wirklich weggeschickt werden sondern nur, dass sie unsichtbar sind (die bonis sollen ja bleiben) also sollte es auch ohne client-quest kommunikation gehen (strg + b = pet.hide oder so :D)
Ich denke nicht, das die beim wegschicken bleiben sollen, ich denke eher das er meint das die Bonis so bleiben wie sie in der Quest sind und man nur die Quest verändern soll ohne die Bonis zu verändern.


Quote:
Originally Posted by Darryus98 View Post
Hallo!

Ich brauche eine Quest in dem man ab level 30 ein VMS mit 40 DSS.
So viel ich verstanden habe klappt es ab r34k und r40k.
Es wäre nett wenn jemand beide machen konnte :D

Quote:
Originally Posted by #AnymRolex* View Post
Also die Tauschquest soll etwa so aussehen:

Man klickt auf den NPC , er sagt etwas erstmal, dann wählt man aus was man haben möchte, danach zeigt er an was man dafür braucht dann fragt er Weiter or Schließen.
So in etwa
Füg diese Funktion in der questlib.lua hinzu und in die quest_functions schreibste select3
dazu noch deine Quest:
01/17/2015 16:14 #AnymRolex*#2006
@Kilory. erstmal danke für die Quest , nur hab ich jetz ein Problem möchte es so machen das man viele Items geben muss damit man ein anderes Item erhaltet.
01/17/2015 16:16 'Mahone#2007
Quote:
Originally Posted by [Sensenmann] View Post
er will ja dass die pets nicht wirklich weggeschickt werden sondern nur, dass sie unsichtbar sind (die bonis sollen ja bleiben) also sollte es auch ohne client-quest kommunikation gehen (strg + b = pet.hide oder so :D)
Und wie soll die Quest den Tastendruck registrieren?
Eine Quest ist nur serverside
Ohne Client-Quest-Kommunikation läuft da rein gar nichts
01/17/2015 17:19 Supermgking#2008
Kann mir jemand die Quest so umschreiben das man nicht alle 5 aufeinmal erhält sondern
1/5 von denn items in einer gewissen % chance ?
Quest
bitte
01/17/2015 17:21 .yorliK#2009
Quote:
Originally Posted by #AnymRolex* View Post
@Kilory. erstmal danke für die Quest , nur hab ich jetz ein Problem möchte es so machen das man viele Items geben muss damit man ein anderes Item erhaltet.
Ich rate dir eine vorhandene Tabelle zu kopieren und nicht eine neue selber anzulegen^^

[Only registered and activated users can see links. Click Here To Register...]
Code:
quest tsquest begin
	state start begin
		when 20011.chat."Tauschen" begin
			say_title("Sagen")
			say("")
			say("Sagen")
			say("Sagen")
			say("Sagen")
			say("Sagen")
			say("sagen")
			wait()
			say_title("Sagen")
			TRADE_ITEMS = { --{ BekommItem, Anzahl, GebItem, Anzahl} 
							{ 469, 1, {
										{30003, 5},
										{30005, 5},
										{30006, 5}
									}
							},
							{ 19, 1, {
										{30003, 5},
										{30005, 5}
									}
							},
							{ 19, 1, {
										{30003, 5},
										{30005, 5}
									}
							}
						}
			namen = {}
			for i=1, table.getn(TRADE_ITEMS), 1 do
				table.insert(namen, TRADE_ITEMS[i][2].."x "..item_name(TRADE_ITEMS[i][1]))
			end
			s = select3(namen)
			if s<1 then return end
			say_title(item_name(TRADE_ITEMS[s][1]))
			say("")
			say("Dafür brauchst du:")
			for i=1, table.getn(TRADE_ITEMS[s][3]), 1 do
				say_reward(TRADE_ITEMS[s][3][i][2].."-Mal "..item_name(TRADE_ITEMS[s][3][i][1])..",")
			end
			say("")
			say("Möchtest du tauschen?")
			say("")
			if select("Ja","Nein")==2 then return end
			for i=1, table.getn(TRADE_ITEMS[s][3]), 1 do
				if pc.count_item(TRADE_ITEMS[s][3][i][1])<TRADE_ITEMS[s][3][i][2] then syschat("Nicht genug") return end
			end
			pc.give_item2(TRADE_ITEMS[s][1], TRADE_ITEMS[s][2])
			for i=1, table.getn(TRADE_ITEMS[s][3]), 1 do
				pc.remove_item(TRADE_ITEMS[s][3][i][1], TRADE_ITEMS[s][3][i][2])
			end
		end
	end
end
01/17/2015 19:45 Dev'Malum#2010
Quote:
Originally Posted by ASFIREx3 View Post
Hat jemand grade ne idee wie man es ändern könnte , das man für eine Gilde erstellen anstat Yang ein bestimmtes Item braucht?
Hier noch die mit Yang.



mfg. ASFIREx3
Versuch mal diese Quest: [Bin kein Quester aber sollte richtig sein]
PHP Code:
quest guild_manage begin
    state start begin
        when 11000.chat
."Gilde gründen" or 11002.chat."Gilde gründen" or 11004.chat."Gilde gründen" with not pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin        
            
if game.get_event_flag("guild_withdraw_delay")*86400 
            
get_global_time() - pc.getqf("new_withdraw_time") or
            
game.get_event_flag("guild_disband_delay")*86400 
            
get_global_time() - pc.getqf("new_disband_time")    then
                say_title
("Wächter des Dorfplatzes")
                
say("Du kannst jetzt noch keine neue Gilde gründen!")
                
say("Warte noch eine Weile!")
                return
            
end
            say_title
("Wächter des Dorfplatzes")
            
say("Um eine neue Gilde zu gründen")
            
say("brauchst du:")
            
say("-Level 40")
            
say("-Schwert+9")
            
say("Möchtest du eine Gilde gründen?")
            
local s select("Ja""Nein")
            if 
== 2 then
                
return
            elseif 
pc.get_level()<40 then
                say_title
("Wächter des Dorfplatzes")
                
say("Du bist noch nicht Level 40.")
                return
            elseif 
pc.count_item()<19 then
                say_title
("Wächter des Dorfplatzes")
                
say("Du hast keine Schwert+9")
                return
            
end            
            game
.request_make_guild()
        
end
    end
end