Archive

Author Archive

Neue Kategorie fuer Insulae & Planierungen

April 14th, 2008 Jan H. Krueger No comments

Nachdem ich die Tage wieder mehr fuer Insulae gemacht habe, habe ich mich dazu entschlossen dem ganzen eine eigene Kategorie hier zu spendieren.
Ab sofort werden alle neuen Entwicklungen fuer Insulae unter dieser neuen Kategorie, Insulae, eingetragen.

Was habe ich sonst heute noch gemacht? Die Buergermeister koennen nun in ihren Innenstaedten selbststaendig Felder planieren damit dort Gebaeude gebaut werden koennen. Genaue kosten habe ich hierfuer noch nicht. Diese werde ich ersteinmal an jene in Scherbenwelten anlehnen und dann nach einer Testphase ggf. noch anpassen.

Zu guter letzt habe ich angefangen einige der Adminskripte aus ihrem separatem Adminverzeichnis zu den restlichen Skripten zu verschieben. Mir ging dieses ewige zusaetzliche Anpassen der Include-Pfade bei den Verwaltungsskripten auf den Keks, zumal in jedem Skript zum Beginn eh die Berechtigung abgefragt wird. Dies werde ich in den naechsten Tagen noch fortsetzten um alle dahin zu verschieben.

Categories: Allgemein, Insulae Tags: , ,

Neues Volk einer Stadt zuweisen

April 14th, 2008 Jan H. Krueger No comments

Die Buegermeister koennen nun ihren Staedten neue Voelker zuweisen welche dann mit den naechsten Stadtrunden sich in den Staedten ansiedeln.

Dies geschieht ueber eine Auswahlliste innerhalb der Stadtverwaltung und kostet 1000 AP pro Volk.

Zu beachten ist das ein Volk, welches nicht mehr in einer Stadt vertreten ist, also sowohl in seiner Prozentualen Verteilen wie auch in seiner Sollverteilung auf 0 steht, ganz aus der Stadt verschwindet. In einem solchen Fall muss es erneut, zu den oben genannten Kosten, in der Stadt angesiedelt werden. Wenn ein Volkl auf diese Weise eine Stadt verlaesst, wird der Buergermeister darueber in der taeglichen Stadtauswertung informiert.

Langfristig ist geplant die Auswahl der zur Verfuegung stehenden Voelker noch regional einzugrenzen.

Categories: Games Tags: ,

Datenmodell fuer Karten erweitert

April 13th, 2008 Jan H. Krueger No comments

Bei der Arbeit an den XML-Exporten ist mir bei den Karten noch eine unzulaenglichkeit aufgefallen. So wird bisher nicht gespeichert wer denn eine Karte entwickelt hat.

Dieses habe ich nun nachgezogen und auch das Export-Skript erweitert. So kann, korrekterweise, ausgelesen werden wer denn eine Karte erstellt hat. Was noch offen ist, ist eine Pruefung ob im Trigger fuer Innenstaedte ich dieses auch noch nachziehen muss.

Export-Skript:

#!/usr/bin/perl -w

# Inselexport
# Exportiert eine Insel aus Insulae in das Intergamesformat
# Dabei wird eine eventuell bereits bestehende Datei ersetzt.
#
# Aufruf: insulae_ex_insuel.pl [Inselid]
#
# @author Jan H. Krueger
# @since 13.04.2008
#

# Interpreteroptionen
use strict;                                                 # Erzwingt Variablendeklaration
use warnings;                                               # Bewirkt, das die Warnings nicht unterdrueckt werden.
use DBI;                                                    # Datenbankpackage

my $xmldatei;                       												# Name der Ausgabedatei. Wird unten Zusammengesetzt
my $dateipfad = "C:\\sonstiges_programme\\xampp\\htdocs\\insulae\\XML-Austausch\\";																					# Ort der Ausgabedatei

# Verbindung aufbauen
my $username = "USER";                                   # DB-User
my $auth = "PASS";                                      # DB-Passwort
my $database = "DBNAME";                                   # Datenbankname
my $hostname = "DBHOST";                                 # Datenbankhost
my $dsn  = "DBI:Pg:database=$database;host=$hostname";      # Datebanktreiber

# Variablen bekannt machen
my $karte = shift @ARGV;                                    # Die ID der abzufragenden Karte. Aus der Komanndozeile

