Ich hatte heute mal wieder Lust irgendwas zu questen und dachte da an ein Validierungssystem.
Hier zuerst einmal die Quest:
HTML Code:
-----------------
-- by AntiMask --
-----------------
quest validate begin
state start begin
when letter with validate.name_check(pc.get_name()) begin
send_letter("Validierung")
end
when button or info begin
local pw_try = 4 -- Anzahl Versuche plus eins (+1)
if pc.getqf("val_try") == 0 then
pc.setqf("val_try", pw_try)
elseif pc.getqf("val_try") == 1 then
if pc.getqf("val_dur") > get_time() then
say_title("Validierung")
say("Du musst noch " .. (math.floor((pc.getqf("val_dur")-get_time()) / 60 * 100) / 100) .. " Minuten warten,")
say("bis du das Passwort erneut eingeben kannst.")
wait()
send_letter("Validierung")
return
else
pc.setqf("val_try", pw_try)
end
end
local pw = "123456" -- Passwort für Zugang
local delay = 60 -- Wartezeit bei Falscheingabe in Sekunden
while pc.getqf("val_try") > 1 do
say_title("Validierng")
say("Gib das Passwort ein:")
say_reward("Übrige Versuche: " .. pc.getqf("val_try") - 1)
local v = input()
if v == pw then
say_title("Validierng")
say("Erfolg! Du hast nun Zugriff auf das Panel")
pc.delqf("val_try")
set_state(run)
return
else
say_title("Validierung")
say("Fehler! Du hast das falsche Passwort eingegeben.")
pc.setqf("val_try", pc.getqf("val_try") - 1)
if pc.getqf("val_try") == 1 then
say("Du musst nun " .. delay / 60 .. " Minuten warten bis du das Passwort")
say("erneut eingeben kannst.")
pc.setqf("val_dur", get_time()+delay)
wait()
send_letter("Validierung")
return
else
local s = select("Erneut eingeben", "Abbrechen")
if s == 2 then
send_letter("Validierung")
return
end
end
end
end
end
function name_check(name)
local val_names = {"[SA]DejaVu", "[SA]Sura"} -- Hier zugelassene Namen mit Anführungszeichen und Komma abgetrennt einfügen
for i = 1, table.getn(val_names) do
if val_names[i] == name then
return true
end
end
return false
end
end
state run begin
when letter begin
send_letter("Panel")
end
when button or info begin
chat("Geschafft!")
restart_quest()
end
end
end
Falls ja, schickt er einen Quest-Brief. Klickt man den an, hat man drei Versuche das richtige Passwort einzugeben (das Passwort ist mit einem Kommentar markiert in der Quest). Gibt man es dreimal falsch ein, muss man die angegebene Zeit abwarten, um es erneut zu versuchen(auch mit einem Kommentar markiert). Hat man das richtige Passqwort eingegeben hat man Zugriff auf das Panel (Panel hat keine Funktion!!!)
Noch zur Info: Die Quest bringt so nichts. Man kann sie aber zum Beispiel so umschreiben, dass bereits beim Login gestartet wird (Spielerüberprüfung) oder bei einem Panel wie ich es im Sinn hatte.
Ich hoffe es kann jemand gebrauchen.
MfG AntiMask
P.S: Wenn Bedarf besteht, könnte ich die Quest weiterentwickeln und noch ein Panel schreiben. Ihr könnt mir natürlich auch eure Ideen mitteilen.







