[SERVICE] Die Questkontrolle

10/20/2010 19:42 Joey.#751
Core könntest du mal meine Quest bitte überarbeiten das keine Fehler mehr drinne sind?
10/20/2010 19:45 CoreDump#752
frag doch Shannonfan
ich hab da keine lust drauf mit deinen "[ENTER]" und deinen fehlern.
ne ich mach das ganz sicher nicht. von wem hast du quest schreiben ""gelernt""?
10/20/2010 19:45 Joey.#753
Das ist von einem Tool...

Von lolkid...
10/20/2010 19:49 .Alessa#754
@Hardcoreboon:
PHP Code:
quest start_warp begin 
    state start begin 
        when login begin
            local empire 
pc.get_empire()
            if 
empire == 1 then
                pc
.warp(447941923246)
                
setstate(ok)
                
setskin(NOWINDOW)
            elseif 
empire == 2 then 
                pc
.warp(447941923246)
                
setstate(ok)
                
setskin(NOWINDOW)
            else 
                
pc.warp(447941923246)
                
setstate(ok)
                
setskin(NOWINDOW)
            
end
        end
    end 
    state ok begin
    end
end 
War bei dir ein drunter und drüber für mich^^ So müsste es aber nun gehen.


@CoreDump:
Jaja, mich wieder die Drecksarbeit machen lassen :D Naja okay, ich editier gleich fixed Version rein.
10/20/2010 19:57 Joey.#755
Danke.

Hoffe nicht das es zuviel Aufwand ist.
10/20/2010 20:09 .Alessa#756
Ist es nicht, ich bin fertig.

PHP Code:
quest Die Rufe der Schlacht begin 
    state start begin 
        when login 
or levelup with pc.get_level() >= 86 begin 
            setstate
gototeacher 
        
end 
    end 
    state gototeacher begin 
        when letter begin 
            send_letter
