[SERVICE] Die Questkontrolle

04/04/2015 07:38 .He3o Copy™#11281
Quote:
Originally Posted by dragos2pac View Post
Code:
quest dragon_soul begin
	state start begin	
		when levelup or letter with pc.level >= 30 begin
			send_letter("Despre alchimie ")
			local v = find_npc_by_vnum(20001)
			if 0 != v then
				target.vid("__TARGET__", v, mob_name(20001))
			end
		end
	
		when info or button begin
			say("Alchimistul, cel mai deºtept dintre cetãþeni[ENTER]te cautã. Se pare cã a auzit de niºte[ENTER]cor draconis bune pentru prelucrat![ENTER]Du-te la el sã te vadã! ")
		end

		when 20001.chat."Cor draconis?! " with pc.level >= 30 begin
			target.delete("__TARGET__")
			say_title(mob_name(20001))
			say("Ah, aici erai! Am descoperit ceva remarcabil[ENTER]Cor draconis![ENTER]Cor draconis-ul este un cristal foarte valoros ºi are o putere[ENTER]nemaipomenitã. Se spune cã a fost odatã[ENTER]sufletul unui dragon. Incredibil de frumos! O sã-þi[ENTER]dau Puterea Ochiului Dragon ca sã poþi detecta[ENTER]ºi tu aceastã piatrã. Am nevoie de una pentru[ENTER]a o cerceta mai bine. ")
			set_state(state_learning)
		end
	end

	state state_learning begin
		when letter begin
			send_letter("Piatra dragonului ")
		end
		
		when info or button begin
			say("Du-te la Alchimist când gãseºti un Cor Draconis. ")
		end
		
		when 20001.chat."Piatra dragonului " begin
			say_title(mob_name(20001))
			if pc.count_item(50255) >= 1 then
				say("Felicitãri! Ai gãsit un cor draconis! Nu mã[ENTER]aºteptam sã mã crezi...[ENTER]Te rog sã ai puþina rãbdare.[ENTER]Uau. Am reuºit! împreunã![ENTER]Piatra dragon va intra direct în alchimia[ENTER]dragonului. ")
				ds.give_qualification()
				char_log(pc.get_player_id(), 'DS_QUALIFICATION', 'SUCCESS')
				local today = math.floor(get_global_time() / 86400)
				pc.setf("dragon_soul", "eye_timestamp", today)
				pc.setf("dragon_soul", "eye_left", 100)		
				set_state(state_farming)
			else			
				say("Hei, nu pierde timpul degeaba.[ENTER]Du-te pe tãrâmul dragonului în cãutarea pietrei! ")
			end
		end
	end

	state state_farming begin
		when letter begin
			send_letter("Puterea dragonului ")
		end
		
		when info or button begin
			say(string.format("Puterea ramasã: %d ", pc.getf("dragon_soul", "eye_left")))
			wait()
			send_letter("Puterea dragonului ")
		end

		when kill begin
			if npc.is_pc() then
				return
			end
			if pc.get_map_index() >= 2400000 and pc.get_map_index() <= 2405000 or pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 then
				return
			else
				if pc.getf("dragon_soul", "drop_on") == 1 then
					if drop_gamble_with_flag("ds_drop") then
						local sansa = number (1, 100)
						local eye_left = pc.getf("dragon_soul", "eye_left")
						if eye_left == 0 then
							pc.setf("dragon_soul", "drop_on", 0)
						else
							if eye_left >= 50 and sansa <= 10 or eye_left >= 25 and sansa <= 5 or eye_left < 25 and sansa <= 2 then
								game.drop_item_with_ownership(50255)
								local cor_got = pc.getf("dragon_soul", "cor_got")
								pc.setf("dragon_soul", "cor_got", cor_got + 1)
								if (cor_got + 1 == 20) then
									pc.setf("dragon_soul", "cor_got", 0)
									pc.setf("dragon_soul", "eye_left", eye_left - 1)
								end
							end
						end
					end
				end
			end
		end

		when 20001.chat."Piatra dragonului " begin
			say_title(mob_name(20001))
			local today = math.floor(get_global_time() / 86400)
			if today == pc.getf("dragon_soul", "eye_timestamp") then
				say("Bunã ziua! Aþi primit deja puterea dragonului azi.[ENTER]Procesul mã slãbeºte foarte mult, te pot ajuta[ENTER]pe zi doar o singurã datã. Vino din nou mâine! ")
			else
				say("Salut! Pun pariu cã eºti aici din cauza[ENTER]puterii dragonului. Corect? Ei bine[ENTER]ai venit unde trebuie. Mult noroc în cãutarea[ENTER] dumneavoastrã! ")
				pc.setf("dragon_soul", "eye_timestamp", today)
				pc.setf("dragon_soul", "cor_got", 0)
				pc.setf("dragon_soul", "eye_left", 100)
				pc.setf("dragon_soul", "drop_on", 1)
			end			
		end
	end
