[SERVICE] Die Questkontrolle

09/28/2014 23:27 Kullanici123#10501
Hey,

ich habe hier eine Warpring Quest bisschen umgebaut und habe folgendes Problem,

Hier erst mal die Quest:

PHP Code:
quest warpring begin   
    state start begin   
        when 70007.
use begin   
            say_title
("Ring der Teleportation:")   
            
local s=select("Map1""Map2""Normale Maps""Metin Farmmap""Farmmaps""Spinnendungeon""Weitere (ab 60)""Beenden")   
            if 
1==s then   
                say_title
("Ring der Teleportation:")   
                
local a=select ("Rotes Reich""Gelbes Reich""Blaues Reich""Beenden")   
                if 
1==a then   
                    pc
.warp(474086954540)   
                elseif 
2==a then   
                    pc
.warp(63098166617)   
                elseif 
3==a then   
                    pc
.warp(960054268807)   
                elseif 
4==a then   
                    
return   
                
end   
            
elseif 2==s then   
                say_title
("Ring der Teleportation:")   
                
local a=select ("Rotes Reich""Gelbes Reich""Blaues Reich""Beenden")   
                if 
1==a then   
                    pc
.warp(353003882460)   
                elseif 
2==a then   
                    pc
.warp(145582240227)   
                elseif 
3==a then   
                    pc
.warp(863589246139)   
                elseif 
4==a then   
                    
return   
                
end   
            
elseif 3==s then
                    say_title
("Normale Maps:")   
                    
local a=select ("Orktal (Mitte)""Eisland (Mitte)""Wüste (Mitte)""Beenden")   
                    if 
1==a then   
                        pc
.warp(332885745737)   
                    elseif 
2==a then   
                        pc
.warp(435705215084)   
                    elseif 
3==a then   
                        pc
.warp(296758547724)   
                    elseif 
4==a then   
                    
return   
                
end  
            
elseif 4==s then   
                pc
.warp(1059009800)   
            elseif 
5==s then   
                    say_title
("Farmmaps:")   
                    
local a=select ("Farmmap1""Farmmap2""Beenden")   
                    if 
1==a then   
                        pc
.warp(11140001517200)   
                    elseif 
2==a then   
                        pc
.warp(11343001654800)      
                    elseif 
3==a then   
                    
return   
                
end  
            
elseif 6==s then   
                    say_title
("Ring der Teleportation:")   
                    
local sd select ("Spinnendungeon 1""Spinnendungeon 2""Beenden")   
                    if 
1==sd then   
                        pc
.warp(51200486400)   
                    elseif 
2==sd then   
                        pc
.warp(665600435200)      
                    elseif 
3==sd then   
                        
return   
                    
end                
            
elseif 7==s then   
                
if pc.get_level() > 59 then       
                    say_title
("Weitere Maps:")   
                    
local a=select ("Feuerland (Teleporter)""Dämonenturm""Seelengrotte""Lungsam""Roter Wald""100-130 Map""130-150 Map""Beenden")   
                    if 
1==a then   
                        pc
.warp(600813687144)    
                    elseif 
2==a then   
                        pc
.warp(590516110606)   
                    elseif 
3==a then   
                        say_reward
("In welche Seelengrotte möchtest du denn?")   
                        
local b=select ("Seelengrotte 1""Seelengrotte 2""Beenden")   
                        if 
1==b then   
                            pc
.warp(100861213190)   
                        elseif 
2==b then   
                            pc
.warp(2416821275028)   
                        elseif 
3==b then   
                            
return 
                        
end
                    
elseif 4==a then   
                        pc
.warp(30330027100
                    elseif 
5==a then   
                        pc
.warp(111950070300)
                    elseif 
6==a then
                        
if pc.get_level() <= 100 then
                        say_title
("Wohin möchtest du genau?")
                        
local b=select ("100-130 Map (Anfang)""100-130 Map (Mitte)""Beenden")   
                        if 
1==b then
                            pc
.warp(12267001680400)
                        elseif 
2==b then
                            pc
.warp(12864001734100)    
                        elseif 
3==b then
                            
return
                        
end       
                    
elseif 7==a then
                        
if pc.get_level() <= 130 then
                        say_title
("Wohin möchtest du genau?")
                        
local b=select ("130-150 Map (Anfang)""130-150 Map (Stadt und PvP Gebiet)""Beenden")   
                        if 
1==b then
                            pc
.warp(11666001677600)
                        elseif 
2==b then
                            pc
.warp(10884001802500)    
                        elseif 
3==b then
                        
return
                        
end     
                    
elseif 8==a then
                    
return
                    
end   
                end   
            end
        end   
    end       
end 
Ich habe bei den letzten beiden Punkten versucht die Maps (100-130 Map und 130-150 Map) mit einer Level Grenze zu versehen, bevor ich die Level Grenze eingebaut habe lief die Quest ohne Fehler.

Eingefügt wurde:
PHP Code:
if pc.get_level() <= 100 then 
if pc.get_level() <= 130 then 
Hier die Fehlermeldung wenn ich die Quest neu laden möchte:

PHP Code:
WHEN 70007.use

assertion failure nested==0
warpring
.quest:115:Error occured on compile warpring.quest 
Danke im Vorraus! :)
09/29/2014 15:11 .yorliK#10502
Quote:
Originally Posted by Kullanici123 View Post
Hey,

