[SERVICE] Die Questkontrolle

08/19/2010 22:07 westilein#136
Code:
quest Auftrag des mächtigen Reiters begin
	state start begin
		when login or levelup or enter with pc.get_level() >= 60 begin
			setstate( gototeacher )
		end
	end
	state gototeacher begin
		when letter begin
			send_letter("Kampf um eine Pferdemedalie")

			local v=find_npc_by_vnum(20349)
			if 0==v then
			else
				target.vid("__TARGET__", v, "Gehe zu ")
			end
		end
		when button or info begin
            say_title(":")
			say("Hallo Tapferer K\195\164mpfer, ich schaue dir schon lange zu und bin beeindruckt von deinen K\195\188nsten. Da ich tapfere Leute brauchen die mir helfen m\195\182chte ich dich unter Beweis stellen.
[ENTER]Bitte gehe zum Stallburschen er wird dir alles erkl\195\164ren.")
		end
		when __TARGET__.target.click begin
			target.delete("__TARGET__")

			say_title(":")                                            l
            say("Hallo Tapferer k\195\164mpfer wie ich sehe schickt dich mein Freund. Er hat mir gesagt das ein K\195\164mpfer zu mir kommen wird und ich ihm eine Aufgabe geben soll die selbst den Tapfersten Krieger in die Verzweiflung bringt.")
            wait()
            say("Bitte gehe ind das Affendungeon und t\195\182te f\195\188r mich 1 Affenboss. Wenn du das erledigt hast komm zu mir zur\195\188ck. Aber bitte pass auf er ist sehr stark.")
			say_reward("T\195\182te 1 Affenboss")
			say("")
			set_state(kill)	

			pc.setqf("state", 0)
			q.set_counter("Restanzahl ", 0)
		end

	end

	state kill begin
		when letter begin
			send_letter("")
		end
		when button or info begin
			say_title(":")
			say("Du musst 5  t\195\182ten")
			say("")

			say_reward(..pc.getqf("state").." von 5 der Art   get\195\182tet")
			say("")
		end
		when 5163.kill begin
			local count = pc.getqf("state") + 1

			if count <= 5 then
				pc.setqf("state", count)
				q.set_counter("Restanzahl ", 10 - count)

				if count == 5 then
					say_title(":")
					say("")
                    say("Komm nun bitte zu mir.")
					set_state(gototeacher2)
				end
			end
		end
		when 20349.chat." Jagen erledigt." with pc.getf("main_quest_lv2","state") < 10 begin
			say_title(":")
            say("")

			if pc.is_gm() then
				wait()
				say_title(":")
				say("Aufgabe \195\188berspringen?")
				local s = select("Ja", "Nein")
				if s == 1 then
					set_state(gototeacher2)
				end
			end
		end
		when 20349.chat." Jagen erledigt." with pc.getf("main_quest_lv2","state") >= 10 begin
			say_title(":")
			say("Sei gegr\195\188st starker Krieger.
[ENTER]Wie ich sehe hast du ihn erledigt du bist wohl ein Tapferer K\195\164mpfer. Dadurch das du dein leben reskiert hast um uns etwas zu beweisen sollst du nat\195\188rlich auch belohnt werden. Durch die Kraft des m\195\164chtigen Reiters werde ich dein Pferd auf das level 10 erh\195\182hen. Nat\195\188rlich bekommst du auch Yang, EXP und eine Truhe.")
			set_state(gototeacher2)
		end
	end
	state gototeacher2 begin
		when letter begin
			local v=find_npc_by_vnum(20349)
			if 0==v then
			else
				target.vid("__TARGET__", v, "Gehe zu ")
			end
		end
		when letter begin
			send_letter("Gehe in das Affendungeon")
		end
		when button or info begin
			say_title("Gehe in das Affendungeon")
			say("Begebe dich in das Affendungeon und t\195\182te 1 Affenboss.")
		end
		when __TARGET__.target.click begin
			target.delete("__TARGET__")
			say("Begebe dich in das Affendungeon und t\195\182te 1 Affenboss.")
                        say_reward("EXP 15000000")
			pc.give_exp2( 15000000 )
            			set_quest_state("levelup","run") 
						pc.change_money( 1500000 )
            say_reward("Yang 1500000")
            					       )
              say_reward("Einige Gegenstaende")
            					       )
              say_reward("Pferd Level 10")
            			clear_letter()
			set_state( __COMPLETE__ )

			pc.setqf("state", 0) 
		end
	end
	state __COMPLETE__ begin
	end
