|
You last visited: Today at 00:01
Advertisement
[Release] erweiterte Questflags per MySQL
Discussion on [Release] erweiterte Questflags per MySQL within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
06/06/2015, 12:19
|
#1
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
[Release] erweiterte Questflags per MySQL
Damit könnt ihr in einer Questflag einen String und eine Nummer speichern, diese Einzeln oder gleichzeitig abfragen und wenns mal sein muss direkt in der Datenbank bearbeiten, ohne den Server zu rebooten.
Nichts großes aber bestimmt hilfreich für manche
SQL:
Code:
CREATE TABLE questflag (
pid int(11) NOT NULL,
qid int(5) NOT NULL,
flagname varchar(50) NOT NULL,
flag_num int(100) NOT NULL DEFAULT 0,
flag_str varchar(100) NOT NULL DEFAULT '',
set_time datetime NOT NULL,
PRIMARY KEY(pid, qid, flagname)
);
LUA:
Code:
local getqf_query = "SELECT flag_num, flag_str FROM player.questflag WHERE pid = %s AND qid = %s AND flagname = '%s' LIMIT 1;"
local setqf_query = "INSERT INTO player.questflag (pid, qid, flagname, flag_num, flag_str, set_time) VALUES (%s, %s, '%s', %s, %s, CURRENT_TIMESTAMP) ON DUPLICATE KEY UPDATE flag_num = %s, flag_str = %s, set_time = CURRENT_TIMESTAMP;"
function pc.getf(questindex, flagname)
local qf = mysql_query(string.format(getqf_query, pc.get_player_id(), questindex, flagname))
if not qf or table.getn(qf) < 1 then
return {0, ""}
end
return {tonumber(qf.flag_num[1]), qf.flag_str[1]}
end
function pc.getf_num(questindex, flagname)
return pc.getf(questindex, flagname)[1]
end
function pc.getf_str(questindex, flagname)
return pc.getf(questindex, flagname)[2]
end
function pc.setf(questindex, flagname, flag_num, flag_str)
mysql_query(string.format(setqf_query, pc.get_player_id(), questindex, flagname, flag_num, "'"..flag_str.."'", flag_num, "'"..flag_str.."'"))
end
function pc.setf_num(questindex, flagname, flag_num)
mysql_query(string.format(setqf_query, pc.get_player_id(), questindex, flagname, flag_num, "flag_str", flag_num, "flag_str"))
end
function pc.setf_str(questindex, flagname, flag_str)
mysql_query(string.format(setqf_query, pc.get_player_id(), questindex, flagname, "flag_num", "'"..flag_str.."'", "flag_num", "'"..flag_str.."'"))
end
function pc.getqf(flagname)
return pc.getf(q.getcurrentquestindex(), flagname)
end
function pc.getqf_num(flagname)
return pc.getf_num(q.getcurrentquestindex(), flagname)
end
function pc.getqf_str(flagname)
return pc.getf_str(q.getcurrentquestindex(), flagname)
end
function pc.setqf(flagname, flag_num, flag_str)
pc.setf(q.getcurrentquestindex(), flagname, flag_num, flag_str)
end
function pc.setqf_num(flagname, flag_num)
pc.setf_num(q.getcurrentquestindex(), flagname, flag_num)
end
function pc.setqf_str(flagname, flag_str)
pc.setf_str(q.getcurrentquestindex(), flagname, flag_str)
end
Viel Spaß damit!
EDIT:
Quote:
Originally Posted by It's me, 1093
Habe ich überlegt zu machen allerdings finde ich es für mich so wie es ist angenehmer.
Hier die andere Möglichkeit:
Code:
function pc.setqf(flagname, flag)
({pc.setqf_num, pc.setqf_str})[type(flag) == "number" and 1 or 2](flagname, flag)
end
|
|
|
|
06/06/2015, 12:20
|
#2
|
elite*gold: 108
Join Date: May 2013
Posts: 456
Received Thanks: 854
|
Wie immer : Super Geil!
|
|
|
06/06/2015, 12:21
|
#3
|
elite*gold: 0
Join Date: Apr 2015
Posts: 428
Received Thanks: 361
|
Direkt mal nutzen Erspart Zeit :9
|
|
|
06/06/2015, 12:35
|
#4
|
elite*gold: 0
Join Date: Sep 2013
Posts: 491
Received Thanks: 675
|
ich finde du hast dort zu viele funktionen.
am besten wäre es wenn pc.setqf einfach checkt ob es sich um einen int oder einen string handelt und von selbst dann aussucht wie er es einträgt
|
|
|
06/06/2015, 13:10
|
#5
|
elite*gold: 399
Join Date: Sep 2011
Posts: 5,323
Received Thanks: 3,938
|
Quote:
Originally Posted by .Kibito
ich finde du hast dort zu viele funktionen.
am besten wäre es wenn pc.setqf einfach checkt ob es sich um einen int oder einen string handelt und von selbst dann aussucht wie er es einträgt
|
Sollte über die type-Funktion ja eigentlich kein Problem sein
|
|
|
06/06/2015, 13:13
|
#6
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by srsly not DasSchwarzeT
Sollte über die type-Funktion ja eigentlich kein Problem sein
|
Code:
if type(pc.getqf("flag")) == 'number' then
meinst es so?
btt: nett.
|
|
|
06/06/2015, 13:19
|
#7
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by .Kibito
ich finde du hast dort zu viele funktionen.
am besten wäre es wenn pc.setqf einfach checkt ob es sich um einen int oder einen string handelt und von selbst dann aussucht wie er es einträgt
|
Habe ich überlegt zu machen allerdings finde ich es für mich so wie es ist angenehmer.
Hier die andere Möglichkeit:
Code:
function pc.setqf(flagname, flag)
({pc.setqf_num, pc.setqf_str})[type(flag) == "number" and 1 or 2](flagname, flag)
end
|
|
|
06/06/2015, 17:29
|
#8
|
elite*gold: 0
Join Date: Jun 2015
Posts: 113
Received Thanks: 26
|
Wie du sagtest, nichts großes aber wirklich nett und zu gebrauchen
Danke dir.
|
|
|
06/06/2015, 17:51
|
#9
|
elite*gold: 0
Join Date: Dec 2014
Posts: 229
Received Thanks: 149
|
Zehr zupah, tanke tir!
|
|
|
06/06/2015, 21:28
|
#10
|
elite*gold: 534
Join Date: Mar 2014
Posts: 1,614
Received Thanks: 983
|
Sauber, wie immer.
|
|
|
06/07/2015, 00:28
|
#11
|
elite*gold: 0
Join Date: Jun 2012
Posts: 232
Received Thanks: 104
|
Gute Arbeit
|
|
|
|
Similar Threads
|
[Release] (Test Your Quests) - Mini-Quest zum ändern der Questflags
03/01/2015 - Metin2 PServer Guides & Strategies - 3 Replies
Ist für mich immer wieder nützlich wenn ich gerade an Quests arbeite bei denen ich Questflags mit z.B. Restkills etc. habe, deswegen möchte ich sie mit Euch teilen. Ist nichts besonderes aber mMn extrem hilfreich.
In die Input-Felder kann gibt man einfach Questname, Flagname und Wert ein und schon setzt ihr den Questflag neu.
quest setflags begin
state start begin
when 20355.chat."Set the states" with pc.name == "" begin
say("quest?")
local whichquest = input()...
|
[Release]Neue Questflags
01/29/2015 - Metin2 PServer Guides & Strategies - 7 Replies
Liebe Community,
ihr kennt ja die bisher vorhandenen Questflags, mit denen ihr Zahlen speichern könnt. Mit der Variante, die mein Kumpel entwickelt hat, könnt ihr auch Tabellen und Strings speichern.(Also eigentlich alles)
Ich betone:"Diese art von Questflags stammt nicht von mir, ich wurde lediglich gebeten sie zu Releasen"
Anhang oder Spoiler:
function get_locale_quest_path()
local file = io.open("usr/tmp","r")
if file then
|
Erweiterte Questfunction
12/15/2013 - Metin2 Private Server - 4 Replies
Moin
Gibt es eine function, mit der man den job(also die Rasse) ändern kann z.B. von Krieger auf Ninja???
|
[FRAGE]Questflags
07/23/2012 - Metin2 Private Server - 2 Replies
Hallo liebe Community,
ich hätte da mal eine Frage zu Questflags:
Können die Questflags höher als 1 sein? (Bsp. 83)
MFG
|
[Release] Erweiterte Execute-UDF
01/22/2011 - AutoIt - 7 Replies
Ich denke einige von euch kennen die in AutoIt implementierte "Execute"-Funktion. Ich fand es schon immer schade, dass diese Funktion so sehr beschnitten ist.
Es ist zum Beispiel nicht möglich mehrere Zeilen ausführen zu lassen, bspw. soetwas:
Das schränkt die Funktion natürlich sehr ein und auch, dass die Funktion kein If/While/For kennt ist Schade.
Außerdem kann man Variablen innerhalb der Execute Funktion keine Werte zuweisen:
Diese ganzen Eigenschaften machen die Execute-Funktion...
|
All times are GMT +2. The time now is 00:01.
|
|