Register for your free account! | Forgot your password?

You last visited: Today at 03:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



pc.getqf / pc.setqf

Discussion on pc.getqf / pc.setqf within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
Yoscha's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
pc.getqf / pc.setqf

Huhu, ich habe mal wieder eine Frage
Ehm, großer Fan von diesen Beiden obig im Titel genannten "Befehlen".
Ist es möglich diese Quest.Übergreifend zu benutzen?
Also, wenn ich in einer Quest z.b. pc.setqf(Pipikakapopo, 1) setze, kann ich dies in einer anderen Quest abfragen?

Also. ich habs halt ausprobiert und bei mir funktioniert es leider nicht. Also, es wird nicht erkannt, dass der wert für bspws Pipikakapopo auf 1 ist.
Daher die Frage; funktioniert es normalerweise? Also liegt der Fehler anderweitig, oder gibt es eine bessere, geeignetere Funktion dafür?

Wäre wie immer sehr dankbar.
Und wie immer habe ich auch schon gesucht aber nichts gefunden aus eigener Kraft :/

LG <3
Yoscha is offline  
Old 09/04/2020, 02:36   #2


 
elite*gold: 1860
Join Date: Jan 2012
Posts: 2,209
Received Thanks: 1,630
Versuchs mal mit pc.getf bzw. pc.setf, damit solltest du questübergreifend arbeiten können.
MaxChri is offline  
Thanks
1 User
Old 09/04/2020, 02:46   #3
 
Yoscha's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
Danke für die rasante Antwort
Probiere ich gleich mal aus.







-----> Leider nicht

Hab doch was gefunden im Forum.. ^^

Quote:
Originally Posted by xGr33n View Post
if pc.getf("anderequestname", "xxx_xx") then

anderequestname = von der anderen Quest aus der ersten zeile das fette:

quest datisderquestname begin


Teste es gleich mal.^^
Yoscha is offline  
Old 09/04/2020, 15:11   #4
 
elite*gold: 0
Join Date: Feb 2009
Posts: 80
Received Thanks: 29
Hat es funktioniert?

Würde mich interessieren
akaschikibaba18denis is offline  
Old 09/04/2020, 22:38   #5
 
Yoscha's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
Leider nicht.
Habe einen anderen Lösungsansatz, dem ich momentan herumprobiere.
Werde bei Erfolg die Informationen hier reineditieren
Yoscha is offline  
Old 09/05/2020, 01:43   #6


 
elite*gold: 1860
Join Date: Jan 2012
Posts: 2,209
Received Thanks: 1,630
Ist eigentlich recht einfach.


Quest Functions:
Code:
-- GLOBAL_FLAG_SYSTEM


-- local player flags

function PlayerSetFlag(gPlayerID, gFlagName, gFlagValue)
	
	if PlayerGetFlag(gPlayerID, gFlagName) != nil then
		mysql_query("UPDATE player.global_flags SET value='"..gFlagValue.."' WHERE pid='"..gPlayerID.."' AND flag='"..gFlagName.."';")
	else
		mysql_query("INSERT INTO player.global_flags (pid, flag, value) VALUES('"..gPlayerID.."', '"..gFlagName.."', '"..gFlagValue.."')")
	end
	
end

function PlayerDelFlag(gPlayerID, gFlagName)
	mysql_query("DELETE FROM player.global_flags WHERE pid = '"..gPlayerID.."' AND flag = '"..gFlagName.."'")
end

function PlayerGetFlag(gPlayerID, gFlagName)
	
	local query = mysql_query("SELECT value FROM player.global_flags WHERE pid = '"..gPlayerID.."' AND flag = '"..gFlagName.."';")
	
	if query.value != NULL then
		return query.value[1]
	end
	
	
	return nil
	
end


-- global player flags

function PlayerSetGlobalFlag(gFlagName, gFlagValue)
	mysql_query("UPDATE player.global_flags SET value='"..gFlagValue.."' WHERE flag='"..gFlagName.."';")
end

function PlayerDelGlobalFlag(gFlagName)
	mysql_query("DELETE FROM player.global_flags WHERE flag = '"..gFlagName.."' AND pid != 0")
