|
You last visited: Today at 06:46
Advertisement
[RELEASE] Security-System - Lua / MySQL
Discussion on [RELEASE] Security-System - Lua / MySQL within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
11/09/2013, 21:20
|
#1
|
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,389
|
[RELEASE] Security-System - Lua / MySQL
Funktionen (questlib.lua):
PHP Code:
pid = pc.get_player_id()
function pc.set_auth(id, pw) if string.len(id) > 12 or string.len(pw) > 12 then syschat("Deine ID & dein Passwort dürfen max. 12 Zeichen haben!") return elseif string.len(id) < 3 or string.len(pw) < 3 then syschat("Deine ID & dein Passwort müssen mind. 3 Zeichen lang sein!") return end mysql_query("INSERT INTO player.auth VALUES ('"..pid.."','"..id.."','"..pw.."' ON DUPLICATE KEY UPDATE id='"..id.."', pw='"..pw.."' WHERE pid='"..pid.."';") end
function pc.get_auth(id, pw) local IDFromDB = mysql_query("SELECT id FROM player.auth WHERE pid='"..pid.."';") local PWFromDB = mysql_query("SELECT pw FROM player.auth WHERE pid='"..pid.."';") local RetID, RetPW = tonumber(IDFromDB), tonumber(PWFromDB) if id == RetID and pw == RetPW then return true else return false end end
Funktionen (quest_functions):
PHP Code:
pc.set_auth pc.get_auth
Quest:
PHP Code:
quest al_security begin state start begin function load_securityform() if get_time() < pc.getqf("security_aluna2") then return end say_title("Aluna2 - Securitycheck") say("Bitte gebe deine Security-ID ein:") local ID = input() say_title("Aluna2 - Securitycheck") say("Bitte gebe dein Security-PW ein:") local PW = input() end when login with pc.getqf("securitysys") < 1 begin say_title("Aluna2 - Securitysystem") say_reward("Zu deiner Sicherheit wird auf Aluna2 alle 12h[ENTER]nach deinen Security-Daten gefragt.") say("[ENTER]Bitte gebe deine Security-ID ein:") local SecID = input() say("[ENTER]Bitte gebe dein Security-PW ein:") local SecPW = input() syschat("Deine Security-ID ist: "..SecID) syschat("Dein Security-PW ist: "..SecPW) pc.set_auth(SecID, SecPW) pc.setqf("securitysys", 1) end when login with pc.getqf("securitysys") == 1 begin local hIntervall = 12 al_security.load_securityform() if pc.get_auth(ID, PW) == false then al_security.load_securityform() else pc.setqf("security_aluna2", get_time()+60*60*hIntervall) return end end when ITEMVNUM.use begin say_title("Aluna2 - Securitysystem") say_reward(" ~> Daten ändern") say("[ENTER]Bitte gebe deine jetzige Security-ID ein:") local OldID = input() say_title("Aluna2 - Securitysystem") say_reward(" ~> Daten ändern") say("[ENTER]Bitte gebe dein jetziges Security-PW ein:") local OldPW = input() say_title("Aluna2 - Securitysystem") say_reward(" ~> Daten ändern") say_title("Bitte gebe nun deine neue Security-ID ein:") local NewID = input() say_title("Aluna2 - Securitysystem") say_reward(" ~> Daten ändern") say_title("Bitte gebe nun dein neues Security-PW ein:") local NewPW = input() if pc.get_auth(OldID, OldPW) == false then return end pc.set_auth(NewID, NewPW) end end end
Die DB habe ich nicht, müsst ihr euch selbst machen.
#untested
|
|
|
11/09/2013, 21:21
|
#2
|
elite*gold: 26
Join Date: Oct 2011
Posts: 1,262
Received Thanks: 1,062
|
n1
|
|
|
11/09/2013, 21:28
|
#3
|
elite*gold: 1
Join Date: Aug 2010
Posts: 579
Received Thanks: 300
|
Sieht gut aus, danke.
|
|
|
11/09/2013, 21:33
|
#4
|
elite*gold: 0
Join Date: Jun 2010
Posts: 1,264
Received Thanks: 2,019
|
Haut man es im Client raus (Questfenster) und kann Problemlos spielen :P
Btw: Gib mal 2 mal falsche Daten ein, dann ist die Quest zuende.
Mfg,
Yoshix3
|
|
|
11/09/2013, 21:33
|
#5
|
elite*gold: 1918
Join Date: Feb 2008
Posts: 1,368
Received Thanks: 1,287
|
Jetzt mal ne blöde frage....
Was soll das genau bringen?
Gruss
Sphinx
|
|
|
11/09/2013, 21:35
|
#6
|
elite*gold: 0
Join Date: Oct 2013
Posts: 194
Received Thanks: 83
|
du setzt doch nirgends die variable "pid".
Und du solltest das ganze im login mit nem timer machen, da es so garnit funzt.
Ist zwar ne nette Idee, aber so nicht release wuerdig..
|
|
|
11/09/2013, 21:35
|
#7
|
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,389
|
Quote:
Originally Posted by iYoshix3
Haut man es im Client raus (Questfenster) und kann Problemlos spielen :P
Btw: Gib mal 2 mal falsche Daten ein, dann ist die Quest zuende.
Mfg,
Yoshix3
|
Nein, ist sie nicht.
PHP Code:
local hIntervall = 12 al_security.load_securityform() if pc.get_auth(ID, PW) == false then al_security.load_securityform() else pc.setqf("security_aluna2", get_time()+60*60*hIntervall) return end
Und schau dir die pc.get_auth() funktion an
Aber naja, immernoch besser als gar nichts.
Quote:
Originally Posted by .ProjektX²
du setzt doch nirgends die variable "pid".
Und du solltest das ganze im login mit nem timer machen, da es so garnit funzt.
Ist zwar ne nette Idee, aber so nicht release wuerdig..
|
Habs nun hinzugefügt (pid = pc.get_player_id())
|
|
|
11/09/2013, 21:49
|
#8
|
elite*gold: 748
Join Date: Jul 2012
Posts: 1,597
Received Thanks: 1,981
|
Ja, das ist mal nützlich.
Danke dafür :>
|
|
|
11/09/2013, 21:51
|
#9
|
elite*gold: 0
Join Date: Dec 2012
Posts: 9,390
Received Thanks: 2,738
|
Danke, Sehr Nice von dir.
|
|
|
11/09/2013, 21:51
|
#10
|
elite*gold: 5
Join Date: Mar 2013
Posts: 1,986
Received Thanks: 2,254
|
Danke aber bei Inputs beim Login brechen Quests doch ab
|
|
|
11/09/2013, 21:54
|
#11
|
elite*gold: 222
Join Date: Oct 2012
Posts: 2,369
Received Thanks: 3,389
|
Quote:
Originally Posted by xGr33n
Danke aber bei Inputs beim Login brechen Quests doch ab 
|
Nein
Ist so ähnlich wie die 'wait' funktion.
Nach einem Input steht immer 'Weiter' ^^
|
|
|
11/09/2013, 21:54
|
#12
|
elite*gold: 0
Join Date: Oct 2013
Posts: 1,277
Received Thanks: 437
|
Danke <3
|
|
|
11/09/2013, 22:01
|
#13
|
elite*gold: 0
Join Date: Oct 2013
Posts: 194
Received Thanks: 83
|
Quote:
Originally Posted by Mr. 'Avenue™
Nein
Ist so ähnlich wie die 'wait' funktion.
Nach einem Input steht immer 'Weiter' ^^
|
Du verstehst ihn glaube Falsch, das geht so nicht.
Setz das ganze was du im login abfragst in ein Timer.
Momentan kommste bis zum ersten Input, dann bricht der Code ab, weils beim login event einfach so nicht geht.
|
|
|
11/09/2013, 22:20
|
#14
|
elite*gold: 44
Join Date: May 2010
Posts: 2,053
Received Thanks: 1,747
|
Quote:
Originally Posted by .ProjektX²
Du verstehst ihn glaube Falsch, das geht so nicht.
Setz das ganze was du im login abfragst in ein Timer.
Momentan kommste bis zum ersten Input, dann bricht der Code ab, weils beim login event einfach so nicht geht.
|
Die ganze Quest funktioniert sowieso nicht.
Es wird erst das "Formular" angezeigt, dann werden die Daten geprüft.
Wenn sie richtig sind wird der "Check" Timer gesetzt - ok soweit. Aber wenn die Daten falsch sind erscheint wieder das Formular. Danach passiert aber nichts mehr und die Quest ist zu Ende.
Wie Yoshix3 schon sagte, kann man zwei mal was falsches eingeben und man hat das System umgangen.
An der Stelle sollte vllt. eine while-Schleife stehen oder der Spieler sollte gekickt/gebannt (Zeitbann) werden.
Aber so wie es jetzt ist passiert einfach gar nichts.
|
|
|
11/09/2013, 22:31
|
#15
|
elite*gold: 0
Join Date: Oct 2013
Posts: 194
Received Thanks: 83
|
ne while schleife wird glaub auch dann unterbrochen, einfach nen looptimer lieber reinhauen, da kannste dir sicher sein das es immer wieder kommt.
|
|
|
 |
