[SERVICE] Die Questkontrolle

04/15/2012 16:56 Daimand#5506
quest yangtruhe begin
state start begin
when 99999.use begin
say_title("Yangtruhe")
say("Möchtest du die Truhe öffnen?")
say_reward("Wenn du die Truhe öffnest, erhälst du 250kk")
local s = select("Ja", "Nein")
if s==1 then
if pc.get_gold()<=1700000000 then
pc.change_gold(250000000)
pc.remove_item("99999", 1)
else
say_title("Yangtruhe")
say("Du trägst zu viel Yang bei dir!")
end
end
if s==2 then
say_title("Yangtruhe")
say("Vielleicht benötigst du das Yang")
say("ein anderes Mal...")
end
end
end
end

Das mit zuviel end stimmt net alles prima liegt nur an der Item Einstellung !
DarkNessWorld2 hat das end für when vergessen XD
04/15/2012 17:42 DarkNessWorld2#5507
Quote:
Originally Posted by Daimand View Post
quest yangtruhe begin
state start begin
when 99999.use begin
say_title("Yangtruhe")
say("Möchtest du die Truhe öffnen?")
say_reward("Wenn du die Truhe öffnest, erhälst du 250kk")
local s = select("Ja", "Nein")
if s==1 then
if pc.get_gold()<=1700000000 then
pc.change_gold(250000000)
pc.remove_item("99999", 1)
else
say_title("Yangtruhe")
say("Du trägst zu viel Yang bei dir!")
end
end
if s==2 then
say_title("Yangtruhe")
say("Vielleicht benötigst du das Yang")
say("ein anderes Mal...")
end
end
end
end

Das mit zuviel end stimmt net alles prima liegt nur an der Item Einstellung !
DarkNessWorld2 hat das end für when vergessen XD
-.- jetzt dachte ich ich hättes es einmal geschafft ^^

PHP Code:
quest eventbossmap11 begin 
    state start begin 
        when 20088.chat
."Event Boss Map" with pc.get_level() >=150 and game.get_event_flag("eventbossmap") == and pc.getqf("player") == 0 begin 
            say_title
