[SERVICE] Die Questkontrolle

12/30/2011 15:44 Fear *_*#4396
Gibt es einen Befehl für ein Dougen, dass die Map sozusagen abgescannt wird ob alle Mobs tot sind? und dann auf eine andere Ebene teleportiert wird
12/30/2011 15:53 xPrivate#4397
Hallo Fear,

deine Frage hört sich ziemlich nach etwas ähnlichem wie dem Dämonenturm an. Schau dir doch die Quest einmal an und versuche es dir daran abzugucken.

Mit freundlichen Grüßen

xPrivate
12/30/2011 15:59 .Delta#4398
d.set_warp_at_eliminate könnte deinen Vorstellungen entsprechen :)

Wie die function funktioniert kannst du in der dt quest sehen
12/30/2011 16:56 Endless.#4399
Kann mir bitte jemand bei der Quest von mir oben helfen?

Es kommt keine Fehlermeldung in der Konsole.. aber es passiert nichts
nach dem ich ihn anspreche.

Habe make.sh richtig ausgeführt und /reload q eingegeben und
server auch mal restartet.. :(
12/31/2011 10:38 .HC'Destrox#4400
Kommt vllt syserr wenn du drauf klickst?

Mfg
12/31/2011 12:30 Endless.#4401
Nein leider auch nicht^^ Ich weiss echt nicht woran es liegen kann, ich hab auch überall geschaut ob ich Klammer oder nen " vergessen habe und ich finde nichts :S
12/31/2011 15:02 Sp0ngeb0b ist cool#4402
PHP Code:
quest raus begin
    state start begin
        when 20093.chat
."Die Seelengrotte" begin
            say_title
("Koe-Pung")
            
say("Sei gegrüsst, "..pc.get_name().."!")
            
say("Ich bin der Wächter der Seelengrotte!")
            
say("Du scheinst stark genug zu sein dort")
            
say("gegen die Monster zu kämpfen.")
            
say("Allerdings kostet es dich 1 Blutstein")
            
say("für die Reise dort hin.")
            
say("")
            
say_reward("Möchtest du die Seelengrotte betreten?")
            
local a select("Ja""Nein lieber nicht")
            if 
== 2 then
                
return
            
end
            
if pc.count_item(30190) < 1 then
                say_title
("Koe-Pung")
                
say("Tut mir Leid, aber ohne Blutsteine")
                
say("kann ich niemanden in die Seelengrotte lassen.")
                
say("Komm wieder wenn du im Besitz von einem Blutstein")
                
say("bist.")
            
end
            
if pc.get_level() <= 74 then
                say_reward
("Leider bist du noch nicht stark genug")
                
say_reward("um diese Grotte betreten zu dürfen.")
                
say_reward("komm wieder wenn du Lv. 75 oder höher bist")
            
end
            say
("Ok. Du wärst nun teleportiert.")
            
pc.warp(01203200)
        
end
    end
end 
dann teste es mal so ;)
12/31/2011 15:26 demon195#4403
quest EXP begin
state start begin
when 20041.chat."EXP" begin
say_title("Erfahrungspunkte")
say("")
say("Du möchstest also mehr EXP?")
local v = select("Ja", "Nein")
if v == 1 then
pc.give_exp2(90000000)
elseif v == 2 then
return
end
end
end
end


hab ich was falsch gemacht?
12/31/2011 15:34 .Delta#4404
01/01/2012 21:56 .HC'Destrox#4405
Ähhm kann man iwie den pc Handle bekommen durch npc?
also
Code:
when kill with npc.get_empire() != 0 begin
   local my_pc = get_pc_handle(npc)
   chat(my_pc.get_level())
end
Geht sowas in der art?

Mfg
01/01/2012 23:53 √π.#4406
Sowas geht nicht, musst du über zwei Ecken machen um daran zu kommen, wenn du überhaupt das machen willst was ich denke xD
01/02/2012 00:03 .HC'Destrox#4407
Ich will halt das Level vom gekillten "NPC" der ein PC ist abfragen.
Mein neuer Code (Problem ist, dass er ox.execute() nicht kennt; warum nicht??):
Code:
local npc_level = os.execute('mysql player --execute=\\"SELECT `level` FROM `player` WHERE `name`='.."\\'".. npc.get_name() ..'\\"')
Das schon eher?

Mfg
01/02/2012 00:16 demon195#4408
wenn ich jetzt also 20041 ist betrunkener bürger also wenn ich den anklicke passiert rein garnichts.-.-
01/02/2012 00:35 xCh4oS#4409
PHP Code:
quest LegendaereWaffe begin
    state start begin
        when 2651.chat