my $karte_id;                                               # Eindeutige Nummer der Karte
my $karte_entdeckt;                                         # Flag ob die Karte bereits erkundet wurde
my $karte_name;                                             # Name unter welcher die Karte bekannt ist
my $karte_beschreibungsid;                                  # ID der Beschreibung
my $karte_beschreibung;                                     # Beschreibung der Karte, InGame
my $karte_x;                                                # Lage des Feldes auf der X-Achse
my $karte_y;                                                # Lage des Feldes auf der Y-Achse
my $karte_w;                                                # Lage des Feldes auf der W-Achse
my $karte_gelaende;                                         # Um was fuer einen Landtyp es sich handelt
my $karte_land;                                             # Art des Gelaendes, Ebene, Wueste, Schnee etc
my $karte_landwert;                                         # Die Qualitaet des Feldes
my $karte_jahreszeit;                                       # Die derzeitig Jahreszeit auf der Insel
my $karte_herkunft;                                         # In welchem Spiel die Karte ihren Ursprung hat
my $karte_ersteller;																				# Wer die Karte entworfen hat.

                                                            # Variablen fuer die Zeitermittlung
my $sec;
my $min;
my $hour;
my $mday;
my $mon;
my $year;
my $wday;
my $ydat;
my $isdst;
my $Xdatum;

my $statement;                                              # Abfrage fuer die Kartenbasisdaten
my $stmt_beschreibung;                                      # Abfrage um die Beschreibung zu ermitteln
my $stmt_karte;                                             # Statement um die Karte auszulesen

# Ermitteln des Datums
($sec,$min,$hour,$mday,$mon,$year,$wday,$ydat,$isdst)=localtime();
$mon=$mon+1;
$year=$year +1900;

if (length($mon) == 1)
{
    $mon="0$mon";
}
if(length($mday) == 1)
{
   $mday="0$mday";
}

$Xdatum=$year."-".$mon."-".$mday;

# Konstruktor und Verbindung:
my $dbh = DBI::->connect( $dsn, $username, $auth) or die "connection failed $DBI::errstr";

# Abfrage anlegen
$statement = $dbh->prepare('SELECT karte_id, karte_name, karte_entdeckt, karte_beschreibung, karte_jahreszeit, karte_herkunft, karte_ersteller FROM welt.karte_name WHERE karte_id = '. $karte);

# Abfrage ausfuehren
$statement->execute or die $statement->errstr;

# binden der variablen an die felder
$statement->bind_col(1,\$karte_id);
$statement->bind_col(2,\$karte_name);
$statement->bind_col(3,\$karte_entdeckt);
$statement->bind_col(4,\$karte_beschreibungsid);
$statement->bind_col(5,\$karte_jahreszeit);
$statement->bind_col(6,\$karte_herkunft);
$statement->bind_col(7,\$karte_ersteller);

my @data = $statement->fetchrow_array;

# Dateiname zusammensetzen und Datei anlegen
my $mapname = $karte_name;
$mapname =~ s/[ ]| /_/g;
$xmldatei=$dateipfad . "insulae_insel_" . $mapname . ".xml";

open (XMLDATEI,">$xmldatei");
print XMLDATEI "\n";
print XMLDATEI "\n";

print XMLDATEI "    \n";
# Kartenheader
print XMLDATEI "        " . $karte_name . "\n";
print XMLDATEI "        " . $karte_id . "\n";
print XMLDATEI "        ". $karte_herkunft ."\n";
print XMLDATEI "        ". $karte_ersteller ."\n";
print XMLDATEI "        " . $karte_entdeckt . "\n";
print XMLDATEI "        " . $karte_jahreszeit . "\n";
print XMLDATEI "        ".$Xdatum."\n";

# Abfrage der Kartenbeschreibung
$stmt_beschreibung = $dbh->prepare('SELECT beschreibung_text FROM sonstiges.beschreibung WHERE beschreibung_id = '.$karte_beschreibungsid);
$stmt_beschreibung->execute or die $stmt_beschreibung->errstr;
$stmt_beschreibung->bind_col(1,\$karte_beschreibung);

while ( my @data = $stmt_beschreibung->fetchrow_array ) {
    print XMLDATEI "        " . $karte_beschreibung . "\n";
}

print XMLDATEI "    \n"; 

