Timeout ueber reset() loesen
Der Reset zerstoert das Objekt schon. Statt Callouts
einzutragen, wird jetzt einfach mit set_next_reset()
ein neuer Resetzeitpunkt gesetzt, der dem alten Timeout
entspricht.
Change-Id: Ibf0742e25ab1002d39fa4fadd166d34e5d586c3b
diff --git a/secure/login.c b/secure/login.c
index 10b4c78..2f64885 100644
--- a/secure/login.c
+++ b/secure/login.c
@@ -86,7 +86,6 @@
public string short();
public string query_real_name();
public nomask int query_prevent_shadow();
-static void time_out();
public int remove();
// the following 3 lfuns deal with dummy player creation
public mixed new_logon( string str);
@@ -176,7 +175,7 @@
input_to( "logon2", INPUT_PROMPT,
"Wie heisst Du denn (\"neu\" fuer neuen Spieler)? ");
- call_out( "time_out", 300 );
+ set_next_reset(300);
return 1;
}
@@ -520,10 +519,7 @@
return 1;
}
- while ( remove_call_out( "time_out" ) != -1 )
- ;
- call_out( "time_out", 600 );
-
+ set_next_reset(600);
password = md5_crypt( password, 0 );
save_object( SECURESAVEPATH + loginname[0..0] + "/" + loginname );
master()->RemoveFromCache( loginname );
@@ -980,7 +976,11 @@
void reset()
{
if (clonep())
+ {
+ if (interactive(this_object()))
+ tell_object(this_object(),"Time out!");
remove();
+ }
}
public string short()
@@ -1001,14 +1001,6 @@
}
-static void time_out()
-{
- if (this_player())
- tell_object(this_player(),"Time out!");
- destruct( this_object() );
-}
-
-
// Wird von simul_efuns benutzt, um nen dummy-Spielerobjekt zu erzeugen. Nicht
// im Loginprozess involviert.
public mixed new_logon( string str)