|
You last visited: Today at 03:03
Advertisement
pc.getqf / pc.setqf
Discussion on pc.getqf / pc.setqf within the Metin2 Private Server forum part of the Metin2 category.
09/04/2020, 02:25
|
#1
|
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
|
|
|
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.
|
|
|
09/04/2020, 02:46
|
#3
|
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
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.^^
|
|
|
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
|
|
|
09/04/2020, 22:38
|
#5
|
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
|
|
|
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;
|
|
|
09/05/2020, 14:45
|
#7
|
elite*gold: 0
Join Date: Sep 2020
Posts: 1
Received Thanks: 1
|
Quote:
Originally Posted by MaxChri
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
|
|
|
09/06/2020, 18:09
|
#8
|
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
|
Quote:
Originally Posted by Remix v579
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
|
|
|
09/06/2020, 20:03
|
#9
|
elite*gold: 211
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
|
|
|
09/06/2020, 20:42
|
#10
|
elite*gold: 0
Join Date: Jul 2009
Posts: 195
Received Thanks: 3
|
Quote:
Originally Posted by .Chipp'
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
|
|
|
 |
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.
|
|