[SERVICE] Die Questkontrolle

09/12/2012 17:26 Hugh Laurie#6796
Hi Quester,

wie ist es mir möglich meine normale Lager-Quest:


mit dieser Bank Quest zu vereinen:

?

Mfg
09/12/2012 18:15 RecK#6797
Deine Variable "s" erweitern auf:
PHP Code:
local s select("Lager""Barren""Itemshop Lager""Bank""Schließen"
nach "Itemshop Lager" fügst du deinen Bank-Quest ein. Darauf wird zugegriffen, sobald der User "Bank" auswählt. Die function würde ich weglassen weil sie eigentlich an dieser Stelle keinen Sinn hat..

PHP Code:
elseif == 4 then
 say_title
("Banker:")  
            
say("Ich biete dir die Möglichkeit, dein Yang")  
            
say("Zinsenfrei aufzubewahren.")  
            
say("Du kannst jedoch maximal einen Betrag")  
            
say("von 4.611.686.016.279.904.256 Yang")  
            
say("aufbewahren.")  
            
say("")  
            
local action select("Yang einzahlen""Yang auszahlen""Abbrechen")  
            if 
action == 1 then  
                say_title
("Banker:")  
                if 
pc.gold 1 then  
                    say
("Du hast kein Yang.")  
                    
say("")  
                    return  
                
end  
                say
("Du hast "..pc.gold.." Yang.")  
                
say("Wieviel möchtest du davon einzahlen?")  
                
local yang tonumber(input())  
                if 
yang 0 then  
                    
return  
                
end  
                
if yang pc.gold then  
                    yang 
pc.gold  
                end  
                pc
.changegold(-yang)  
                
local saved_rest tonumber(pc.getqf("saved_rest"))  
                
local saved_signed_longs tonumber(pc.getqf("saved_signed_longs"))  
                if 
saved_rest yang 2147483647 then  
                    pc
.setqf("saved_signed_longs"saved_signed_longs 1)  
                    
pc.setqf("saved_rest"saved_rest yang 2147483647)  
                else  
                    
pc.setqf("saved_rest"saved_rest yang)  
                
end  
                say_title
("Banker:")  
                
say("Es wurden "..yang.." Yang eingezahlt.")  
                
say("")  
                return  
            elseif 
action == 2 then  
                local saved_rest 
tonumber(pc.getqf("saved_rest"))  
                
local saved_signed_longs tonumber(pc.getqf("saved_signed_longs"))  
                
local saved_yang saved_signed_longs*2147483647+saved_rest  
                say_title
("Banker:")  
                if 
saved_yang 1 then  
                    say
("Ich habe kein Geld mehr von dir.")  
                    
say("")  
                    return  
                
end  
                say
("Ich kann dir das Geld, das du eingezahlt hast,")  
                
say("nun wieder auszahlen.")  
                
say("")  
                
say_reward("Kontostand: "..saved_yang.." Yang")  
                
say("")  
                
say("Wieviel Yang möchtest du ausgezahlt bekommen?")  
                
local yang tonumber(input())  
                if 
yang 0 then  
                    
return  
                
end  
                
if yang saved_yang then  
                    yang 
saved_yang  
                end  
                
if pc.gold yang 1899999999 then  
                    yang 
1899999999 pc.gold  
                end  
                
if yang saved_yang then  
                    yang 
saved_yang  
                end  
                
if saved_rest yang 0 then  
                    pc
.setqf("saved_signed_longs"saved_signed_longs 1)  
                    
pc.setqf("saved_rest"2147483647 yang saved_rest)  
                else  
                    
pc.setqf("saved_rest"saved_rest yang)  
                
end  
                pc
.changegold(yang)  
                
say_title("Banker:")  
                
say("Es wurden "..yang.." Yang ausgezahlt.")  
                
say("")  
            
end  
        end  
    end  
end 
:)
09/12/2012 18:39 [ShiizoPhreN]™#6798
Hallöle ich hab da ein problem mit einer quest

der liebe Sponge war so nett und hat mir eine kleine quest geschrieben nun was ansich echt nett ist nun funktioniert sie bei mir aber fehlerhaft.

Sie soll mir [g] Yang oder [i] items geben nur leider bekomm ich nur yang