("Der Ruf des Dämon"
            
local v=find_npc_by_vnum(20011
            if 
0==v then 
            
else 
                
target.vid("__TARGET__"v"Gehe zu Uriel"
            
end 
        end 
        when button 
or info begin 
            say_title
("Uriel:"
            
say("Hallo mutiger Krieger, wie du sicher weißt,")
            
say("gibt es seit einigen Jahren die Probleme am Berg der Dämonen.")
            
say("Nun ist es passiert, dass das Siegel gebrochen wurde.")
            
say("Die Dämonen strömen nun aus!")
        
end 
        when __TARGET__
.target.click begin 
            target
.delete("__TARGET__"

            
say_title("Uriel:")
            
say("Hallo Krieger,")
            
say("es ist nun so weit..")
            
say("Die Dämonen sind auf dem Vormarsch.")
            
say("Die Dämonen sind schon fast in der Stadt!")
            
wait() 
            
say("Sie sind tatsächlich so weit vorgestoßen!")
            
say_reward("Ich bitte dich um einen Gefallen!")
            
say_reward("Töte den Sensenmann!")
            
say_reward("Er haust im obersten Stockwerk des Dämonenturms.")
            
say_reward("Du hast einen weiten Weg vor dir, Abenteurer.")
            
say(""
            
set_state(kill)     
            
pc.setqf("killen"0)
        
end 
    end 

    state kill begin 
        when letter begin 
            send_letter
("Töte den Sensenmann"
        
end 
        when button 
or info begin 
            say_title
("Auftrag:"
            
say("Du musst 1 Sensenmann töten"
            
say("")
            
say_reward("Du hast "..pc.getqf("killen").." von 1 getötet."
            
say(""
        
end 
        when 1093.kill begin 
            
if pc.getqf("killen") == 0 then
                pc
.setqf("killen"pc.getqf("killen")+1)
                
say_title("Uriel:"
                
say(""
                
say("Komm nun bitte zu mir."
                
set_state(gototeacher2
            else
            
end
        end 
        when 20011.chat
."Sensenmann Jagen erledigt." with pc.getf("killen") == 0 begin 
            say_title
("Uriel:")
            
say("Der Sensenmann ist noch nicht tot.")
            
say("Geh und töte den Sensenmann!"
            if 
pc.is_gm() then 
                wait
() 
                
say_title("Uriel:"
                
say("Aufgabe überspringen?"
                
local s select("Überspringen""Abbrechen"
                if 
== 1 then 
                    set_state
(gototeacher2
                else
                return
                
end
            
else
            return
            
end 
        end 
        when 20011.chat
."Sensenmann Jagen erledigt." with pc.getf("killen") == 1 begin 
            say_title
("Uriel:"
            
say("Die Schlacht ist gewonnen.")
            
say("Wir haben gesiegt!")
            
set_state(gototeacher2
        
end 
    end 
    state gototeacher2 begin 
        when letter begin
            send_letter
("Der Dämon")
            
local v=find_npc_by_vnum(20011
            if 
0==v then 
            
else 
                
target.vid("__TARGET__"v"Gehe zu Uriel"
            
end 
        end 
        when button 
or info begin 
            say_title
("Der Dämon"
            
say("Der Sensenmann ist gefallen.")
            
say("Kehre zu Uriel zurück und lass dich belohnen!")
        
end 
        when __TARGET__
.target.click begin 
            target
.delete("__TARGET__"
            
say("Der Sensenmann ist gefallen.")
            
say("Vielen dank für deine Arbeit!")
            
say_reward("EXP 700000000")
            
say_reward("Yang 10000000")
            
say_reward("Metinstein (Schwer) 50 mal")
            
say_reward("Pferd Level 30")
            
pc.give_exp2700000000 )
            
pc.change_money10000000 )
            
clear_letter()
            
set_state(COMPLETE)
        
end 
    end 
    state COMPLETE begin 
    end 
end 
Ich muss dich aber noch warnen. Ich habe bisher noch nicht genug Erfahrung gesammelt, um zu sagen, dass die Quest hier 100% funktioniert: Sie sollte jedenfalls. Schwerwiegende Fehler müssten nun alle weg sein.

Eine Sache muss ich aber nun anmerken: Die Belohnung. In der Belohnung steht, man bekäme Yang, Exp, Pferd Level 30 und Rufrolle für Metinstein Schwer. Eingestellt wurde aber nur die Belohnung, dass man Exp und Yang bekommt. Auch würde ich dir immer empfehlen, die Belohnungen ganz zum Schluss kommen zu lassen. Bei der Quest ist jetzt zwar kein langer Dialog am Ende, aber sollte das mal vorkommen, so könnten sich Spieler ganz Leicht ihre Belohnungen buggen. Also: Belohnung nur zum Schluss und nur an einem Stück, vorallem kein wait() dazwischen.

Richtig harte Fehler waren zum Beispiel, da du ja die Quest größtenteils abkopiert hast, dass noch Questfiles abgefragt werden, die nie gesetzt wurden. In einem Teil wird nach main_quest_lv2 gefragt. Ich erinnere mich aber nicht, dass du jemals die Questfile so gesetzt hast ;-)
Wenn du abkopierst, solltest du die Quest auch anpassen und verstehen. Sonst nutzt dir kein Abkopieren der Welt etwas.
10/20/2010 20:10 Bastler2#757
habs genau so wei Shannonfan es beschreiben hab rein aber es passiert wiedermal nix -.-
10/20/2010 20:15 Joey.#758
Meldung:

Quote:
quest dosen't have begin-end clause.(Rufe)
RufderSchlacht.quest:1:Abort trap (core dumped)
10/20/2010 20:20 CoreDump#759
habs schon mehrmals gesagt! quest wurde in der 1. zeile abgebrochen.
fehler: questfile darf KEIN LEERZEICHEN enthalten
10/20/2010 20:24 Joey.#760
Dann schreib mal bitte rein wie die aussehen soll...

Kenne mich damit nicht aus...
10/20/2010 21:05 .Alessa#761
Ah Verzeihung, CoreDump. Da habe ich nicht aufgepasst und doch glatt den ersten Befehl übersehen...

Müsste dann wenn schon denn schon "quest Die_Rufe_Der_Schlacht begin" heißen.

@Bastler2:
Für dich würde ich sowieso eher die Quest hier empfehlen:
PHP Code:
quest admin_warp begin  
    state start begin  
        when login with pc
.is_gm()  
            
set_state(run)  
        
end  
    end  
    state run begin  
        when login begin  
            send_letter
"Admin Panel" )  
        
end  
        when button 
or info begin  
            say_title
"Admin Panel" )  
            
local e select("Blaues Reich Map 1""Blaues Reich Map 2""Abbrechen")  
            if 
== 1 then  
                pc
.warp(447941923246)  
            elseif 
== 2 then  
                pc
.warp(447941923246)  
            elseif 
== 3 then  
                
return  
            
end  
        end  
    end  
end 
Das wäre nun das Einzige, was mir dazu noch einfallen könnte.
10/20/2010 21:23 Bastler2#762
hab ich vielleicht i-was falösch gemacht ..... beim einbinden hab die in hongkong_list unten noch mit reingepackt und des wars und den quest halt ins gleiche verzeichniss geladen aber sonst i-was ?????


mfg BasTiii
10/20/2010 21:40 Joey.#763
Toll...
Habe jetzt 5 neue gemacht und überall.
´quest´ nicht gefunden oder so...
10/20/2010 21:52 CoreDump#764
PHP Code:
when login begin
  send_letter
"Admin Panel" 
versuchs mal mit
PHP Code:
when letter begin
  send_letter
"Admin Panel" 
du hast doch gesagt das fenster kommt nicht oder?
10/20/2010 22:02 .Alessa#765
@CoreDump:
Er hatte vorher das "when letter begin", aber das hat iwie nicht hingehauen. Und ja, es kommt bei ihm nicht die Schriftrolle links, wobe ich sowieso es lieber in ein Item reinstecken würde.