anpera.net
https://anpera.homeip.net/phpbb3/

Das Spiel im Spiel: Krieg und Frieden
https://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=3048
Seite 3 von 3

Autor:  Sir Drink a lot [ Mo 19 Mär, 2007 15:09 ]
Betreff des Beitrags: 

hm.. ich weiß leider nicht mehr, woher ich es habe...

Aber, wenn ich es genau betrachte, wird es wohl mit den Häusern gekommen sein :)

Autor:  rumpel [ Mo 19 Mär, 2007 15:34 ]
Betreff des Beitrags: 

Ich hab au dat Häuser teil drauf, aber kein Hunger usw^^

Naja... aber bitte mache an dem KuF weiter das is nämlich geilo :p

Autor:  -DoM [ Mo 19 Mär, 2007 16:58 ]
Betreff des Beitrags: 

Harthas hat geschrieben:
[php]ALTER TABLE accounts ADD `kf_spiel` tinyint(4) NOT NULL default '0',
ADD `kf_lvl` tinyint(4) NOT NULL default '1',
ADD `kf_titel` text NOT NULL,
ADD `kf_day` int(11) NOT NULL default '0',
ADD `kf_newday` tinyint(4) NOT NULL default '0',
ADD `kf_tagesbericht` text NOT NULL,
ADD `kf_tagrelation` tinyint(4) NOT NULL default '0',
ADD `kf_einwohner` int(11) NOT NULL default '1000',
ADD `kf_palast` tinyint(4) NOT NULL default '0',
ADD `kf_kathedrale` tinyint(4) NOT NULL default '0',
ADD `kf_land` int(11) NOT NULL default '10000',
ADD `kf_landnutzung` int(11) NOT NULL default '0',
ADD `kf_land_kauf` tinyint(4) NOT NULL default '0',
ADD `kf_taler` int(11) NOT NULL default '2000',
ADD `kf_muehle` tinyint(4) NOT NULL default '1',
ADD `kf_marktplatz` tinyint(4) NOT NULL default '1',
ADD `kf_lagerhalle` tinyint(4) NOT NULL default '0',
ADD `kf_schmiede` tinyint(4) NOT NULL default '0',
ADD `kf_eisenmine` tinyint(4) NOT NULL default '0',
ADD `kf_kohlenmine` tinyint(4) NOT NULL default '0',
ADD `kf_salzmine` tinyint(4) NOT NULL default '0',
ADD `kf_steinbruch` tinyint(4) NOT NULL default '0',
ADD `kf_jaeger` tinyint(4) NOT NULL default '0',
ADD `kf_holzfaeller` tinyint(4) NOT NULL default '1',
ADD `kf_schaffarm` tinyint(4) NOT NULL default '0',
ADD `kf_tuchfabrik` tinyint(4) NOT NULL default '0',
ADD `kf_kleiderfabrik` tinyint(4) NOT NULL default '0',
ADD `kf_schweinefarm` tinyint(4) NOT NULL default '0',
ADD `kf_weinberg` tinyint(4) NOT NULL default '0',
ADD `kf_brennerei` tinyint(4) NOT NULL default '0',
ADD `kf_waffenfabrik` tinyint(4) NOT NULL default '0',
ADD `kf_goldmine` tinyint(4) NOT NULL default '0',
ADD `kf_edelsteinmine` tinyint(4) NOT NULL default '0',
ADD `kf_goldschmied` tinyint(4) NOT NULL default '0',
ADD `kf_korn` int(11) NOT NULL default '5000',
ADD `kf_salz` tinyint(4) NOT NULL default '0',
ADD `kf_alkohol` tinyint(4) NOT NULL default '0',
ADD `kf_waffen` tinyint(4) NOT NULL default '0',
ADD `kf_wildfleisch` tinyint(4) NOT NULL default '0',
ADD `kf_schweinefleisch` tinyint(4) NOT NULL default '0',
ADD `kf_wolle` tinyint(4) NOT NULL default '0',
ADD `kf_tuch` tinyint(4) NOT NULL default '0',
ADD `kf_kleider` tinyint(4) NOT NULL default '0',
ADD `kf_wein` tinyint(4) NOT NULL default '0',
ADD `kf_stahl` tinyint(4) NOT NULL default '0',
ADD `kf_stein` tinyint(4) NOT NULL default '0',
ADD `kf_eisen` tinyint(4) NOT NULL default '0',
ADD `kf_kohle` tinyint(4) NOT NULL default '0',
ADD `kf_holz` int(11) NOT NULL default '100',
ADD `kf_gold` tinyint(4) NOT NULL default '0',
ADD `kf_edelsteine` tinyint(4) NOT NULL default '0',
ADD `kf_schmuck` tinyint(4) NOT NULL default '0',
ADD `kf_justiz` tinyint(4) NOT NULL default '5',
ADD `kf_zoll` tinyint(4) NOT NULL default '10',
ADD `kf_steuer` tinyint(4) NOT NULL default '10',
ADD `kf_scout` tinyint(4) NOT NULL default '1',
ADD `kf_miliz` tinyint(4) NOT NULL default '3',
ADD `kf_infanterie` tinyint(4) NOT NULL default '0',
ADD `kf_kavallerie` tinyint(4) NOT NULL default '0',
ADD `kf_artellerie` tinyint(4) NOT NULL default '0',
ADD `kf_garde` tinyint(4) NOT NULL default '0',
ADD `kf_manoever` tinyint(4) NOT NULL default '0',
ADD `kf_krieg` tinyint(4) NOT NULL default '0',
ADD `kf_gegner` text NOT NULL;[/php]