end
08/19/2010 22:42 IgorGlock#137
Quote:
Originally Posted by sennah View Post
You missed some ends!! make sure you place an end after each if and when statement
should work now
hmmn... it doesn't work :-(

now it's:

PHP Code:
------------------------------------
-- 
Quest by IgorGlock incBugs :D
------------------------------------
quest pvpmassaker begin
    state start begin
    when login begin
        
if game.get_event_flag("pvpmassaker") == 1 then
            
if pc.getempire() == 1 then
                pc
.warp(118945917970)
                
set_state(information)
            elseif 
pc.getempire() == 2 then
                pc
.warp(121166219706)
                
set_state(information)
            elseif 
pc.getempire() == 3 then
                pc
.warp(119595144126)
                
set_state(information)
            
end
        end
    end
    end
        state information begin
            when letter begin
            send_letter
("Teilnehmen")
            
end

            when info 
or button begin
            say
("Hallo leiber Spieler!")
            
say("Unsere Nachbarn aus anderen Reich wollen ihre Wut")
            
say("an jemanden von uns auslassen.")
            
say("Versuch' dich zu währen und")
            
say_reward("Töte 50 Gegner")
            
say("")
            
pc.setqf("state"50)
            
q.set_counter(""50)
            
end

            when kill begin
                
if npc.is_pc() and npc.empire != pc.empire then
                local count 
pc.getqf("state") - 1
                end
            
if count <= 50 then
                pc
.setqf("state"count)
                
q.set_counter(""count)
                
chat("du hast bereits ..( pc.getqf("state") ).. Spielr getötet!")
            
end
            
if count == 0 then
                say_title
("Abgeräumt!")
                
say("Du hast erfolgreich das Kampffeld abgeräumt!")
                
say("Du erhälst:")
                
say_reward("10x Segenskugeln")
                
say_reward("und")
                
say_reward("2x Zombieköpfe")
                
say_reward("Außerdem:")
                
say_reward("paar Rangpunkte")
                
pc.change_alignment(24000)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(700241)
                
pc.give_item2(303051)
                
pc.give_item2(303051)
                
clear_letter()
                
set_state(__COMPLETE__)
            
end

    when 11001.chat
."PvP Massaker Event Verwaltung" or 11003.chat."PvP Massaker Event Verwaltung" or 11005.chat."PvP Massaker Event Verwaltung" with pc.is_gm() begin
        
        local s 
select("PvP Massaker Event starten" "PvP Massaker Event beenden" );
        if 
== 1 then

            game
.set_event_flag("pvpmassaker",1)
            
notice_all("PvP Massaker Event startet!")
            
notice_all("Begebt euch alle schwachen zum Schlachtenverwalter!" )
        else    
            
game.set_event_flag("pvpmassaker",0)
            
notice_all("PvP Massaker Event endet!")
            
notice_all("Wir hoffen es hat Spaß gemacht.")
        
end
end
    state __COMPLETE__ begin
    end
end 
^ who can help? ;-)
Wer hilft?
08/19/2010 22:43 sennah#138
what error you get?
08/19/2010 23:06 IgorGlock#139
Quote:
Originally Posted by sennah View Post
what error you get?
your quest have to many ends...

my quest doesn't work...

Quote:
TestServer# sh make2
QUEST : pvpmassaker
STATE : start
WHEN : login
WHEN : kill
qc in malloc(): error: allocation failed
Abort trap (core dumped)
08/19/2010 23:38 Ep!cFail#140
Quote:
Originally Posted by IgorGlock View Post
your quest have to many ends...