Code:
quest truhen begin
	state start begin
		when 71144.use begin
			local t = {{g,100000},{g,50000},{g,30000},{g,20000},{g,10000},
			{i,71107},{i,25100},{i,71085},{i,71084},{i,70024},{i,70038},{i,71101},}
			local r,c = number(1,table.getn(t)),1
			if t[r][1] == g then
				pc.change_money(t[r][2])
			else
				if t[r][2] == 71101 then
					c = 5
				end
				pc.give_item2(t[r][2], c)
			end
			pc.remove_item(item.vnum)
		end
	end
end
MfG
09/12/2012 20:47 Hugh Laurie#6799
Quote:
Originally Posted by RecK View Post
Deine Variable "s" erweitern auf:
PHP Code:
local s select("Lager""Barren""Itemshop Lager""Bank""Schließen"
nach "Itemshop Lager" fügst du deinen Bank-Quest ein. Darauf wird zugegriffen, sobald der User "Bank" auswählt. Die function würde ich weglassen weil sie eigentlich an dieser Stelle keinen Sinn hat..

PHP Code:
elseif == 4 then
 say_title
("Banker:")  
            
say("Ich biete dir die Möglichkeit, dein Yang")  
            
say("Zinsenfrei aufzubewahren.")  
            
say("Du kannst jedoch maximal einen Betrag")  
            
say("von 4.611.686.016.279.904.256 Yang")  
            
say("aufbewahren.")  
            
say("")  
            
local action select("Yang einzahlen""Yang auszahlen""Abbrechen")  
            if 
action == 1 then  
                say_title
("Banker:")  
                if 
pc.gold 1 then  
                    say
("Du hast kein Yang.")  
                    
say("")  
                    return  
                
end  
                say
("Du hast "..pc.gold.." Yang.")  
                
say("Wieviel möchtest du davon einzahlen?")  
                
local yang tonumber(input())  
                if 
yang 0 then  
                    
return  
                
end  
                
if yang pc.gold then  
                    yang 
pc.gold  
                end  
                pc
.changegold(-yang)  
                
local saved_rest tonumber(pc.getqf("saved_rest"))  
                
local saved_signed_longs tonumber(pc.getqf("saved_signed_longs"))  
                if 
saved_rest yang 2147483647 then  
                    pc
.setqf("saved_signed_longs"saved_signed_longs 1)  
                    
pc.setqf("saved_rest"saved_rest yang 2147483647)  
                else  
                    
pc.setqf("saved_rest"saved_rest yang)  
                
end  
                say_title
("Banker:")  
                
say("Es wurden "..yang.." Yang eingezahlt.")  
                
say("")  
                return  
            elseif 
action == 2 then  
                local saved_rest 
tonumber(pc.getqf("saved_rest"))  
                
local saved_signed_longs tonumber(pc.getqf("saved_signed_longs"))  
                
local saved_yang saved_signed_longs*2147483647+saved_rest  
                say_title
("Banker:")  
                if 
saved_yang 1 then  
                    say
("Ich habe kein Geld mehr von dir.")  
                    
say("")  
                    return  
                
end  
                say
("Ich kann dir das Geld, das du eingezahlt hast,")  
                
say("nun wieder auszahlen.")  
                
say("")  
                
say_reward("Kontostand: "..saved_yang.." Yang")  
                
say("")  
                
say("Wieviel Yang möchtest du ausgezahlt bekommen?")  
                
local yang tonumber(input())  
                if 
yang 0 then  
                    
return  
                
end  
                
if yang saved_yang then  
                    yang 
saved_yang  
                end  
                
if pc.gold yang 1899999999 then  
                    yang 
1899999999 pc.gold  
                end  
                
if yang saved_yang then  
                    yang 
saved_yang  
                end  
                
if saved_rest yang 0 then  
                    pc
.setqf("saved_signed_longs"saved_signed_longs 1)  
                    
pc.setqf("saved_rest"2147483647 yang saved_rest)  
                else  
                    
pc.setqf("saved_rest"saved_rest yang)  
                
end  
                pc
.changegold(yang)  
                
say_title("Banker:")  
                
say("Es wurden "..yang.." Yang ausgezahlt.")  
                
say("")  
            
end  
        end  
    end  
end 
:)
Danke dir schon mal, jetzt sieht die Quest folgendermaßen aus:


Nun ist die neue Option "Bank" zwar vorhanden, jedoch hat die Option nach Klicken auf sie keine weitere Funktion.
Woran liegt dies?

