• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

Weltdaten und Interface

DeletedUser86497

Gast
They have to be in the World Data but i don't know how, sorry ;-)
 

DeletedUser

Gast
Gibts eigentlich schon Heereslager auf irgendeiner Welt? Dann könnte man ja schauen ob da was ungewöhnliches in den Daten ist.
 

DeletedUser

Gast
auf W55 gibt es das Heereslager...
...aber ich bezweifele dass dort irgendein Stamm schon eines gebaut hat... ;)
 

DeletedUser61508

Gast
Mittlerweile gibts Heereslager, in den Weltdaten tauchen die Dinger leider nicht auf. Wie schauts aus, ist in der Richtung was geplant?
 

DeletedUser61033

Gast
hm, ich denke da solltest du eher mal im Ideen-Forum nachfragen

mfg
Heinzel
 

DeletedUser108034

Gast
Hallo,
Ich brauche die Daten von allen Dörfern aus allen Welten als allen deutschen wie kann ich die am schnellsten in eine Datenbank importieren?
Ich weis alles schon ein paar mal durchgekaut aber mich würde jetzt mal interessieren welche die schnellste möglichkeit wär.
PostSQL zugang habe ich nicht habe nur MySQL Datenbanken und keine Root Rechte.

Viele Grüße
Andre
 

DeletedUser108034

Gast
Ok danke ich habs
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Es gab hier im Forum mal einen Beitrag mit einem DB-Skript und einem Php/Perl Skript zum Welten einlesen.
Bin jetzt wieder mal in Stämme eingestiegen nach längerer Pause und tjo, meine alten Perl-Skripts gibts nicht mehr obwohl die DB noch vorhanden ist.

mysql> select count(*) from village v left join player p on p.id = v.player_id where p.name like 'hengst%';
+----------+
| count(*) |
+----------+
| 254 |
+----------+
1 row in set (1.65 sec)
Etwa 6-8 Monate her ....
 

DeletedUser

Gast
Hat sich erübrigt, hab mir gestern ein PHP-Skript von diesem Thread umgeschrieben so dass es auch funktioniert.
 

DeletedUser

Gast
Um anderen mal ein Fullpackage anzubieten:

Code:
-- MySQL dump 10.11
--
-- Host: localhost    Database: staemme_w39
-- ------------------------------------------------------
-- Server version	5.0.51a-24+lenny2-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `ally`
--

DROP TABLE IF EXISTS `ally`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `ally` (
  `id` int(11) NOT NULL default '0',
  `name` varchar(40) collate utf8_unicode_ci default NULL,
  `tag` varchar(10) collate utf8_unicode_ci default NULL,
  `members` int(11) default NULL,
  `villages` bigint(20) default NULL,
  `points` varchar(20) collate utf8_unicode_ci default NULL,
  `all_points` varchar(20) collate utf8_unicode_ci default NULL,
  `rank` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `player`
--

DROP TABLE IF EXISTS `player`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `player` (
  `id` int(11) NOT NULL default '0',
  `name` varchar(40) collate utf8_unicode_ci default NULL,
  `ally_id` int(11) default NULL,
  `villages` int(11) default NULL,
  `points` varchar(20) collate utf8_unicode_ci default NULL,
  `all_points` varchar(20) collate utf8_unicode_ci default NULL,
  `rank` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `village`
--

DROP TABLE IF EXISTS `village`;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `village` (
  `id` int(11) NOT NULL default '0',
  `name` varchar(40) collate utf8_unicode_ci default NULL,
  `x` int(11) default NULL,
  `y` int(11) default NULL,
  `player_id` int(11) default NULL,
  `points` int(11) default NULL,
  `rank` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SET character_set_client = @saved_cs_client;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2010-10-10 16:10:50

Code:
<?php 
$dbhost = 'localhost';
$dbuser = 'bla';
$dbpass = 'blubb';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error connecting to mysql');

$dbname = 'staemme_w39';
mysql_select_db($dbname);    

$file="database.txt";
    //USER
    mysql_query("TRUNCATE TABLE `player`");
    $lines = gzfile('http://de39.die-staemme.de/map/tribe.txt.gz');
    if(!is_array($lines)){die('Datei konnte nicht geöffnet werden');}
 $fp=fopen($file, 'w');
    foreach($lines as $line){
        fwrite($fp, $line);
    }
    $sql=mysql_query("LOAD DATA LOCAL INFILE '$file' INTO TABLE `player` FIELDS TERMINATED BY ',' (`id`, `name`, `ally_id`, `villages`, `points`, `rank`)");
    fwrite($fp, "");
    fclose($fp);
    unset($lines);  
    unset($line);
    

    //Stämme
    mysql_query("TRUNCATE TABLE `ally`");
    $lines = gzfile('http://de39.die-staemme.de/map/ally.txt.gz');
    if(!is_array($lines)) die("Datei konnte nicht geöffnet werden");
    $fp=fopen($file, 'w');
    foreach($lines as $line){
        fwrite($fp, $line);
    }
    $sql=mysql_query("LOAD DATA LOCAL INFILE '$file' INTO TABLE `ally` FIELDS TERMINATED BY ',' (`id`, `name`, `tag`, `members`, `villages`, `points`, `all_points`, `rank`)");
    fwrite($fp, "");
    fclose($fp);
    unset($lines);

mysql_query("TRUNCATE TABLE `village`");
$lines = gzfile('http://de39.die-staemme.de/map/village.txt.gz');
#$lines = file('/home/martin/village.txt');
if(!is_array($lines)) die("Datei konnte nicht geöffnet werden");
    $fp=fopen($file, 'w');
    foreach($lines as $line){
        fwrite($fp, $line);
    }
    $sql=mysql_query("LOAD DATA LOCAL INFILE '$file' INTO TABLE `village` FIELDS TERMINATED BY ',' (`id`, `name`, `x`, `y`, `player_id`, `points`, `rank`)");
    fwrite($fp, "");
    fclose($fp);
    unset($lines);

	 ?>
 

DeletedUser

Gast
@hengst85: also wenn du schon line by line die Datei kopierst mach dir wenigstens die Mühe und dekodier nen Spielernamen damit du ihn nicht beim ausgeben dekodieren musst

MfG Dömel
 

DeletedUser

Gast
Könnte man natürlich machen, für mich ist es eher egal, brauchte nur für eine kleine Aktion die Dorfcoords :)
 

DeletedUser

Gast
PHP:
<?php
ob_start();
readgzfile('input.gz');
$contents=ob_get_clean();
file_put_contents('output.txt', $contents);
?>
Ich habs grade mal getestet und das ist eindeutig die schnellste Art (neben exec('gunzip input.gz'), das eindeutig mehr Raum für Exception-handling lässt) eine gz-Datei zu dekomprimieren.
Nur mal so als kleiner Codeschnipsel für euch ;)

MfG
Freddy
 

DeletedUser

Gast
Ihr könntet ja mal den Code zu dsreal veröffentlichen, mir würden da noch ein paar Verbesserungen einfallen ;)
Oder gibt es dinge die für euch eindeutig gegen Open-Source sprechen?
Ich hab zum Beispiel schon oft überlegt einen neuen Attplaner zu schreiben mit ein paar coolen Features, bin aber meistens daran gescheitert dass ich zu faul war die Basics zu implementieren.
 