my quest doesn't work...

Hier deine Quest Igor, dein Fehler lag einfach nur hierdrin :

PHP Code:
                chat("du hast bereits "..( pc.getqf("state") ).." Spieler getötet!"
Du hast die Anführungsstriche vergessen + Allgemein ein paar end's... siehe hier:
PHP Code:
                chat("du hast bereits ..( pc.getqf("state") ).. Spieler getötet!"
Hier deine komplette Quest:


@westilein hier deine Quest.
Da es nicht meine Aufgabe ist die Quest "richtig zu setzten" von den Zeilen wirst du das selbst machen müssen.

@jumpstyler31: Hier ist deine neue Gaul Quest:


Greetins Ep!c
08/20/2010 01:07 Megaload#141
Quote:
Originally Posted by Ep!cFail View Post
#Dann mal auf eine gute zusammenarbeit ;)

€dit: Ich hätte dann auch nochmal eine kleine Frage im Nachhinein und zwar folgendes, es muss doch i wo verankert sein das das Bündel(50200) den Shop öffnet, nur hab ich das in keiner Quest bisher gefundne oder sonst wo, egal wo ich suche ich finde nicht. Ich habe probiert eine Quest zu schreiben, welche beinhaltet das wenn man den shop öffnet. Folgende Versuche sind fehlgeschlagen, es sind jeweils nur die anfänge der Rest der Quest war unwichtig...


Mir fällt mitlerweile nichts mehr ein was ich noch probieren könnte... Vielleiht hat jmd ne Idee.


GreeZ
versuch mal ganz einfache Abfrage like
if npc.is_pc and npc.open_shop begin blabla
08/20/2010 01:24 jumpstyle31#142
Die quest geht immernoch nicht! <.< Es kommt zwar die Questrolle.. Aber leider kommt keine Meldung wenn ich den Hungrigen Wildhund töte.
08/20/2010 01:28 Ep!cFail#143
Quote:
Originally Posted by jumpstyle31 View Post
Die quest geht immernoch nicht! <.< Es kommt zwar die Questrolle.. Aber leider kommt keine Meldung wenn ich den Hungrigen Wildhund töte.
Ich hab es selbst auf meinem Server getestet und es geht!

Wenn man sich einloggt kommt eine Questrolle wenn man diese angeklickt hat und danach einen Hund töte kommt ein Fenster mit dem Text drine.

Wenn du es nicht hinbekommst kann ich dir auch nicht weiter helfen.


GreeZ Ep!c
08/20/2010 01:57 jumpstyle31#144
Quote:
Originally Posted by Ep!cFail View Post
Ich hab es selbst auf meinem Server getestet und es geht!

Wenn man sich einloggt kommt eine Questrolle wenn man diese angeklickt hat und danach einen Hund töte kommt ein Fenster mit dem Text drine.

Wenn du es nicht hinbekommst kann ich dir auch nicht weiter helfen.


GreeZ Ep!c

Ah.. jetzt gehts.. nur.. man sollte das Pferde-Level erhöhen bevor das Questfenster kommt.. weil sonst dort Pferd Level 2.. und gleich darauf wird das Pferd Level 3 gemacht..

Es sollte so sein:

Pferd wird Level 3 gemacht

Dann wird angezeigt dass das Pferd Level 3 ist..

Mfg Jumpstyle31
08/20/2010 02:42 Ep!cFail#145
Quote:
Originally Posted by jumpstyle31 View Post
Ah.. jetzt gehts.. nur.. man sollte das Pferde-Level erhöhen bevor das Questfenster kommt.. weil sonst dort Pferd Level 2.. und gleich darauf wird das Pferd Level 3 gemacht..

Es sollte so sein:

Pferd wird Level 3 gemacht

Dann wird angezeigt dass das Pferd Level 3 ist..

Mfg Jumpstyle31

Einfach "umsetzn" und zwar folgender maßen

PHP Code:
state kill begin
        when 171.kill begin            
            
if  horse.get_level() <= 11 then 
                say_title
("Pferd")
                
say("Du hast einen hungrigen Wildhund getötet")
                
say("Somit wird dein Pferd jetzt um 1 Level erhöt")
                
say("Dein Pferd ist Level "..horse.get_level().." ")
                
say("Töte hungrige Wildhunde bis dein Pferd Level 11")
                
say("erreicht hat")
                
say("Viel Spass")
                
horse.advance()
            
end
            
if  horse.get_level() >= 11 then 
                setstate
(fertig)
            
end
        end
    end 
in

PHP Code:
state kill begin
        when 171.kill begin            
            
if  horse.get_level() <= 11 then 
                horse
.advance()
                
say_title("Pferd")
                
say("Du hast einen hungrigen Wildhund getötet")
                
say("Somit wird dein Pferd jetzt um 1 Level erhöt")
                
say("Dein Pferd ist Level "..horse.get_level().." ")
                
say("Töte hungrige Wildhunde bis dein Pferd Level 11")
                
say("erreicht hat")
                
say("Viel Spass")
            
end
            
if  horse.get_level() >= 11 then 
                setstate
(fertig)
            
end
        end
    end 
Greetins
Ep!c
08/20/2010 10:07 xXPCxSuchtiXx#146
Hallo zusammen,
Ich habe ein Problem mit dem Waffenhändler er ist leer und zeigt mir NICHTS an,
deshalb wollte ich fragen was ich hier falsch gemacht habe.
08/20/2010 10:45 PangerLenis#147
Quote:
Originally Posted by xXPCxSuchtiXx View Post
Hallo zusammen,
Ich habe ein Problem mit dem Waffenhändler er ist leer und zeigt mir NICHTS an,
deshalb wollte ich fragen was ich hier falsch gemacht habe.
Du hast beim Shop 6182 ein "end" vergessen!


quest npc_shop begin
state start begin

when 9001.chat."Waffen ab Lvl 0" begin
npc.open_shop(6181)
say("Hier findest du alle Waffen ab Lvl 0.")
end
when 9001.chat."Waffen ab Lvl 20" begin
npc.open_shop(6182)
say("Hier findest du alle Waffen ab Lvl 20.")
end
when 9001.chat."65er Waffen" begin
npc.open_shop(6185)
say("Hier findest du alle 65er Waffen.")
end
when 9001.chat."Pfeile" begin
npc.open_shop(6)
say("Hier findest du alle Pfeile.")
end
end
08/20/2010 10:58 xXPCxSuchtiXx#148
Danke ;)
08/20/2010 11:41 Ep!cFail#149
Quote:
Originally Posted by PangerLenis View Post
Du hast beim Shop 6182 ein "end" vergessen!


quest npc_shop begin
state start begin

when 9001.chat."Waffen ab Lvl 0" begin
npc.open_shop(6181)
say("Hier findest du alle Waffen ab Lvl 0.")
end
when 9001.chat."Waffen ab Lvl 20" begin
npc.open_shop(6182)
say("Hier findest du alle Waffen ab Lvl 20.")
end
when 9001.chat."65er Waffen" begin
npc.open_shop(6185)
say("Hier findest du alle 65er Waffen.")
end
when 9001.chat."Pfeile" begin
npc.open_shop(6)
say("Hier findest du alle Pfeile.")
end
end

Ich würd es trotzalledem so machen, da die Shop Namen den Inhalt ja von selbst erklären braucht man nicht noch einen extra Text.


Greetins
08/20/2010 12:51 PangerLenis#150
Quote:
Originally Posted by Ep!cFail View Post
Ich würd es trotzalledem so machen, da die Shop Namen den Inhalt ja von selbst erklären braucht man nicht noch einen extra Text.


Greetins
wenn er es so haben will, dann soll er es so haben ;D