pc.getqf / pc.setqf

09/04/2020 02:25 Yoscha#1
Huhu, ich habe mal wieder eine Frage :D
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 MaxChri#2
Versuchs mal mit pc.getf bzw. pc.setf, damit solltest du questübergreifend arbeiten können.
09/04/2020 02:46 Yoscha#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.^^
09/04/2020 15:11 akaschikibaba18denis#4
Hat es funktioniert?

Würde mich interessieren
09/04/2020 22:38 Yoscha#5
Leider nicht.
Habe einen anderen Lösungsansatz, dem ich momentan herumprobiere.
Werde bei Erfolg die Informationen hier reineditieren :)
09/05/2020 01:43 MaxChri#6
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 Remix v579#7
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
09/06/2020 18:09 Yoscha#8
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 :D
09/06/2020 20:03 danke.#9
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 Yoscha#10
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