[SERVICE] Die Questkontrolle

10/08/2010 14:31 chiller_miller#601
Quote:
quest npc_shop begin
state start begin

when 9010.chat."FBs Krieger" begin
npc.open_shop(2934)
say("Hier findest du Krieger FBs")
end
when 9010.chat."FBs Ninja" begin
npc.open_shop(2935)
say("Hier findest du Ninja FBs")
end
when 9010.chat."FBs Sura" begin
npc.open_shop(2936)
say("Hier findest du Sura FBs")
end
when 9010.chat."FBs Schamane" begin
npc.open_shop(2937)
say("Hier findest du Schamanen FBs")
end
end
end
ist das so richtig
10/08/2010 15:07 CoreDump#602
erstmal funzts oder nicht bei dir?
wenns geht brauchst dus nicht hier reinstellen

PHP Code:
zweitens PHP-Code
drittens ich finde keinen fehler
10/08/2010 15:17 ahmadfhad#603
thanks ^_^
10/08/2010 15:35 CoreDump#604
alle sagen immer thx aber auf denn button drückt keiner
echt schwer ein danke von sich zu geben -.-
kann man ja gleich epvpers ohne thanks-button machen
10/08/2010 17:15 Benhero#605
### INFORMATION ####
CoreDump ist nun ein Kontrollör!
#################

Dammit es kein Spam ist.ahmadfad reportet wegen spam! Drück den "Thanks" button und lass solche Posts DANKE!

Greatz Benhero
10/08/2010 17:19 .Flynn.#606
Quote:
Originally Posted by ShaDoW329 View Post
wo ist der fehler?

PHP Code:
----------------------------------------------------
--
COLLECT QUEST_lv60
--METIN2 Collect Quest  
----------------------------------------------------
quest collect_quest_lv60  begin
    state start begin
    end
    state run begin
        when login 
or levelup with pc.level >= 60 and pc.level <= 90 begin
            set_state
(information)
        
end    
    end

    state information begin
        when letter begin
            local v 
find_npc_by_vnum(20084)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Bioquest")
            
end
            send_letter
("Die Forschung des Biologen 4")
        
end

        when button 
or info begin
            say_title
("Die Forschung des Biologen 4")
            
say("")
            
say("Der Biologe sucht dich!")
            
say("Gehe zu ihr.")
            
say("Er sagte, du sollst etwas für ihn tun.")
            
say("")
        
end
        
        when __TARGET__
.target.click or
            
20084.chat."Eiskugeln" begin
            target
.delete("__TARGET__")
            
say("Biologe:")
            ---                                                   
l
            say
("Ich finde es toll, wie gut du")
            
say("Mich immer unterstüzt.")
            
say("Nun brauche ich wieder deine")
            
say("Hilfe...Und zwar habe ich")
            
say("Dieses Mal etwas auf dem Berg")
            
say("Sohan gefunden! Es wäre nett,")
            
say("Wenn du mir dabei helfen könntest.")
            
wait()
            
say("Biologe:")
            
say("Wenn du mir ein weiteres Mal")
            
say("Helfen willst, dann werde ich")
            
say("Dich mit einem zauber verstärken",) 
            
say("Der dir Stärke gibt!")
            
say("Leider bin ich unerfahren und schwach,")
            
say("Sonst wäre ich selber auf die Suche nach")
            
say("Eiskugeln gegangen, aber Eisgolems beschützen sie...")
            
say("")
            
wait()
            
say("Biologe:")
            
say("Wie schon angesprochen sind die Eiskugeln")
            
say("In der Nähe von Eisgolems...")
            
say("Um genauer zu sein, kommen die")
            
say("Eiskugeln von den Eisgolems, d.h. du musst")
            
say("Ins Eisland.. Ich benötige 20 Stück.")
            
say("Bitte beeil dich, damit sie nicht schmelzen.")
            
say("")                                                                                                                                                          
            
set_state(go_to_disciple)
            
pc.setqf("duration",0)  -- ¥i¥H¸Õ¸Õªº®É¶¡
            pc
.setqf("collect_count",0)-- ¨ú±oªºª««~¼Æ¶q
            pc
.setqf("drink_drug",0) -- ³Ü°g´bÃĤôªº¸Ü1
        end
    end

    state go_to_disciple begin
        when letter begin
            send_letter
("Spezialauftrag sammle Eiskugeln!")
            
        
end
        when button 
or info begin
            say_title
("Eiskugeln")
            ---                                                   
l
            say
("")
            
say("Der Biologe gab mir den Auftrag")
            
say("Ihr 20 Eiskugeln zu holen.")
            
say("Er sagte, ich bekomme sie von")
            
say("Den Eisgolems...")
            
say("Mal sehen, vielleicht geben mir")
            
say("Die Eisgolems die Dämonenandenken.")
            
say_reward("Besorge 20 Eiskugeln von den Eisgolems.")
            