("SD2-Porter:"
            
say(""
            
say("Sei gegruesst Reisender!"
            
say("Du moechstest also zur Event Boss Map"
            
say("Ich kann dich gerne hinbringen."
            
say(""
            
say("Moechtest du zur Event Boss Map"
            
say(""
            
local s select("Ja""Nein"
            if 
s==1 then
                say_title
("SD2-Porter:"
                
say(""
                
say("Gut"
                
say("Ich wuensche dir viel Spass")
                
game.set_event_flag("eventbossmap"1)
                
pc.warp(999900999900)
            
end
            
if s==2 then 
                
return 
            
end 
        end 
        when 2598.kill with pc
.get_map_index() == 201 begin 
            notice_all
(""..pc.get_name().." hat den Roten Event Drachen besiegt!"
            
notice_all("Wir gratulieren ihm!")
            
end
        end
            when 2598.kill with pc
.get_map_index() == 201 begin
            say_in_map
(201"Du wirst in 30 Sekunden ins Blaue Map1 geportet.")
            
say_in_map(201"Du kannst dich dann mit dem Warpring weg porten")
            
say_in_map(201"in dein Reich")
            
timer("first"30)
        
end
        when first
.timer begin
             pc
.warp(921600204800)
            
game.set_event_flag("eventbossmap"0)
            
pc.setqf("player"1)
            
timer("twice"86400)
        
end 
        when twice
.timer begin 
            pc
.setqf("player"0)
        
end 
    end
end 
kann mir wer den fehler raus machen: "Error occured on compile event_boss_map.quest"
04/15/2012 18:11 Daimand#5508
quest eventbossmap11 begin
state start begin
when 20088.chat."Event Boss Map" with pc.get_level() >=150 begin
if pc.getqf("player") == 0 and game.get_event_flag("eventbossmap") == 0 then
say_title("SD2-Porter:")
say("")
say("Sei gegruesst Reisender!")
say("Du moechstest also zur Event Boss Map")
say("Ich kann dich gerne hinbringen.")
say("")
say("Moechtest du zur Event Boss Map")
say("")
local s = select("Ja", "Nein")
if s==1 then
say_title("SD2-Porter:")
say("")
say("Gut")
say("Ich wuensche dir viel Spass")
game.set_event_flag("eventbossmap", 1)
pc.warp(999900, 999900)
end
if s==2 then
return
end
else
say_title("SD2-Porter:")
say("")
say("Sei gegruesst Reisender!")
say("Du moechstest also zur Event Boss Map")
say("Ich kann dich nur einaml alle 24 Stunden Transportieren!")
say("")
end
end
when 2598.kill with pc.get_map_index() == 201 begin
notice_all(""..pc.get_name().." hat den Roten Event Drachen besiegt!")
notice_all("Wir gratulieren ihm!")
say_in_map(201, "Du wirst in 30 Sekunden ins Blaue Map1 geportet.")
say_in_map(201, "Du kannst dich dann mit dem Warpring weg porten")
say_in_map(201, "in dein Reich")
timer("first", 30)
end
when first.timer begin
pc.warp(921600, 204800)
game.set_event_flag("eventbossmap", 0)
pc.setqf("player", 1)
timer("twice", 86400)
end
when twice.timer begin
pc.setqf("player", 0)
end
end
end

Versuchs mal so ! könntest auch mehre states draus machen, when und event flag keine gute Mischung^^
04/15/2012 19:24 Sariumus#5509
Quote:
Originally Posted by Sariumus View Post
@hr4rjuku

Geht leider nicht... da kommt ein Fehler... :O
Bild:
[Only registered and activated users can see links. Click Here To Register...]
Quote:
Originally Posted by Sariumus View Post
Code:
quest warpring begin  
    state start begin  
        when 70007.use with pc.get_level() >= 10 begin   
          
            say_title("Ring:")  
            say("Möchtest du teleportiert werden?")  
            say("Es kostet dich 10000 Yang") 
            local main_set = select("Ja","Nein")  
            if main_set == 2 then  
                return  
            end  
              
            if pc.get_level() < 10 then  
                say_title("Ring:")  
                say("Hm… Mit deinem derzeitigen Level bist du noch")  
                say("zu schwach für die Reise durch Zeit und Raum.")  
                say("Komm wieder, wenn du höher als Level 10 bist.")  
                return  
            end  
            if pc.gold < 10000 
                 say_title("Ring":) 
                 say("Du hast nicht genug Yang um teleportiert zu werden") 
                 say("Komm wieder wenn du genug Yang hast") 
             
            local sub_set = select("Rotes Reich", "Blaues Reich", "Gelbes Reich", "MetinMap", "HighLvlMap 1", "HighLvlMap 2", "Abbrechen") + 5  
            if sub_set == 7 then  
                return  
                        end  
            elseif sub_set == 1 then  
                pc.warp(474120, 954400)  
            elseif sub_set == 2 then  
                pc.warp(352900, 882500)  
            elseif sub_set == 3 then  
                pc.warp(63200, 166100)  
            elseif sub_set == 4 then  
                pc.warp(999900, 999900)  
            elseif sub_set == 5 then  
                pc.warp(83200, 0)  
            elseif sub_set == 6 then  
                pc.warp(940000, 897200)  
            end  
                pc.remove_item(70007, 1) 
                pc.changemoney(-10000)  
			end
		end
	end  
end
& da tut sich nichts >_<
Könnte mir da vllt jemand helfen???
04/15/2012 21:01 Fear *_*#5510
Versuchs ma so:

Code:
quest warpring begin  
    state start begin  
        when 70007.use begin   
			if pc.get_level() < 10 then  
                say_title("Ring:")  
                say("Hm… Mit deinem derzeitigen Level bist du noch")  
                say("zu schwach für die Reise durch Zeit und Raum.")  
                say("Komm wieder, wenn du höher als Level 10 bist.")  
                return  
            end  
			 if pc.get_money < 10000 then
                 say_title("Ring":) 
                 say("Du hast nicht genug Yang um teleportiert zu werden") 
                 say("Komm wieder wenn du genug Yang hast") 
				 return
			end
			
            say_title("Ring:")  
            say("Möchtest du teleportiert werden?")  
            say("Es kostet dich 10000 Yang") 
            local main_set = select("Ja","Nein")  
            if main_set == 2 then  
                return  
            else
				local sub_set = select("Rotes Reich", "Blaues Reich", "Gelbes Reich", "MetinMap", "HighLvlMap 1", "HighLvlMap 2", "Abbrechen")
				if sub_set == 7 then  
					return  
				elseif sub_set == 1 then  
					pc.warp(474120, 954400)
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 2 then  
					pc.warp(352900, 882500) 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 3 then  
					pc.warp(63200, 166100) 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 4 then  
					pc.warp(999900, 999900) 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 5 then  
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
					pc.warp(83200, 0)  
				elseif sub_set == 6 then 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
					pc.warp(940000, 897200)  
				end   
			end
		end
	end  
end
04/15/2012 21:31 DarkNessWorld2#5511
Quote:
Originally Posted by Daimand View Post
quest eventbossmap11 begin
state start begin
when 20088.chat."Event Boss Map" with pc.get_level() >=150 begin
if pc.getqf("player") == 0 and game.get_event_flag("eventbossmap") == 0 then
say_title("SD2-Porter:")
say("")
say("Sei gegruesst Reisender!")
say("Du moechstest also zur Event Boss Map")
say("Ich kann dich gerne hinbringen.")
say("")
say("Moechtest du zur Event Boss Map")
say("")
local s = select("Ja", "Nein")
if s==1 then
say_title("SD2-Porter:")
say("")
say("Gut")
say("Ich wuensche dir viel Spass")
game.set_event_flag("eventbossmap", 1)
pc.warp(999900, 999900)
end
if s==2 then
return
end
else
say_title("SD2-Porter:")
say("")
say("Sei gegruesst Reisender!")
say("Du moechstest also zur Event Boss Map")
say("Ich kann dich nur einaml alle 24 Stunden Transportieren!")
say("")
end
end
when 2598.kill with pc.get_map_index() == 201 begin
notice_all(""..pc.get_name().." hat den Roten Event Drachen besiegt!")
notice_all("Wir gratulieren ihm!")
say_in_map(201, "Du wirst in 30 Sekunden ins Blaue Map1 geportet.")
say_in_map(201, "Du kannst dich dann mit dem Warpring weg porten")
say_in_map(201, "in dein Reich")
timer("first", 30)
end
when first.timer begin
pc.warp(921600, 204800)
game.set_event_flag("eventbossmap", 0)
pc.setqf("player", 1)
timer("twice", 86400)
end
when twice.timer begin
pc.setqf("player", 0)
end
end
end

Versuchs mal so ! könntest auch mehre states draus machen, when und event flag keine gute Mischung^^
eine frage muss man dass net mit dem [php]xxx[php] code machen damit das so stufenweise aussieht
04/15/2012 21:58 Kriegergeist^^#5512
Abend auch,

habe eine kleine frage ob sowas möglich ist:
HTML Code:
		when kill with pc.get_map_index()==456 begin
		if not pc.in_dungeon() then
			game.drop_item(30128, 1)
			end
		end
Würde das gehen? Und wen nicht, wie würde das dan gehen?

MfG
Kriegergeist^^
04/15/2012 23:26 Sariumus#5513
Quote:
Originally Posted by Fear *_* View Post
Versuchs ma so:

Code:
quest warpring begin  
    state start begin  
        when 70007.use begin   
			if pc.get_level() < 10 then  
                say_title("Ring:")  
                say("Hm… Mit deinem derzeitigen Level bist du noch")  
                say("zu schwach für die Reise durch Zeit und Raum.")  
                say("Komm wieder, wenn du höher als Level 10 bist.")  
                return  
            end  
			 if pc.get_money < 10000 then
                 say_title("Ring":) 
                 say("Du hast nicht genug Yang um teleportiert zu werden") 
                 say("Komm wieder wenn du genug Yang hast") 
				 return
			end
			
            say_title("Ring:")  
            say("Möchtest du teleportiert werden?")  
            say("Es kostet dich 10000 Yang") 
            local main_set = select("Ja","Nein")  
            if main_set == 2 then  
                return  
            else
				local sub_set = select("Rotes Reich", "Blaues Reich", "Gelbes Reich", "MetinMap", "HighLvlMap 1", "HighLvlMap 2", "Abbrechen")
				if sub_set == 7 then  
					return  
				elseif sub_set == 1 then  
					pc.warp(474120, 954400)
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 2 then  
					pc.warp(352900, 882500) 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 3 then  
					pc.warp(63200, 166100) 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 4 then  
					pc.warp(999900, 999900) 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
				elseif sub_set == 5 then  
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
					pc.warp(83200, 0)  
				elseif sub_set == 6 then 
					pc.remove_item(70007, 1) 
					pc.changemoney(-10000) 
					pc.warp(940000, 897200)  
				end   
			end
		end
	end  
end
Bringt leider auch nichts. Der gleiche fehler :/
04/16/2012 15:50 -TÜRK-#5514
#solved
04/16/2012 16:09 Daimand#5515
Quote:
Originally Posted by DarkNessWorld2 View Post
eine frage muss man dass net mit dem [php]xxx[php] code machen damit das so stufenweise aussieht
KP weis net wie man das hier einfügt, aber funzt als Quest auch so !
04/16/2012 16:17 -TÜRK-#5516
Hey, i have new problem with THIS! quest :/

PHP Code:
quest mount_quest begin
    state start begin
        when 20349.chat
."Bir Tane Binek İstiyorum" with horse.get_level() == 21 begin
            
if horse.is_dead() then
                say_title
("Seyis:")
                
say("")
                
say("Ölü bir atı geliştiremezsin!")
                
say("İlk önce atını canlandırman gerek...")
                return
            
end
            
if pc.level <= 25 then
                say_title
("Seyis:")
                
say("")
                
say("Seviyen bir binek satın alabilmek için çok düşük!")
                
say("25. Seviyeden yüksek olmalısın.")
                
say("Bu binekler tecrübeli kişiler içindir.")
                return
            
end
            
if pc.countitem("30036") < 1 then
                say_title
("Seyis:")
                
say("")
                
say("Atını geliştirmek için Gizemli Bitki gerek.")
                
say("Ancak bu bitkiyi atına yedirince gelişebilir.")
                
say("Bu bitkiyi Ormanda'ki ağaçlardan bulabilirsin.")
                
say("Ancak sana o kadar da kolay vermeyeceklerdir.")
                return
            
end
            
if horse.get_level () < 21 and horse.get_level () > 21 then
                say_title
("Seyis:")
                
say("")
                
say("Atının seviyesi uygunsuz gözüküyor.")
                return
            
end
            
if horse.get_level () == 21 and horse.get_level () > 21 and not horse.is_dead() and pc.countitem ("30036") >= and pc.level >= 25 then
                say_title
("Seyis:")
                
say("")
                
say("Hmm. Senin atın Gizemli Bitki ile geliştirilebilir.")
                
say("Ancak bir takım sınavdan geçmen gerekiyor.")
                
say("Eğer 30DK içinde 65 adet Elit Ork Büyücüsü öldürürsen,")
                
say("Bu sınavı geçmeye hak kazanacaksın.")
                
local gir select("Sınava Gir""Girme")
                if 
gir == 1 then
                    
if pc.countitem("30036") >= 1 then
                    pc
.removeitem("30036",1)
                    
setstate(gorev)
                elseif 
gir == 2 then
                    say_title
("Seyis:")
                    
say("")
                    
say("Hazır olduğunu hissettiğin zaman tekrar gel!")
                else
                    
say_title("Seyis:")
                    
say("")
                    
say("Sana bir adet Gizemli Bitki gerek.")
                
end
            end
        end
    end
    state gorev begin 
        when 634.party_kill begin
            pc
.setqf("kill_count"pc.getqf("kill_count")+1)
            
q.set_counter("Kalan Elit Ork Büyücüsü:"65-pc.getqf("kill_count"))
            if 
get_time()>=pc.getqf("limit_time"then
                    setstate
(bitti)
            
end
        end
        when 634.party_kill pc
.getqf("kill_count") >= 65 and pc.getqf("limit_time") >= get_time() begin
            setstate
(rapor)
        
end
        when letter begin
            q
.set_counter("Kalan Elit Ork Büyücüsü:"65-pc.getqf("kill_count"))
        
end
        when letter begin
            q
.set_clock("Kalan Süre:"pc.getqf("limit_time")-get_time())
        
end
        when enter begin
            pc
.setqf("limit_time"get_time()+30*60)
            
pc.setqf("kill_count"0)
        
end
        when leave begin
            q
.done()
        
end
        when letter begin
            send_letter
("Binek Sınavı ")
        
end
        when button 
or info begin
            say_title
("Binek Sınavı ")
            
say("")
            
say_reward("30DK içinde 65 adet Elit Ork Büyücüsü öldürmen gerek.")
            
say_reward("Eğer sınavı geçersen, atın seviye atlayacak.")
            
say_reward("Görevi tamamladıktan sonra Seyise rapor et.")
            
say("")
            
say_reward("Görev grup ile beraber yapılabilir.")
            
say_reward("Ancak, grup lideri sen olman gerekiyor.")
            
say("")
        
end
        when 20349.chat
."Binek Sınavı " begin
            say_title
("Seyis:")
            
say("")
            
say("Bu görev sana çok mu zor geldi?")
            
local kapat select("Evet.""Şaka, sadece bir şakaydı!")
                if 
kapat == 1 then
                    say_title
("Seyis:")
                    
say("")
                    
say("Tamam! Bir daha ki sefere bol şans...")
                    
setstate(start)
                    
q.done()
                else
                    
say_title("Seyis:")
                    
say("")
                    
say("Tamam, acele etmelisin...")
            
end
        end
    end
    state rapor begin
        when letter begin
            send_letter
("Seyise Rapor Ver")
        
end
        when button 
or info begin
            say_title
("Seyise Rapor Ver")
            
say("")
            
say("Seyise sınavın hakkında rapor ver.")
        
end
        when 20349.chat
."Rapor Sonuçları " begin
            say_title
("Seyis:")
            
say("")
            
say("İyi Sonuç!")
            
say("Zaten tecrübeli gözüküyordun! Hehe!")
            
say("Şimdi atını geliştirmemek için sebep kalmadı.")
            
say("Atını alıyorum ve yerine yepyeni bir binek veriyorum.")
            
say("Evet, şu bitkiyi atına yedirelim...")
            
say("Bu binek çok vahşidir, onu dikkatli kullan!")
            
wait()
            
say_title("Seyis:")
            
say("")
            
say("Yeni bineğinle bol şanslar...")
            
horse.unride()
            
horse.advance()
            
horse.ride()
            
q.done()
        
end
    end
    state bitti begin
        when letter begin
            send_letter
("Görevi Başaramadın!")
        
end
        when button 
or info begin
            say_title
("Binek Sınavı ")
            
say("")
            
say("Süre bitti!")
            
say("Binek sınavını başaramadın!")
            
say("Sınava her zaman tekrar girebilirsin.")
            
say("Tabiki de Gizemli Bitkiden tekrar bulabilirsen.")
            
setstate(start)
            
q.done()
        
end
    end
end 
PHP Code:
WHEN  20349.chat ("Bir Tane Binek İstiyorum")
expecting 'when' or 'function'
horse_levelup.quest:58:Abort trap (core dumped
help :(

Any helps?

Any helps?
04/16/2012 20:44 evoh12#5517
hat noch jemand eine lösung für mein Problem?
von vor paar tagen
04/16/2012 21:45 DarkNessWorld2#5518
Quote:
Originally Posted by Daimand View Post
KP weis net wie man das hier einfügt, aber funzt als Quest auch so !
kanns du mri die bitte mit php machen wäre supi ich komm damit irgendwie besser kla: [php][/PHP
muss natürlich ebend die ] klammer machen bei dem zweiten php
04/17/2012 00:54 Brodan#5519
Guten Abend,

ich versuche in meine reittierquest eine art "bugschutz" einzubauen..
dieser soll bewirken, dass wenn der spieler eines der Pferdebücher (50051, 50052 oder 50053) aufhebt bzw. "erhält" er sofort von einem mount unmounted wird..
Nur will mir das nicht so gelingen..

Putty sagt immer "when doesn't have begin-end-clause. (()"
PHP Code:
        when pc.get_item(50051) >= or pc.get_item(50052) >= or pc.get_item(50053) >= 1 then
            pc
.unmount()
            
pc.setqf("S.Tiger",0)
            
pc.setqf("S.Wolf",0)
            
pc.setqf("K.Keiler",0)
            
pc.setqf("S.Löwe",0)
            
pc.setqf("W.Löwe",0)
            
pc.setqf("Löwe",0)
            
pc.setqf("Tiger",0)
            
pc.setqf("Wolf",0)
            
pc.setqf("Keiler",0)
            return
        
end 
Wer eine lösung oder eine alternative hat wäre ich sehr dankbar =)
04/17/2012 02:42 kaufman93#5520
Hallo ;)
Hab mal ne Frage.
Habe eine Reittier quest aber ich kann das nur holen wenn ich rechtsklick drauf mache...
Kann sie mir bitte so um schreiben das man mit STR+G sich drauf hocken kann und wieder absteigen? ;) Danke :***

PHP Code:
quest reittier2 begin
    state start begin
        when 70045.
use begin
            chat
("Du hast dein Reittier gerufen!")
            
affect.add_collect(apply.ATT_GRADE_BONUS,200,60*60*24*365*60)        
            
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,200,60*60*24*365*60)
            
affect.add_collect(apply.MAX_HP,5000,60*60*24*365*60)
            
pc.mount(20119,86400)
            
set_state(back)
        
end
    end
    state back begin
        when 70045.
use begin
            chat
("Du hast dein Reittier weggeschickt")
            
affect.remove_collect(apply.ATT_GRADE_BONUS,200,60*60*24*365*60)        
            
affect.remove_collect(apply.ATT_BONUS_TO_MONSTER,200,60*60*24*365*60)
            
affect.remove_collect(apply.MAX_HP,5000,60*60*24*365*60)
            
pc.unmount()
            
set_state(start)
        
end
    end
end