[SERVICE] Die Questkontrolle

11/09/2010 21:34 °ѕ¢αη∂ιυм#886
Quote:
Originally Posted by TTapi View Post
funzt immer noch net >.< :D Hab beide von euch versucht ;)

Fehler: syntax error : [string "start"]:2: unexpected symbol near `==´
Ok, dann kann ich dir nicht helfen, sry... :rolleyes:

GreeTz °ѕ¢αη∂ιυм
11/09/2010 21:36 henpii#887
Code:
quest event begin 
    state start begin 
        when 20087.click begin
            say("Was möchtest du machen?") 
            locale a == select ("Reichsschlacht starten","Reichsschlacht beenden","Weihnachts-Event starten","Weihnachts-Event beenden","Abbrechen") 
            if a == 1 then 
                say("Die Reichsschlacht beginnt.")
                        return
                notice_all("Die Reichsschlacht hat begonnen.") 
                notice_all("Geht zum Schlachtenverwalter um teilzu nehmen.") 
                notice_all("Das Gewinner Reich erhält tolle Preise.") 
                game.set_event_flag(threeway_war 1) 
                game.set_event_flag(threeway_war_dead_count 5) 
                game.set_event_flag(threeway_war_kill_boss_count 1) 
                game.set_event_flag(threeway_war_kill_count 200) 
                game.set_event_flag(threeway_war_mob_count 150) 
                game.set_event_flag(threeway_war_open_gate1 1) 
                game.set_event_flag(threeway_war_open_gate2 1) 
                game.set_event_flag(threeway_war_open_gate3 1) 
            end 
            if a == 2 then 
                say("Du hast die Reichsschlacht beendet.") 
                         return
                notice_all("Die Reichsschlacht ist beendet.") 
                notice_all("Viel Spaß beim weiteren Spielen.") 
                game.set_event_flag(threeway_war 0) 
            end 
            if a == 3 then 
                say("Du hast das Weihnachts Event gestartet.")
                          return
                notice_all("Das Weihnachts Event ist gestartet.") 
                notice_all("Findet einen GM / GA der verwandelt ist als Weihnachtsmann") 
                notice_all("Ihr werdet bei jedem Fund tolle Preise erhlaten.") 
                game.set_event_flag(xmas_snow 1) 
                game.set_event_flag(xmas_boom 1) 
                game.set_event_flag(xmas_tree 1) 
                game.set_event_flag(xmas_tree 2) 
                game.set_event_flag(xmas_tree 3) 
            end 
            if a == 4 then 
                say("Du hast das Weihnachts Event beendet.")
                        return
                notice_all("Das Weihnachts Event wurde beendet.") 
                notice_all("Viel Spaß beim weiteren Spielen.") 
                game.set_event_flag(xmas_snow 0) 
                game.set_event_flag(xmas_boom 0) 
                game.set_event_flag(xmas_tree 0) 
                game.set_event_flag(xmas_tree 0) 
                game.set_event_flag(xmas_tree 0) 
            end 
        end 
    end 
end
jetzt aber
11/09/2010 21:48 TTapi#888
nope leider immer noch net :P

syntax error : [string "start"]:2: `=´expected near `a´

aber egal :D Is eh net für mich ich kanns auch eintippen geht nur um kollegen dies net auswendig können ;) Bin jtz auch ma off.... Danke für eure Hilfe :)
11/11/2010 19:55 .Shazou#889
Hey Leute,
ich habe mich mal bemüht auch eine Quest zuschreiben. Bitte schaut mal nach ob die auch so funktionieren kann.
Die Texte sind entfernt weil ich die Idee erst einmal für mich behalten will. Will nur wissen ob der rest richtig ist.
Quest 1
Quest 2
11/12/2010 21:13 iYoshix3#890
@ shazou

1. der erste "state" einer quest beginnt "IMMER" mit start und nicht mit run
2. hast du nicht überral set_state(nächster state) angegeben

quest 2

1. du hast beim ersten state kein begin

du macht zuviele leichtsinnsfehler
11/12/2010 21:18 iYoshix3#891
Quote:
Originally Posted by henpii View Post
Code:
quest event begin 
    state start begin 
        when 20087.click begin
            say("Was möchtest du machen?") 
            locale a == select ("Reichsschlacht starten","Reichsschlacht beenden","Weihnachts-Event starten","Weihnachts-Event beenden","Abbrechen")
if s == 5 then
return
end
            if a == 1 then 
                say("Die Reichsschlacht beginnt.")
                        return
                notice_all("Die Reichsschlacht hat begonnen.") 
                notice_all("Geht zum Schlachtenverwalter um teilzu nehmen.") 
                notice_all("Das Gewinner Reich erhält tolle Preise.") 
                game.set_event_flag("threeway_war", 1) 
                game.set_event_flag("threeway_war_dead_count", 5) 
                game.set_event_flag("threeway_war_kill_boss_count", 1) 
                game.set_event_flag("threeway_war_kill_count", 200) 
                game.set_event_flag("threeway_war_mob_count", 150) 
                game.set_event_flag("threeway_war_open_gate1", 1) 
                game.set_event_flag("threeway_war_open_gate2", 1) 
                game.set_event_flag("threeway_war_open_gate3", 1) 
            end 
            if a == 2 then 
                say("Du hast die Reichsschlacht beendet.") 
                         return
                notice_all("Die Reichsschlacht ist beendet.") 
                notice_all("Viel Spaß beim weiteren Spielen.") 
                game.set_event_flag("threeway_war", 0) 
            end 
            if a == 3 then 
                say("Du hast das Weihnachts Event gestartet.")
                          return
                notice_all("Das Weihnachts Event ist gestartet.") 
                notice_all("Findet einen GM / GA der verwandelt ist als Weihnachtsmann") 
                notice_all("Ihr werdet bei jedem Fund tolle Preise erhlaten.") 
                game.set_event_flag("xmas_snow", 1) 
                game.set_event_flag("xmas_boom", 1) 
                game.set_event_flag("xmas_tree", 1) 
                game.set_event_flag("xmas_tree", 2) 
                game.set_event_flag("xmas_tree", 3) 
            end 
            if a == 4 then 
                say("Du hast das Weihnachts Event beendet.")
                        return
                notice_all("Das Weihnachts Event wurde beendet.") 
                notice_all("Viel Spaß beim weiteren Spielen.") 
                game.set_event_flag("xmas_snow", 0) 
                game.set_event_flag("xmas_boom", 0) 
                game.set_event_flag("xmas_tree", 0) 
                game.set_event_flag("xmas_tree", 0) 
                game.set_event_flag("xmas_tree", 0) 
            end 
        end 
    end 
end
jetzt aber
SO SOLLTE ES GEHEN
11/12/2010 23:37 RealFreak#892
bissl peinlich wenn ich da mit sonem noob prob komme aber wayne it, jeder fängt mal mit Sachen neu an und ich bin bisher eher clientside gewesen:
PHP Code:
quest gmnpc begin
    state start begin
        when 20041.chat begin 
            local left 
pc.getqf("next_time") - get_time()
            
local left2 left 15
            say_title
("Betrunkener Bürger")
            
say("Hier kannst du wie ein")
            
say("GameMaster schreiben.")
            
say("")
            
say("Jedoch klappt dies nur 4x pro Stunde!")
            
say_reward("Willst du etwas ankündigen?")
            
local a select("Ja","Nein")
            if 
== 1 then
                say_title
("Betrunkener Bürger")
                
say("Damit kannst du deine Items")
                
say("weitaus effektiver verkaufen. ")
                
say_reward("Willst du als GameMaster schreiben?")
                
local b select("Ja","Nein")
                if 
== 1 then
                    
if get_time() > pc.getqf("next_time")then
                        say_title
("Betrunkener Bürger")
                        
say_reward("Was willst du schreiben?")
                        
local send_text input()
                        
notice_all(""..pc.get_name()..": "..send_text.."")
                        
end
                    
else            
                        
say("Du musst noch "..left2.." Minuten warten.")
                    
end
                
else 
                    return
                
end
            
else
                return
            
end
        end 
    end 
end 
Code:
syntax error : [string "start"]:29: <eof> expected near `else'
gmnpc.quest:34:Abort trap (core dumped)
MfG RealFreak
11/14/2010 14:27 Lowwer#893
PHP Code:
quest move_ring begin
    state start begin
        when 80009.