."Legendäre Waffe" begin
            
if pc.get_level() <= 99 then
                say_title 
("Unbekannte Kreatur")
                
say ("Sei gegrüsst, "..pc.get_name().."!")
                
say ("")
                
say ("Wie ich sehe bist du leider noch nicht")
                
say ("bereit dafür, dir die Legendäre Waffe ")
                
say ("herzustellen!")
                
say ("Komm wieder wenn du bereit dafür bist.")
                
say ("")
                
say ("Dein Mindestlevel beträgt lv. 100!")
                
say ("")
                
say_reward ("Leider bist du noch nicht soweit")
                
say_reward ("um diese Waffe herstellen zu dürfen.")
                
say_reward ("komm wieder wenn du Lv. 100 oder höher bist")
                return
            
end    
            
if pc.get_level() >= 99 then
                say_title 
("Unbekannte Kreatur")
                
say ("Sei gegrüsst, "..pc.get_name().."!")
                
say ("")
                
say ("In meiner Heimat lernte ich eine")
                
say ("technik, um eine mächtige Waffe herzustellen !")    
                
say ("Du scheinst bereit zu sein,.")
                
say ("diese Waffe zu benutzen.")
                
say ("Alles was du benötigst:")
                
say ("")
                
say ("1x Einhandschwert-Buch")
                
say ("1x Seelenstein der Anführer")
                
say ("1x Teufelssplitter")
                
say ("1x Kristall")
                
say ("1.000.000.000 yang")
                
say ("95.000.000 EXP.")    
                
say (" ")
                
say_reward ("Möchtest du die Waffe herstellen?")
                
local a select ("Ja""Nein")
                if 
== 2 then
                    
return
                
end    
                
if == 1 then
                    set_state
(information)
                
end
            end
        end
    end    
    state information begin
        when letter begin
            send_letter
("Die legendäre Waffe")
        
end
        when button 
or info begin
            say
("Besorge nun die Items die du")
            
say("zur herstellung der Waffe brauchst")
            
set_state(information1)
        
end
    end    
    state information1 begin
        when letter begin
            send_letter
("Einhandschwert-Buch.")
        
end
        when button 
or info begin
            say
("Um das Einhandschwert-Buch zu bekommen,")
            
say("musst du 10 Metinsteine zerstören !")
            
say("")
           
say_reward("Zerstöre 10x Metin Pung-Ma.")
            
pc.setqf("metin75"10)
            
q.set_counter("Metin Pung-Ma"10)
            
set_state(killen1)
        
end
    end
    state killen1 begin
        when letter begin
            send_letter
("Vernichte die Metinsteine")
        
end
        when button 
or info begin
            say
("Du musst noch")
            
say(pc.getqf("metin75").." von 10 Metin Pung-Ma")
            
say("zerstören.")
        
end
        when 8024.kill begin
            local count 
pc.getqf("metin75") - 1
            
if count <= 10 and count >= 0 then
                pc
.setqf("metin75"count)
            
end
            
if pc.getqf("metin75") == 0 then
                set_state
(belohnung1)
            
end
        end
    end
    state belohnung1 begin
        when letter begin
            send_letter
("Du hast die Metinsteine zerstört.")
        
end
        when button 
or info begin
            say_title
("Herzlichen Glückwunsch!")
            
say("")
            
say("Hier ist deine Belohnung:")
            
say("")
            
say_reward("1x Einhandschwert-Buch")
            
pc.give_item2(700331)
            
set_state(information2)        
        
end
    end
    state information2 begin
        when letter begin
            send_letter
("Seelenstein der Anführer.")
        
end
        when button 
or info begin
            say
("Um den Seelenstein zu bekommen,")
            
say("musst du 10 Metinsteine zerstören !")
            
say("")
            
say_reward("Zerstöre 10x Metin Ma-An.")
            
pc.setqf("metin80"10)
            
q.set_counter("Metin Ma-An"10)
            
set_state(killen2)
        
end
    end
    state killen2 begin
        when letter begin
            send_letter
("Vernichte die Metinsteine")
        
end
        when button 
or info begin
            say
("Du musst noch")
            
say(pc.getqf("metin80").." von 10 Metin Ma-An")
            
say("zerstören.")
        
end
        when 8025.kill begin
            local count 
pc.getqf("metin80") - 1
            
if count <= 10 and count >= 0 then
                pc
