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 :/
-- 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;
-- 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
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
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...