Um euch den Spaß zu bieten die Datei zu decompilen
Verschlüsselt werde ich es aber garantiert nicht hochladen, theoretisch kann da ja alles drin stehen.
Soll nichts gegen dich sein, aber ich wüsste schon gerne was die neuen Funktionen genau machen.
Kannst du bitte noch die dekompilierte Version anhängen?
This complicated but at the end of the file throws an error. Is editing the same compiler that you used already finished? This file can have any collateral?
So much I could do.
Sorry for my english I'm from Polish.
This complicated but at the end of the file throws an error. Is editing the same compiler that you used already finished? This file can have any collateral?
So much I could do.
Sorry for my english I'm from Polish.
@Add my decommpiler
Looks funny
So you can see, There aren't any bad things in it^^
Die writelog funktion is mal richtig Sinnlos sys_err und sys_log reichen doch
Aber sonst recht nice
rawscript("[TEXT_HORIZONTAL_ALIGN_CENTER]")
gibts übrigens auch
PHP Code:
print("Questlib by Mijago") ql = {} col = {} zt = {} proc = {} local old_print = print do if pc == nil then pc = {} pc.get_name = function() return "-name-" end end if wait == nil then wait = function() old_print("<wait>") end end if say == nil then say = function(txt) old_print("<say>", txt) end end if chat == nil then chat = function(txt) old_print("<Chat>", txt) end end if notice == nil then notice = function(txt) old_print("<notice>", txt) end end if notice_all == nil then notice_all = function(txt) old_print("<notice_all>", txt) end end end
doit = os.execute arraytoselect = function(arr, abbr) local d = "sel = select(" local i = 0 for i = 1, getn(arr) do d = d .. "\\\"" .. arr[i] .. "\\\"," if abbr ~= nil and i == getn(arr) then d = d .. "\\\"" .. abbr .. "\\\"" end end d = d .. ")\\nreturn sel" return assert(loadstring(d))() end
writelog = function(text, var, file) if var == nil then var = 1 end if var == 1 then local data = io.open("syserr", "a+") data:write(os.date() .. "::\t" .. text .. "\n") data:close() elseif var == 2 then local data = io.open("syslog", "a+") data:write(os.date() .. "::\t" .. text .. "\n") data:close() elseif var == 3 then local data = io.open(file, "a+") data:write(os.date() .. "::\t" .. text .. "\n") data:close() end end
mysql_query = function(query, user, pw, db, ip) local var = {} var.pre = "" if ip ~= nil then var.pre = var.pre .. " -h" .. ip end if user ~= nil then var.pre = var.pre .. " -u" .. user end if pw ~= nil then var.pre = var.pre .. " -p" .. pw end if db ~= nil then var.pre = var.pre .. " -D" .. db end var.scriptfile = "sc_" .. pc.get_name() var.outputfile = "op_" .. pc.get_name() query = string.gsub(query, "\"", "'") var.str = "mysql " .. var.pre .. " < " .. var.scriptfile .. " > " .. var.outputfile script = io.open(var.scriptfile, "w") script:write(query) script:close() os.execute(var.str) local g = {} local f = io.open(var.outputfile) g.i = 0 g.li = {} g.out = {} g.count = 0 for line in f:lines() do g.i = g.i + 1 g.li[g.i] = line end if g.li[1] == nil then return "ERROR" end if string.len(g.li[1]) == 0 then return "ERROR" end g.fields = split(g.li[1], "\t") table.foreachi(g.fields, function(lb, ln) g.out[ln] = {} end) table.foreachi(g.li, function(ou1, ou2) if ou1 > 1 then local la = split(ou2, "\t") do g.count = g.count + 1 table.foreachi(g.fields, function(lb, ln) g.out[ln][ou1 - 1] = la[lb] end) end end end) f:close() g.out.__data = {} g.out.__data.fields = g.fields g.out.__data.lines = g.count g.out.__data.user = user g.out.__data.pass = pw g.out.__data.host = ip g.out.__data.db = db g.out.__data.query = query os.execute("rm " .. var.scriptfile) os.execute("rm " .. var.outputfile) return g.out end
mysql_query2 = function(query, user, pw, db, ip) local var = {} var.pre = "" if ip ~= nil then var.pre = var.pre .. " -h" .. ip end if user ~= nil then var.pre = var.pre .. " -u" .. user end if pw ~= nil then var.pre = var.pre .. " -p" .. pw end if db ~= nil then var.pre = var.pre .. " -D" .. db end query = string.gsub(query, "\"", "'") os.execute("mysql -s" .. var.pre .. " -e=\\\"" .. query .. "\\\"") end
mysql = {} mysql.connect = function(self, ip, user, passwd, db) local out = {} out.ip = ip out.user = user out.pass = passwd out.db = db out.querycount = 0 out.querylist = {} out.ql = {} setmetatable(out, {__index = mysql}) return out end
mysql.setcfg = function(self, ip, user, pass, db) if ip ~= nil then self.ip = ip end if user ~= nil then self.user = user end if pass ~= nil then self.pass = pass end self.db = db end
;/ das auslesen scheitert bei mir an der Farbtabelle oder was das darstellen soll
Nunja, ich schreibe gerne Funktionen selbst nach - einerseits aus langeweile (getn ist das selbe wie table.getn) oder, um zusätzliche dinge einzubringen (wie bei writelog)
Nunja, ich schreibe gerne Funktionen selbst nach - einerseits aus langeweile (getn ist das selbe wie table.getn) oder, um zusätzliche dinge einzubringen (wie bei writelog)
Ja, mache ich auch gelegentlich^^ Allerdings verlasse ich mich mehr auf die Funktionen die "Hard Coded" sind weil die meistens schneller sind.
Das mit pci ist interessant so könnte man die pc table um einige werte erweitern wie z.B pc.ip. Wenn man es einfach beim Login Event neu lädt. Notfalls speichert man es zwischen.
Ja, mache ich auch gelegentlich^^ Allerdings verlasse ich mich mehr auf die Funktionen die "Hard Coded" sind weil die meistens schneller sind.
Das mit pci ist interessant so könnte man die pc table um einige werte erweitern wie z.B pc.ip. Wenn man es einfach beim Login Event neu lädt. Notfalls speichert man es zwischen.
pc. ist ja eine tabelle^^
Dh:
pc.ip = mysql_select("select ip from player.player WHERE name = \'"..pc.get_name().."\'")["ip"][1]
und du hast die IP..
Oder so wie alle andren, als funktion: (nur ohne die vid-funktion)
PHP Code:
pc.ip = function(name) if name == '' then name = pc.get_name() end return mysql_select("select ip from player.player WHERE name = \'"..name.."\'")["ip"][1] end
(ja, das fungiert auch als Einzeiler
pc.ip() = IP des jetzigen Charakters
pc.ip('Mijago') = Meine IP (Wann ich das letzte mal on war auf dem Sv..^^)
Danke für die idee!
wird gleich mal gemacht xP
Da ich mit Lua auch meinen Laptop "etwas" automatisiert habe und Funktionen für ihn geschrieben habe, hab ich einige Erfahrung mit Lua.
pc. ist ja eine tabelle^^
Dh:
pc.ip = mysql_select("select ip from player.player WHERE name = \'"..pc.get_name().."\'")["ip"][1]
und du hast die IP..
Oder so wie alle andren, als funktion: (nur ohne die vid-funktion)
PHP Code:
pc.ip = function(name) if name == '' then name = pc.get_name() end return mysql_select("select ip from player.player WHERE name = \'"..name.."\'")["ip"][1] end
(ja, das fungiert auch als Einzeiler
pc.ip() = IP des jetzigen Charakters
pc.ip('Mijago') = Meine IP (Wann ich das letzte mal on war auf dem Sv..^^)
Danke für die idee!
wird gleich mal gemacht xP
Da ich mit Lua auch meinen Laptop "etwas" automatisiert habe und Funktionen für ihn geschrieben habe, hab ich einige Erfahrung mit Lua.
Naja das wären zu viele Querys ich würde eher auf einen Query zum holen aller werte setzen beim Login Event.
[Ideensammlung] für Questlib 11/15/2011 - Metin2 Private Server - 18 Replies Hallihallo, e*PvP
Ich schreibe derzeit eine Questlib - eine Ansammlung nützlicher Funktionen für Quests. Wenn diese fertig ist, wird sie das Questen um einiges erleichtern (denke ich ;) )
Derzeit habe ich folgende Funktionen eingebaut:
-- -> Gibt Text in say() farbig aus. Englische Farbnamen! (Beinhaltet 281 Farben)
note(text) -> Entspricht notice_all('|>~ TEXT')
local_pc_setqf(name,qf,wert) -> Setzt bei einem Anderen...
questlib error 10/30/2011 - Metin2 Private Server - 0 Replies hallo
hab ein problem mit meiner questlib bekomme denn fehler:
SYSERR: Oct 27 21:43:06 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
SYSERR: Oct 27 22:43:01 :: InitializeLua: LOAD_QUESTLIB_FAILURE(locale/germany/quest/questli b.lua)
woran liegt das
hab ma meine questlib unten hochgeladen.
questlib 09/07/2011 - Metin2 Private Server - 5 Replies hallo
ich suche die questlib für denn questbfehle
DragonLair.startRaid
da ich irgendwie zu blöd bin
questlib erweitern? 05/27/2011 - Metin2 Private Server - 5 Replies Jo, hab eine kurze Frage.
Was für eine function muss ich in die questlib packen, damit ich
"logout" in quests packen kann? bzw. wie muss die aussehen?
thy.
[RELEASE]Dämonenturm Erweiterung 03/26/2011 - Metin2 PServer Guides & Strategies - 18 Replies Meine DT-Erweiterung
Extras:
- 100% kein Zeitbug
- Reichsteleporter in dem Wächter
- individuelle Anpassung möglich
Ablauf:
Teil 1:- Bis zum Sensenmann normal
- Alle unter Lvl 90 werden rausgeportet