end
Please, help me! I got this error:
Code:
dragon_soul.lua:1:must start with 'quest'
just remove the "_" in ur quest title
04/04/2015 17:44 gondolator#11282
Code:
quest Sparschwein begin
	state start begin
		when login begin
			set_state(information)
		end
	end
	state information begin
		when letter begin
			send_letter("Sparschwein")
		end
		when info or button begin
		say_title("Sparschwein:")
		say("Es ist recht schwierig hier an Yang zu kommen.")
		say("Und weil die Welt nun mal ungerecht ist,")
		say("bekommen die jenigen die es schaffen 10kk anzusparen,")
		say("sogar noch eine Belohnung.")
		say("schaffst du es 10kk anzusparen? Glaub mir es wird sich lohnen")
		say("Willst du die Aufgabe annhemen?")
        local s = select("Ja","Nein keine Zeit")
        if s == 2 then
                    say("Hmm schade")
                    clear_letter()
                    set_state(aufgeben)
        else
            say("Okay los gehts!")
            say_reward("Spare bis du 10kk hast")
            set_state(sparen)
			end
		end
	end
	state sparen begin
		when letter begin
			send_letter("Sparschwein")
		end
		when info or button begin
			say_title("Sparschwein:")
			say("Status:")
			say_reward("Du hast schon "..pc.get_gold().." von 10.000.000 gespart")
		end
		if pc.get_gold()>=10000000 then
			set_state(fertig)
			end
		end
	end
	state fertig begin
		when letter begin
			send_letter("Aufgabe abgeschlossen!")
		end
		when info or button begin
			say_title("Aufgabe abgeschlossen:")
			say("Du hast es geschafft, du hast 10kk angesparrt")
			say("hier wie versprochen deine Belohnung")
			say_reward("20% provision auf dein angesparrtes Yang")
			say_reward("5 Geschenckekisten!")
			pc.give_item2(50035, 5)
			pc.get_gold()*1.2
			clear_letter()
			set_state(ende)
        end
    end

    state aufgeben begin
    end
    
    state ende begin
    end
end
Es kommt die Fehlermeldung:

Code:
expecting `when`or `funktion´
Sparschwein.quest:40:Error occured on compile Sparschwein.quest
04/04/2015 17:48 rollback#11283
Quote:
Originally Posted by gondolator View Post
Code:
quest Sparschwein begin
	state start begin
		when login begin
			set_state(information)
		end
	end
	state information begin
		when letter begin
			send_letter("Sparschwein")
		end
		when info or button begin
		say_title("Sparschwein:")
		say("Es ist recht schwierig hier an Yang zu kommen.")
		say("Und weil die Welt nun mal ungerecht ist,")
		say("bekommen die jenigen die es schaffen 10kk anzusparen,")
		say("sogar noch eine Belohnung.")
		say("schaffst du es 10kk anzusparen? Glaub mir es wird sich lohnen")
		say("Willst du die Aufgabe annhemen?")
        local s = select("Ja","Nein keine Zeit")
        if s == 2 then
                    say("Hmm schade")
                    clear_letter()
                    set_state(aufgeben)
        else
            say("Okay los gehts!")
            say_reward("Spare bis du 10kk hast")
            set_state(sparen)
			end
		end
	end
	state sparen begin
		when letter begin
			send_letter("Sparschwein")
		end
		when info or button begin
			say_title("Sparschwein:")
			say("Status:")
			say_reward("Du hast schon "..pc.get_gold().." von 10.000.000 gespart")
		end
		if pc.get_gold()>=10000000 then
			set_state(fertig)
			end
		end
	end
	state fertig begin
		when letter begin
			send_letter("Aufgabe abgeschlossen!")
		end
		when info or button begin
			say_title("Aufgabe abgeschlossen:")
			say("Du hast es geschafft, du hast 10kk angesparrt")
			say("hier wie versprochen deine Belohnung")
			say_reward("20% provision auf dein angesparrtes Yang")
			say_reward("5 Geschenckekisten!")
			pc.give_item2(50035, 5)
			pc.get_gold()*1.2
			clear_letter()
			set_state(ende)
        end
    end

    state aufgeben begin
    end
    
    state ende begin
    end
end
Es kommt die Fehlermeldung:

Code:
expecting `when`or `funktion´
Sparschwein.quest:40:Error occured on compile Sparschwein.quest
Code:
if pc.get_gold()>=10000000 then
			set_state(fertig)
			end
		end
