[SERVICE] Die Questkontrolle

02/19/2011 14:33 .remiinD#1501
Hier:

PHP Code:
quest exp begin
    state start begin
        when 20091.chat
."EXP spenden" begin
            say_title
("EXP spenden")
            
say("")
            
say("Hallo, hier kann du deine EXP spenden,")
            
say("wenn deine Gilde schon die höchste Stufe")
            
say("erreicht hat.")
            
wait()
            
say("")
            
say("Wie viel Prozent möchtest du Spenden?")
            
say("")
            
local s = select("10%", "25%", "40%", "60%", "75%", "Abbrechen")
            if 
s == 1 then
                say
("Möchtest du wirklich 10% spenden?"")
                say("")
                locale z = select("
Spenden", "Nicht Spenden")
                if z == 1 then
                    say("")    
                    say("
Du hast erfolgreich EXP 10% gespendet.")    
                    say("")    
                    pc.give_exp_perc(-10)
                    
                    return
                if z == 2 then
                    say("")
                    say("
Komme jederzeit wieder.")
                    say("")
                    
                    return
                end
            if s == 2 then
                say("
Möchtest du wirklich 25% spenden?")
                say("")
                locale y = select("
Spenden", "Nicht Spenden")
                if y == 1 then
                    say("")
                    say("
Du hast erfolgreich EXP 25% gespendet.")
                    say("")
                    pc.give_exp_perc(-25)
                    
                    return
                if y == 2 then
                    say("")
                    say("
Komme jederzeit wieder.")
                    say("")
                    
                    return
                end
            if s == 3 then
                say("
Möchtest du wirklich 40% spenden?")
                say("")
                locale x = select("
Spenden", "Nicht Spenden")
                if x == 1 then
                    say("")
                    say("
Du hast erfolgreich EXP 40% gespendet.")
                    say("")
                    pc.give_exp_perc(-40)
                    
                    return
                if x == 2 then
                    say("")
                    say("
Komme jederzeit wieder.")
                    say("")
                    
                    return
                end
            if s == 4 then
                say("
Möchtest du wirklich 60% spenden?")
                say("")
                locale w = select("
Spenden", "Nicht Spenden")
                if w == 1 then
                    say("")
                    say("
Du hast erfolgreich EXP 60% gespendet.")
                    say("")
                    pc.give_exp_perc(-60)
                    
                    return
                if w == 2 then
                    say("")
                    say("
Komme jederzeit wieder.")
                    say("")
                    
                    return
                end
            if s == 5 then
                say("
Möchtest du wirklich 75% spenden?")
                say("")
                locale v = select("
Spenden", "Nicht Spenden")
                if v == 1 then
                    say("")
                    say("
Du hast erfolgreich EXP 75% gespendet.")
                    say("")
                    pc.give_exp_perc(-75)
                    
                    return
                if v == 2 then
                    say("")
                    say("
Komme jederzeit wieder.")
                    say("")
                    
                    return
                end
            if s == 6 then
                say("")
                say("
Komme jeder Zeit wieder.")
                say("")
                
                return
            end
        end
    end
end 

Bitte helfen, vpc sagt keine Fehlermeldung an, aber wenn ich den ot sura anklicke, steht da kein button "EXP spenden" zur auswahl
02/19/2011 14:59 masterschwert#1502
Moin hab bei dieser Quest ein Problem (hatte sie schonmal gepostet)

Code:
quest kristallkammer begin
    state start begin
        when 30203.use begin
            say_title("Kristall:")
            say("Das fiese Monster Beran-Setaou hat")
            say("die Portale zerstört!")
            say("Wir haben jedoch alte Schriften gefunden")
            say("die uns das Porten zur Kristallkammer ermöglichen!")
            say("Aber sei gewarnt..Die Kreatur ist sehr stark!")
            local s = select("Kristallkammer","Seelengrotte Ebene 2","abbrechen")
        if s == 1 then
            pc.warp(1717,12204)
            chat("Viel Glück")
        end
        if s == 2 then
            pc.warp(2417,12749)
            chat("Viel Glück")
        end
        if s == 3 then
            chat("vielleicht beim nächsten mal")
            end
        end
    end
end
Vpc Fehler gibt es keine nur das Problem ist es passiert garnichts wenn ich das Item anklicke DB ist alles in ordnung.
Edit: Quest läuft jetzt nur ich werde nicht geportet
02/19/2011 18:35 .2good4you111#1503
@remind,
da fehlen bei den if´s paar end´s
1 if = 1 end
2 if´s = 2ends

PHP Code:
            if s == 5 then
                say
("Möchtest du wirklich 75% spenden?")
                
say("")
                
locale v = select("Spenden", "Nicht Spenden")
                if 
v == 1 then
                    say
("")
                    
say("Du hast erfolgreich EXP 75% gespendet.")
                    
say("")
                    
pc.give_exp_perc(-75)
                    
                    return
                if 
v == 2 then
                    say
("")
                    
say("Komme jederzeit wieder.")
                    
say("")
                    
                    return
                
end
           end 
--Das hier fehlte und auch bei den anderen absätzen 
Würde dir das aber stat den ganzen if´s mit elseif entfehlen.
Dann musst auch kein einziges end hinzufügen auser am ender beimletzten if und alle iffs außer das erste mit elseif ersetzten.
Kann außerdem aber auch mit dem "spendenbefehl" zusammenhängen welchermeines wissens nach 3 Parameter hat.


@masterschwert.

sehe da eigntlich keinen fehler.
02/19/2011 19:21 masterschwert#1504
Hmm dachte ich mir auch schon weil finde selber auch keinen Fehler darin aber irgendwo muss einer sein sonst würde er mich ja porten bzw. sollte er porten :/
02/19/2011 19:26 .2good4you111#1505
Versuch mal den dur when npcvallue.chat."Test" begin ob er damit startet
02/19/2011 21:43 masterschwert#1506
Hmmm war ne gute idee aber das selbe Problem wie vorher wenn ich auf die Buttons klick portet der Npc auch nicht ... Ich verzweifel langsam hab schon viel probiert funkt. aber garnichts. Kannst du vielleicht eine Quest für mich schreiben in der steht das der Npc "xxxx"dich nach den koordis "xxxx xxxx" portet wenn du ihm das item "xxxx" gibst?
02/19/2011 21:46 .Delta#1507
probiers mal so
PHP Code:
quest kristallkammer begin
    state start begin
        when 30203.
use begin
            say_title
("Kristall:")
            
say("Das fiese Monster Beran-Setaou hat")
            
say("die Portale zerstört!")
            
say("Wir haben jedoch alte Schriften gefunden")
            
say("die uns das Porten zur Kristallkammer ermöglichen!")
            
say("Aber sei gewarnt..Die Kreatur ist sehr stark!")
            
local s = select("Kristallkammer","Seelengrotte Ebene 2","abbrechen")
            if 
s == 1 then
                pc
.warp(1717, 12204)
            elseif 
s == 2 then
                pc
.warp(2417, 12749)
            elseif 
s == 3 then
                say
("vielleicht beim nächsten mal")
                return
            
end
        end
    end
end 
wenns dann nicht geht hast du die falschen koords
02/19/2011 22:00 masterschwert#1508
Danke ich werde es probieren aber falsche Koordis können es eigentlich nicht sein mit GM-Rechten komm ich über diese Koordis auf jeden fall dort hin.

€: Das selbe Problem er portet einfach nicht es passiert garnichts aber sag mal du hast doch nur rausgenommen das im Chat "Viel Glück" steht oder?
02/19/2011 22:02 .Delta#1509
versuchs mal^^

wenns nicht geht häng an jede koordinate mal 00 dran.
02/19/2011 22:11 masterschwert#1510
Hab es schon probiert passiert nichts :D aber ich häng mal die Nullen dran^^

€:Hezlichen Dank :) es hat funktioniert mit den Nullen war schon am verzweifeln THX give :)
02/19/2011 22:24 .Delta#1511
immer gerne, aber editier lieber deinen letzen post, bevor du doppelposts machst
02/20/2011 09:37 masterschwert#1512
hab noch nen problem mit ner quest. hab das original etwas auf meine bedürfnisse abändern wolln. das problem ist jez, dass die quest direkt nach dem satz: "Du möchtest deine Skills auf Perfektermeister setzen?" und der betätigung beendet wird.
hier die quest:
Code:
quest regenbogen begin 
state start begin 
when 50512.use begin 
pc.removeitem("50512", 1) 
say_title("Regenbogenstein:") 
say("Du möchtest also deine Skills auf") 
say("Perfekter-Meister setzen?") 

if pc.level () <=86 then 
say_title("Regenbogenstein") 
say("Dein Level ist zu niedrig.") 

if pc.level () >=85 then 
elseif pc.job ==0 then 
say("Wähle deine Lehre aus") 

local s=select("Körper","Mental") 

if s==1 then 
--Körper 
pc.set_skill_group(1) 
pc.set_skill_level(1 ,59) 
pc.set_skill_level(2 ,59) 
pc.set_skill_level(3 ,59) 
pc.set_skill_level(4 ,59) 
pc.set_skill_level(5 ,59) 
say("Deine Skills sind auf Perfekter Meister") 
end 

if s==2 then 
--Mentalo 
pc.set_skill_group(2) 
pc.set_skill_level(16 ,59) 
pc.set_skill_level(17 ,59) 
pc.set_skill_level(18 ,59) 
pc.set_skill_level(19 ,59) 
pc.set_skill_level(20 ,59) 
say("Deine Skills sind auf Perfekter Meister") 
end 

elseif pc.job ==1 then 
say("Wähle deine Lehre aus") 

local s=select("Nahkampf","Bogen") 

if s==1 then 
--Nahkampf 
pc.set_skill_group(3) 
pc.set_skill_level(31 ,59) 
pc.set_skill_level(32 ,59) 
pc.set_skill_level(33 ,59) 
pc.set_skill_level(34 ,59) 
pc.set_skill_level(35 ,59) 
say("Deine Skills sind auf Perfekter Meister") 
end 

if s==2 then 
--Fernkampf 
pc.set_skill_group(4) 
pc.set_skill_level(46 ,59) 
pc.set_skill_level(47 ,59) 
pc.set_skill_level(48 ,59) 
pc.set_skill_level(49 ,59) 
pc.set_skill_level(50 ,59) 
say("Deine Skills sind auf Perfekter Meister") 
end 

elseif pc.job ==2 then 
say("Wähle deine Lehre aus") 
local s=select("Magie","Waffe") 

if s==1 then 
--Magie 
pc.set_skill_group(5) 
pc.set_skill_level(76 ,59) 
pc.set_skill_level(77 ,59) 
pc.set_skill_level(78 ,59) 
pc.set_skill_level(79 ,59) 
pc.set_skill_level(80 ,59) 
pc.set_skill_level(81, 59) 
say("Deine Skills sind auf Perfekter Meister") 
end 

if s==2 then 
--Waffe 
pc.set_skill_group(6) 
pc.set_skill_level(61 ,59) 
pc.set_skill_level(62 ,59) 
pc.set_skill_level(63 ,59) 
pc.set_skill_level(64 ,59) 
pc.set_skill_level(65 ,59) 
pc.set_skill_level(66 ,59) 
say("Deine Skills sind auf Perfekter Meister") 
end 

elseif pc.job ==3 then 
say("Wähle deine Lehre aus") 
local s=select("Heil","Drachen") 

if s==1 then 
--Heil 
pc.set_skill_group(7) 
pc.set_skill_level(106 ,59) 
pc.set_skill_level(107 ,59) 
pc.set_skill_level(108 ,59) 
pc.set_skill_level(109 ,59) 
pc.set_skill_level(110 ,59) 
pc.set_skill_level(111 ,59) 
say("Deine Skills sind auf Perfekter Meister") 
end 

if s==2 then 
--Drachen 
pc.set_skill_group(8) 
pc.set_skill_level(91 ,59) 
pc.set_skill_level(92 ,59) 
pc.set_skill_level(93 ,59) 
pc.set_skill_level(94 ,59) 
pc.set_skill_level(95 ,59) 
pc.set_skill_level(96 ,59) 
say("Deine Skills sind auf Perfekter Meister") 
end 
end 
end 
end 
end
end
ich hoff mir kann jemand helfen :D
€: Vpc fehler gibt es keinen
02/20/2011 14:12 .2good4you111#1513
Sieht mir wieder nach ein paar if - end fehlern aus :O
02/20/2011 14:19 .Delta#1514
Code:
if pc.level () <=86 then 
say_title("Regenbogenstein") 
say("Dein Level ist zu niedrig.") 

if pc.level () >=85 then 
elseif pc.job ==0 then 
say("Wähle deine Lehre aus")
ich denke da wird der Fehler irgendwo sein.

1. steht dein <= 86 und >= 85 ein bisschen miteinander im Konflikt
und 2. müsste bei deinem 1. if ( dem mit 86) noch ein end hin
02/20/2011 14:41 .Risan.#1515
Quote:
Originally Posted by Delta619 View Post
Code:
if pc.level () <=86 then 
say_title("Regenbogenstein") 
say("Dein Level ist zu niedrig.") 

if pc.level () >=85 then 
elseif pc.job ==0 then 
say("Wähle deine Lehre aus")
ich denke da wird der Fehler irgendwo sein.

1. steht dein <= 86 und >= 85 ein bisschen miteinander im Konflikt
und 2. müsste bei deinem 1. if ( dem mit 86) noch ein end hin

Müsste so aussehen:
Code:
if pc.level () <=86 then 
say_title("Regenbogenstein") 
say("Dein Level ist zu niedrig
return
elseif pc.level () >=85 then 
if pc.job ==0 then 
say("Wähle deine Lehre aus")

CODECODE