Mfg
09/12/2012 20:58 RecK#6800
Quote:
Originally Posted by .Reality' View Post
Nun ist die neue Option "Bank" zwar vorhanden, jedoch hat die Option nach Klicken auf sie keine weitere Funktion.
Woran liegt dies?

Mfg
Dann versuch das ganze doch noch mal mit der function.
function am Script anfang bestimmten, anschließend:

PHP Code:
if == 4 then 
functionname
()
end 
Prüf auch mal ob du mit "end" alles geschlossen hast was du geöffnet hast.
Sprich if oder else muss mit "end" beendet werden.

Bin mir sogar ziemlich sicher, dass ein end auf jeden Fall am Ende fehlt. :s Aber zu der Uhrzeit leider nicht mehr so die Lust und das nach 7h arbeit an OOS (meine Fresse! XD)
Beim drüberschauen ist mir aber nichts fatal falsches aufgefallen ^^

Wenn ich jetzt nicht falsch denke fehlen dort jeweils auch nochmal ein end:
PHP Code:
elseif == 2 then 
game
.open_safebox() 
END
elseif == 3 then 
--npc.open_shop(15
-- ?? ??? ?? ?? ?? 
q.done() 
END
elseif == 4 then 
Hab sie mal groß geschrieben.
Probiers einfach mal aus :)


Kleiner Tipp am Rande:
09/12/2012 21:38 Hugh Laurie#6801
Quote:
Originally Posted by RecK View Post
Dann versuch das ganze doch noch mal mit der function.
function am Script anfang bestimmten, anschließend:

PHP Code:
if == 4 then 
functionname
()
end 
Prüf auch mal ob du mit "end" alles geschlossen hast was du geöffnet hast.
Sprich if oder else muss mit "end" beendet werden.

Bin mir sogar ziemlich sicher, dass ein end auf jeden Fall am Ende fehlt. :s Aber zu der Uhrzeit leider nicht mehr so die Lust und das nach 7h arbeit an OOS (meine Fresse! XD)
Beim drüberschauen ist mir aber nichts fatal falsches aufgefallen ^^

Wenn ich jetzt nicht falsch denke fehlen dort jeweils auch nochmal ein end:
PHP Code:
elseif == 2 then 
game
.open_safebox() 
END
elseif == 3 then 
--npc.open_shop(15
-- ?? ??? ?? ?? ?? 
q.done() 
END
elseif == 4 then 
Hab sie mal groß geschrieben.
Probiers einfach mal aus :)


Kleiner Tipp am Rande:
Danke, nun erscheint folgender Error nach Ausführen der make.sh:

[Only registered and activated users can see links. Click Here To Register...]

(Quest):

09/12/2012 21:47 RecK#6802
Schau dir mal die Fehlermeldung an.
In Zeile 90 nähe elseif gibt es einen Syntaxfehler
Syntax ist der geschriebene Code.
Wenn ich das jetzt so richtig interpretiere aber denke mal die Fehlermeldungen werden sich nicht stark von den anderen normalen unterscheiden ^^

Nach meinem Wissen kannst du keine function mitten im Script erstellen.
Erstell die mal wirklich direkt nach Queststart und führ sie nach dem if s == 4 then aus (function())

Einfach mal bisschen mit der Quest rumspielen ^^

Ps: Wenn du sone Fehlermeldung hast wärs schön wenn du den Code etwas eingrenzst. Ich zähle jetzt zum Beispiel ungern bis 90 die Zeilen und hab meine Editoren schon alle geschlossen ^^
09/12/2012 22:06 Lord Elinoy#6803
Abend liebe Quest Helfer.

Da es zum questing berreich zugehöhrt Poste ich es mal hier hin.

Unzwar brauche ich 3 abfragen, die wäre:
Spieler ohne Gilder
Spieler in Gilder
Spieler ist Gildenleader

wobei ich glaube das Spieler ist Gildenleader pc.is_guild_master ist, bin mir aber nicht genau sicher könntet ihr mir evtl. weiter helfen.

MFG

#EDIT: Habs gefunden
09/13/2012 07:57 .Seriously#6804
erledigt
09/13/2012 08:03 Icebeatzz™#6805
Bräuchte mal bei der seelenstein quest hilfe :s
Ich weiß nicht wo das mit dem remove.item hin kommt.