Du brauchst an der Stelle einen Quest-Trigger (when ... begin)
04/04/2015 17:53 gondolator#11284
ok, jetzt kommt:
Code:
when doesn´t have begin end clause
04/04/2015 20:38 KΛIƬӨ#11285
Quote:
Originally Posted by gondolator View Post
ok, jetzt kommt:
Code:
when doesn´t have begin end clause
Schick mal die ganze Quest bitte und ich schaus mir schnell an. =)
04/05/2015 01:46 Backxtar#11286
Hey ich hab folgendes Problem. Ich habe einen Teleportationsring, der mich auch überall hinbringt, jedoch steht 2x weiter da.. einmal rechts am Rang und einmal unter den Warpzielen. Wenn ich rechts auf weiter klicke komme ich auf eine leere Seite. Kann ich diese Seiten befüllen, da das weiter unten etwas über das Fenster hinausragt?

Hier ein Bild:


Hier meine Quest:

04/05/2015 03:11 Rofelmau#11287
der weiter Button ist eine Funktion deines Servers (glaube in der quest.ui oder so heißt die Datei) die automatisch wenn es zu viele Buttons sind, diesen weiter Button einfügt.
Du hast 2 Möglichkeiten
1. Du sagst du willst diese Funktion nicht haben. dann musst du dass in besagter Datei auskommentieren, genaue Anleitungen gibt es mehrfach hier in epvp einfach suchen.
2. Du sagst, du nutzt diese Funktion, hierfür müsstest du dann einfach deinen selbst geschrieben weiter Button entfernen und einfach alle Button hintereinander machen, die Funktion in deinem Server, wird die Umbrüche auf nie nächste Seite automatisch machen, sofern sie richtig geschrieben ist.
04/05/2015 11:36 Backxtar#11288
:o nicht mein fachgebiet .. kann das einer ^^ die quest umschreiben? :D
04/05/2015 12:30 KΛIƬӨ#11289
Quote:
Originally Posted by Backxtar View Post
:o nicht mein fachgebiet .. kann das einer ^^ die quest umschreiben? :D
Nimm die Sensenmann Quest, oder ich schreib dir eine wenn du die nicht möchtest :>
04/05/2015 12:50 .yorliK#11290
Quote:
Originally Posted by Backxtar View Post
Hey ich hab folgendes Problem. Ich habe einen Teleportationsring, der mich auch überall hinbringt, jedoch steht 2x weiter da.. einmal rechts am Rang und einmal unter den Warpzielen. Wenn ich rechts auf weiter klicke komme ich auf eine leere Seite. Kann ich diese Seiten befüllen, da das weiter unten etwas über das Fenster hinausragt?
Warum könnt ihr ihm die Quest denn nicht einfach so umschreiben, wie er es möchte xD?