Mal etwas anderes...
Wenn ich mir das oben so anschaue, wird mir ehrlich gesagt, verdammt schlecht... Wäre das alles nicht in einer seperaten Tabelle wesentlich besser aufgehoben, als dies alles noch in die Accountstabelle zu quetschen????

Autor:  Sir Drink a lot [ Di 20 Mär, 2007 19:46 ]
Betreff des Beitrags: 

ich war jung und brauchte das Geld :cry:

Okay... habe ja gerade erst mit SQL und PHP angefangen. Das sieht man dann wahrscheinlich ja auch, wenn man sich die Scripte anschaut :???:
Daher war mir bisher der Umgang mit den Tabellen und entsprechenden SQL Verweisen ja noch nicht so bewusst.. (und ist noch nicht eingefleischt)

Aber es steht auf der ToDo Liste ganz weit oben!

Autor:  Franzi [ Sa 28 Jun, 2008 12:25 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Hallo.

Ich habe mal eine Frage. Das Spiel Krieg & Frieden ist ja recht schön, aber wie DoM schon schrieb in der account Tabelle wollte ich es nicht machen. Da es doch viele Befehle sind. kann mir einer helfen wie ich es in einer seperaten Tabelle unterbringen kann und welche dateien ich da noch ändern muß?
Für Antworten wäre ich sehr dankbar, PhP und MySQL ist noch im Lernstadium von mir. ( Habe Suchfunktion schon benutzt leider nix gefunden, da immer dieser hinweis kommt.) ;)
LG Franzi

Autor:  Sir Drink a lot [ Sa 28 Jun, 2008 13:39 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Ich habe mich ja damals auch im Lernstadium befunden und befinde
mich gerade "naja" in Lernphase2 :)

Alle php Dateien zielen ja auf die Accountstabelle ab, daher muss ich es sicherlich komplett umschreiben.

Jedenfalls versuche ich mal mein Glück :)

Vielleicht ist es Sonntag fertig!