ich habe hier eine Warpring Quest bisschen umgebaut und habe folgendes Problem,

Ich habe bei den letzten beiden Punkten versucht die Maps (100-130 Map und 130-150 Map) mit einer Level Grenze zu versehen, bevor ich die Level Grenze eingebaut habe lief die Quest ohne Fehler.

Eingefügt wurde:
PHP Code:
if pc.get_level() <= 100 then 
if pc.get_level() <= 130 then 
Hier die Fehlermeldung wenn ich die Quest neu laden möchte:

PHP Code:
WHEN 70007.use

assertion failure nested==0
warpring
.quest:115:Error occured on compile warpring.quest 
Danke im Vorraus! :)

Du musst die If's auch mit nem End abschließen, wobei pc.get_level()<=100 alle von 1-100 reinlassen würde und darüber nicht mehr.

Hab dir das Mal angepasst:
Code:
quest warpring begin
	state start begin
		when 70007.use begin
			say_title("Ring der Teleportation:")
			local s=select("Map1", "Map2", "Normale Maps", "Metin Farmmap", "Farmmaps", "Spinnendungeon", "Weitere (ab 60)", "Beenden")
			if 1==s then
				say_title("Ring der Teleportation:")
				local a=select ("Rotes Reich", "Gelbes Reich", "Blaues Reich", "Beenden")
				if 1==a then
					pc.warp(474086, 954540)
				elseif 2==a then
					pc.warp(63098, 166617)
				elseif 3==a then
					pc.warp(960054, 268807)
				elseif 4==a then
					return
				end
			elseif 2==s then
				say_title("Ring der Teleportation:")
				local a=select ("Rotes Reich", "Gelbes Reich", "Blaues Reich", "Beenden")
				if 1==a then
					pc.warp(353003, 882460)
				elseif 2==a then
					pc.warp(145582, 240227)
				elseif 3==a then
					pc.warp(863589, 246139)
				elseif 4==a then
					return
				end
			elseif 3==s then
				say_title("Normale Maps:")
				local a=select ("Orktal (Mitte)", "Eisland (Mitte)", "Wüste (Mitte)", "Beenden")
				if 1==a then
					pc.warp(332885, 745737)
				elseif 2==a then
					pc.warp(435705, 215084)
				elseif 3==a then
					pc.warp(296758, 547724)
				elseif 4==a then
					return
				end
			elseif 4==s then
				pc.warp(105900, 9800)
			elseif 5==s then
				say_title("Farmmaps:")
				local a=select ("Farmmap1", "Farmmap2", "Beenden")
				if 1==a then
					pc.warp(1114000, 1517200)
				elseif 2==a then
					pc.warp(1134300, 1654800)
				elseif 3==a then
					return
				end
			elseif 6==s then
				say_title("Ring der Teleportation:")
				local sd = select ("Spinnendungeon 1", "Spinnendungeon 2", "Beenden")
				if 1==sd then
						pc.warp(51200, 486400)
				elseif 2==sd then
					pc.warp(665600, 435200)
				elseif 3==sd then
					return
				end
			elseif 7==s then
				if pc.get_level() < 60 then syschat("Die weiteren Warps sind erst mit Lv60 zugängig.") return end
				say_title("Weitere Maps:")
				local a=select ("Feuerland (Teleporter)", "Dämonenturm", "Seelengrotte", "Lungsam", "Roter Wald", "100-130 Map", "130-150 Map", "Beenden")
				if 1==a then
					pc.warp(600813, 687144)
				elseif 2==a then
					pc.warp(590516, 110606)
				elseif 3==a then
					say_reward("In welche Seelengrotte möchtest du denn?")
					local b=select ("Seelengrotte 1", "Seelengrotte 2", "Beenden")
					if 1==b then
						pc.warp(10086, 1213190)
					elseif 2==b then
						pc.warp(241682, 1275028)
					elseif 3==b then
						return
					end
				elseif 4==a then
					pc.warp(303300, 27100)
				elseif 5==a then
					pc.warp(1119500, 70300)
				elseif 6==a then
					if pc.get_level() < 100 then syschat("Du musst über Lv100 sein, um diese Map betreten zudürfen!") return end
					say_title("Wohin möchtest du genau?")
					local b=select ("100-130 Map (Anfang)", "100-130 Map (Mitte)", "Beenden")
					if 1==b then
						pc.warp(1226700, 1680400)
					elseif 2==b then
						pc.warp(1286400, 1734100)
					elseif 3==b then
						return
					end
				elseif 7==a then
					if pc.get_level() < 130 then syschat("Du musst über Lv130 sein, um diese Map betreten zudürfen!") return end
					say_title("Wohin möchtest du genau?")
					local b=select ("130-150 Map (Anfang)", "130-150 Map (Stadt und PvP Gebiet)", "Beenden")
					if 1==b then
						pc.warp(1166600, 1677600)
					elseif 2==b then
						pc.warp(1088400, 1802500)
					elseif 3==b then
						return
					end
				elseif 8==a then
					return
				end
			end   
		end
	end   
