--- /dev/null
+Hier wird der Installationsvorgang eines Aymargeddon-Spiels beschrieben. Das ist leider alles noch sehr hakelig, wir entschuldigen uns für die Strapazen.
+
+
+Vorraussetzungen
+================
+
+Ihr benötigt:
+
+* Einen Rechner mit Linux als Betriebssystem (möglicherweise läuft es auch auf anderen Systemen, aber das hat bisher noch niemand probiert)
+* den Sourcecode (zu beziehen über "git clone http://aymargeddon.de/aymargeddon.git")
+* einen Apache2-Webserver
+* Embedded Perl auf diesem Server. Unter Debian squeeze tut es ein:
+
+apt-get install libembperl-perl
+
+* folgende Perl-Module müssen vorhanden sein:
+
+ Date::Calc;
+ Mail::Mailer;
+ Data::Dumper;
+
+* MySQL als DBMS
+
+Wenn das alles läuft, könnt ihr loslegen.
+
+Eigentliche Installation
+========================
+
+* Ihr müsst den Apache so konfigurieren, dass das Verzeichnis html/ aus dem Source zugänglich ist von außen und dort epl-Dateien ausgeführt werden können und das Embperl im src-Verzeichnis Module nachladen kann; zB via "PerlPostConfigRequire /etc/apache/startup.pl" und da dann so was in der Art:
+
+ use lib qw( /var/www/benni/aymargeddon.de/game/src );
+ 1;
+
+* Ihr müsst die Datei src/FROGS/Config.pm an eure Gegebenheiten anpassen. Dabei erstmal nur den oberen Abschnitt anfassen.
+
+* Ihr müsst eine Datenbank RAGNAROEK in MySQL anlegen.
+
+* Ihr müsst einen DB-user "aymargeddon" in MySQL anlegen, der alle Rechte auf dieser DB hat (oder alternativ den Benutzernamen zusätzlich zu Config.pm in ein paar nicht-Perl-scripten ändern)
+
+* Ihr müsst eine lesegeschützte Datei an dem Ort anlegen, der in der Config beschrieben ist. In dieser Datei liegt das Datenbankpasswort.
+
+* Ihr müsst im Verzeichnis var/ den Befehl ./do_sql < RAGNAROEK.sql sowie ./do_sql < LOCALIZE.sql eingeben. (oder evntl.: ./init_server)
+
+* Ihr müsst im Verzeichnis src/ den Befehl create.pl <spielfeldgröße> ausführen. Dort dann den Namen des Spiels sowie die Spielgeschwindigkeit eingeben.
+
+* Ihr müsst im Verzeichnis src/FROGS/ den Befehl ./start_scheduler ausführen.
+
+Jetzt kanns losgehen.
+
+
+Maintainance
+============
+
+* Das start_scheduler-script schreibt die logs in die Datei src/FROGS/++out. In der Standardkonfiguration wird noch eine Datei src/FROGS/+out mit sehr detailierten logs erzeugt.
+
+* Mit dem Script backup in var kann man Backups der Datenbank dumpen.
Bugs
----
-- Passwörter nicht mehr im Klartext in der Datenbank ablegen und
-schon gar nicht im Klartext in der URL stehen haben! Urgs.
+- Passwörter nicht mehr im Klartext in der URL stehen haben! Urgs.
- $::conf->{-EPL_DEBUG} funktioniert nicht. Es wird -DEBUG verwendet,
auch wenn man in einem epl-script ist.
UNWICHTIG:
+- Der Link zur Mailingliste in der Registrierungsmail sollte in die
+Config und von dort eingelesen werden.
+
- In player.epl wird die Rollenauswahl angezeigt, wenn man das Spiel in dem der Client sich befidet ($udat->{-game}) auf dem server gelöscht hat.
Bei Ereignissen, die jetzt oder in der Vergangenheit
nötig. aber: message_to_field() wird eh nur noch selten benutzt, lohnt
also der aufwand überhaupt?
-TEST
-
-Diese Datei wird inzwischen im Wiki gepflegt:
-
-http://www.aymargeddon.de/wiki/index.php/TODO
-GAME_NAME => 'Aymargeddon',
-DEFAULT_LANGUAGE => 'EN',
-LOG_TIME_IN_LOOP => 1000, # loops until next time output in log
- -DEBUG => 1,
- -EPL_DEBUG => 1,
+ -DEBUG => 2,
+ -EPL_DEBUG => 2,
-MESSAGE_IN_LOG => 0,
-FULL_DEBUG_FILE => '/home/benni/aymargeddon/current/src/FROGS/+out',
-SCHEDULER_SLEEP => 2,
REALNAME => $name,
LOGIN => $login,
EMAIL => $email,
- PASSWORD => $pwd,
+ PASSWORD => crypt($pwd,'5g'),
LANGUAGE => $lang,
});
$self->commit();
- # my $mail = "From: registration\@aymargeddon.de\nTo: $name <$email>\n"
- # . "Subject: ".$self->loc('REGISTER_MAIL_SUBJECT')."\n\n"
- # . $self->loc('REGISTER_MAIL_TEXT', $name, $login, $pwd)."\n";
-
- # print $mail;
-# aus man mail:
-# env MAILRC=/dev/null from=scriptreply@domain smtp=host \
-# smtp-auth-user=login smtp-auth-password=secret \
-# smtp-auth=login mailx -n -s "subject" \
-# -a attachment_file recipient@domain <content_file
-
- # open(SENDMAIL, "|mail $email") or Util::log("Can't fork for sendmail: $!",0);
- # print SENDMAIL $mail;
- # close(SENDMAIL) or Util::log("sendmail didn't close nicely",0);
-
use Mail::Mailer;
my $mailer = Mail::Mailer->new();
# you can log into any account with adminpassword
my ($adminpwd) = $self->single_select("SELECT PASSWORD FROM PLAYER ".
"WHERE LOGIN=$admin");
+ $pwd = crypt($pwd,'5g');
+ $adminpwd = crypt($adminpwd,'5g');
($user,$pwd,$adminpwd) = $self->quote_all($user,$pwd,$adminpwd);
-
# Util::log("Adminpassword: $adminpwd, password: $pwd",2);
my ($player, $sec);
if($player){
if($pwd2 and $pwd3 and $pwd2 eq $pwd3){
- # change password!
- $self->update_hash('PLAYER',
+ # change password!
+ $pwd2 = crypt($pwd2,'5g');
+ $self->update_hash('PLAYER',
"LOGIN=$user",
{'PASSWORD' => $pwd2});
- Util::log("password changed!",0); # todo: localize and aufhübschen
+ Util::log("password changed for player $player!",0);
}
+ # TODO? error if passwords did not match
# TODO: write last_login
return $player;
}
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2012-09-23 12:14:38
+-- Dump completed on 2012-09-23 14:19:16
The script from_scratch generates a complete empty database but with
the old PLAYER and LOCALIZE tables.
-The script do_sql executes his first command with mysql
+The script init_server deletes PLAYER to and uses LOCALIZE_INIT
+instead of LOCALIZE. this should only be uses if you start a new server or
+want to get rid of your players. (TODO: does not work properly)
+
+The script do_sql executes his standard input with mysql in the
+database RAGNAROEK with the appropriate user and password.
in my.cnf is my configuration file for mysql to work with
-InnoDB tabletype. make shure InnoDB tabletype works for you. mysql
+InnoDB tabletype. make shure InnoDB tabletype works for you. old
+versions of mysql
sets default tabletype to MyISAM if it does not work without
complaining! But FROGS and Aymargeddon wont work without the
-transaction-capability from InnoDB
+transaction-capability from InnoDB. This should not be used for newer
+versions of Mysql.