.setqf("metin80"count)
            
end
            
if pc.getqf("metin80") == 0 then
                set_state
(belohnung2)
            
end
        end
    end
    state belohnung2 begin
        when letter begin
            send_letter
("Du hast die Metinsteine zerstört.")
        
end
        when button 
or info begin
            say_title
("Herzlichen Glückwunsch!")
            
say("Hier ist deine Belohnung:")
            
say("")
            
say_reward("1x Seelenstein der Anführer")
            
pc.give_item2(302271)
            
set_state(information3)
        
end
    end
    state information3 begin
        when letter begin
            send_letter
("Teufelssplitter.")
        
end
        when button 
or info begin
            say
("Um den Teufelssplitter zu bekommen,")
            
say("musst du 10 Metinsteine zerstören !")
            
say("")
            
say_reward("Zerstöre 10x Metin Tu-Young.")
            
pc.setqf("metin85"10)
            
q.set_counter("Metin Tu-Young"10)
            
set_state(killen3)
        
end
    end
    state killen3 begin
        when letter begin
            send_letter
("Vernichte die Metinsteine")
        
end
        when button 
or info begin
            say
("Du musst noch")
            
say(pc.getqf("metin85").." von 10 Metin Tu-Young")
            
say("zerstören.")
        
end
        when 8026.kill begin
            local count 
pc.getqf("metin85") - 1
            
if count <= 10 and count >= 0 then
                pc
.setqf("metin85"count)
            
end
            
if pc.getqf("metin85") == 0 then
                set_state
(belohnung3)
            
end
        end
    end
    state belohnung3 begin
        when letter begin
            send_letter
("Du hast die Metinsteine zerstört.")
        
end
        when button 
or info begin
            say_title
("Herzlichen Glückwunsch!")
            
say("Hier ist deine Belohnung:")
            
say("")
            
say_reward("1x Teufelssplitter")
            
pc.give_item2(700421)
            
set_state(information4)
        
end
    end
    state information4 begin
        when letter begin
            send_letter
("Der Kristall.")
        
end
        when button 
or info begin
           say
("Um den Kristall zu bekommen,")
            
say("musst du 10 Metinsteine zerstören !")
            
say("")
            
say_reward("Zerstöre 10x Metin Jeon-Un.")
            
pc.setqf("metin90"10)
            
q.set_counter("Metin Jeon-Un"10)
            
set_state(killen4)
        
end
    end
    state killen4 begin
        when letter begin
            send_letter
("Vernichte die Metinsteine")
        
end
        when button 
or info begin
            say
("Du musst noch")
            
say(pc.getqf("metin90").." von 10 Metin Jeon-Un")
            
say("zerstören.")
        
end
        when 8027.kill begin
            local count 
pc.getqf("metin90") - 1
            
if count <= 10 and count >= 0 then
                pc
.setqf("metin90"count)
            
end
            
if pc.getqf("metin90") == 0 then
                set_state
(belohnung4)
            
end
        end
    end
    state belohnung4 begin
        when letter begin
            send_letter
("Du hast die Metinsteine zerstört.")
        
end
        when button 
or info begin
            say_title
("Herzlichen Glückwunsch!")
            
say("Hier ist deine Belohnung:")
            
say("")
            
say_reward("1x Kristall")
            
pc.give_item2(302031)
            
set_state(information6)
        
end
    end
    state information6 begin
        when letter begin
            send_letter
("Das Finale.")
        
end
        when button 
or info begin
           say
("Da du jetzt alle Items zusammen hast,")
            
say("musst du noch eine letzte")
            
say("Prüfung bestehen !")
            
say("")
            
say_reward("Töte 100x Sensenmann.")
            
pc.setqf("metin95"100)
            
q.set_counter("Sensenmann"100)
            
set_state(killen6)
        
end
    end
    state killen6 begin
        when letter begin
            send_letter
("Vernichte den Sensenmann")
        
end
        when button 
or info begin
            say
("Du musst noch")
            
say(pc.getqf("metin95").." von 100 Sensenmann")
            
say("töten.")
        
end
        when 1093.kill begin
            local count 
pc.getqf("metin95") - 1
            
if count <= 100 and count >= 0 then
                pc
.setqf("metin95"count)
            
end
            
if pc.getqf("metin95") == 0 then
                set_state
(belohnung5)
            
end
        end
    end
    state belohnung5 begin
        when letter begin
            send_letter
("Du hast die Prüfung bestanden !")
        
end
        when button 