DeletedUser

Gast
Das kann ich dir ganz einfach beantworten:
Würden wir dsReal OpenSource veröffentlichen, würden sehr viele Klone auftauchen und wir könnten das dsReal System nicht mehr finanzieren.
Das würde bedeuten, dass alle Toolseiten, die irgendwie auf Einnahmen angewiesen sind (TWstats, TWplus und einige andere), pleite gehen würden.
So wäre keine zentrale Weiterentwicklung von den Toolseiten möglich und der Fortschritt würde gehemmt.
Und ich frage dich ganz ehrlich: hast du auch nur im entferntesten ne Ahnung wie viel Arbeit in dsReal steckt? Ich bezweifle es ehrlich.
dsReal läuft auf einem von mir programmierten Linux (das zu einigen Teilen auf Debian basiert) und wäre auch auf keinem anderen OS lauffähig, da allein schon ein spezieller PHP interpreter benötigt wird (der original Interpreter ist einfach ******e...). Wir sind die einzige der drei großen Toolseiten, die nur einen einzigen Server haben, und dennoch performanter laufen als die andern beiden zusammen.

Ich denke außerdem, dass wir in der Vergangeheit bewiesen haben, dass wir fähig sind jegliche Vorschläge umzusetzen: Von daher darfst du uns auch gerne mitteilen, was verbessert werden sollte.

Wir haben teamintern oft genug darüber diskutiert den Sourcecode zu einer bestimmten Zeit zu veröffentlichen. Und solange nicht ein bestimmter Punk für dsReal erreicht ist, an dem das Projekt nicht weitergeführt werden kann (z.B. Bestimmungen von Innogames), gewichten die Argumente für eine zentrale Entwicklung und Verwaltung stärker.

PS: Wir benutzen bei dsReal nicht die oben genannte methode zum unzip, sondern eine OS eigene Funktion; das war lediglich ein Codeschnipsel falls mal wieder jemand etwas kleines programmieren will und daran scheitert eine unzip Funktion zu schreiben (nebenbei ist das oben ne Vergewaltigung des Output Buffers xD)

MfG
Freddy
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Dass dsreal eine der wenigen Seiten ist welche wirklich gut funktionieren ist mir auch klar, und glaube mir ich habe mich schon sehr oft gestaunt wie gut die Performance von dsreal ist und wie ihr so manche Probleme gelöst habt. Ich selbst habe früher (in einem meiner ersten Jobs) Tools entwickelt im Analysebereich mit täglich ~1 GB Daten und musste mir oft genug überlegen wie ich Daten sinnvoll aggregiere und dann verarbeite.
Und glaube mir, ich kann vielleicht noch eher wie manch andere hier ne Schätzung abgeben was in dsreal drin steckt. Auch finde ich es etwas unprofessionell von dir hier in einem Forum (wo zugegebenerweise genug unqualifiziertes Personal rumläuft) mir solch eine Antwort zu geben ohne mich oder eine Arbeit von mir auch nur im entferntesten zu kennen. Und der Dump da oben ist ein Ergebnis aus Copy & paste und etwas Google, ansonsten habe ich mit PHP (eine Sprache welche im übrigen in Frage stelle) in meinem Berufsleben etwa genauso viel zu tun wie mit Haselnüssen, ausser dass man für jede DB eigene Methoden verwenden muss weiß ich darüber so gut wie nichts.