Bild: [Only registered and activated users can see links. Click Here To Register...]
09/13/2012 08:24 .Seriously#6806
er findet die beiden functionen in der quest_funtion datei nicht.
09/13/2012 16:46 [ShiizoPhreN]™#6807
Hi könnte mir vielleicht jemand helfen ich möchte bei dem folgenen event die dropps in iener tabelle habe nur weiß ich leider net wie das geht

Code:
		when kill with game.get_event_flag("ostern_drop") == and not npc.is_pc() begin
			local a = number(1, 600)
			if m == 1 then
				game.drop_item(50160,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 2 then
				game.drop_item(50161,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 3 then
				game.drop_item(50162,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 4 then
				game.drop_item(50163,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 5 then
				game.drop_item(50164,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 6 then
				game.drop_item(50165,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 7 then
				game.drop_item(50166,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 8 then
				game.drop_item(50167,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 9 then
				game.drop_item(50168,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 10 then
				game.drop_item(50169,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 11 then
				game.drop_item(50170,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 12 then
				game.drop_item(50171,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 13 then
				game.drop_item(50172,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 14 then
				game.drop_item(50173,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 15 then
				game.drop_item(50174,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 16 then
				game.drop_item(50175,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 17 then
				game.drop_item(50176,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 18 then
				game.drop_item(50177,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 19 then
				game.drop_item(50178,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 20 then
				game.drop_item(50179,1)
				syschat("Du hast ein Ostergeschenk erhalten.")
			elseif m == 21 then
					
				end
			end	
		end
MfG
09/13/2012 18:59 Hahaha12313#6808
Quote:
Originally Posted by Tentos123 View Post
Also du hast halt nur ein paar " und ein paar. vergessen;)
Sollte so gehen:
PHP Code:
quest levelup begin
    state start begin
        when levelup with pc
.get_level() == 127 begin
            notice_all
("" .. pc.get_name() .. " hat level 127 erreicht.")
            
notice_all("" .. pc.get_name() .. " hat das Endlevel erreicht.")
        
notice_all("Wir wünschen dir weiterhin viel spaß. ")
        
end
    end
end 
[/QUOTE]

Klappt trotzdem nicht... Immer Core Dumped



Ich hab ein Foto von dem Problem gemacht, der ist im Anhang.

Du hast ein Thanks von mir erhalten :)
09/13/2012 19:20 Hugh Laurie#6809
Quote:
Originally Posted by RecK View Post
Schau dir mal die Fehlermeldung an.
In Zeile 90 nähe elseif gibt es einen Syntaxfehler
Syntax ist der geschriebene Code.
Wenn ich das jetzt so richtig interpretiere aber denke mal die Fehlermeldungen werden sich nicht stark von den anderen normalen unterscheiden ^^

Nach meinem Wissen kannst du keine function mitten im Script erstellen.
Erstell die mal wirklich direkt nach Queststart und führ sie nach dem if s == 4 then aus (function())

Einfach mal bisschen mit der Quest rumspielen ^^

Ps: Wenn du sone Fehlermeldung hast wärs schön wenn du den Code etwas eingrenzst. Ich zähle jetzt zum Beispiel ungern bis 90 die Zeilen und hab meine Editoren schon alle geschlossen ^^
Da ich nahezu keine Ahnung vom Questen habe, bin ich echt ratlos mit der Quest, so sieht sie nun vollständig aus:


So der Teil um Zeile 90 (Zeile 69 - 101):


Und nun habe ich noch ein Problem mit einer Userpanel-Quest, die eigentlich bugfrei sein müsste, hier die vollständige Quest:


Nach dem korrekten Einfügen dieser Userpanel-Quest geschieht nichts beim Klicken auf das zugehörige Item...

Hilfe wäre echt genial, auch gerne per Skype: "business-jw".

Mfg
09/13/2012 19:37 Tentos123#6810
@Hahaha12313
Die Quest geht so zu 100%. erstelle doch mal eine neue datei mit der quest ;)
PHP Code:
quest levelup begin
    state start begin
        when levelup with pc
.get_level() == 127 begin
        notice_all
(""..pc.get_name().." hat level 127 erreicht.")
        
notice_all(""..pc.get_name().." hat das Endlevel erreicht.")
        
notice_all("Wir wünschen dir weiterhin viel spaß.")
        
end
    end
end