or info begin
            say_title
("Gratuliere !!!")
            
say("")
            
say("Nun ist der Moment gekommen,")
            
say("worauf du schon so lange wartest !")
            
say("")
            
say_reward("Kehre nun zur Unbekannten Kreatur zurück")
            
say_reward("und lass dir die Waffe herstellen !")
            
set_state(herstellen)
        
end
    end
    state herstellen begin
        when 2651.chat
"Waffe herstellen" begin
            
if pc.gold <= 1000000000 then
                say
(""..mob_name(2651)..":"
                
say(""
                
say("Tut mir leid, aber du hast nicht genug Geld."
                
say("Unsere technologie, um Waffen herzustellen,"
                
say("ist im Unterhalt ziehmlich teuer !"
                
say("Ich kann dir keine Waffe anfertigen...")
                
say("")
                
say("Bitte habe dafür verständnis...!")
                
say("")
                
say_reward(string.format("Es kostet 1.000.000.000 Yang.")) 
                return        
            
end    
            
if pc.exp <= 95000000 then
                say
(""..mob_name(2651)..":"
                
say(""
                
say("Tut mir leid, aber du hast nicht genug Exp.")
                
say("")    
                
say("Um diese mächtige Waffe herzustellen,"
                
say("benötige ich viel Erfahrung als Energie !"
                
say("Ich kann dir keine Waffe anfertigen...")
                
say("")    
                
say("Bitte habe dafür verständnis...!")
                
say("")
                
say_reward(string.format("Du benötigst 95.000.000 EXP.")) 
                return        
            
end    
            
if pc.count_item(70033) == and  pc.count_item(30227) == and  pc.count_item(70042) == and pc.count_item(30203) == 1 then
                pc
.give_item2(90391)
                
pc.change_money(-1000000000)
                
pc.give_exp(-95000000)
                
pc.remove_item(700421)
                
pc.remove_item(700331)
                
pc.remove_item(302031)
                
pc.remove_item(302271)
                
set_state(start)    
            else    
                
say_title ("Unbekannte Kreatur:")
                
say ("")
                
say ("Tut mir Leid, aber du hast")
                
say ("noch nicht alle Items zusammen.")
                
say ("Komm wieder wenn du im Besitz")
                
say ("aller Items bist.")
                return    
            
end    
        end
    end    
end 
bei dem teil mit dem sensi wird ingame im letter immer angezeigt "du musst noch 0 von 100 Sensenmann töten" , obwohl ich noch kein gekillt habe...und ich habs da so gemacht habe wie bei den metinsteinen und bei den geht der zähler...ich weiß nich weiter :confused:

edit: jetzt geht der zähler richtig, aber zählt beim kill nich runter :confused:
01/02/2012 04:13 MeLLyx3#4410
PHP Code:
quest steinstuecktausch begin 
    state start begin 
        when 20087.chat
.steinstuecktausch begin
                say_title
("Steinstücktausch"
                
say("Willst du deine Steinstücke gegen Perlen eintauschen"
                
say("Nun dann bist du hier richtig!! Ich habe Perlen jeder Art."
                
say("Für 50 Steinstücke bekommst du eine Weiße Perle, für 100 eine Blaue"
                
say("und für 200 eine Rote Perle."
                
say(""
                
say("Welche Perle möchtest du haben?")
                
say("")
                
local s select ("Weiße Perle (50)","Blaue Perle (100)","Rote Perle (200)","Auf Wiedersehen!")
            if 
== 1 then 
                
if pc.count_item(27990) >= 50 then 
                pc
.removeitem("27990")                 
                
pc.give_item2("27992"
                
say("Danke dir!"
                
say(""
                
chat("Du hast eine Weiße Perle erhalten!")
                
chat("")
            
end 
            
if == 2 then 
                
if pc.count_item(27990) >= 100 then 
                pc
.removeitem("27990"
                
pc.give_item2("27993"
                
say("Danke dir!"
                
say("")
                
chat("Du hast eine Blaue Perle erhalten!")
                
chat("")
            
end  
            
if == 3 then 
                
if pc.count_item(27990) >= 200 then 
                pc
.removeitem("27990"
                
pc.give_item2("27994"
                
say("Danke dir!"
                
say("")
                
chat("Du hast eine Rote Perle erhalten!")
                
chat("")
            
end
        end
    end
end 
Warum funktioniert diese Quest nicht?

Fehlermeldung; qc in malloc(): error: allocation failed

Bitte um hilfe, danke!