Abfrage bei ende
Um Verwechslungen mit schlafe ein zu vermeiden, wird bei Spielern unter
Level 10 jetzt nachgefragt, ob sie wirklich ende bentzen wollten.
Change-Id: I1df5b2069dadc4ad415c676a3c8a7680a66539e9
diff --git a/std/player/base.c b/std/player/base.c
index f156a14..7d88119 100644
--- a/std/player/base.c
+++ b/std/player/base.c
@@ -1533,8 +1533,10 @@
}
/** Wrapper im quit() herum, verhindert 'ende', falls Spieler kaempft.
- * \return 0 oder Rueckgabewert von quit()
- * @see quit()
+ * Wenn der Spieler unter Level 10 ist, wird gefragt, ob er sich wirklich
+ * mit Ende ausloggen will, um Verwechslungen mit schlafe ein zu vermeiden.
+ * \return 0 bei Abbruch wegen Kampf, 1 bei Nachfrage per ask_quit(), sonst Rueckgabewert von quit()
+ * @see quit(), ask_quit()
*/
static int new_quit() {
notify_fail("Du bist in Gedanken noch bei Deinem letzten Kampf.\n"+
@@ -1542,6 +1544,27 @@
"damit Du so nicht in RL weitermachst...\n");
if (time()-Query(P_LAST_COMBAT_TIME)<120 && !IS_LEARNING(ME))
return 0;
+ // Absicherung fuer kleine Spielern gegen Verwechslung mit schlafe ein
+ if(QueryProp(P_LEVEL) < 10)
+ {
+ write(break_string(
+ "Moechtest Du wirklich \"ende\" benutzen?\n"
+ "Du verlierst Deine Ausruestung und beginnst wieder an Deinem"
+ "Rassenstartpunkt. \n"
+ "Wenn du Dich einfach nur ausloggen und spaeter weiter spielen "
+ "willst, dann benutze besser \"schlafe ein\".\n\n", 78, 0,
+ BS_LEAVE_MY_LFS));
+ input_to(
+ function void (string str) {
+ if(str != "ja" && str != "Ja")
+ write("Ok, \"ende\" wird nicht ausgefuehrt.\n");
+ else
+ quit();
+ },
+ INPUT_PROMPT,
+ "Mittels \"ende\" ausloggen? (ja/nein):");
+ return 1;
+ }
return quit();
}