|
Similar Threads
|
[Release]Bank System über Mysql+Log System
09/06/2013 - Metin2 PServer Guides & Strategies - 16 Replies
Hallo,
wie die Überschrift schon sagt Release ich euch heute ein Bank System von einem Freund von mir.
Bevor ihr meckert, ich habe die Erlaubnis von ihm!
Ich weiß es gibt viele Bank Systeme, aber so eins wie ich es euch Heute Release habe ich bis jetzt noch nicht gesehen.
Features:
|
[Release] Login-System mit MySql Datenbank
01/04/2013 - AutoIt - 19 Replies
Hallo e*pvper :)
ich habe mir aus langeweile mal ein kleines Login-System geschrieben, welches die Logindaten auf eine MySql Datenbank speichert.
Inhaltsverzeichniss:
1. Webspace
2. MySql Datenbank
|
[Release] Fastest MySql System [C#]
04/18/2011 - CO2 PServer Guides & Releases - 51 Replies
Removed.
Why do you think?
Is it really THAT shocking to you that I removed it?
|
[Release] MySQL Insert system
07/18/2010 - CO2 PServer Guides & Releases - 18 Replies
Ello!
First of all, this is NOT sourcedependent, which means you can use this on any source without modifying the code.
This is an replacement for all of you who still uses normal MySQL queries. Use this code to clean up, make it easier and more orginazed.
Here's how it looks:
Example: (Original (LOTF for example))
|
All times are GMT +1. The time now is 06:46.
|
|