end
10/04/2014 11:14 Rextrus#10503
PHP Code:
    state killi begin 
        when kill with npc
.get_race() == 591 begin 
            
if pc.getqf("kills") == 2 then 
                set_state
(fin
            else 
                
pc.setqf("kills",pc.getqf("kills")+1
            
end 
        end 
    end 
Man soll nur einen Boss töten. Bei der Funktion oben, muss man 3 töten. Kann mir jemand eine Funktion für nur einen Mob geben? :confused:
10/04/2014 11:49 .yorliK#10504
Quote:
Originally Posted by Rextrus View Post

Man soll nur einen Boss töten. Bei der Funktion oben, muss man 3 töten. Kann mir jemand eine Funktion für nur einen Mob geben? :confused:

Code:
	state killi begin  
		when kill with npc.get_race() == 591 begin -- 591 = MobID  
			set_state(fin)  
		end  
	end
10/04/2014 12:00 Rextrus#10505
Quote:
Originally Posted by Kilroy. View Post
Code:
	state killi begin  
		when kill with npc.get_race() == 591 begin -- 591 = MobID  
			set_state(fin)  
		end  
	end
Klappt leider nicht.
10/04/2014 19:37 .Despero™#10506
Hilfe bitteee Ich hab so ein problem

PHP Code:
SYSERROct  4 17:04:28 :: RunStateLUA_ERROR: [string "userpanel_invi"]:10attempt to call field `invi_func' (a nil value) WITH ERRORCODE 1
SYSERR: Oct  4 17:04:28 :: RunState: LUA_STATE: index 0 ref 3
SYSERR: Oct  4 17:04:28 :: WriteRunningStateToSyserr: LUA_ERROR: quest userpanel_invi.start click 
10/04/2014 21:05 deinuntergang123#10507

kann einer so machen das man das item mit 245 nicht mehr benutzen kann :D?
10/05/2014 16:35 synthou1234#10508
Warpring-Quest

PHP Code:
quest warpring begin
    state start begin
        when 70058.
use begin
            say_title
("Warpring"
            
say("Wohin möchtest du Teleportiert werden?")
        
local empire pc.get_empire() 
                    
local selectmap select("Map1","Orktal","Weiter","Abbrechen")
                    if 
selectmap == 8 then
                
return
                    elseif 
selectmap == 7 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
local selectmap2 select("Dämonenturm","SD2""Abbrechen")
                    if 
selectmap2 == 7 then
                        
return
                    elseif 
selectmap2 == 1 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
pc.warp(590500,110800)
                    elseif 
selectmap2 == 2 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local geisterselect select("Anfang","Ende","Abbrechen")
                    if 
geisterselect == 3 then
                        
return
                    elseif 
geisterselect == 1 then
            pc
.warp(290500,5700)
                    elseif 
geisterselect == 2 then
            pc
.warp(286400,44200)
            
end
                    
elseif selectmap2 == 3 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local roterselect select("Anfang","Ende","Abbrechen")
                    if 
roterselect == 3 then
                        
return
                    elseif 
roterselect == 1 then
            pc
.warp(1119900,70800)
                    elseif 
geisterselect == 2 then
            pc
.warp(1119100,7700)
            
end
                    
elseif selectmap2 == 4 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
pc.warp(3840028500)
            
end
                    
elseif selectmap == 1 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local map1select select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
                    if 
map1select == 4 then
                        
return
                    elseif 
map1select == 1 then
            pc
.warp(474300954800)
                    elseif 
map1select == 2 then
            pc
.warp(63800166400)
                    elseif 
map1select == 3 then
            pc
.warp(959900269200)
            
end
                    
elseif selectmap == 3 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local otselect select("Anfang","Mitte","Abbrechen")
                    if 
otselect == 3 then
                        
return
                    elseif 
otselect == 1 then
            
if empire == 1 then
            pc
.warp(402100673900)
                    elseif 
empire == 2 then
            pc
.warp(270400739900)
                    elseif 
empire == 3 then
            pc
.warp(321300808000)
            
end
                    
elseif otselect == 2 then
            pc
.warp(332800745600)
            
end
            end
         end
      end
   end
end 
10/05/2014 16:37 .yorliK#10509
Quote:
Originally Posted by .Despero™ View Post
Hilfe bitteee Ich hab so ein problem

PHP Code:
SYSERROct  4 17:04:28 :: RunStateLUA_ERROR: [string "userpanel_invi"]:10attempt to call field `invi_func' (a nil value) WITH ERRORCODE 1
SYSERR: Oct  4 17:04:28 :: RunState: LUA_STATE: index 0 ref 3
SYSERR: Oct  4 17:04:28 :: WriteRunningStateToSyserr: LUA_ERROR: quest userpanel_invi.start click 


Quote:
Originally Posted by deinuntergang123 View Post

kann einer so machen das man das item mit 245 nicht mehr benutzen kann :D?
Code:
quest levelup begin
	state start begin 
		when 25149.use begin
			if pc.get_level()>244 then
				syschat("Du kannst das Item nicht mehr benutzen.")
			else
				pc.remove_item(25149, 1)
				n = pc.get_level() + 1
				while pc.get_level() < n do
					local a = pc.get_next_exp()
					pc.give_exp2(a)
				end
			end
		end
	end
end
10/05/2014 17:09 gerald500#10510
was funtzt hier bitte nicht ?







Der fehler ist must start with 'quest'
Frostboss.quest:1:Error occured on compile Frostboss.quest


mfg gerald
10/05/2014 17:13 .Delta#10511
ein end zuviel unten dran.

Quote:
Originally Posted by gerald500 View Post
was funtzt hier bitte nicht ?







Der fehler ist must start with 'quest'
Frostboss.quest:1:Error occured on compile Frostboss.quest


mfg gerald
10/05/2014 17:16 gerald500#10512
Hab ich auch schon mit einem end weniger versucht funtzt au net

Quote:
quest frostboss begin
state start begin
when 6091.kill begin
game.drop_item(71129, 4)
game.drop_item(71123, 8)
d.notice("Du hast es tatsächlich geschafft mich zu töten")
d.notice("Ich dachte immer ich seie unbesiegbar")
d.notice("Nun den da ich Beran-Setou getötet habe")
d.notice("Bekommst du auch meine Drachenkrallen und Schuppen")
d.notice("Mein Bruder hat auch einige davon")

end
end
end
10/05/2014 17:56 Jоe#10513
Code:
quest frostboss begin
	state start begin
		when 6091.kill with pc.in_dungeon() begin --optional pc.in_dungeon()
			game.drop_item(71129, 4)
			game.drop_item(71123, 8)
			d.notice("Du hast es tatsächlich geschafft mich zu töten"); --muss mit semikolon getrennt werden
			d.notice("Ich dachte immer ich seie unbesiegbar");
			d.notice("Nun den da ich Beran-Setou getötet habe");
			d.notice("Bekommst du auch meine Drachenkrallen und Schuppen");
			d.notice("Mein Bruder hat auch einige davon");
		end --when
	end --state
end --quest
Quote:
Originally Posted by Rextrus View Post
PHP Code:
    state killi begin 
        when kill with npc
.get_race() == 591 begin 
            
if pc.getqf("kills") == 2 then 
                set_state
(fin
            else 
                
pc.setqf("kills",pc.getqf("kills")+1
            
end 
        end 
    end 
Man soll nur einen Boss töten. Bei der Funktion oben, muss man 3 töten. Kann mir jemand eine Funktion für nur einen Mob geben? :confused:
Code:
state killi begin  
	when kill with npc.get_race() == 591 and pc.getqf("kills") == 0 begin  
		pc.setqf("kills",1)
		set_state(fin)
	end  
	state fin begin
	end
end
10/05/2014 19:30 .Despero™#10514
Quote:
Originally Posted by Kilroy. View Post



Code:
quest levelup begin
	state start begin 
		when 25149.use begin
			if pc.get_level()>244 then
				syschat("Du kannst das Item nicht mehr benutzen.")
			else
				pc.remove_item(25149, 1)
				n = pc.get_level() + 1
				while pc.get_level() < n do
					local a = pc.get_next_exp()
					pc.give_exp2(a)
				end
			end
		end
	end
end
Dankee <33
10/05/2014 20:26 synthou1234#10515
PHP Code:
quest warpring begin
    state start begin
          when 70058.
use begin 
            say
("Userpanel:")
            
local head select("Teleport-Funtion""Lager-Funktion""Informationscenter""Abbrechen")
                if 
head == 1 then
                    say
("Teleportpanel")
                        
local on select (" Map1""Orktal""Weiter","Abbrechen")
                            if 
on == 1 then
                                say
("Wähle deine Map1 aus!")
                                
local map1 select ("Rot""Blau""Gelb""Doch nicht")
                                    if 
map1 == 1 then
                                        pc
.warp(474462954500)
                                    
end
                                    
if map1 == 2 then
                                        pc
.warp(959913,    269179)
                                    
end
                                    
if map1 == 3 then
                                        pc
.warp(63369166149)
                                    
end
                                    
if map1 == 4 then
                                        
return
                                    
end
                                end
                            
if on == 4 then
                                say
("Wähle aus!")
                                    
local ot select ("Anfang""Mitte""Doch nicht")
                                        if 
ot == 1 then
                                            pc
.warp(321021808291)
                                        
end
                                        
if ot == 2 then
                                            pc
.warp(332909746464)
                                        
end
                                        
if ot == 3 then
                                            
return
                                
end                                
                            end
                            
if on == 6 then
                                say
("Wähle aus!")
                                
local seite2 select ("Dämonenturm""Abbrechen")
                                    if 
seite2 == 1 then
                                        say
("Wähle aus!")
                                    if 
seite2 == 2 then
                                        say
("Wähle aus!")
                                    if 
seite2 == 3 then
                                        pc
.warp(591000111000)
                                        
end

                                    
if seite2 == 5 then
                                        
return
                                        
end
                                        
                                end
                            
                            
if on == 7 then
                                
return
                            
end
                        end
                    
        
                
if head == 2 then
                    game
.open_safebox()
                    
setskin(NOWINDOW)
                
end
                
if head == 3 then
                    say
("Wähle eine Kategorie!")
                    
local s select ("Das Team""Maximales Level?""Events""Dropps der Metins und Bosse""Nein, Danke")
                        if 
== 1 then
                            say
("ServerAdmin : Yamka")
                            
say("")
                            
say("GameAdmin : [GA]NiiTro")
                            
say("")
                            
say("GameMaster : [GM]Hanni")
                            
say("")
                            
say("Techniker : [TEC]Zinux")
                        
end
                        
if == 2 then
                            say
("Auf Aleysa2 beträgt das maximale Level 105.")
                            
say("Man levelt von 33 auf 55 im Orktal.")
                            
say("Danach levelt man von 55 auf 75 im SD2.")
                            
say("Der letzte Levelort ist die Grotte2. Dort levelt man")
                            
say("von 75 bis 105.")
                            
say("Erreichst du 105, erwartet dich eine tolle Belohnung!")
                        
end
                        
if == 3 then
                            say
("Events finden auf Aleysa2 jeden Mittwoch und Samstag Abend statt.")
                            
say("Findet ein Event statt, wird auf der Website, www.aleysa2.de, oder Ingame ")
                            
say("durch einen Teamler angekündigt.")
                            
say("")
                        
end
                        
if ==    4 then
                            say
("Bosse:")
                            
say("")
                            
say(" *Azrael: Azrael-Pet(gold), Perlen, Energiesplitter, Seelensteine")
                            
say(" *Beran Setaou: Perlen, Mondlichschatztruhen, Drachenschuppe/-kralle")
                            
say(" *Sensenmann: Panda Bär-Pet, Perlen, Sensenmanntruhe")
                            
say("")
                            
say("Metin's:")
                            
say("")
                            
say(" *Metin d. Schattens: Seelenstein, Perlen, Mondis")
                            
say(" *Metin der Erlösung: seelensteine, Perlen, Saphirequipment, PVM-Eq,Energiesplitter")
                            
say("")
                        
end
                        
if == 5 then
                            
return
                        
end
                end
                
if head == 4 then
                    
return   
                
end
            end
        end
    end
end 



Virtual-Box Fehler:

"assertion failure : nested==0
"warpring.quest:114:ERROR occured on compile warpring.quest"