# Abfrage der Kartendetails
$stmt_karte = $dbh->prepare('SELECT karte_x, karte_y, karte_w, karte_gelaende, karte_land, karte_landwert FROM welt.karte WHERE karte_id = '.$karte_id);
$stmt_karte->execute or die $stmt_karte->errstr;
$stmt_karte->bind_col(1,\$karte_x);
$stmt_karte->bind_col(2,\$karte_y);
$stmt_karte->bind_col(3,\$karte_w);
$stmt_karte->bind_col(4,\$karte_gelaende);
$stmt_karte->bind_col(5,\$karte_land);
$stmt_karte->bind_col(6,\$karte_landwert);

print XMLDATEI "    \n";
while ( my @data = $stmt_karte->fetchrow_array ) {
    print XMLDATEI "        \n";
    print XMLDATEI "
\n";
    print XMLDATEI "                " . $karte_x . "\n";
    print XMLDATEI "                " . $karte_y . "\n";
    print XMLDATEI "                " . $karte_w . "\n";
    print XMLDATEI "            \n";
    print XMLDATEI "            \n";
    print XMLDATEI "                " . $karte_land . "\n";
    print XMLDATEI "                " . $karte_gelaende . "\n";
    print XMLDATEI "            \n";
    print XMLDATEI "            \n";
    print XMLDATEI "                j\n";
    print XMLDATEI "                j\n";
    print XMLDATEI "                " . $karte_landwert . "\n";
    print XMLDATEI "            \n";
    print XMLDATEI "        \n";
}

print XMLDATEI "    \n";
print XMLDATEI "\n";
close (XMLDATEI);

# Das Statement beenden
$statement->finish;
$stmt_beschreibung->finish;
$stmt_karte->finish;

# Verbindung trennen
$dbh->disconnect;

# Skriptende
Categories: Games Tags: ,

Datenaustausch fuer Insulae (fast) fertig

April 13th, 2008 Jan H. Krueger No comments

Nach etwas laengerer Zeit habe ich mich mal wieder an Insulae gesetzt. Zuletzt hatte ich dort an einem Satz von Skripten gearbeitet welche es, theoretisch, ermoeglichen koennen Daten zwischen Spielen wie Insulae und Scherbenwelten auszutauschen.
Die letzten Aktionen letztes Jahr waren zwei Perl-Skripte welche eine Insel exportieren und ein anderes welches die in Insulae verwendeten Waren exportiert. Beidemale liegen die Daten in einer XML-Datei. Fuer diese XML-Dateien habe ich nun die XSDs, also die Schemadateien erzeugt. So kann ich zum einen meine erzeugen Daten validieren und pruefen, andererseits bin ich nun in der Lage bei Bedarf anderen Entwicklern diese Schemata-Dateien zur Verfuegung zu stellen (ok, wird eh nie passieren) woraufhin diese mit ihren Daten Transformationsskripte erstellen koennen.

Die Tage werde ich mich dran setzten das ganze auch mal fuer einen kompletten Spieler zu versuchen. Voellig illusorisch, da es keine anderen Spiele wie Scherbenwelten und Insulae dort draussen gibt. Und Insulae ist fuer mich nur eine technische Spielwiese. Aber das muesste man sich mal ueberlegen wenn zwischen mehreren solcher Spiele die Daten eines Charakters ausgetauscht werden koennten. Das waere wirklich mal ein Erlebnis wenn ich mit meinem Charakter von einem Spiel in ein anderes gehen koennte.

Categories: Games Tags: , ,

IKEA in Strassenbahnen

April 11th, 2008 Jan H. Krueger No comments

Da haben sich die Werbeleute von IKEA mal was besonderes einfallen lassen. Also etwas wirklich aufsehen erregendes. Derzeit wird das Bahnfahren in Kobe, Japan mal zu einem Erlebnis der anderen Art. Doch seht selbst.

Ein sehr buntes Erlebnis koennen derzeit die Reisenden in der japanischen Stadt Kobe geniessen. Dort hat IKEA einen kompletten Zug ausgestattet. Grund fuer diese Aktion ist die Eroeffnung eines neuen Ladens. Zu sehen ist der Zug noch bis zum 06. Mai. Warum hat IKEA so eine Aktion eigentlich nicht gemacht als hier bei Frankfurt vor ein paar Monaten der IKEA-Laden eroeffnet wurde ?

Wie auch immer. Dank an die Jungs von Pink Tentacle fuer diese amuesante Meldung.

http://www.pinktentacle.com/2008/04/ikea-decks-out-kobe-train/

Categories: Allgemein Tags: ,