[SERVICE] Die Questkontrolle

11/01/2011 14:45 DarkScorpECG#3886
very good quest!
11/01/2011 16:37 Flash0067#3887
Hey Leute

Ich habe auf meiner externen eine Quest gefunden, und wollte sie nun einfügen..
Leider funktioniert sie nicht, wie sie sollte..

PHP Code:
quest achievmentshop begin
    state start begin
        when 30129.chat
."Laden" begin
            local preis 
10 
            local actual_achievement_points 
pc.getqf("achievement_points"
            
say("Was willst du kaufen?")
            
local s select("SSP""abbrechen")
            if 
== 1 then
                
if actual_achievement_points >= preis then
                    pc
.give_item2(11299)
                    
pc.setqf("achievement_points"actual_achievement_points preis)
                    
say("SSP gekauft. Deine Archievment-Points betragen nun: "..pc.getqf("achievement_points")..".")
                else
                    
say("Kauf fehlgeschlagen. Deine Archievment-Points betragen nur "..pc.getqf("achievement_points")..".")
                
end
            end
        end
    end
end 
Es wird mir immer angezeigt das ich 0 punkte habe, obwohl ich punkte besitze.

Hoffe Jemand kann mir helfen.

Mfg
11/01/2011 16:58 lolor2#3888
pc.setqf("achievement_points", actual_achievement_points - preis)

du Kannst einer questflag nur nummern zuweisen damit ist das : "achievement_points" überflüssig
11/01/2011 17:12 TankG#3889
PHP Code:
quest horse_guard begin
  state start begin
    when 20349.chat
."Pferd trainieren" begin
        say_title
("Stallbursche:")
        
say("")
        
say("Hallo!")
        
say("Bei mir kannst du dein Pferd steigern.")
        
say("Das Pferd zu steigern kostet dich eine Pferdemedallie pro Level.")
        
say("")
        
say_reward("Möchtest du dein Pferd steigern?")
        
say("")               
        
local s=select("Ja""Nein")
            if 
== 1 then
                say_title
("Stallbursche:")
                
say("")
                    if 
item.get_count(50050)>=1 then
                     item
.remove("50050"1)
                     
horse.unride()
                     
horse.advance()
                     
horse.ride()
                     
say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht.")
                     
say("")
           
                    elseif 
horse.get_level()>=30 then
                     say
("Dein Pferd hat Level 30 erreicht.")
                     
say("Du kannst es nicht mehr steigern.")
                     
say("")
                    elseif 
item.get_count(50050)<1 then
                      say
("Du hast nicht genug Pferdemedallien um dein Pferd zu steigern.")
                      
say("")
            
end
            
            
elseif == 2 then
                
return
    
end        
           when 20349.chat
."Reitshop" begin
              npc
.open_shop(14)
                 
say("Hier findest du alle Items für ein Pferd.")
        
end
        when 20349.chat
."Information" begin
            local s
=number(17)
            if 
1>=s then -- 14.29% (1/7)
                
say("Füttere dein Pferd")
                
say("regelmässig sonst")
                
say("stirbt es.")
            elseif 
2>=s then -- 14.29% (1/7)
                
say("Das Anfängerpferd")
                
say("ist sehr schnell erschöpft.")
                
say("Bleibe nicht auf seinem Rücken stehen.")
            elseif 
3>=s then -- 14.29% (1/7)
                
say("Um dein Pferd zu verbessern")
                
say("benötigst du 1kk Yang.")
                
say("Bringe das Yang zu mir")
                
say("und ich werde dein Pferd steigern.")
            elseif 
4>=s then -- 14.29% (1/7)
                
say("Wenn dein Pferd gestorben")
                
say("ist gibt es mehrere")
                
say("Kräuter von den")
                
say("Affenkönigen um")
                
say("sie Wiederzubeleben.")
            elseif 
5>=s then -- 14.29% (1/7)
                
say("Es gibt 9 verschiedene")
                
say("Pferde Aussehen.")
                
say("Ohne Gilde, mit Gilde und als Leader.")
            elseif 
6>=s then -- 14.29% (1/7)
                
say("Das Anfängerpferd")
                
say("isst gerne Heu.")
                
say("Das Kampfpferd")
                
say("isst gerne Karotten.")
                
say("Das Militärpferd")
                
say("isst gerne Roten Ginseng.")
            elseif 
7>=s then -- 14.29% (1/7)
                
say("Lese Handbuch Pferde Zähmen")
                
say("um dein Pferd schneller zu rufen.")
            
end
        end
    end
end 

was ist daran falsch danke im vorraus !!
11/01/2011 17:25 Flash0067#3890
Quote:
Originally Posted by lolor2 View Post
pc.setqf("achievement_points", actual_achievement_points - preis)

du Kannst einer questflag nur nummern zuweisen damit ist das : "achievement_points" überflüssig
Wie meinst du das?
Soll ich die Zeile dann löschen damit es klappt oder wie?

Kenne mich mit Quests nicht so gut aus, sorry.
11/01/2011 17:40 martin1994#3891
Hab nochnet probiert obs geht, würde lieber zuerst wissen ob alles stimmt

PHP Code:
quest Tokras-World-Quest begin
    state start begin
        when login 
or levelup with pc.level>30 begin
            set_state
(go_to_haupt)
        
end
    end
    state go_to_haupt begin
        when letter begin
            local v 
find_npc_by_vnum(20355
            if 
!= 0 then target.vid("__TARGET__"v"Hauptmann"
            
end
            send_letter
("Der Hauptmann braucht dich"
        
end
        when button 
or info begin
            say_title
("Er muss mit dir reden")
            
say("er wirkte als sei es dringend...")
            
say("geh zu ihm um mehr zu erfahren.")
            
end
        when __TARGET__
.target.click or 20355.chat."Tokra" begin
            target
.delete("__TARGET__")
            
say_title("Tokra")
            
say("Höhöhö seid gegrüßt Neuankömling")
            
say("hmm ich sehe ihr seid noch schwach, habt ja kaum genug Kraft eure Waffe zu halten")
            
say("Deswegen muss ich dich warnen...")
            
say("Ein schreckliches Monster bedroht unsere einst so schöne Welt...")
            
say("weißt du die Metinsteine kommen nicht vom Himmel wie dir die Lügenbolde weis machen wollen")
            
say("Eine der Hölle entsprungene Kreatur namens Tokra beschwört sie...")
            
say("")
            
say("Mehr kann ich im Moment nicht sagen, Tokra hat seine Spitzel überall...")
            
say("Töte fürs erste 1, das sollte Tokra ablenken...")
            
say_reward("Töte 1 Oberork")
            
set_state(go_to_kill4)
        
end
    end
    state go_to_kill4 begin
         when letter begin 
            send_letter
("Töte 1 Oberork"
            
        
end
        when button 
or info begin
            say_title
("Töte 1 Oberork")
            
say("")
            
say("")
            
say("Der Hauptmann befahlr dir 1")
            
say("Oberork zu töten")
            
say("")
            
say("Na los worauf wartest du noch?!")
            
pc.setqf("orc"1
            
q.set_counter("chief orc"
            
say("")
        
end
    
     when 691.kill begin 
            local count 
pc.getqf("orc") - 
            
if count <= 1 then 
                pc
.setqf("orc"count
                
q.set_counter("chief orc"1-count)
            
end 
                
if count == 0 then 
                say_title
("" ..pc.get_name() ..""
                    
say("Das war nun 1 Oberork."
                    
say("Ich sollte zum Hauptmann zurück-"
                    
say("kehren und ihm Bericht erstatten."
                    
say(""
                    
set_state(hauptmann
                
end 
    state hauptmann begin 
        when letter begin 
            local v 
find_npc_by_vnum(20355
            if 
!= 0 then 
                target
.vid("__TARGET__"v"Hauptmann"
            
end 
            send_letter
("Auftrag erfolgreich"
        
end 

        when button 
or info begin 
            say_title
("Auftrag erfolgreich"
            
say(""
            
say("Du hast denn Oberork getötet."
            
say("Kehre zum Hauptmann zurück und"
            
say("erstatte ihm Bericht!"
            
say(""
        
end 
        
        when 20355.chat
."Bericht" begin 
            say_title
("Hauptmann"
            
say("Hä?...du lebst?"
            
say("scheiße ich hab drauf gewettet das du abkratzt..."
            
say("egal dann wird heute nicht gesoffen...!"
            
say(""
            
say("So der Oberork ist nun tot"
            
say("schon bald wird ein anderer Ork seinen Posten einnehmen"
            
say("aber Tokra muss ihn erst mutieren lassen"
            
say("das wird ihn unvorsichtig machen"
            
say("und uns Zeit verschaffen"
            
say("Wir werden einen vernichtenden Schlag starten"
            
say("aber zuerst solltest du stärker werden!"
            
say_reward("Du erhielst 100.000.000 Yang"
            
pc.change_money(10000000
            
set_state(complete
        
end 
    end 
    state complete begin 
    end 
end 
11/01/2011 17:50 Endless.#3892
Fehler in der Quest.. Syntax error.. unexpectet symbol near `and´

PHP Code:
quest kurbis begin
    state start begin
        when 30123.chat
."Halloween Event" begin
            say_title 
("Sei gegrüsst, "..pc.get_name().."!")
            
say ("Das Halloween-Event hat begonnen und jetzt")
            
say ("heisst es, dass jeder Spieler die Chance hat,")
            
say ("etwas Besonderes zu gewinnen.")
            
say ("Als Alternativ-Drop wurden Kürbise aktiviert,")
            
say ("die man von jedem Monster erhalten kann.")
            
say ("Daher solltest du diese gut aufbewahren, denn")
            
say ("man bekommt am Ende eine kleine Überraschung.")
            
say ("Man kann ab 5 Kürbise bis 100 Stück etwas gewinnen")
            
wait()
            
say_title ("Ab Bestimmter Anzahl von Kürbisen:")
            
say ("")
            
say_reward ("5 = Reittier Siegel")
            
say_reward ("10 = Frucht des Lebens")
            
say_reward ("25 = Seelensteine")
            
say_reward ("50 = 3 Perlen jeder Sorte")
            
say_reward ("100 = Regenbogenstein")
        
end
        when 30123.chat
."Kürbise tauschen" with pc.count_item(50095) >= 5 begin
            say_title 
(""..pc.get_name()..":")
            
say ("Ich habe Kürbise und möchte diese tauschen.")
            
local a select ("5 Kürbise""10 Kürbise""25 Kürbise""50 Kürbise""100 Kürbise""Abbrechen")
            if 
== 1 then and pc.count_item(50095) >= 5
                pc
.give_item2(7111410)
                
pc.give_item2(7111510)
                
pc.give_item2(7111610)
                
pc.give_item2(7111710)
                
pc.remove_item(500955)
            
end
            
if == 2 then and pc.count_item(50095) >= 10
                pc
.give_item2(71107)
                
pc.give_item2(71107)
                
pc.give_item2(71107)
                
pc.remove_item(5009510)
            
end
            
if == 3 then and pc.count_item(50095) >= 25
                pc
.give_item2(50513)
                
pc.give_item2(50513)
                
pc.give_item2(50513)
                
pc.remove_item(5009525)
            
end
            
if == 4 then and pc.count_item(50095) >= 50
                pc
.give_item2(27992)
                
pc.give_item2(27993)
                
pc.give_item2(27994)
                
pc.give_item2(27992)
                
pc.give_item2(27993)
                
pc.give_item2(27994)
                
pc.give_item2(27992)
                
pc.give_item2(27993)
                
pc.give_item2(27994)
                
pc.remove_item(5009550)
            
end
            
if == 5 then and pc.count_item(50095) >= 100
                pc
.give_item2(50512)
                
pc.remove_item(50095100)
            
end
            
if == 6 then
                
return
            
end
        end
    end
end 
Wäre froh wenn mir kurz jemand helfen könnte :D

Gebe THX



Gruß, Endless^-^
11/01/2011 18:02 Sp0ngeb0b ist cool#3893
nicht

PHP Code:
 if == 1 then and pc.count_item(50095) >= 
sondern

PHP Code:
 if == and pc.count_item(50095) >= 5 then 
bei allen ;)
11/01/2011 18:23 Endless.#3894
Immernoch Fehler.. trotz den ganzen "then" die ich gesetzt habe :(
11/01/2011 18:45 Sp0ngeb0b ist cool#3895
PHP Code:
quest kurbis begin
    state start begin
        when 30123.chat
."Halloween Event" begin
            say_title 
("Sei gegrüsst, "..pc.get_name().."!")
            
say ("Das Halloween-Event hat begonnen und jetzt")
            
say ("heisst es, dass jeder Spieler die Chance hat,")
            
say ("etwas Besonderes zu gewinnen.")
            
say ("Als Alternativ-Drop wurden Kürbise aktiviert,")
            
say ("die man von jedem Monster erhalten kann.")
            
say ("Daher solltest du diese gut aufbewahren, denn")
            
say ("man bekommt am Ende eine kleine Überraschung.")
            
say ("Man kann ab 5 Kürbise bis 100 Stück etwas gewinnen")
            
wait()
            
say_title ("Ab Bestimmter Anzahl von Kürbisen:")
            
say ("")
            
say_reward ("5 = Reittier Siegel")
            
say_reward ("10 = Frucht des Lebens")
            
say_reward ("25 = Seelensteine")
            
say_reward ("50 = 3 Perlen jeder Sorte")
            
say_reward ("100 = Regenbogenstein")
        
end
        when 30123.chat
."Kürbise tauschen" with pc.count_item(50095) >= 5 begin
            say_title 
(""..pc.get_name()..":")
            
say ("Ich habe Kürbise und möchte diese tauschen.")
            
local a select ("5 Kürbise""10 Kürbise""25 Kürbise""50 Kürbise""100 Kürbise""Abbrechen")
            if 
== 1 then
                
if pc.count_item(50095) >= 5 then
                    pc
.give_item2(7111410)
                    
pc.give_item2(7111510)
                    
pc.give_item2(7111610)
                    
pc.give_item2(7111710)
                    
pc.remove_item(500955)
                else
                    
say("Du hast zu wenig Kürbisse.")
                
end    
            
elseif == 2 then
                
if pc.count_item(50095) >= 10 then
                    pc
.give_item2(71107)
                    
pc.give_item2(71107)
                    
pc.give_item2(71107)
                    
pc.remove_item(5009510)
                else
                    
say("Du hast zu wenig Kürbisse.")
                
end    
            
elseif == 3 then
                
if pc.count_item(50095) >= 25
                    pc
.give_item2(50513)
                    
pc.give_item2(50513)
                    
pc.give_item2(50513)
                    
pc.remove_item(5009525)
                else
                    
say("Du hast zu wenig Kürbisse.")
                
end        
            
elseif == 4 then 
                
if pc.count_item(50095) >= 50
                    pc
.give_item2(27992)
                    
pc.give_item2(27993)
                    
pc.give_item2(27994)
                    
pc.give_item2(27992)
                    
pc.give_item2(27993)
                    
pc.give_item2(27994)
                    
pc.give_item2(27992)
                    
pc.give_item2(27993)
                    
pc.give_item2(27994)
                    
pc.remove_item(5009550)
                else
                    
say("Du hast zu wenig Kürbisse.")
                
end    
            
elseif == 5 then
                
if pc.count_item(50095) >= 100
                    pc
.give_item2(50512)
                    
pc.remove_item(50095100)
                else
                    
say("Du hast zu wenig Kürbisse.")
                
end        
            end
        end
    end
end 
teste es mal so ;)
11/01/2011 19:51 .Aliboy#3896
was stimmt bei der quest nicht ?

PHP Code:
quest Waffenhändler begin

    state start begin
    when 9001.chat
."Krieger Waffen" begin
         npc
.open_shop(5558)
            
say("Hier kannst du deine Waffen für Krieger kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
    when 9002.chat
."Krieger Rüstungen" begin
         npc
.open_shop(5554)
            
say("Hier kannst du deine Rüstung für Krieger kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
    when 9001.chat
."Ninja Waffen" begin
         npc
.open_shop(5555)
            
say("Hier kannst du deine Waffen für Ninjas kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
    when 9002.chat
."Ninja Rüstungen" begin
         npc
.open_shop(5556)
            
say("Hier kannst du deine Rüstungen für Ninjas kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
    when 9001.chat
."Schamanen Waffen" begin
         npc
.open_shop(5557)
            
say("Hier kannst du deine Waffen für Schamanen kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
    when 9002.chat
."Schamanen Rüstungen" begin
         npc
.open_shop(5559)
            
say("Hier kannst du deine Rüstungen für Schamanen kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
    when 9001.chat
."Sura Waffen" begin
         npc
.open_shop(5560)
            
say("Hier kannst du deine Waffen für Suras kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
    when 9002.chat
."Sura Rüstungen" begin
         npc
.open_shop(5561)
            
say("Hier kannst du deine Rüstungen für Suras kaufen")
            
say("Mit dem steigenden Level verliert die + Zahl!")
    
end
end 
11/01/2011 19:51 .Delta#3897
ein end zu wenig unten dran
11/01/2011 20:18 .ZiPPO#3898
Hey Leute,
Bei dieser quest ist es so das man das andere item bekommt ob wohl man das 1. nicht hat...
Kann mir da jemand helfen?!
PHP Code:
quest itemtausch_n begin
state start begin
when 50137.
use begin
say
("Möchtest du den Mondstahlanzug")
say("gegen einen Smaragtanzug tauschen?")
say("Der Tausch kostet dich aber 100kk Yang!")
local main select ("Ja","Nein")
if 
main == 1 then
if pc.get_gold() >= 10000000 then
pc
.remove_item(42040,1)
pc.changegold(-10000000)
pc.give_item2(44000,1)
else
say("Nicht genug Yang")
return
end
elseif main == 2 then
return
end
end
end
end 
11/01/2011 20:23 .Delta#3899
PHP Code:
quest itemtausch_n begin
    state start begin
        when 50137.
use begin
            say
("Möchtest du den Mondstahlanzug")
            
say("gegen einen Smaragtanzug tauschen?")
            
say("Der Tausch kostet dich aber 100kk Yang!")
            
local main select ("Ja","Nein")
            if 
main == 1 then
                
if pc.get_gold() < 10000000 then
                    say
("Du hast nicht genug Yang")
                    return
                
end
                
if pc.count_item(42040) < 1 then
                    say
("Du hast keinen Mondstahlanzug")
                    return
                
end
                pc
.remove_item(42040,1)
                
pc.changegold(-10000000)
                
pc.give_item2(44000,1)
            
end
        end
    end
end 
11/01/2011 20:25 .Active#3900
Hallöchen,

Ich hab vor ein paar Wochen in den Thread "Achievementsystem mit Mysqlabspeicherung" geschaut und mir ist aufgefallen das der Befehl, der dort verwendet wird unvollständig ist. Daher habe ich mir einige ähnliche Quests genommen und versucht das ganze zu überarbeiten. Sinn und zweck ist das bei der Spalte "ArchiPoints" der neue Wert eingetragen wird (Achivementgesammtpunktzahl)

[Die Spalte ArchiPoints ist in der Player Tabelle]

Also hier ist mein befehl

PHP Code:
os.execute('mysql -u root --password=*****--execute=\\"UPDATE player.player set ArchiPoints = '..pc.getqf("achievement_points")..' WHERE name = \\"'..pc.get_name()..'\\"'
(Passwort wurde durch "*" ersetzt)

Wenn ich den Befehl in die Quest einbaue und die Make.sh ausführe kommt KEINE fehlermeldung, kille ich aber ein Monster (nach dem kill soll was in die spalte eingetragen werden) erscheint in virtualbox folgende Fehlermeldung:

PHP Code:
Syntax errorUnterminated quoted string 
Weiß jemand von euch eventuell was ich da falsch gemacht habe?

Mit freundlichen Grüßen

Langeweile2011