lg
Martin
 

DeletedUser108034

Gast
PHP:
Ich habs grade mal getestet und das ist eindeutig die schnellste Art (neben exec('gunzip input.gz'), das eindeutig mehr Raum für Exception-handling lässt) eine gz-Datei zu dekomprimieren.
Nur mal so als kleiner Codeschnipsel für euch ;)

MfG
Freddy[/QUOTE]


Wow das braucht fast 3x weniger RAM :-)
 

DeletedUser

Gast
Dass dsreal eine der wenigen Seiten ist welche wirklich gut funktionieren ist mir auch klar, und glaube mir ich habe mich schon sehr oft gestaunt wie gut die Performance von dsreal ist und wie ihr so manche Probleme gelöst habt. Ich selbst habe früher (in einem meiner ersten Jobs) Tools entwickelt im Analysebereich mit täglich ~1 GB Daten und musste mir oft genug überlegen wie ich Daten sinnvoll aggregiere und dann verarbeite.
Und glaube mir, ich kann vielleicht noch eher wie manch andere hier ne Schätzung abgeben was in dsreal drin steckt. Auch finde ich es etwas unprofessionell von dir hier in einem Forum (wo zugegebenerweise genug unqualifiziertes Personal rumläuft) mir solch eine Antwort zu geben ohne mich oder eine Arbeit von mir auch nur im entferntesten zu kennen. Und der Dump da oben ist ein Ergebnis aus Copy & paste und etwas Google, ansonsten habe ich mit PHP (eine Sprache welche im übrigen in Frage stelle) in meinem Berufsleben etwa genauso viel zu tun wie mit Haselnüssen, ausser dass man für jede DB eigene Methoden verwenden muss weiß ich darüber so gut wie nichts.

lg
Martin
Die Erklärung, warum du es nicht verstehen kannst, kam nachfolgend. Es tut mir leid, wenn das nicht ganz klar geworden ist.

dsReal läuft auf einem von mir programmierten Linux (das zu einigen Teilen auf Debian basiert) und wäre auch auf keinem anderen OS lauffähig, da allein schon ein spezieller PHP interpreter benötigt wird

Wow das braucht fast 3x weniger RAM :)
Und benötigt auch nur ein drittel der Zeit ;)
 

DeletedUser108034

Gast
Naja aber das ist ja auch ein Forum extra für Programmierer xD
Ich verstehe das ihr nicht einfach den Code veröffentlicht. Ich habe selber auch schon viele Projecte verwaltet und es ist eine ganze Menge Arbeit. Und wenn man nicht ein gescheites Team hat kann man es sowieso vergessen weil die sonst einen nur bremsen. Und ich finde es beeindruckend was das DSReal tem da geleistet hat und möchte auch weiterhin von diesem Angebot prfetieren und da Fredi720 recht mit Veröffentlichung ist das Project im Eimer!
 

DeletedUser61508

Gast
Joa, wurde offenbar mit der neuen Karte zusammen wegrationalisiert.
Um an die Datei zu kommen könntest du dir irgendeine Version von DS Workbench runterladen, da liegt die Datei direkt im Hauptverzeichnis, bzw. die gepackte Version davon, die du aber einfach entpacken kannst. Keine Sorge, benutzen musst du DS Workbench deswegen nicht falls dir nicht danach ist. ;-)
 

DeletedUser

Gast
Joa, wurde offenbar mit der neuen Karte zusammen wegrationalisiert.
Um an die Datei zu kommen könntest du dir irgendeine Version von DS Workbench runterladen, da liegt die Datei direkt im Hauptverzeichnis, bzw. die gepackte Version davon, die du aber einfach entpacken kannst. Keine Sorge, benutzen musst du DS Workbench deswegen nicht falls dir nicht danach ist. ;-)

Dies hat auch sofort wunderbar geklappt. Leider bin ich fast verzweifelt, da die erzeugten Karten mit meinen Vergleichskarten auf neueren Welten null übereinstimmen. Wie sich nun durch vergleiche mit anderen Welten herausgestellt hat, wurde die Welt wirklich verändert. 703|320 zentriert auf W68 sieht komplett anders aus als auf W37. Aktuelle Statistik Tools scheinen das gleiche Problem zu haben, oder haben es noch gar nicht bemerkt...

Der Support hat mir auf mein Ticket nur geantwortet, dass es keine neue Karten gibt und die auf allen Servern gleich sind... Stimmt im direkten vergleich ja absolut nicht. Über den defekten world.dat Link kam keine Aussage. :(
 
Oben