Code:
quest warpringwayne begin
	state start begin
		when 70058.use begin
			say_title("Warpring") 
			say("Wohin möchtest Du teleportiert werden?")
			local empire = pc.get_empire() 
			local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland", "Dämonenturm","Geisterwald","Roter Wald","Spinnendungeon","Grotte der Verbannung","Land der Riesen / Mini FM","Abbrechen")
			if selectmap == 1 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
				if map1select == 4 then
					return
				elseif map1select == 1 then
					pc.warp(474300, 954800)
					elseif map1select == 2 then
				pc.warp(63800, 166400)
				elseif map1select == 3 then
					pc.warp(959900, 269200)
				end
			elseif selectmap == 2 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local map2select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
				if map2select == 4 then
					return
				elseif map2select == 1 then
					pc.warp(353100, 882900)
				elseif map2select == 2 then
					pc.warp(145500, 240000)
				elseif map2select == 3 then
					pc.warp(863900, 246000)
				end
			elseif selectmap == 3 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local otselect = select("Anfang","Mitte","Abbrechen")
				if otselect == 3 then
					return
				elseif otselect == 1 then
					if empire == 1 then
						pc.warp(402100, 673900)
					elseif empire == 2 then
						pc.warp(270400, 739900)
					elseif empire == 3 then
						pc.warp(321300, 808000)
					end
				elseif otselect == 2 then
					pc.warp(332800, 745600)
				end
			elseif selectmap == 4 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local wuesteselect = select("Anfang","Mitte","Abbrechen")
				if wuesteselect == 3 then
					return
				elseif wuesteselect == 1 then
				if empire == 1 then
					pc.warp(217800, 627200)
				elseif empire == 2 then
					pc.warp(221900, 502700)
				elseif empire == 3 then
					pc.warp(344000, 502500)
				end
				elseif wuesteselect == 2 then
				pc.warp(296800, 547100)
				end
			elseif selectmap == 5 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local eisselect = select("Anfang","Mitte","Abbrechen")
				if eisselect == 3 then
					return
				elseif eisselect == 1 then
					if empire == 1 then
						pc.warp(434200, 290600)
					elseif empire == 2 then
						pc.warp(375200, 174900)
					elseif empire == 3 then
						pc.warp(491800, 173600)
					end
				elseif eisselect == 2 then
					pc.warp(436500, 215400)
				end
			elseif selectmap == 6 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local feuerselect = select("Anfang","Mitte","Abbrechen")
				if feuerselect == 3 then
					return
				elseif feuerselect == 1 then
					if empire == 1 then
						pc.warp(599400, 756300)
					elseif empire == 2 then
						pc.warp(597800, 622200)
					elseif empire == 3 then
						pc.warp(730700, 689800)
					end
				elseif feuerselect == 2 then
					pc.warp(600800, 687100)
				end
			elseif selectmap == 7 then
				pc.warp(590500,110800)
			elseif selectmap == 8 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local geisterselect = select("Anfang","Ende","Abbrechen")
				if geisterselect == 3 then
					return
				elseif geisterselect == 1 then
					pc.warp(290500,5700)
				elseif geisterselect == 2 then
					pc.warp(286400,44200)
				end
			elseif selectmap == 9 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local roterselect = select("Anfang","Ende","Abbrechen")
				if roterselect == 3 then
					return
				elseif roterselect == 1 then
					pc.warp(1119900,70800)
				elseif geisterselect == 2 then
					pc.warp(1119100,7700)
				end
			elseif selectmap == 10 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local spinnenselect = select("SD1","SD2","SD3","Abbrechen")
				if spinnenselect == 4 then
					return
				elseif spinnenselect == 1 then
					pc.warp(91700,525300)
				elseif spinnenselect == 2 then
					pc.warp(704096,464233)
				elseif spinnenselect == 3 then
					pc.warp(98400,571100)
				end
			elseif selectmap == 11 then
				say_title("Warpring") 
				say("Wohin möchtest du Teleportiert werden?")
				local grotteselect = select("Grotte1","Grotte2","Abbrechen")
				if grotteselect == 3 then
					return
				elseif grotteselect == 1 then
					pc.warp(10000,1214200)
				elseif grotteselect == 2 then
					pc.warp(153600,1203200)
				end
			elseif selectmap == 12 then
				pc.warp(827700,763400)
			elseif selectmap == 13 then
				return
			end
		end
	end
end
04/05/2015 21:45 Backxtar#11291
Danke :D die Quest scheint zu stimmen, jedoch ist schon ne weile mein Warpring nicht mehr anklickbar :( Woran liegt das?
04/05/2015 21:49 rollback#11292
Quote:
Originally Posted by Backxtar View Post
Danke :D die Quest scheint zu stimmen, jedoch ist schon ne weile mein Warpring nicht mehr anklickbar :( Woran liegt das?
Ist der Type auf 18?
04/05/2015 22:15 Backxtar#11293
Ja :(

keiner ne idee? verzweifle ..
04/06/2015 20:46 Zentu.#11294
PHP Code:
 when 70058.use begin 
in

PHP Code:
 when 70007.use begin 
umändern.

Gruß,
Zentu
04/06/2015 22:10 Backxtar#11295
Hab noch eine Frage und zwar hab ich von Sensenmann diese Quest bekommen.. er ist definitiv fähig dazu, der erste Teil der Quest klappt auch, jedoch sind die Lehrlingstruhen nicht anklickbar :(
Type is 18!