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.
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..
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.
[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))