say_item_vnum(30050
            
say_reward("Du hast".." "..pc.getqf("collect_count").."abgegeben")
        
end
        
        when 71035.
use begin -- °g´bÃĤô
            
if get_time() < pc.getqf("duration"then
                say
("ÁÙ¤£¥i¥H¨Ï¥Î°g´bÃĤô")
                return
            
end
            
if pc.getqf("drink_drug")==1 then
                say
("¤w¸g¨Ï¥Î¤F1¦¸")
                return
            
end
            
if pc.count_item(30050)==0 then
                say
("Biologe:")
                
say("Du musst schon eine Eiskugel")
                
say("Dabei haben, sonst geht's nicht.")
                
say("")
                return
            
end

            item
.remove()    
            
pc.setqf("drink_drug",1)
        
end



                    
        when 20084.chat
."Eiskugeln" with pc.count_item(30050) >0   begin
            
if get_time() > pc.getqf("duration"then
                say
("Biologe:")
                ---                                                   
l
                say
("Danke!!")
                
say("Ich werde die Kugel jetzt")
                
say("Überprüfen, dann sage ich dir")
                
say("Ob ich sie untersuchen kann.")
                
say("")
                
pc.remove_item(300501)
                
pc.setqf("duration",get_time()+0*0*0)------------------22¤p®É
                wait
()
                
                
local pass_percent
                
if pc.getqf("drink_drug")==0 then
                    pass_percent
=60
                
else        
                    
pass_percent=90
                end
                
                local s
number(1,100)
                if 
s<= pass_percent  then
                   
if pc.getqf("collect_count")< 19 then     --20*Eiskugeln
                        local index 
=pc.getqf("collect_count")+
                        pc
.setqf("collect_count",index)     --¨ú±o¤@*Ó®É+
                        say
("Biologe:")
                        
say("Super, diese Eiskugel ist perfekt!")
                        
say("Du hast bis jetzt".." "..20-pc.getqf("collect_count").. "abgegeben!")
                        
say("Bring mir bitte mehr!")
                        
say("")
                        
pc.setqf("drink_drug",0)     --ÃĤôªì©l¤Æ
                        
return
                    
end
                    say
("Biologe:")
                    
say("Sehr gut, du hast alle gesammelt!")
                    
say("Ich konnte meine Untersuchungen,")
                    
say("Erfolgreich beeden!!")
                    
say("Nun benötige ich aber wieder einen Seelenstein.")
                    
say("Aurtumryus Seelenstein")
                    
say("")
                    
pc.setqf("collect_count",0)
                    
pc.setqf("drink_drug",0)    
                    
pc.setqf("duration",0
                    
set_state(key_item)
                    return
                else                                
                
say("Biologe:")
                
say("Es tut mir Leid, aber")
                
say("Diese Eiskugel ist grade geschmolzen.")
                
say("Bring mir bitte eine Neue.")
                
say("Mach schnell!")
                
say("")                   
                
pc.setqf("drink_drug",0)     --ÃĤôªì©l¤Æ
                
return
                
end
         
else
          
say("Biologe:")
          
say("Tut mir Leid...")
          
say("Aber ich habe die Untersuchungen an")
          
say("der letzten Kugel noch nicht abgeschlossen.")
          
say("")
          return
        
end

    end
end


    state key_item begin
        when letter begin
            send_letter
("Aurtumryus Seelenstein")
            
            if 
pc.count_item(30223)>0 then    
                local v 
find_npc_by_vnum(20084)
                if 
!= 0 then
                    target
.vid("__TARGET__"v"Bioquest")
                
end
            end

        end
        when button 
or info begin
            
if pc.count_item(30223) >0 then
                say_title
("Aurtumryus Seelenstein")
                
say("")
                ---                                                   
l
                say
("Der Biologe sucht dich.)
                say("
Gehe zu ihr.")
                say("")
                return
            end

            say_title("
Aurtumryus Seelenstein")
            say("")
            ---                                                   l
            say("
Du hast mir nun alle Kugel gebracht und")
            say("
Ich habe sie untersucht.")
            say("
Bring mir bitte Aurtumryus Seelenstein.")
            say_item_vnum(30223)---------- Aurtumryus Seelenstein
            say("
Der Legendäre Stein,")     
            say("
Der die Seele der Aurtumryus Adligen enthält.")
            say("")
        end
        

            
        when 1101.kill or
             1102.kill or
             1103.kill or
             1104.kill or
             1105.kill or 
             1106.kill or 
             1107.kill  begin
            local s = number(1, 500)
            if s == 1 and pc.count_item(30223)==0 then
                pc.give_item2(30223, 1)
                send_letter("
Aurtumryus Seelenstein")        
            end    
        end


        
        when __TARGET__.target.click  or
            20084.chat."
Aurtumryus Seelenstein" with pc.count_item(30223) > 0  begin
            target.delete("
__TARGET__")
            say("
Biologe:")
            say("
Du hast dir dieses Mal aber")
            say("
Sehr viel Zeit gelassenhoffe das")
            say("
Wird nächstes Mal schneller gehen!")
            say("
Nichtsdestodtrotz hast du die Aufgabe")
            say("
Bewältigthoffe du hilfst mir nächses")
            say("
Mal wieder dabei!!")
            say("
Du wirst bald von mir hören!!")
            say("")
            pc.remove_item(30223,1)
            set_state(__reward)
        end
        
    end
    
    state __reward begin
        when letter begin
            send_letter("
Infos des Biologen")
            
            local v = find_npc_by_vnum(20018)
            if v != 0 then
                target.vid("
__TARGET__", v, "Baek-Go")
            end

        end
        when button or info begin
            say_title("
Der Weg zur Belohnung")
            ---                                                   l
            say("
Die Quest des Biologen selbst")
            say("
Ist beendetgehe dir nun deine")
            say("
Belohnung bei Baek-Go abholen.")
            say("
Belohnung:")
            say("
+50 AW")
            say("")
        end
        
        when __TARGET__.target.click  or
            20018.chat."
Belohnung"  begin
            target.delete("
__TARGET__")
            say("
Baek-Go:")
            say("
Nunich kenne dich..")
            say("
Du warst doch letztes Mal auch bei mir?")
            say("
Ich erinnere mich...")
            say("
Du holst dir wieder deine Belohnung ab.")
            say("")
            say_reward("
Auftrag des Biologen erfolgreich")
            say_reward("
Beendet du erhälst deine Belohnung.")
            say_reward("
+50 Angriffswertdauerhaft.")
            
            affect.add_collect(apply.ATT_GRADE_BONUS,50,60*60*24*365*60)--¡X60¦~        
            
            clear_letter()
            set_quest_state("
collect_quest_lv70", "run")
            set_state(__complete)
        end
            
    end

    
    state __giveup__ begin
    end
    state __complete begin
    end
end 
this
10/08/2010 17:31 CoreDump#607
Code:
say("[B]Der Biologe[/B] gab mir den Auftrag")
say("[B]Ihr[/B] 20 Eiskugeln zu holen.")
is jetz ein ER oder eine SIE xD

aber bleiben wir bei der sache
also fehlermeldung hast? ich such da nutzlos in einem verdammt langen quest.

meine erster blick sagt mir du hast ein paar fehler mit den IF's

PHP Code:
say("Der Biologe sucht dich.)
say("
Gehe zu ihr.") 
spricht für sich (" vergessen)

mehr fehler habe ich bis jetzt nicht gefunden.
ABER FEHLERMELDUNG WÄRS HALT
wie oft muss man das sagen?
10/08/2010 19:51 .Flynn.#608
syntax error : [string "information"]:6: `)' expected near `Riesen'
collect_quest_lv90.quest:65:Abort trap (core dumped)
?°^^

kommt auch wenn 90 raus ist also muss es an der 60 liegen? xD
10/08/2010 21:41 CoreDump#609
du hast kein einziges wort mit "Riesen" drin
wie kann das sein?

dann gibts noch eine möglichkeit:
da es in der fehlermeldung heißt:
PHP Code:
quest collect_quest_lv60  begin
    state start begin
    end
    state run begin
        when login 
or levelup with pc.level >= 60 and pc.level <= 90 begin
            set_state
(information)
        
end    
    end 
warum schreibst du das state run hin???
du kannst doch einfach mit start weitermachen. das "run" ist in meinen augen unnötig
also:
PHP Code:
quest collect_quest_lv60  begin
    state start begin
        when login 
or levelup with pc.level >= 60 and pc.level <= 90 begin
            set_state
(information)
        
end    
    end 
ist das nicht viel einfacher so?


und überhaupt ist das die fehlermeldung vom falschen quest
du hast die vom 90er reingestellt und ich soll dir das 60er ausbessern.
du machst es einem unheimlich schwer weißt du das <.<
10/08/2010 22:19 '-SkyLiiNe-'#610
Wo ist in dieser Quets der Fehler:
10/08/2010 22:28 CoreDump#611
ohne fehlermeldung und richtigem php script kann ich dir die frage nicht beantworten
aber ich kann dir jetzt schon sagen da sind ordentlich fetzige fehler drin
da sieht man wer anfänger ist.
gibts nicht sehr viele die gut questen können
aber immerhin gibt es welche
10/08/2010 22:39 '-SkyLiiNe-'#612
Fehlermeldung bei VPC:
syntax error : [string "start"]:8: ambiguous syntax (function call x new statement) near `(´
kill_minotaurus.quest:41:ABort trap (core dumped)
Und ja ich bin noch Anfänger im Quest scripten^^
10/08/2010 22:43 CoreDump#613
den ersten fehler hab ich durch die fehlermeldung gefunden:
PHP Code:
say_title("Gut, töte den Minotaurus am Turm...")
            
set_state(kill)
            
end
        end
    
    state    kill    begin
    when    2604.kill    begin 
du hast das end für state vergessen (ca 41te zeile)

du hast if und when beendet, aber auf das state hast du nicht gesehn
10/08/2010 22:47 '-SkyLiiNe-'#614
danke ich mach nochmal make.sh moment
edit: selber fehler nur jetzt kill_minotaurus.quest:43...
10/08/2010 22:54 CoreDump#615
jetzt wirds kompliziert.
für dich
das ist der größte fehler
du sagst der quest dieser mob soll getötet werden.
aber wieviele sagst du der quest nicht.
darum weiß die quest nicht wieviele sie einstellen soll.
das haut die ganze quest zusammen