use begin
            
if get_time() < pc.getqf("next_time"then
                say_title
("Sonderfunktion:")
                
say("")
                
say_reward("Aber nur für die GM's!")
                
say("")
                
say("")
                if 
pc.is_gm() then

                    say
("Du könntest mich eigtl. erst ab:")
                    
say(string.format("    %s"time_to_str(pc.getqf("next_time"))))
                    
say("nutzen. Aber GM's müssen nicht warten, wenn sie wollen.")
                    
say("")
                    
local s select("Nicht warten")
                    if 
== 1 then
                        say
("Zeit wurde auf 0 gesetzt.")
                        
say("")
                        
pc.setqf("next_time"0)

                    
end
                end
                
return;
            
end

            say
("Zurück zur Stadt-Ring:")
            
say("Ich der sprechende Ring habe die Funktion")
            
say("dich zu deiner Anfangsmap zu bringen.")
            
say("Doch pass auf! Du kannst mich nicht immer")
            
say("benutzen. Ich benötige auch Schlaf und muss")
            
say("nach jedem teleportieren ein bisschen schlafen.")
            
say("So, was ist nun?")
            
say("")
            
wait()
            
local s=select(                "Zur Stadt",                "Lieber doch nicht")
            if 
1==s then
                local empire 
pc.get_empire()
                if 
empire == 1 then
                    pc
.warp(474300,954800)
                elseif 
empire == 2 then
                    pc
.warp(63800,166400)
                elseif 
empire == 3 then
                    pc
.warp(959900,269200)
                
end
                pc
.setqf("next_time"get_time() + 3600)
            elseif 
2==s then
                say
("Tschüss. Bis zum nächsten Mal.")
                
say("")
            
end
        end
    end
end 
Was ist da falsch ? :D
11/14/2010 14:39 Silfro#894
Was hier falsch?
Quote:
quest give_basic_weapon begin
state start begin
when login begin
if pc.getqf("basic_weapon") == 0 then
pc.setqf("basic_weapon", 1)

local item = 10

if pc.job == 1 then
item = 1009
elseif pc.job == 3 then
item = 7009
end

if pc.countitem(item) == 0 and pc.weapon != item then
pc.change_money (100000)
pc.give_item2(item)
pc.give_item2 ( "27003" , 200 )
pc.give_item2 ( "27003" , 200 )
pc.give_item2 ( "27003" , 200 )
pc.give_item2 ( "27003" , 200 )
pc.give_item2 ( "27003" , 200 )
pc.give_item2 ( "27006" , 200 )
pc.give_item2 ( "27006" , 200 )
pc.give_item2 ( "71050" , 200 )
pc.give_item2 ( "72702" , 1 )
pc.give_item2 ( "70038" , 20 )
pc.give_item2 ( "22000" , 20 )

if pc . job == 0 then
pc . give_item2 ( "19" , 1 )
pc . give_item2 ( "11209" , 1 )
pc . give_item2 ( "11219" , 1 )
pc . give_item2 ( "11209" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "17009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "12209" , 1 )
say_reward ( "Dies ist dein Kriegerequip=)" )
elseif pc . job == 1 then
pc . give_item2 ( "19" , 1 )
pc . give_item2 ( "2009" , 1 )
pc . give_item2 ( "8009" , 200 )
pc . give_item2 ( "8008" , 200 )
pc . give_item2 ( "8007" , 200 )
pc . give_item2 ( "8006" , 200 )
pc . give_item2 ( "12349" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "17009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
pc . give_item2 ( "11409" , 1 )
pc . give_item2 ( "11419" , 1 )
say_reward ( "Dies ist dein Ninjastartrequip=)" )
elseif pc . job == 2 then
pc . give_item2 ( "19" , 1 )
pc . give_item2 ( "11609" , 1 )
pc . give_item2 ( "11619" , 1 )
pc . give_item2 ( "12489" , 1 )
pc . give_item2 ( "17009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
say_reward ( "Dies ist dein Suraequip=)" )
elseif pc . job == 3 then
pc . give_item2 ( "7009" , 1 )
pc . give_item2 ( "5019" , 1 )
pc . give_item2 ( "12629" , 1 )
pc . give_item2 ( "11809" , 1 )
pc . give_item2 ( "11819" , 1 )
pc . give_item2 ( "17009" , 1 )
pc . give_item2 ( "14009" , 1 )
pc . give_item2 ( "15009" , 1 )
pc . give_item2 ( "16009" , 1 )
say_reward ( "Dies ist dein Schamanenequip=)" )

end
end
end
end
end
11/14/2010 15:01 iYoshix3#895
Quote:
Originally Posted by Lowwer View Post
PHP Code:
quest move_ring begin
    state start begin
        when 80009.
use begin
            
if get_time() < pc.getqf("next_time"then
                say_title
("Sonderfunktion:")
                
say("")
                
say_reward("Aber nur für die GM's!")
                
say("")
                
say("")
                if 
pc.is_gm() then

                    say
("Du könntest mich eigtl. erst ab:")
                    
say(string.format("    %s"time_to_str(pc.getqf("next_time"))))
                    
say("nutzen. Aber GM's müssen nicht warten, wenn sie wollen.")
                    
say("")
                    
local s select("Nicht warten")
                    if 
== 1 then
                        say
("Zeit wurde auf 0 gesetzt.")
                        
say("")
                        
pc.setqf("next_time"0)

                    
end
                end
                
return;
            
end

            say
("Zurück zur Stadt-Ring:")
            
say("Ich der sprechende Ring habe die Funktion")
            
say("dich zu deiner Anfangsmap zu bringen.")
            
say("Doch pass auf! Du kannst mich nicht immer")
            
say("benutzen. Ich benötige auch Schlaf und muss")
            
say("nach jedem teleportieren ein bisschen schlafen.")
            
say("So, was ist nun?")
            
say("")
            
wait()
            
local s=select(                "Zur Stadt",                "Lieber doch nicht")
            if 
1==s then
                local empire 
pc.get_empire()
                if 
empire == 1 then
                    pc
.warp(474300,954800)
                elseif 
empire == 2 then
                    pc
.warp(63800,166400)
                elseif 
empire == 3 then
                    pc
.warp(959900,269200)
                
end
                pc
.setqf("next_time"get_time() + 3600)
            elseif 
2==s then
                say
("Tschüss. Bis zum nächsten Mal.")
                
say("")
            
end
        end
    end
end 
Was ist da falsch ? :D
So sollts gehn

11/14/2010 17:21 Nixodas#896
@ Silfo
also lass ma die anfügrungszeichen weg
ich hab die nicht und bei funktionierts
11/14/2010 19:13 Silfro#897
So?

Quote:
quest give_basic_weapon begin
state start begin
when login begin
if pc.getqf(basic_weapon) == 0 then
pc.setqf(basic_weapon, 1)

local item = 10

if pc.job == 1 then
item = 1009
elseif pc.job == 3 then
item = 7009
end

if pc.countitem(item) == 0 and pc.weapon != item then
pc.change_money (100000)
pc.give_item2(item)
pc.give_item2 ( 27003 , 200 )
pc.give_item2 ( 27003 , 200 )
pc.give_item2 ( 27003 , 200 )
pc.give_item2 ( 27003 , 200 )
pc.give_item2 ( 27003 , 200 )
pc.give_item2 ( 27006 , 200 )
pc.give_item2 ( 27006 , 200 )
pc.give_item2 ( 71050 , 200 )
pc.give_item2 ( 72702 , 1 )
pc.give_item2 ( 70038 , 20 )
pc.give_item2 ( 22000 , 20 )

if pc . job == 0 then
pc . give_item2 ( 19 , 1 )
pc . give_item2 ( 11209 , 1 )
pc . give_item2 ( 11219 , 1 )
pc . give_item2 ( 11209 , 1 )
pc . give_item2 ( 13009 , 1 )
pc . give_item2 ( 17009 , 1 )
pc . give_item2 ( 14009 , 1 )
pc . give_item2 ( 15009 , 1 )
pc . give_item2 ( 16009 , 1 )
pc . give_item2 ( 12209 , 1 )
say_reward (Dies ist dein Kriegerequip )
elseif pc . job == 1 then
pc . give_item2 ( 19 , 1 )
pc . give_item2 ( 2009 , 1 )
pc . give_item2 ( 8009 , 200 )
pc . give_item2 ( 8008 , 200 )
pc . give_item2 ( 8007 , 200 )
pc . give_item2 ( 8006 , 200 )
pc . give_item2 ( 12349 , 1 )
pc . give_item2 ( 13009 , 1 )
pc . give_item2 ( 17009 , 1 )
pc . give_item2 ( 14009 , 1 )
pc . give_item2 ( 15009 , 1 )
pc . give_item2 ( 16009 , 1 )
pc . give_item2 ( 11409 , 1 )
pc . give_item2 ( 11419 , 1 )
say_reward ( Dies ist dein Ninjastartrequip )
elseif pc . job == 2 then
pc . give_item2 ( 19 , 1 )
pc . give_item2 ( 11609 , 1 )
pc . give_item2 ( 11619 , 1 )
pc . give_item2 ( 12489 , 1 )
pc . give_item2 ( 17009 , 1 )
pc . give_item2 ( 14009 , 1 )
pc . give_item2 ( 15009 , 1 )
pc . give_item2 ( 16009 , 1 )
say_reward ( Dies ist dein Suraequip )
elseif pc . job == 3 then
pc . give_item2 ( 7009 , 1 )
pc . give_item2 ( 5019 , 1 )
pc . give_item2 ( 12629 , 1 )
pc . give_item2 ( 11809 , 1 )
pc . give_item2 ( 11819 , 1 )
pc . give_item2 ( 17009 , 1 )
pc . give_item2 ( 14009 , 1 )
pc . give_item2 ( 15009 , 1 )
pc . give_item2 ( 16009 , 1 )
say_reward (Dies ist dein Schamanenequip)

end
end
end
end
end
11/15/2010 16:02 Nixodas#898
jo so würde ichs machen und die leerzeichen dürfen denk ich weg eher so also würde ich es machen


so sollte es gehen
11/15/2010 19:12 RealFreak#899
Joa, jedes Mal wenn ich relogge darf ich den Quest neu anfangen, was muss ich da dann machn? xD
PHP Code:
quest 90germetins begin
    state start begin
        when login with pc
.level >= 80 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Vernichtung der Metinsteine")
        
end

        when info 
or button begin
            say
("Vernichtung der Metinsteine")
            
say("Vernichtung der Metinsteine")
            
say("Ich brauche deine Hilfe um das vergessene Land von den Bössen")
            
say_reward("Zerstöre 40 Level 90er Metins und werde reich belohnt")
            
say("")
            
pc.setqf("state"40)
            
q.set_counter("90ger Metin"40)
        
end

        when 8027.kill begin
            local count 
pc.getqf("state") - 1
            
if count <= 40 then
                pc
.setqf("state"count)
                
q.set_counter("90ger Metin"count)
            
end
            
if count == 0 then
                say_title
("Vernichtung der Metinsteine")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("2x Jede Perle")
                
say_reward("Außerdem:")
                
say_reward("20kk Yang")
                
pc.change_money(20000000)
                
pc.give_item2(279921)
                
pc.give_item2(279931)
                
pc.give_item2(279941)
                
pc.give_item2(279921)
                
pc.give_item2(279931)
                
pc.give_item2(279941)
                
clear_letter()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
11/16/2010 00:53 Brutus75#900
Versuchs so mal!
PHP Code:
quest metin begin
    state start begin
        when login with pc
.level >= 80 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Vernichtung der Metinsteine")
        
end

        when info 
or button begin
            say
("Vernichtung der Metinsteine")
            
say("Vernichtung der Metinsteine")
            
say("Ich brauche deine Hilfe um das vergessene Land von den Bössen")
            
say_reward("Zerstöre 40 Level 90er Metins und werde reich belohnt")
            
say("")
            
pc.setqf("state"40)
            
q.set_counter("90ger Metin"40)
            
set_state (metin)
        
end
    end
      
        state metin begin
        when letter begin
            send_letter
("Zerstöre Metins")
        
end
        
        when button 
or info begin
            say_title
("90er Metins:")
            
say_reward"Du musst noch ".." "..pc.getqf("state").."von 40 zerstören")
            
say("")
        
end

        when 8027.kill begin
            local count 
pc.getqf("state") - 1
            
if count <= 40 then
                pc
.setqf("state"count)
                
q.set_counter("90ger Metin"count)
            
end
            
if count == 0 then
                say_title
("Vernichtung der Metinsteine")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("2x Jede Perle")
                
say_reward("Außerdem:")
                
say_reward("20kk Yang")
                
pc.change_money(20000000)
                
pc.give_item2(279921)
                
pc.give_item2(279931)
                
pc.give_item2(279941)
                
pc.give_item2(279921)
                
pc.give_item2(279931)
                
pc.give_item2(279941)
                
clear_letter()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
MFG Brutus75