Autor:  Sir Drink a lot [ Sa 28 Jun, 2008 15:52 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

es wäre alles viel schneller fertig, wenn ich folgendes verstehen würde:
die ganze tabelle accounts mit den Feldern ist abrufbar mit $session[user][...]
WO wird dies gefüllt/gesetzt? Und das wenn man am $session[user][xyz] was ändert, direkt in die Datenbank geschrieben wird?

Ich verstehe es einfach nicht... :-(

Habe eine neue Tabelle krieg_und_frieden.
Übergebe acctid als "Secondary Key".
Habe einfach in allen kf_.. skripten aus $session, $kfsession gemacht.
Jetzt muss ich doch nur $kfsession so belegen, wie es mit $session funktioniert...
Aber wie?
Die ganze Zeit mit SQL Befehlen rumzuhantieren ist doof.
session_register("kfsession"); muss es doch sein, oder?
Aber wie weiter?
Vielleicht mal kurze Infos eines Pros?

Naja... sind wahrscheinlich wirkliche Basisverständnisprobleme von PHP, die ich habe :(

Autor:  Sir Drink a lot [ Mi 02 Jul, 2008 23:51 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Sorry,

ich kann es nicht. Bin einfach zu doof in der Array Behandlung.
Man mag sich wundern, wenn man die php Dateien ansieht.
Aber ich krieg es einfach nicht hin, dass er per $sql die Daten
ausliesst, sie in der $kfsession[$userid][feldname(n)] speichert, in den Scripts
verändert und sie entsprechend wieder dem user in die Tabelle per "UPDATE"
speichert. :dumm:

Also eigentlich Basic.. aber gebe erst mal wieder auf.

Autor:  Eliwood [ Do 03 Jul, 2008 06:40 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Ohje, ohje, ohje. Offensichtlich unterliegtst du einigen Fehlannahmen, die dich verwirren. Zuerst einmal:

Der Ort, wo "$session['user']" "definiert" wird, ist die common.php. Und zwar sieht das ganze, in etwa, so aus:

$this->bbcode_second_pass_code('', '$sql = "SELECT * FROM accounts WHERE acctid = ".$session['user']['acctid'];
$res = db_query($sql);
$session['user'] = db_fetch_assoc($res);')

Das $session['user']['acctid'] kommt noch vom vorherigen pagehit und wird in der Session gespeichert. Und nein, $session['user']['xyz'] wird *nicht* sofort gespeichert (Unter PHP5 wäre das mit einem Trick möglich). Es wird *alles* auf *einmal* in die Datenbank eingetragen - und zwar mithilfe der Funktion saveuser(). Es ist dringenst davon abzuraten, dein Zeugs auf diese Weise zu Regeln, da diese Bequemlichkeit das Problem des Verlorenen Updates hervorbringt.

Und nein, session_register() ist auch nicht nötig - und eigentlich sogar schon für $session['user'] falsch.

Autor:  Sir Drink a lot [ Do 03 Jul, 2008 22:38 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Nun...

in meiner common.php kann ich eben diesen $sql = "SELECT * FROM accounts WHERE acctid = ".$session['user']['acctid']; nicht finden...

Aber habe es dann doch so versucht.

So sieht meine "load" function aus:

$this->bbcode_second_pass_code('', '
function load_values(){
global $kfsession, $session;
$sql = "Select * from krieg_und_frieden where acctid='".$session['user']['acctid']."'";
$result = db_query($sql);
$kfsession['user'] = db_fetch_assoc($result);
}')

okay.. hat erst eine while schleife... ist aber quatsch, da es ja nur ein Datensatz sein kann :)

Nur... ist 'user' jetzt auch das, was ich will? Oder hätte ich $user = $session['user']['acctid']; und $kfsession[$user] machen müssen?
Naja.. jedenfalls werden jetzt mal wieder Werte in den anderen Scripten anzeigt :)

Habe in jedes script dann oben load_values() geschrieben.

Muss nun noch ein save_values() basteln. Habe den Vorschlag bekommen, eine Prüfung zu machen ob sich zu Inhalt der Tabelle bzgl. des Users und in kfsession['user'] ein Feld verändert hat und nur diese dann mit foreach upzudaten. (in ein $update array die geänderten Werte zu schreiben)
Aber das will noch nicht so ganz klappen, da ich mal wieder mit feld und inhalt kämpfe :(

Die Funktion wollte ich dann immer an das Ende der jeweiligen php Datei ausführen lassen. (Naja, oder dort, wo der submit/ok button ausgeführt wird.)

Autor:  Sir Drink a lot [ So 06 Jul, 2008 12:41 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

wollte nur kurz Bescheid geben, dass sich das Mod nun doch nach den anfänglichen Problemen in der Alpha Testphase befindet :-)

Danke nochmal Eliwood für den Tipp!
Der Satz:
Zitat:
Es wird dringenst davon anzuraten, dein Zeugs auf diese Weise zu Regeln, da diese Bequemlichkeit das Problem des Verlorenen Updates hervorbringt.


Habe ich mit "abzuraten" übersetzt. Meine Update Funktion sieht derzeit so aus:

$this->bbcode_second_pass_code('', 'function save_values($user){
global $kfsession, $session;
$update = false;
$query = "Select * from krieg_und_frieden where acctid='".$user."'";
$result = db_query($query);
if (!$row = db_fetch_assoc($result)) die ("Konnte nix laden");

foreach ($row as $key => $value) {
if ($row[$key] != $kfsession[$user][$key]){
//output("Key: $key; Value: $value -> ".$kfsession[$user][$key]."`n");
$update[$key] = $kfsession[$user][$key];
}

}
if (is_array($update)) {
$sql = false;
foreach ($update as $key => $value) {
if ($sql) $sql .= ", ";
$sql .= "$key = '".addslashes($value)."'";
}
//output("Changings:`n".$sql);
$query = "UPDATE krieg_und_frieden SET $sql WHERE acctid='".$user."'";
$an_id = db_query($query);
}
}')

Ist sie so okay? Funktioniert jedenfalls :-)
(Im $user übergebe ich immer $session['user']['acctid'])

Die "load" Funktion mache ich nun auch mit Übergabe des $user. Habe nur manchmal den Effekt gehabt, dass kurzzeitig die $session weg war und die load Funktion fehlschlug. Mit "Refresh" war aber wieder alles da. Vermute natürlich, dass ich extremen Traffic produziere, da ich in jedem Script die load Funktion am Anfang ausführe, damit es funktioniert. Wahrscheinlich muss ich das gar nicht und es gibt noch einen Trick, den ich derzeit noch nicht kenne.

Autor:  Sir Drink a lot [ So 06 Jul, 2008 19:50 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Ich weiß nicht, ob es erlaubt ist "Werbung" zu machen, aber ich habe die Version 0.9.5 BETA in meinem Dorf freigeschaltet:
http://***

Das Dorf braucht nicht beachtet werden. Habe da nix dolles und auch nichts "ordentlich" eingestellt und da wird auch sonst nicht gespielt! :?:

Es geht nur um dieses Mod!

Noch möchte ich es nicht als Download bereitstellen und daher dürft ihr mein Dorf töten, anstatt das nachher durch den Einbau der Beta Version euer Dorf drunter leidet!

Status bisher:
ToDo:
Administration, Events als Tabelle, Militär
Ansonsten scheint alles zu laufen.

Bug Report dann bitte hier :)

(OKAY... unter "source" findet man dann beginnend mit "kf_" alle Dateien. Auch README, CHANGELOG und SQL DUMPS. Aber Verwendung auf eigene Gefahr! Und vorige Version muss komplett entfernt werden! Auch die Änderung an bestehenden Dateien, da die Felder ja nicht mehr in der Accountstabelle geführt werden!)

Edit by Eliwood: Nein, ist es nicht.

Autor:  Eliwood [ Di 08 Jul, 2008 16:48 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Sir Drink a lot hat geschrieben:
wollte nur kurz Bescheid geben, dass sich das Mod nun doch nach den anfänglichen Problemen in der Alpha Testphase befindet :-)

Danke nochmal Eliwood für den Tipp!
Der Satz:
Zitat:
Es wird dringenst davon anzuraten, dein Zeugs auf diese Weise zu Regeln, da diese Bequemlichkeit das Problem des Verlorenen Updates hervorbringt.

[...]


Ja, meinte ich tatsächlich so. Der Verschreiber tut mir Leid.
Und ja, sagen wir, deine Lösung ist befriedigend. Allerdings alles andere als optimal - sorry.

Autor:  Sir Drink a lot [ Di 08 Jul, 2008 21:21 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Nein. Kein sorry :)

Bin ja dankbar für jede Kritik. Leider weiß ich, dass es mir zu erklären, wie es optimal geht, doch etwas aufwendig wäre...wenn die Basics nicht so ausgeprägt sind. :( Ich sag mal: Das Ding läuft :) *da bin ich ja schon mal stolz*

Aber wenn man sich eben die Scripte anschaut, gerade der Häuser Array mit (derzeit bei mir) 25 * 17 Felder :shock: ansieht, da wird einem Angst und Bange :) Das Genie beherrscht das Chaos. :dumm: Müsste eigentlich auch eine eigene Tabelle dafür machen. Gerade für die Erweiterungen, die mir im Kopf rumschweben.

Naja... man lernt ja weiter. Wir testen erst mal, dann kann ich zumindest die 1.0 hier hochladen.

Autor:  Tiger [ Do 01 Okt, 2009 12:25 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Hi!

Ich weiß der Thread ist schon bissle veraltet aber ich habe eine Frage zu KuF..

Ist es normal das alles auf 127 begrenzt ist oder muss ich noch irgendwas "aktivieren" das man auch mehr haben kann?

Autor:  Sir Drink a lot [ Fr 02 Okt, 2009 07:06 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

Du hast die Datenbankfelder zu klein definiert.
Ändere die Felder in der MySQL Datenbank von "tinyint" zu "int".

Autor:  Tiger [ Fr 02 Okt, 2009 14:49 ]
Betreff des Beitrags:  Re: Das Spiel im Spiel: Krieg und Frieden

ah danke. das ich da nicht selber drauf gekommen bin *g*

Seite 3 von 3 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/