end


-- event flags

function EventSetFlag(gFlagName, gFlagValue)
	
	if EventGetFlag(gFlagName) != nil then
		mysql_query("UPDATE player.global_flags SET value='"..gFlagValue.."' WHERE flag='"..gFlagName.."';")
	else
		mysql_query("INSERT INTO player.global_flags (flag, value) VALUES('"..gFlagName.."', '"..gFlagValue.."')")
	end
	
end

function EventDelFlag(gFlagName)
	mysql_query("DELETE FROM player.global_flags WHERE pid = '0' AND flag = '"..gFlagName.."")
end

function EventGetFlag(gFlagName)
	
	local query = mysql_query("SELECT value FROM player.global_flags WHERE pid = '0' AND flag = '"..gFlagName.."' LIMIT 1;")
	
	if query.value != NULL then
		return query.value[1]
	end
	
	
	return nil
	
end

-- END_OF_GLOBAL_FLAG_SYSTEM

SQL:

Code:
-- Exportiere Struktur von Tabelle player.global_flags
CREATE TABLE IF NOT EXISTS `global_flags` (
  `pid` int(11) NOT NULL DEFAULT '0',
  `flag` varchar(255) NOT NULL,
  `value` varchar(255) NOT NULL,
  PRIMARY KEY (`pid`,`flag`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
MaxChri is offline  
Thanks
1 User
Old 09/05/2020, 14:45   #7
 
elite*gold: 0
Join Date: Sep 2020
Posts: 1
Received Thanks: 1
Quote:
Originally Posted by MaxChri View Post
Ist eigentlich recht einfach.


Quest Functions:
Code:
-- GLOBAL_FLAG_SYSTEM


-- local player flags

function PlayerSetFlag(gPlayerID, gFlagName, gFlagValue)
	
	if PlayerGetFlag(gPlayerID, gFlagName) != nil then
		mysql_query("UPDATE player.global_flags SET value='"..gFlagValue.."' WHERE pid='"..gPlayerID.."' AND flag='"..gFlagName.."';")
	else
		mysql_query("INSERT INTO player.global_flags (pid, flag, value) VALUES('"..gPlayerID.."', '"..gFlagName.."', '"..gFlagValue.."')")
	end
	
end

function PlayerDelFlag(gPlayerID, gFlagName)
	mysql_query("DELETE FROM player.global_flags WHERE pid = '"..gPlayerID.."' AND flag = '"..gFlagName.."'")
end

function PlayerGetFlag(gPlayerID, gFlagName)
	
	local query = mysql_query("SELECT value FROM player.global_flags WHERE pid = '"..gPlayerID.."' AND flag = '"..gFlagName.."';")
	
	if query.value != NULL then
		return query.value[1]
	end
	
	
	return nil
	
end


-- global player flags

function PlayerSetGlobalFlag(gFlagName, gFlagValue)
	mysql_query("UPDATE player.global_flags SET value='"..gFlagValue.."' WHERE flag='"..gFlagName.."';")
end

function PlayerDelGlobalFlag(gFlagName)
	mysql_query("DELETE FROM player.global_flags WHERE flag = '"..gFlagName.."' AND pid != 0")
end


-- event flags

function EventSetFlag(gFlagName, gFlagValue)
	
	if EventGetFlag(gFlagName) != nil then
		mysql_query("UPDATE player.global_flags SET value='"..gFlagValue.."' WHERE flag='"..gFlagName.."';")
	else
		mysql_query("INSERT INTO player.global_flags (flag, value) VALUES('"..gFlagName.."', '"..gFlagValue.."')")
	end
	
end

function EventDelFlag(gFlagName)
	mysql_query("DELETE FROM player.global_flags WHERE pid = '0' AND flag = '"..gFlagName.."")
end

function EventGetFlag(gFlagName)
	
	local query = mysql_query("SELECT value FROM player.global_flags WHERE pid = '0' AND flag = '"..gFlagName.."' LIMIT 1;")
	
	if query.value != NULL then
		return query.value[1]
	end
	
	
	return nil
	
end

-- END_OF_GLOBAL_FLAG_SYSTEM

SQL:

Code:
-- Exportiere Struktur von Tabelle player.global_flags
CREATE TABLE IF NOT EXISTS `global_flags` (
  `pid` int(11) NOT NULL DEFAULT '0',
  `flag` varchar(255) NOT NULL,
  `value` varchar(255) NOT NULL,
  PRIMARY KEY (`pid`,`flag`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
ziemlich unnötig weil weil es über getf und setf funktionieren muss
benutze das immerhin schon seit 10 jahren
Remix v579 is offline  
Thanks
1 User
Old 09/06/2020, 18:09   #8
 
Yoscha's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
Quote:
Originally Posted by Remix v579 View Post
ziemlich unnötig weil weil es über getf und setf funktionieren muss
benutze das immerhin schon seit 10 jahren
Innerhalb einer Quest funktioniert das bei mir auch wunderbar.
Wenn jedoch nummer1.quest setf setzt, und ich das mit nummer2.quest getf abfrage, funktioniert es nicht.

Mag aber sein das ich das hier:(if pc.getf("anderequestname", "xxx_xx") then falsch benutze.
Kannst du mir ein Beispiel für zwei Quests zeigen, dass bei dir funktioniert?
Das wäre dann auch nachvollziehbar für mich
Yoscha is offline  
Old 09/06/2020, 20:03   #9

 
danke.'s Avatar
 
elite*gold: 211
The Black Market: 109/0/0
Join Date: Mar 2012
Posts: 923
Received Thanks: 306
flag in einer quest setzen:
Code:
pc.setqf("questflag_test",1)
flag aus einer anderen quest setzen/verändern:
Code:
pc.setf("questname","questflag_test",3)
get flag aus einer anderen quest abfragen:
Code:
if pc.getf("questname","questflag_test") < 2 then
danke. is offline  
Thanks
1 User
Old 09/06/2020, 20:42   #10
 
Yoscha's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
Quote:
Originally Posted by .Chipp' View Post
flag in einer quest setzen:
Code:
pc.setqf("questflag_test",1)
flag aus einer anderen quest setzen/verändern:
Code:
pc.setf("questname","questflag_test",3)
get flag aus einer anderen quest abfragen:
Code:
if pc.getf("questname","questflag_test") < 2 then
#closerequest
Danke <3
Yoscha is offline  
Reply


Similar Threads Similar Threads
Frage bezüglich setqf & getqf
02/12/2014 - Metin2 Private Server - 2 Replies
heysen, ich habe ein kleines Problem bezüglich der im Titel genannten Befehle. Ich möchte gerne nachdem eine Quest abgeschlossen wurde einen qf setzen und diesen in einer anderen Quest auslesen. Leider hat das bis jetzt wie folgt nicht funktioniert: if pc.getqf("xxx_xx") then So funktioniert es nur, wenn der qf aus der selben Quest stammt. Was ich genau will:
NPC for getqf() and setqf()
10/16/2013 - Metin2 Private Server - 3 Replies
Hi guys, I want do this; npc.setqf("NPCode","FlagName" ,Value) npc.getqf("NPCode","FlagName" ) --return Value How we do this? Thank you..
Questbefehl pc.setqf
02/24/2012 - Metin2 Private Server - 0 Replies
Habs schon #closed
[ Mini-HowTo ] getqf, setqf & delqf
01/08/2012 - Metin2 PServer Guides & Strategies - 17 Replies
Hallo zusammen, ich hab über die Suchfunktion noch nichts derartiges gefunden. Ich werde es nun einfach mal kurz und einfach beschreiben: Über Quests werden Status auf den Charakter gesetzt. Mit den 3-Befehlen kann man die Status betrachten, löschen oder einen neuen hinzufügen. Nun stellt sich sicherlich jedem die Frage - Warum? Ganz einfach, falls man Quests testet oder ein blödes Beispiel, einem Spieler die Wartezeit beim Wechseln des Reiches entfernen möchte. Hier ein...



All times are GMT +1. The time now is 03:06.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.