[SERVICE] Die Questkontrolle

11/15/2014 16:16 Joe~#10636
Suche eine HMR quest bitte
11/15/2014 16:46 -Icetea-#10637
Code:
quest lv140x begin 
	state start begin 
		when login or levelup with pc.get_level()>=140 begin 
			set_state(infos)
		end
	end
	state infos begin
		when letter begin
			send_letter("Die 9 Items!")
			local v = find_npc_by_vnum(NPC)
			if v != 0 then
				target.vid("Target1", v, "NPC")
			end
		end
		when button or info begin
			items = { 19, 19, 19, 19, 19, 19, 19, 19, 29, 29}   -- hier 10 Einträge da eins doppelt.
			say_title("Die 9 Items!")
			say("")
			say("Bring xxx, diese 9 Items!")
			for i=1, table.getn(items), 1 do
				say(item_name(items[i])
			end
		end
		when Target1.target.click or NPC.chat."Die 9 Items!" begin
			items = { 19, 19, 19, 19, 19, 19, 19, 19, 29, 29 } -- hier 10 Einträge da eins doppelt.
			endwaffe ={
							{ 19, 3009 }, -- Krieger Einhand, Zweihand
							{ 1001, 10001 },  -- Ninja Dolch, Bogen
							{ 19, 19 },  -- Sura Einhand, Einhand
							{ 7002, 7009 }  -- Schamane Fächer, Glocke
						}
			say_title(mob_name(npc.get_race()))
			say("")
			s = 0
			for i=1, table.getn(items), 1 do
				if pc.count_item(items[i])==0 then
					s = 999
					break
				end
			end
			if s==999 then
				say("Du hast nicht alle Items!")
			else
				say("Wow, alle Items dabei!")
				say("Wähle dir eine EndWaffe aus!")
				auswahl = {}
				for i=1, table.getn(endwaffe[pc.get_job()+1]), 1 do
					table.insert(auswahl, item_name(endwaffe[pc.get_job()+1][i]))
				end
				table.insert(auswahl, "Abbruch")
				s = select_table(auswahl)
				if s== table.getn(auswahl) then return end
				for i=1, table.getn(items), 1 do
					pc.remove_item(items[i], 1)
				end
				pc.give_item2(endwaffe[pc.get_job()+1][s], 1)
			end
		end
	end
end

Möchte die Quest nicht mit Level sondern das man die ab level 140 abgeben kann bei dem npc oder das man die quest immer abgeben kann
11/15/2014 16:48 .yorliK#10638
Quote:
Originally Posted by -Icetea- View Post


Möchte die Quest nicht mit Level sondern das man die ab level 140 abgeben kann bei dem npc oder das man die quest immer abgeben kann
So funktioniert sie doch? Du wirst Lv140, von da an haste immer die Möglichkeit die 9 Items abzugeben?
11/15/2014 16:53 Tuora#10639
Quote:
Originally Posted by Kilroy. View Post
Code:
quest levelupx begin 
	state start begin 
		when levelup begin 
			if pc.get_level() == 30 then 
				say("Du hast LvL 30 Erreicht,langsam wird es zeit") 
				say("Das du deine Bildung auf Acardia fortsetzt.") 
				say("Gehe bitte zum LandesWächter.") 
				say("Er erwartet dich bereits,also beeil dich") 
				notice_all("".. pc.get_name() .." hat gerade Level 30 erreicht") 
				notice_all("We love Acardia2.!") 
				local s = select("Ja, ich möchte", "Nein, möchte ich nicht")
				setskin(NOWINDOW)
				if s == 1 then
					local empire = pc.get_empire() 
					if empire == 1 then  
						pc.warp (469300, 964200)  
					elseif empire == 2 then 
						pc.warp (55700, 157900)  
					elseif empire == 3 then 
						pc.warp (969600, 278400)
					end
				elseif s == 2 then 
					return 
				end 
			end  
		end  
	end  
end
Immernoch das Problem :(
11/15/2014 16:57 .yorliK#10640
Quote:
Originally Posted by ImTweet View Post
Immernoch das Problem :(
̶s̶̶c̶̶h̶̶i̶̶l̶̶d̶̶e̶̶r̶̶ ̶̶n̶̶o̶̶c̶̶h̶̶ ̶̶m̶̶a̶̶l̶̶ ̶̶g̶̶e̶̶n̶̶a̶̶u̶̶,̶̶ ̶̶w̶̶a̶̶s̶̶ ̶̶p̶̶a̶̶s̶̶s̶̶i̶̶e̶̶r̶̶t̶̶,̶̶ ̶̶v̶̶i̶̶e̶̶l̶̶l̶̶e̶̶i̶̶c̶̶h̶̶t̶̶ ̶̶v̶̶e̶̶r̶̶s̶̶t̶̶e̶̶h̶̶e̶̶n̶̶ ̶̶w̶̶i̶̶r̶̶ ̶̶d̶̶i̶̶c̶̶h̶̶ ̶̶a̶̶u̶̶c̶̶h̶̶ ̶̶a̶̶l̶̶l̶̶e̶̶ ̶̶n̶̶u̶̶r̶̶ ̶̶f̶̶a̶̶l̶̶s̶̶c̶̶h̶̶.̶̶ ̶̶v̶̶i̶̶e̶̶l̶̶l̶̶e̶̶i̶̶c̶̶h̶̶t̶̶ ̶̶m̶̶i̶̶t̶̶ ̶̶n̶̶ ̶̶p̶̶a̶̶a̶̶r̶̶ ̶̶b̶̶i̶̶l̶̶d̶̶e̶̶r̶̶n̶̶ ̶̶:̶̶d̶

Edit: Versuch mal die hier !

Code:
quest levelupx begin 
	state start begin 
		when levelup begin 
			if pc.get_level() == 30 then 
				timer("Level30UP", 1)
			end
		end
		when Level30UP.timer begin
			say("Du hast LvL 30 Erreicht,langsam wird es zeit") 
			say("Das du deine Bildung auf Acardia fortsetzt.") 
			say("Gehe bitte zum LandesWächter.") 
			say("Er erwartet dich bereits,also beeil dich") 
			notice_all("".. pc.get_name() .." hat gerade Level 30 erreicht") 
			notice_all("We love Acardia2.!") 
			local s = select("Ja, ich möchte", "Nein, möchte ich nicht")
			setskin(NOWINDOW)
			if s == 1 then
				local empire = pc.get_empire() 
				if empire == 1 then  
					pc.warp (469300, 964200)  
				elseif empire == 2 then 
					pc.warp (55700, 157900)  
				elseif empire == 3 then 
					pc.warp (969600, 278400)
				end
			elseif s == 2 then 
				return 
			end 
		end  
	end  
end
11/15/2014 17:07 Joe~#10641
Kann mir jemand sagen wieso ich TP verliere sobald ich sausen bei jemanden ausführe ?
11/15/2014 19:12 Tuora#10642
Quote:
Originally Posted by Kilroy. View Post
̶s̶̶c̶̶h̶̶i̶̶l̶̶d̶̶e̶̶r̶̶ ̶̶n̶̶o̶̶c̶̶h̶̶ ̶̶m̶̶a̶̶l̶̶ ̶̶g̶̶e̶̶n̶̶a̶̶u̶̶,̶̶ ̶̶w̶̶a̶̶s̶̶ ̶̶p̶̶a̶̶s̶̶s̶̶i̶̶e̶̶r̶̶t̶̶,̶̶ ̶̶v̶̶i̶̶e̶̶l̶̶l̶̶e̶̶i̶̶c̶̶h̶̶t̶̶ ̶̶v̶̶e̶̶r̶̶s̶̶t̶̶e̶̶h̶̶e̶̶n̶̶ ̶̶w̶̶i̶̶r̶̶ ̶̶d̶̶i̶̶c̶̶h̶̶ ̶̶a̶̶u̶̶c̶̶h̶̶ ̶̶a̶̶l̶̶l̶̶e̶̶ ̶̶n̶̶u̶̶r̶̶ ̶̶f̶̶a̶̶l̶̶s̶̶c̶̶h̶̶.̶̶ ̶̶v̶̶i̶̶e̶̶l̶̶l̶̶e̶̶i̶̶c̶̶h̶̶t̶̶ ̶̶m̶̶i̶̶t̶̶ ̶̶n̶̶ ̶̶p̶̶a̶̶a̶̶r̶̶ ̶̶b̶̶i̶̶l̶̶d̶̶e̶̶r̶̶n̶̶ ̶̶:̶̶d̶

Edit: Versuch mal die hier !

Code:
quest levelupx begin 
	state start begin 
		when levelup begin 
			if pc.get_level() == 30 then 
				timer("Level30UP", 1)
			end
		end
		when Level30UP.timer begin
			say("Du hast LvL 30 Erreicht,langsam wird es zeit") 
			say("Das du deine Bildung auf Acardia fortsetzt.") 
			say("Gehe bitte zum LandesWächter.") 
			say("Er erwartet dich bereits,also beeil dich") 
			notice_all("".. pc.get_name() .." hat gerade Level 30 erreicht") 
			notice_all("We love Acardia2.!") 
			local s = select("Ja, ich möchte", "Nein, möchte ich nicht")
			setskin(NOWINDOW)
			if s == 1 then
				local empire = pc.get_empire() 
				if empire == 1 then  
					pc.warp (469300, 964200)  
				elseif empire == 2 then 
					pc.warp (55700, 157900)  
				elseif empire == 3 then 
					pc.warp (969600, 278400)
				end
			elseif s == 2 then 
				return 
			end 
		end  
	end  
end
Immernoch :(,hier ein Screen [Only registered and activated users can see links. Click Here To Register...] kommt sobald ich auf ja ich möchte drücke. mfg
11/15/2014 20:43 G.I Duke#10643
Quote:
Originally Posted by ImTweet View Post
Immernoch :(,hier ein Screen [Only registered and activated users can see links. Click Here To Register...] kommt sobald ich auf ja ich möchte drücke. mfg
PHP Code:
quest levelupx begin 
    state start begin 
        when login 
or levelup with pc.get_level() == 30 begin
            say
("Du hast LvL 30 Erreicht,langsam wird es zeit"
            
say("Das du deine Bildung auf Acardia fortsetzt."
            
say("Gehe bitte zum LandesWächter."
            
say("Er erwartet dich bereits,also beeil dich"
            
notice_all("".. pc.get_name() .." hat gerade Level 30 erreicht"
            
notice_all("We love Acardia2.!"
            
local s select("Nein, möchte ich nicht""Ja, ich möchte")
            
setskin(NOWINDOW)
            if 
== 2 then
                local empire 
pc.get_empire() 
                if 
empire == 1 then  
                    pc
.warp (469300964200)  
                elseif 
empire == 2 then 
                    pc
.warp (55700157900)  
                elseif 
empire == 3 then 
                    pc
.warp (969600278400)
                
end
            
elseif == 1 then
            end 
        end  
    end  
end 
Dein Fehler lag in dem 'Return'
Code:
elseif s == 2 then 
				return 
			end 
		end  
	end  
end
Das 'Return' gehört da nicht hin da die Quest zurücksetzen
möchte und dann im sogenanntem 'setskin'-window hängen
bleibt.

Du könntest statt meinem Beispiel auch einfach das 'Return' löschen..

Best Regards.
11/15/2014 21:43 Tuora#10644
Quote:
Originally Posted by .мαяfυ™ View Post
PHP Code:
quest levelupx begin 
    state start begin 
        when login 
or levelup with pc.get_level() == 30 begin
            say
("Du hast LvL 30 Erreicht,langsam wird es zeit"
            
say("Das du deine Bildung auf Acardia fortsetzt."
            
say("Gehe bitte zum LandesWächter."
            
say("Er erwartet dich bereits,also beeil dich"
            
notice_all("".. pc.get_name() .." hat gerade Level 30 erreicht"
            
notice_all("We love Acardia2.!"
            
local s select("Nein, möchte ich nicht""Ja, ich möchte")
            
setskin(NOWINDOW)
            if 
== 2 then
                local empire 
pc.get_empire() 
                if 
empire == 1 then  
                    pc
.warp (469300964200)  
                elseif 
empire == 2 then 
                    pc
.warp (55700157900)  
                elseif 
empire == 3 then 
                    pc
.warp (969600278400)
                
end
            
elseif == 1 then
            end 
        end  
    end  
end 
Dein Fehler lag in dem 'Return'
Code:
elseif s == 2 then 
				return 
			end 
		end  
	end  
end
Das 'Return' gehört da nicht hin da die Quest zurücksetzen
möchte und dann im sogenanntem 'setskin'-window hängen
bleibt.

Du könntest statt meinem Beispiel auch einfach das 'Return' löschen..

Best Regards.
Danke,noch ein Problem ich möchte alles in einer quest haben also ganze lvl ups wenn ne message kommen soll jetz kommt das in putty:

Meine quest
11/15/2014 22:35 G.I Duke#10645
Quote:
Originally Posted by ImTweet View Post
Danke,noch ein Problem ich möchte alles in einer quest haben also ganze lvl ups wenn ne message kommen soll jetz kommt das in putty:

Meine quest
PHP Code:
quest levelupx begin
    state start begin
        when levelup begin
            
if pc.get_level() == 30 then
               say
("Du hast LvL 30 Erreicht,langsam wird es zeit"
                
say("Das du deine Bildung auf Acardia fortsetzt."
                
say("Gehe bitte zum LandesWächter."
                
say("Er erwartet dich bereits,also beeil dich"
                
notice_all("".. pc.get_name() .." hat gerade Level 30 erreicht"
                
notice_all("We love Acardia2.!"
                
local s select("Nein, möchte ich nicht""Ja, ich möchte")
                
setskin(NOWINDOW)
                if 
== 2 then
                local empire 
pc.get_empire() 
                if 
empire == 1 then  
                    pc
.warp (469300964200)  
                elseif 
empire == 2 then 
                    pc
.warp (55700157900)  
                elseif 
empire == 3 then 
                    pc
.warp (969600278400)
                
end
            
elseif == 1 then
            end
            
elseif pc.get_level() == 75 then
                say
("Herzlichen Glückwunsch,du hast")
                
say("Das LvL 75 erreicht,das is sehr gut")
                
say("Du wirst Tag für Tag besser,weiter so!")
                
say("Wir wünschen dir weiterhin viel spaß bei uns")
                
say("Auf Acardia 2 PvP Revolution")
                
notice_all("".. pc.get_name() .." hat gerade Level 75 erreicht!")
                
notice_all("We love Acardia2!")
            elseif 
pc.get_level() == 105 then
                say
("Herzlichen Glückwunsch du hast")
                
say("lvl 105 Erreicht,du bist nah am")
                
say("End LvL mein Freund,es wird ein")
                
say("harter Kampf auf lvl 135.")
                
say("Viel Erfolg ".. pc.get_name() .."")
                
notice_all("".. pc.get_name() .." hat gerade Level 105 erreicht!")
                
notice_all("We love Acardia2!")
            elseif 
pc.get_level() == 135 then
            say
("Wow erstaunlich,du hast tatsächlich")
            
say("das LvL 135 erreicht,riesen Respekt")
            
say("Jetz bist du ein wahrer Krieger")
            
say("Wir wünschen dir weiterhin viel Spaß")
            
say("Bei uns auf Acardia 2")
            
notice_all("".. pc.get_name() .." hat gerade Level 135 erreicht!")
            
notice_all("Er/Sie hat das Maximale LvL auf Acardia 2")
            
notice_all("Erreicht,großen Respekt")
            
notice_all("We Love Acardia 2!")
            
end 
        end 
    end 
end 
Du hast das 'end' zwischen den 2 ich sag mal Aufgaben
vergessen..

du musst statt
Code:
elseif s == 1 then 
            elseif pc.get_level() == 75 then
das
Code:
elseif s == 1 then 
            end
            elseif pc.get_level() == 75 then
einfügen damit das if oben beendet wird..
11/16/2014 00:32 -Icetea-#10646
Was ist falsch an dieser Quest er läd sie mehr falsch

syntax error : [string "infos"]:7: `)' expected (to close `(' at line 6) near `e nd'


Die Quest soll auf den Npc 3907 hab ich alles Richtig gemacht?

Code:
quest lv140x begin 
	state start begin 
		when login or levelup with pc.get_level()>=140 begin 
			set_state(infos)
		end
	end
	state infos begin
		when letter begin
			send_letter("Die 9 Items!")
			local v = find_npc_by_vnum(NPC)
			if v != 0 then
				target.vid("Target1", v, "NPC")
			end
		end
		when button or info begin
			items = { 31018, 31019, 31020, 31024, 31022, 31023, 31024, 31025, 31029, 80011}   -- hier 10 Einträge da eins doppelt.
			say_title("Die 9 Items!")
			say("")
			say("Bring xxx, diese 9 Items!")
			for i=1, table.getn(items), 1 do
				say(item_name(items[i])
			end
		end
		when Target1.target.click or 3907.chat."Die 9 Items!" begin
			items = { 31018, 31019, 31020, 31024, 31022, 31023, 31024, 31025, 31029, 80011 } -- hier 10 Einträge da eins doppelt.
			endwaffe ={
							{ 642, 644 }, -- Krieger Einhand, Zweihand
							{ 630, 645 },  -- Ninja Dolch, Bogen
							{ 643, 643 },  -- Sura Einhand, Einhand
							{ 646, 641 }  -- Schamane Fächer, Glocke
						}
			say_title(mob_name(npc.get_race()))
			say("")
			s = 0
			for i=1, table.getn(items), 1 do
				if pc.count_item(items[i])==0 then
					s = 999
					break
				end
			end
			if s==999 then
				say("Du hast nicht alle Items!")
			else
				say("Wow, alle Items dabei!")
				say("Wähle dir eine EndWaffe aus!")
				auswahl = {}
				for i=1, table.getn(endwaffe[pc.get_job()+1]), 1 do
					table.insert(auswahl, item_name(endwaffe[pc.get_job()+1][i]))
				end
				table.insert(auswahl, "Abbruch")
				s = select_table(auswahl)
				if s== table.getn(auswahl) then return end
				for i=1, table.getn(items), 1 do
					pc.remove_item(items[i], 1)
				end
				pc.give_item2(endwaffe[pc.get_job()+1][s], 1)
			end
		end
	end
end
11/16/2014 00:48 G.I Duke#10647
Quote:
Originally Posted by -Icetea- View Post
Was ist falsch an dieser Quest er läd sie mehr falsch

syntax error : [string "infos"]:7: `)' expected (to close `(' at line 6) near `e nd'


Die Quest soll auf den Npc 3907 hab ich alles Richtig gemacht?

Code:
quest lv140x begin 
	state start begin 
		when login or levelup with pc.get_level()>=140 begin 
			set_state(infos)
		end
	end
	state infos begin
		when letter begin
			send_letter("Die 9 Items!")
			local v = find_npc_by_vnum(NPC)
			if v != 0 then
				target.vid("Target1", v, "NPC")
			end
		end
		when button or info begin
			items = { 31018, 31019, 31020, 31024, 31022, 31023, 31024, 31025, 31029, 80011}   -- hier 10 Einträge da eins doppelt.
			say_title("Die 9 Items!")
			say("")
			say("Bring xxx, diese 9 Items!")
			for i=1, table.getn(items), 1 do
				say(item_name(items[i])
			end
		end
		when Target1.target.click or 3907.chat."Die 9 Items!" begin
			items = { 31018, 31019, 31020, 31024, 31022, 31023, 31024, 31025, 31029, 80011 } -- hier 10 Einträge da eins doppelt.
			endwaffe ={
							{ 642, 644 }, -- Krieger Einhand, Zweihand
							{ 630, 645 },  -- Ninja Dolch, Bogen
							{ 643, 643 },  -- Sura Einhand, Einhand
							{ 646, 641 }  -- Schamane Fächer, Glocke
						}
			say_title(mob_name(npc.get_race()))
			say("")
			s = 0
			for i=1, table.getn(items), 1 do
				if pc.count_item(items[i])==0 then
					s = 999
					break
				end
			end
			if s==999 then
				say("Du hast nicht alle Items!")
			else
				say("Wow, alle Items dabei!")
				say("Wähle dir eine EndWaffe aus!")
				auswahl = {}
				for i=1, table.getn(endwaffe[pc.get_job()+1]), 1 do
					table.insert(auswahl, item_name(endwaffe[pc.get_job()+1][i]))
				end
				table.insert(auswahl, "Abbruch")
				s = select_table(auswahl)
				if s== table.getn(auswahl) then return end
				for i=1, table.getn(items), 1 do
					pc.remove_item(items[i], 1)
				end
				pc.give_item2(endwaffe[pc.get_job()+1][s], 1)
			end
		end
	end
end
PHP Code:
quest lv140x begin 
    state start begin 
        when login 
or levelup with pc.get_level()>=140 begin 
            set_state
(infos)
        
end
    end
    state infos begin
        when letter begin
            send_letter
("Die 9 Items!")
            
local v find_npc_by_vnum(NPC)
            if 
!= 0 then
                target
.vid("Target1"v"NPC")
            
end
        end
        when button 
or info begin
            items 
= { 31018310193102031024310223102331024310253102980011}   -- hier 10 Einträge da eins doppelt.
            
say_title("Die 9 Items!")
            
say("")
            
say("Bring xxx, diese 9 Items!")
            for 
i=1table.getn(items), do
                
say(item_name(items[i])) -- Klammer vergessen
            end
        end
        when Target1
.target.click or 3907.chat."Die 9 Items!" begin
            items 
= { 31018310193102031024310223102331024310253102980011 } -- hier 10 Einträge da eins doppelt.
            
endwaffe ={
                            { 
642644 }, -- Krieger EinhandZweihand
                            
630645 },  -- Ninja DolchBogen
                            
643643 },  -- Sura EinhandEinhand
                            
646641 }  -- Schamane FächerGlocke
                        
}
            
say_title(mob_name(npc.get_race()))
            
say("")
            
0
            
for i=1table.getn(items), do
                if 
pc.count_item(items[i])==0 then
                    s 
999
                    
break
                
end
            end
            
if s==999 then
                say
("Du hast nicht alle Items!")
            else
                
say("Wow, alle Items dabei!")
                
say("Wähle dir eine EndWaffe aus!")
                
auswahl = {}
                for 
i=1table.getn(endwaffe[pc.get_job()+1]), do
                    
table.insert(auswahlitem_name(endwaffe[pc.get_job()+1][i]))
                
end
                table
.insert(auswahl"Abbruch")
                
select_table(auswahl)
                if 
s== table.getn(auswahlthen return end
                
for i=1table.getn(items), do
                    
pc.remove_item(items[i], 1)
                
end
                pc
.give_item2(endwaffe[pc.get_job()+1][s], 1)
            
end
        end
    end
end 
Dein Fehler:
Code:
say(item_name(items[i])
Korrektur:
Code:
say(item_name(items[i]))
11/16/2014 17:46 x'Radon#10648
#gelöst
11/17/2014 19:16 dogi4321#10649
Möglich die Quest für die 40K game anzupassen?

Code:
quest guildstorage begin
	state start begin
		when login begin
			cmdchat("GUILDSTORAGE QID/"..q.getcurrentquestindex())
		end
		
		when 9005.chat."Gildenlager" begin
			if not pc.has_guild() then syschat'Du benoetigst eine Gilde um das Gildenlager benutzen zu koennen.' setskin(NOWINDOW) return end
			if not guildstorage.has_guildstorage() then guildstorage.create_guildstorage() end
			
			if pc.is_guild_master() then 
				cmdchat('GUILDSTORAGE OPEN/1')
			else
				cmdchat('GUILDSTORAGE OPEN/0')
			end
			
			guildstorage.refresh()
			pc.setqf("GUILDSTORAGE",1)
			setskin(NOWINDOW)
		end
		
		when button begin
			local cmd = guildstorage.client_command(getinput("GUILDSTORAGE QUESTCMD"))
			-- [ITEM]
			if cmd[1] == 'TAKE_ITEM' then
				if not guildstorage.get_authority(1) then syschat'Du besitzt keine Berechtigung hierfuer.' return end
				if pc.get_empty_inventory_count() < 3 then syschat'Du hast nicht genug Platz im Inventar, du brauchst mindestens drei freie Plaetze' return end
				local slot = tonumber(cmd[2])+120*tonumber(cmd[3])
				local item = guildstorage.get_slot_item(slot)
				if guildstorage.slot_empty(slot) then syschat'Dieses Item befindet sich an einer anderen Position, oder wurde schon rausgenommen' return end
				guildstorage.remove_item(slot)
				guildstorage.give_item(item)
			elseif cmd[1] == 'MOVE_ITEM' then
				if not guildstorage.get_authority(0) then syschat'Du besitzt keine Berechtigung hierfuer.' return end
				--possible to store the item? antiflag/flag
				
				if cmd[2] == 'INVENTORY' then
					if not guildstorage.slot_empty(tonumber(cmd[4])+120*tonumber(cmd[5])) then syschat'Dieser Slot ist bereits belegt.' return end
					guildstorage.insert_item(tonumber(cmd[3]),tonumber(cmd[4]),tonumber(cmd[5]))
				elseif cmd[2] == 'GUILDSTORAGE' then
					if not guildstorage.slot_empty(tonumber(cmd[5])+120*tonumber(cmd[6])) then syschat'Dieser Slot ist bereits belegt, oder das Item existiert nichtmehr.' return end
					guildstorage.move_item(tonumber(cmd[3])+120*tonumber(cmd[4]),tonumber(cmd[5])+120*tonumber(cmd[6]))
				end
			-- [MONEY]
			elseif cmd[1] == 'TAKE_MONEY' then
				if not guildstorage.get_authority(3) then syschat'Du besitzt keine Berechtigung hierfuer.' return end
				local old_money = guildstorage.get_money()
				if old_money < tonumber(cmd[2]) then syschat'Soviel Yang ist nicht im Gildenlager.' return end 
				local new_money = tonumber(cmd[2])
				if new_money+pc.get_money() >= 1999999999 then syschat'Du kannst nicht mehr wie 2.000.000.000 Yang bei dir haben.' return end
				guildstorage.change_money(-new_money)
				pc.change_money(new_money)
				guildstorage.add_log(pc.get_name(),'Yang','abheben',new_money)
				cmdchat('GUILDSTORAGE REFRESH_MONEY/'..(old_money-new_money))
			elseif cmd[1] == 'GIVE_MONEY' then
				if not guildstorage.get_authority(2) then syschat'Du besitzt keine Berechtigung hierfuer.' return end
				local old_money = guildstorage.get_money()
				local new_money = tonumber(cmd[2])
				if new_money > pc.get_money() then syschat'Soviel Yang besitzt du nicht' return end
				pc.change_money(-new_money)
				guildstorage.change_money(new_money)
				guildstorage.add_log(pc.get_name(),'Yang','einzahlen',new_money)
				cmdchat('GUILDSTORAGE REFRESH_MONEY/'..(old_money+new_money))
			elseif cmd[1] == 'GETGUILDSTORAGEMONEY' then
				cmdchat('GUILDSTORAGE REFRESH_GUILDWINDOW_MONEY/'..guildstorage.get_money())
			-- [MEMBER]
			elseif cmd[1] == 'ADD_MEMBER' then
				if not pc.is_guild_master() then syschat'Cheese. ;p' return end
				local members = guildstorage.get_members()
				if table.getn(members) >= 64 then syschat'Du kannst maximal nur 64 Member eintragen.' return end
				guildstorage.add_member(cmd[2])
				cmdchat('GUILDSTORAGE MEMBER_COMPLETE')
			elseif cmd[1] == 'DELETE_MEMBER' then
				if not pc.is_guild_master() then syschat'Cheese. ;p' return end
				guildstorage.delete_member(cmd[2])
				cmdchat('GUILDSTORAGE MEMBER_COMPLETE')
			elseif cmd[1] == 'AUTHORITY' then
				if not pc.is_guild_master() then syschat'Cheese. ;p' return end
				guildstorage.set_authority(cmd[2],tonumber(cmd[3]),cmd[4])
			elseif cmd[1] == 'GETMEMBERLIST' then
				if not pc.is_guild_master() then syschat'Cheese. ;p' return end
				local members = guildstorage.get_members()
				for i = 1, table.getn(members) do
					-- id, membername, authority 1-4
					cmdchat('GUILDSTORAGE_ADDMEMBER '..(i-1)..' '..members[i][1]..' '..members[i][2]..' '..members[i][3]..' '..members[i][4]..' '..members[i][5])
				end
				cmdchat('GUILDSTORAGE REFRESH_MEMBERS')
			elseif cmd[1] == 'UPDATE' then
				guildstorage.refresh_tempslots()
			elseif cmd[1] == 'LOAD_LOGS' then
				if not pc.is_guild_master() then syschat'Cheese. ;p' return end
				local logs = guildstorage.load_logs()
				local logsLen = table.getn(logs)
				for i = 0, logsLen-1 do
					local var = (logsLen-i)
					cmdchat('GUILDSTORAGE_ADDLOG '..(var-1)..' '..logs[var][1]..' '..logs[var][2]..' '..logs[var][3]..' '..logs[var][4]..' '..logs[var][5])
				end
			elseif cmd[1] == 'DELETE_LOGS' then
				if not pc.is_guild_master() then syschat'Cheese. ;p' return end
				guildstorage.clear_logs()
				
			elseif cmd[1] == 'BUTTON' then
				if cmd[2] == "0" then
					setskin(NOWINDOW)
					game.open_mall()
				elseif cmd[2] == "1" then
					setskin(NOWINDOW)
					game.open_safebox()
				elseif cmd[2] == "2" then
					if not pc.has_guild() then syschat'Du benoetigst eine Gilde um das Gildenlager benutzen zu koennen.' setskin(NOWINDOW) return end
					if not guildstorage.has_guildstorage() then guildstorage.create_guildstorage() end
					
					if pc.is_guild_master() then 
						cmdchat('GUILDSTORAGE OPEN/1')
					else
						cmdchat('GUILDSTORAGE OPEN/0')
					end
					
					guildstorage.refresh()
					pc.setqf("GUILDSTORAGE",1)
					setskin(NOWINDOW)
				end
			end
		end
		
		function item_can_store(itemvnum)
			local antiflags = guildstorage.item_get_real_antiflags(guildstorage.item_antiflag(itemvnum))
			for i = 1 , table.getn(antiflags) do
				if antiflags[i] == 128 or antiflags[i] == 131072 or antiflags[i] == 8192 or antiflags[i] == 64 then return false end
				-- Wenn das item die Antiflag hat wird es nicht eingelagert.
			end
			return true
		end
		
		function item_get_real_antiflags(antiflag_)
			antiflags = {131072,65536,32768,16384,8192,4096,2048,1024,512,256,128,64,32,16,8,4,2,1}
			tab2 = {}
			table.foreach(antiflags,function(_,v) if antiflag_ >= v then table.insert(tab2,v) antiflag_ = antiflag_ - v end end)
			return tab2
		end

		function item_antiflag(item_vnum)
			local result = mysql_query("SELECT antiflag from player.item_proto where vnum = "..item_vnum..";")
			return result.antiflag[1]
		end
		
		----------------------
		--LOGS START
		----------------------
		
		function load_logs()
			local logs = {}
			local gs_logs = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "r")
			for line in gs_logs:lines() do
				table.insert(logs,guildstorage.split_(line,"#"))
			end
			return logs
		end
		
		function clear_logs()
			local gs_log = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "w+")
			gs_log:flush()
			gs_log:close()
		end
		
		function add_log(name_,type_,do_,desc_)
			local gs_log = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "a+")
			local date_ = os.date()
			date_ = string.gsub(date_," ", "+-+")
			desc_ = string.gsub(desc_," ", "+-+")
			gs_log:write(name_..'#'..date_..'#'..type_..'#'..do_..'#'..desc_..'\\n')
			gs_log:flush()
			gs_log:close()
		end
		
		----------------------
		--LOGS END
		----------------------
		
		----------------------
		--MEMBER & AUTHORITY START
		----------------------
		-- Auth 0 = einlagern
		-- Auth 1 = rausnehmen
		-- Auth 2 = einzahlen
		-- Auth 3 = auszahlen
		
		function get_members()
			local members = {}
			local gs_member = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/authority.txt", "r")
			for line in gs_member:lines() do
				table.insert(members,guildstorage.split_(line,"#"))
			end
			return members
		end
		
		function get_authority(authID)
			if pc.is_guild_master() then return true end
			local members = guildstorage.get_members()
			for i = 1, table.getn(members) do
				if members[i][1] == pc.get_name() then
					if tonumber(members[i][authID+2]) == 0 then return false else return true end
				end
			end
			return false
		end
		
		function set_authority(member,authID,auth)
			local members = guildstorage.get_members()

			for i = 1, table.getn(members) do
				if members[i][1] == member then 
					members[i][authID+2] = auth
					break
				end
			end
			
			local gs_member = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/authority.txt", "w+")
			
			for i = 1, table.getn(members) do
				gs_member:write(members[i][1]..'#'..members[i][2]..'#'..members[i][3]..'#'..members[i][4]..'#'..members[i][5]..'\\n')
			end
			gs_member:flush()
			gs_member:close()
		end
		
		function add_member(member)
			local members = guildstorage.get_members()

			for i = 1, table.getn(members) do
				if members[i][1] == member then 
					syschat'Member ist schon eingetragen.' 
					return
				end
			end
			
			local gs_member = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/authority.txt", "a+")
			gs_member:write(member..'#0#0#0#0\\n')
			gs_member:flush()
			gs_member:close()
		end
		
		function delete_member(member)
			local members = guildstorage.get_members()

			for i = 1, table.getn(members) do
				if members[i][1] == member then 
					table.remove(members,i)
					break
				end
			end
			
			local gs_member = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/authority.txt", "w+")
			
			for i = 1, table.getn(members) do
				gs_member:write(members[i][1]..'#'..members[i][2]..'#'..members[i][3]..'#'..members[i][4]..'#'..members[i][5]..'\\n')
			end
			gs_member:flush()
			gs_member:close()
		end
		
		----------------------
		--MEMBER & AUTHORITY END
		----------------------
		
		----------------------
		--MONEY START
		----------------------
		function get_money()
			local gs_money = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/money.txt", "r")
			if gs_money == nil then return end
			for line in gs_money:lines() do
				return tonumber(line)
			end
		end
				
		function change_money(money)
			local old_money = guildstorage.get_money()
			local gs_money = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/money.txt", "w+")
			
			gs_money:write(old_money+money)
			gs_money:flush()
			gs_money:close()
		end
		
		----------------------
		--MONEY END
		----------------------
		
		----------------------
		--STORAGE START
		----------------------
		
		function has_guildstorage()
			local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt", "r")      
			if guildstorage == nil then
				return false
			else
				return true
			end
		end
		
		function give_item(itemTab)
			pc.give_item2_select(itemTab[1],itemTab[2])
			local attr,socket = {},{}
			for i = 10,23 do table.insert(attr,{itemTab[i],itemTab[i+1]}) i = i+1 end
			for i = 4,6 do table.insert(socket,itemTab[i]) end
			for i = 1, table.getn(attr) do 
				item2.set_attr(i-1, attr[i][1], attr[i][2]) 
			end 
			for i = 1, table.getn(socket) do if tonumber(socket[i]) > 0 then item.set_socket(i-1, socket[i]) end end
		end

		function get_slot_item(slot)
			local items = guildstorage.get_items()
			for i = 1, table.getn(items) do
				local item = guildstorage.split_(items[i],"#")
				if tonumber(item[3]) == slot then
					return item
				end
			end
			return 0
		end
		
		function refresh()
			cmdchat('GUILDSTORAGE REFRESH_MONEY/'..guildstorage.get_money())
			local items = guildstorage.get_items()
			if items != 0 then
				for i = 1, table.getn(items) do
					local item = guildstorage.split_(items[i],"#")
					-- chat(table.getn(item))
					cmdchat('GUILDSTORAGE_ADDITEM '..item[3]..' '..item[1]..' '..item[2]..' '..item[4]..' '..item[5]..' '..item[6]..' '..item[7]..' '..item[8]..' '..item[9]..' '..item[10]..' '..item[11]..' '..item[12]..' '..item[13]..' '..item[14]..' '..item[15]..' '..item[16]..' '..item[17]..' '..item[18]..' '..item[19]..' '..item[20]..' '..item[21]..' '..item[22]..' '..item[23])
				end
			end
			cmdchat('GUILDSTORAGE REFRESH')
		end
		
		function refresh_tempslots()
			cmdchat('GUILDSTORAGE REFRESH_MONEY/'..guildstorage.get_money())
			cmdchat('GUILDSTORAGE CLEAR_TEMPSLOTS')
			local items = guildstorage.get_items()
			if items != 0 then
				for i = 1, table.getn(items) do
					local item = guildstorage.split_(items[i],"#")
					cmdchat('GUILDSTORAGE_ADDTEMPSLOT '..item[3]..' '..item[1]..' '..item[2]..' '..item[4]..' '..item[5]..' '..item[6]..' '..item[7]..' '..item[8]..' '..item[9]..' '..item[10]..' '..item[11]..' '..item[12]..' '..item[13]..' '..item[14]..' '..item[15]..' '..item[16]..' '..item[17]..' '..item[18]..' '..item[19]..' '..item[20]..' '..item[21]..' '..item[22]..' '..item[23])
				end
			end
			cmdchat('GUILDSTORAGE COMPARE_TEMPSLOTS')
		end
		
		function slot_empty(slot)
			local itemList = guildstorage.get_items()
			
			for i = 1 , table.getn(itemList) do
				local item = guildstorage.split_(itemList[i],"#")
				if tonumber(item[3]) == slot then
					return false
				end
			end
			return true
		end
		
		function create_guildstorage()
			os.execute("mkdir "..guildstorage_path.."Guildstorage/"..pc.get_guild())
			local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt", "w+")
			local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/money.txt", "w+")
			guildstorage:write("0")
			guildstorage:close()
			local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/authority.txt", "w+")
			local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/logs.txt", "w+")
			
			guildstorage:close()
		end
		
		function insert_item(cell,slot,tab)
			item.select_cell(cell)
			local attr = {{item2.get_attr(0)}, {item2.get_attr(1)}, {item2.get_attr(2)}, {item2.get_attr(3)},{item2.get_attr(4)},{item2.get_attr(5)}, {item2.get_attr(6)}}
			local socket, itemVnum, itemCount = {item.get_socket(0), item.get_socket(1), item.get_socket(2),item.get_socket(3),item.get_socket(4),item.get_socket(5)}, item.get_vnum(), item.get_count()     
			if not guildstorage.item_can_store(itemVnum) then syschat'Dieses Item kann nicht gelagert werden.' return end
			item.remove()
			-- chat('GUILDSTORAGE_ADDITEMSLOT '..slot..' '..tab..' '..itemVnum..' '..itemCount..' '..socket[1]..' '..socket[2]..' '..socket[3]..' '..socket[4]..' '..socket[5]..' '..socket[6]..' '..attr[1][1]..' '..attr[1][2]..' '..attr[2][1]..' '..attr[2][2]..' '..attr[3][1]..' '..attr[3][2]..' '..attr[4][1]..' '..attr[4][2]..' '..attr[5][1]..' '..attr[5][2]..' '..attr[6][1]..' '..attr[6][2]..' '..attr[7][1]..' '..attr[7][2])
			
			cmdchat('GUILDSTORAGE_ADDITEMSLOT '..slot..' '..tab..' '..itemVnum..' '..itemCount..' '..socket[1]..' '..socket[2]..' '..socket[3]..' '..socket[4]..' '..socket[5]..' '..socket[6]..' '..attr[1][1]..' '..attr[1][2]..' '..attr[2][1]..' '..attr[2][2]..' '..attr[3][1]..' '..attr[3][2]..' '..attr[4][1]..' '..attr[4][2]..' '..attr[5][1]..' '..attr[5][2]..' '..attr[6][1]..' '..attr[6][2]..' '..attr[7][1]..' '..attr[7][2])
			guildstorage.add_log(pc.get_name(),'Item','einlagern',item_name(itemVnum)..' ('..itemCount..')')
			local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt", "a+")
			guildstorage:write(itemVnum.."#"..itemCount.."#"..(slot+120*tab).."#"..socket[1].."#"..socket[2].."#"..socket[3].."#"..socket[4].."#"..socket[5].."#"..socket[6].."#"..attr[1][1].."#"..attr[1][2].."#"..attr[2][1].."#"..attr[2][2].."#"..attr[3][1].."#"..attr[3][2].."#"..attr[4][1].."#"..attr[4][2].."#"..attr[5][1].."#"..attr[5][2].."#"..attr[6][1].."#"..attr[6][2].."#"..attr[7][1].."#"..attr[7][2].."\\n")
			guildstorage:flush()
			guildstorage:close()
		end
		
		function remove_item(slot)
			local gsPath = guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt"
			local items = {}
			local itemList = guildstorage.get_items()
			
			for i = 1 , table.getn(itemList) do
				table.insert(items,guildstorage.split_(itemList[i],"#"))
			end
			
			for i = 1, table.getn(items) do
				if items[i][3] == tostring(slot) then 
					guildstorage.add_log(pc.get_name(),'Item','rausnehmen',item_name(items[i][1])..' ('..items[i][2]..')')
					table.remove(items,i)
					break
				end
			end
			local gs = io.open(gsPath, "w+")
			for i = 1, table.getn(items) do
				gs:write(items[i][1]..'#'..items[i][2]..'#'..items[i][3]..'#'..items[i][4]..'#'..items[i][5]..'#'..items[i][6]..'#'..items[i][7]..'#'..items[i][8]..'#'..items[i][9]..'#'..items[i][10]..'#'..items[i][11]..'#'..items[i][12]..'#'..items[i][13]..'#'..items[i][14]..'#'..items[i][15]..'#'..items[i][16]..'#'..items[i][17]..'#'..items[i][18]..'#'..items[i][19]..'#'..items[i][20]..'#'..items[i][21]..'#'..items[i][22]..'#'..items[i][23]..'\\n')
			end
			gs:flush()
			gs:close()
		end
		
		function get_items()
			local guildstorageTab = {}
			local guildstorage = io.open(guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt", "r")
			for item in guildstorage:lines() do
				table.insert(guildstorageTab,item)
			end
			return guildstorageTab or 0
		end
		
		function move_item(from,to)
			local gsPath = guildstorage_path.."Guildstorage/"..pc.get_guild().."/storage.txt"
			
			local items = {}
			local itemList = guildstorage.get_items()
			
			for i = 1 , table.getn(itemList) do
				table.insert(items,guildstorage.split_(itemList[i],"#"))
			end
			
			for i = 1, table.getn(items) do
				if items[i][3] == tostring(from) then items[i][3] = tostring(to) end
			end
			local gs = io.open(gsPath, "w+")
			for i = 1, table.getn(items) do
				gs:write(items[i][1]..'#'..items[i][2]..'#'..items[i][3]..'#'..items[i][4]..'#'..items[i][5]..'#'..items[i][6]..'#'..items[i][7]..'#'..items[i][8]..'#'..items[i][9]..'#'..items[i][10]..'#'..items[i][11]..'#'..items[i][12]..'#'..items[i][13]..'#'..items[i][14]..'#'..items[i][15]..'#'..items[i][16]..'#'..items[i][17]..'#'..items[i][18]..'#'..items[i][19]..'#'..items[i][20]..'#'..items[i][21]..'#'..items[i][22]..'#'..items[i][23]..'\\n')
			end
			gs:flush()
			gs:close()
		end
		
		function getinput(par)
			cmdchat("getinputbegin")
			local ret = input(cmdchat(par))
			cmdchat("getinputend")
			return ret
		end
		
		----------------------
		--STORAGE END
		----------------------
		
		function client_command(command_)
			return guildstorage.split_(command_,"#")
		end
		
		function split_(string_,delimiter)
			local result = { }
			local from  = 1
			local delim_from, delim_to = string.find( string_, delimiter, from  )
			while delim_from do
				table.insert( result, string.sub( string_, from , delim_from-1 ) )
				from  = delim_to + 1
				delim_from, delim_to = string.find( string_, delimiter, from  )
			end
			table.insert( result, string.sub( string_, from  ) )
			return result
		end

	end
end
11/18/2014 22:44 Kullanici123#10650
Hey Leute,

ich habe da ein kleines Probelm. Ich habe ein Item erstellt mit dem man Rangpunkte bekommt. Soweit alles gut, nur möchte ich das so machen das sich das Item nicht mehr benutzen lässt wenn man das maximum an Rangpunkten erreicht hat. Nur leider geht das nicht so wie ich dachte :/

Hier mal meine Quest:

PHP Code:
quest Rangpunkte begin
    state start begin

    when 91001.
use begin
    
if pc.get_alignment(30000)
    
say("Du hast bereits das maximum an Rangpunkten!")
    
end
   
    
else pc.change_alignment(500end
    say
("Deine Rangpunkte wurden um 500 erhöht!")
    
pc.remove_item(91001)
    
end
    end
end 
Schon mal vielen Dank :)