Jump to content

Recommended Posts

I've rewritten a quest but always it gives me an error out.

Could you have a look at it and tell me, what I'm doing wrong?

 

quest guild_safebox begin
	state start begin
		function ginvfrei() 
			return tonumber(mysql_query("SELECT open from player.guild_safebox WHERE guild_id ='"..pc.get_guild().."';")[1][1]) or 0
		end 
--		local ginvfrei = mysql_query("select open from player.guild_safebox where guild_id = '".. pc.get_guild() .."' ")
		when 11000.chat."Gildenlager kaufen" or 11002.chat."Gildenlager kaufen" or 11004.chat."Gildenlager kaufen" with pc.has_guild() and pc.is_guild_master() and not guild.has_safebox() begin
			say_title(mob_name(npc.get_race())..":")
			say("Du möchtest ein Gildenlager kaufen? Das lässt")
			say("sich machen, aber es ist leider nicht umsonst.")
			say("Ich verlange 500.000 Yang für ein Lager für")
			say("deine Gilde.")
			say("")
			if pc.get_money() >= 500000 then
				if select("Bezahlen", "Abbrechen") == 2 then
					return
				end
				-- check again
				if pc.get_money() < 500000 or not pc.has_guild or not pc.is_guild_master() or guild.has_safebox() then
					return
				end
				-- give safebox
				guild.give_safebox()
				guild.change_safebox_size(1)
				mysql_query("UPDATE player.guild_safebox SET open ='0' WHERE guild_id ='".. pc.get_guild .."' LIMIT 1")
				pc.change_money(-500000)
				-- say
				say_title(mob_name(npc.get_race())..":")
				say("Deine Gilde hat nun ein Gildenlager.")
				say("Ich freue mich immer über Kundschaft!")
				say("")
			end
		end
		
		when 11000.chat."Gildenlager öffnen" or 11002.chat."Gildenlager öffnen" or 11004.chat."Gildenlager öffnen" with pc.has_guild() and guild.has_safebox() begin
			local ginvfrei = guild_safebox.ginvfrei()
			if pc.is_guild_master()then
				say_title(mob_name(npc.get_race())..":")
				say("Gerne doch, hier ist das Lager.")
				say("Zurzeit sind "..ginvfrei.." Lagerseiten für alle zugänglich!")
				say("Wünsche einen schönen Tag!")
				say("")
				guild.open_safebox()
			else
				if ginvfrei > 0 then
					say_title(mob_name(npc.get_race())..":")
					say("Gerne doch, hier ist das Lager.")
					say("Zurzeit sind "..ginvfrei.." Lagerseiten freigegeben!")
					say("Wünsche einen schönen Tag!")
					say("")
					guild.open_safebox(ginvfrei)
				-- guild.open_safebox(1) = 1 page
				-- guild.open_safebox(3) = 3 pages [max]
				else
					say_title(mob_name(npc.get_race())..":")
					say("Leider sind die Lagerseiten zurzeit nicht")
					say("freigegeben. Wenden Sie sich an Ihren Gildenmeister!")
					say("Wünsche einen schönen Tag!")
					say("")
				end
			end
		end
		
		when 11000.chat."Gildenlager ändern" or 11002.chat."Gildenlager ändern" or 11004.chat."Gildenlager ändern" with pc.has_guild() and guild.has_safebox() and pc.is_guild_master() begin
			local ginvfrei = guild_safebox.ginvfrei()
			if pc.is_guild_master()then
				say_title(mob_name(npc.get_race())..":")
				say("Hier kannst du einstellen, wieviele Seiten für alle")
				say("frei zugänglich sein sollen.")
				say("")
				say("Zurzeit sind "..ginvfrei.." Lagerseiten freigegeben!")
				say("")
				say("Wieviele möchtest du freigeben?")
				local a = select("0", "1", "2", "3", "Abbrechen")
				if a == 5 then
					return
				elseif a == 4 then
					say_title(mob_name(npc.get_race())..":")
					say("Okay, wird gemacht.")
					say("Wünsche einen schönen Tag!")
					say("")
					mysql_query("UPDATE player.guild_safebox SET open ='3' where guild_id ='".. pc.get_guild .."' LIMIT 1")
				elseif a == 3 then
					say_title(mob_name(npc.get_race())..":")
					say("Okay, wird gemacht.")
					say("Wünsche einen schönen Tag!")
					say("")
					mysql_query("UPDATE player.guild_safebox SET open ='2' where guild_id ='".. pc.get_guild .."' LIMIT 1")
				elseif a == 2 then
					say_title(mob_name(npc.get_race())..":")
					say("Okay, wird gemacht.")
					say("Wünsche einen schönen Tag!")
					say("")
					mysql_query("UPDATE player.guild_safebox SET open ='1' where guild_id ='".. pc.get_guild .."' LIMIT 1")
				elseif a == 1 then
					say_title(mob_name(npc.get_race())..":")
					say("Okay, wird gemacht.")
					say("Wünsche einen schönen Tag!")
					say("")
					mysql_query("UPDATE player.guild_safebox SET open ='0' where guild_id ='".. pc.get_guild .."' LIMIT 1")
				end
			else
				say_title(mob_name(npc.get_race())..":")
				say("Du kannst hier nichts ändern!")
				say("Wünsche einen schönen Tag!")
				say("")
			end
		end
		
		when warehouse_keeper.chat."Gildenlager vergrößern" with pc.has_guild() and guild.has_safebox() and guild.get_safebox_size() < 3 begin
			say_title(mob_name(npc.get_race())..":")
			say("Wenn du dein Gildenlager vergrößern möchtest,")
			say("dann musst du mir 1.000.000 Yang zahlen.")
			say("")
			if pc.get_money() >= 1000000 then
				if select("Zahlen", "Abbrechen") == 2 then
					return
				end
				if pc.get_money() < 1000000 then
					return
				end
				if not pc.has_guild() or not guild.has_safebox() then
					return
				end
				if guild.get_safebox_size() > 2 then
					return
				end
				guild.change_safebox_size(guild.get_safebox_size + 1)
				say_title(mob_name(npc.get_race())..":")
				say("Die Lagergröße wurde um 1 Slot erhöht.")
				say("")
			end
		end
	end
end

The error I get is this :

SYSERR: Jun 16 23:47:50 :: RunState: LUA_ERROR: locale/germany/quest/object/state/guild_safebox:1: attempt to index field `?' (a nil value)
SYSERR: Jun 16 23:47:50 :: WriteRunningStateToSyserr: LUA_ERROR: quest guild_safebox.start click

Table exists :

9f395323df.png

Edited by Metin2 Dev
Core X - External 2 Internal
Link to comment
https://metin2.dev/topic/7310-quest-mysql-problem/
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Don't use any images from : imgur, turkmmop, freakgamers, inforge, hizliresim... Or your content will be deleted without notice...
Use : https://metin2.download/media/add/

Please use https://metin2.download/ when uploading files smaller than 100MB, otherwise the approval will take longer due to manual upload.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.