anpera.net https://anpera.homeip.net/phpbb3/ |
|
Schach-Addon by Peter Rolle https://anpera.homeip.net/phpbb3/viewtopic.php?f=44&t=4792 |
Seite 1 von 2 |
Autor: | Eliwood [ Mo 09 Feb, 2009 18:36 ] | ||
Betreff des Beitrags: | Schach-Addon by Peter Rolle | ||
Zitat: Ein Schachspiel im Zwei-Spieler-Modus für LotgD, basierend auf webchess 0.8.4
Vorwiegend zum Zeitvertreib, man kann aber auch geringe Mengen Gold oder Edelsteine als Einsatz wählen. (Spiele unter Multis werden nicht ausbezahlt) Installation: 1) Prüfe die Settings am Anfang der Datei chess.php 2) lade die chess.php in das lotgd-Verzeichnis auf deinem Webserver 3) erstelle ein Unterverzeichnis für die Schach-Dateien (default ist ./chess/) 4) führe die Datei "tables.sql" in phpmyadmin aus 5) Erstelle einen Link zur chess.php, z.B. in der Schenke
|
Autor: | Linus [ Mo 09 Feb, 2009 20:19 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Feine Sache! Ich denke die Spieler werden sich darüber freuen. Ein paar winzige Anpassungen für mein Dörfle - ich denke es wäre nicht schlecht wenn das Schachspiel auch von Ramius aus erreichbar ist dann werde ich es online stellen. Mal ganz großes Danke dafür! ![]() Edit: Aber eine Frage fällt mir dann doch ein. Wie ist es beim automatischen Aktualisieren des Brettes, erzeugt das einen Aufruf von saveuser() oder geht das an der common.php vorbei? Möcht ja keine Chars haben die nie mehr ausloggen! ![]() |
Autor: | Salator [ Mo 09 Feb, 2009 22:08 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Der automatische Reload lädt die komplette Seite neu, würde also theoretisch ein Auto-Logout verhindern. Im Original wird das auch stupide alle [Einstellwert] Sekunden getan. Ich habe das geändert und es wird die Zeit bis zum nächsten Reload jedes Mal 2 Sekunden erhöht. Wenn die Reload-Zeit 60s erreicht hat (bei ca 14 Minuten) ist dann Schluss mit der Automatik. Die betreffende Stelle findest du in chess.php ab Zeile 296 |
Autor: | Drow [ Di 10 Feb, 2009 10:58 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Das ganue läuft schon sehr gut, aber wie genau sieht das aus, wenn ich keinerlei Einträge in meiner Ruhmeshalle haben will. Was muss ich dafür alles rausnehmen/ nicht installieren. Übrigens gibt es glaube ich einen kleinen Fehler beim Spielverlauf selbst. Wenn ich die Möglichkeit hätte, den König mit meinem König zu schlagen, lässt er mich diesen Zug nicht machen, wenn z.B. ein Bauer in der Nähe steht, der dann meinen König beim nächsten Zug mitnehmen könnte. Aber dieser Zug würde ja rein theoretisch nie passieren, also müsste ich den König schlagen dürfen, nicht? |
Autor: | Liath [ Di 10 Feb, 2009 13:52 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Drow hat geschrieben: Übrigens gibt es glaube ich einen kleinen Fehler beim Spielverlauf selbst. Wenn ich die Möglichkeit hätte, den König mit meinem König zu schlagen, lässt er mich diesen Zug nicht machen, wenn z.B. ein Bauer in der Nähe steht, der dann meinen König beim nächsten Zug mitnehmen könnte. Aber dieser Zug würde ja rein theoretisch nie passieren, also müsste ich den König schlagen dürfen, nicht? Man darf sich generell niemals selber Schach stellen... obs nu der letzte Zug ist oder nicht... wenn da ein Bauer steht, der Deinen König im nächsten Zug schmeissen könnte, würdest Du Dich selber Schach stellen und das ist verboten... nur frag ich mich wie Dein König den anderen König schmeissen kann... irgendeiner hat seinen König dadurch doch dann auch selber in Schach gestellt Oo |
Autor: | Drow [ Di 10 Feb, 2009 15:26 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Ah, okay, die Regel kannte ich nicht. Wir haben einfach einfach einmal durch gespielt und dann standen unsere Könige schräg nebeneinander. Da hat das Spiel nicht gemerkt, nur wenn ich mit meinem Schlag gegen den König in die Reichweite eines Bauern gekommen wäre. |
Autor: | Linus [ Di 10 Feb, 2009 20:11 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Salator hat geschrieben: ... Wenn die Reload-Zeit 60s erreicht hat (bei ca 14 Minuten) ist dann Schluss mit der Automatik... Prima, danke! Das ist ein guter Kompromiss! ![]() |
Autor: | Salator [ Di 10 Feb, 2009 23:51 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Drow hat geschrieben: Das ganue läuft schon sehr gut, aber wie genau sieht das aus, wenn ich keinerlei Einträge in meiner Ruhmeshalle haben will. Was muss ich dafür alles rausnehmen/ nicht installieren. In der 0.9.7-Version musst du gar nichts ändern wenn du keine Ruhmeshalle haben willst. Das ist per Default ausgeschalten. Einfach aus dem Grund, weil dafür die accounts-Tabelle (und damit die Session-Daten) genutzt werden würde, und das muss für sowas relativ unwichtiges nicht zugemüllt werden. Wer die Dragonslayer-Edition auf seinem Server hat kann eine andere Version downloaden, in der die account_extra_info für die Ruhmeshalle genutzt wird. |
Autor: | Salator [ Mi 11 Feb, 2009 00:04 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Drow hat geschrieben: Ah, okay, die Regel kannte ich nicht. Wir haben einfach einfach einmal durch gespielt und dann standen unsere Könige schräg nebeneinander. Da hat das Spiel nicht gemerkt, nur wenn ich mit meinem Schlag gegen den König in die Reichweite eines Bauern gekommen wäre. Das dürfte eigentlich nicht passieren. Eigentlich habe ich an den Spiel-Routinen ansich nichts verändert. Könnt ihr die Partie mal auf http://webchess.sourceforge.net/webchess/index.php wiederholen, ob der Fehler da auch auftritt? Wenn nein hab ich wohl eine Prüfung gesprengt. Wenn ja werden wir mit diesem Problem leben müssen. Da webchess 0.8.4 schon ein paar Jahre alt ist gehe ich davon aus dass da nichts mehr gemacht wird. |
Autor: | Liath [ Mi 11 Feb, 2009 00:15 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
edit: schon gesehen :/ nächste prob: ds version Fatal error: Call to undefined function: db_real_escape_string() in /var/www/web0/html/logd/chess.php on line 46 kann die funktion nirgends finden... weder in den dateien vom schach noch in meiner ds version |
Autor: | -DoM [ Mi 11 Feb, 2009 09:13 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Machst du aus "db_real_escape_string()" einfach "mysql_real_escape_string()" |
Autor: | Tidus [ Mi 11 Feb, 2009 09:15 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
also ich habe mir die dateien grade mal angeschaut, und er sagt ja er findet es nicht ö.ö also in den orginaldateien ist es schon mysql_real_escape_string @Liath versuch mal mit addslashes ^^ da ich die Datei in deiner Source nicht einsehen kann, müsstest du wenn du es nicht verändert hast ORDER BY login="'.mysql_real_escape_string($_POST['name']).'" DESC, login AS das in deiner datei haben und dort einfach dann mit addslashes, aber wieso es bei dir db_ statt mysql_ anzeigt ist mir ein rätsel es sei denn du hättest es selber verändert, aber wenn du die funktion im script nicht findest wirds wohl nicht der fall sein |
Autor: | Liath [ Mi 11 Feb, 2009 16:14 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Salator hat geschrieben: Wer die Dragonslayer-Edition auf seinem Server hat kann eine andere Version downloaden, in der die account_extra_info für die Ruhmeshalle genutzt wird. ich hab jetzt diese version drin... nicht die original aus dem anhang... verändert hab ich da nichts und zeigt der neue dateien nicht automatisch im Source Oo ich habs jetzt mal in mysql_real_escape_string und damit klappts... danke euch ![]() |
Autor: | Salator [ Mi 11 Feb, 2009 21:01 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Huch, die DS2.5 hatte noch kein db_real_escape_string? Okay, dann nehm ich das in dem Archiv wieder raus. Die Funktion macht nichts anderes als die Zeitmessung für den Page-Footer um mysql_real_escape_string zu bauen. Muss man also nicht unbedingt haben. |
Autor: | Liath [ Mi 11 Feb, 2009 21:39 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
ok dann passts ja ![]() |
Autor: | Linus [ Do 26 Feb, 2009 19:32 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Bin in der undo.php noch auf zwei Fehler gestossen: In Zeile 9 steht da zu lesen:$this->bbcode_second_pass_code('', '$tmpMaxTime = mysql_query("SELECT Max(timeOfMove) FROM history WHERE gameID = ".$_SESSION['gameID']);') korrekt sollte es lauten:$this->bbcode_second_pass_code('', '$tmpMaxTime = mysql_query("SELECT Max(timeOfMove) FROM chesshistory WHERE gameID = ".$_SESSION['gameID']);') Analog dazu in Zeile 10! Richtig ist:$this->bbcode_second_pass_code('', '$moves = mysql_query("SELECT * FROM chesshistory WHERE gameID = ".$_SESSION['gameID']." AND timeOfMove = '$maxTime'");') Und dann passt etwas mit der Zählweise für die Hall of Fame nicht. Die folgende Routine (chessdb.php) geht anscheinend davon aus dass der das Spiel gewonnen hat der den letzten Zug machen durfte:$this->bbcode_second_pass_code('', ' //update hall-of-fame if(CHESS_HOF) { $session['user']['chessgameswon']++; db_query('UPDATE accounts SET chessgameswon=chessgameswon-1 WHERE acctid='.$opponent); }') Sollte ein Spieler aufgeben ist er auch der Spieler mit dem letzten Zug. Das aufgegebene Spiel wird also als gewonnen gezählt! ![]() |
Autor: | Salator [ Do 26 Feb, 2009 22:04 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Gut aufgepasst Linus! Und in Zeile 63 darfst du auch noch ein history durch chesshistory ersetzen. Die Archive auf meiner Homepage sind entsprechend geändert, hier im Forum kann ich das allerdings nicht. http://www.rollingpet.de/files/chess_0.8.4_lotgd097.zip bzw dslotgd.zip Wegen dem Aufgeben muss ich mir was einfallen lassen. Da muss ich nochmal in Ruhe drübergucken. |
Autor: | Kevz [ Do 26 Feb, 2009 22:33 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Ich habe mir es mal eben angeguckt, es wird dem doch das Geld bzw. die Edelsteine Überwiesen, der Gewinnt, richtig? Also wäre das doch diese Zeile, oder?: $this->bbcode_second_pass_code('', 'else { debuglog('gewinnt '.$bet.$what.' im Schach gegen',$opponent); $bet*=2; output('`@Du hast `^'.($bet).($bet<20?' Edelsteine':' Gold').'`@ gewonnen!`0'); $session['user'][$what]+=$bet; }') Wieso packst Du dann also in den Else-Block dann nicht folgendes hinzu: $this->bbcode_second_pass_code('', '//update hall-of-fame $session['user']['chessgameswon']++; db_query('UPDATE `accounts ` SET `chessgameswon` = `chessgameswon`-1 WHERE `acctid`= '.$opponent);') Oder liege ich da nun falsch? Denn das wäre für mich einfacher zu erklären, als dafür extra eine Konstante zu Definieren und es daran handzuhaben? Vielleicht ist es ja bereits der Lösungsweg. |
Autor: | Salator [ Do 26 Feb, 2009 23:16 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Nope, den Gewinn steckt fälschlicherweise auch der ein der aufgibt. Ich glaube, schon die Abfrage in Zeile 494 ist falsch. $this->bbcode_second_pass_code('', ' if($bet>=0 && ($tmpMessage['gameMessage']=='checkMate' || $tmpMessage['gameMessage']=='playerResigned') && $tmpMessage['messageFrom']==$playersColor) ') Hier wird immer auf $playersColor geprüft, bei Aufgabe muss aber der Gegner die Gewinn-Routine auslösen. Schreiben wir das mal so: $this->bbcode_second_pass_code('', ' if($bet>=0 && ( ($tmpMessage['gameMessage']=='checkMate' && $tmpMessage['messageFrom']==$playersColor) || ($tmpMessage['gameMessage']=='playerResigned' && $tmpMessage['messageFrom']!=$playersColor) ) ) ') Weiterhin wurde eine vergessene Übersetzung nachgereicht und der Zurück-Link in der Übersicht ist nun abhängig vom alive-Status. Somit kann das Schachspiel auch im Totenreich angeboten werden. |
Autor: | Linus [ Fr 27 Feb, 2009 02:39 ] |
Betreff des Beitrags: | Re: Schach-Addon by Peter Rolle |
Salator hat geschrieben: Gut aufgepasst Linus! Upps, die Zeile 63 ist mir da echt entgangen! Und in Zeile 63 darfst du auch noch ein history durch chesshistory ersetzen. ![]() Salator hat geschrieben: Wegen dem Aufgeben muss ich mir was einfallen lassen. Da muss ich nochmal in Ruhe drübergucken. Ich lass mich überrachen wie die Lösung aussehen wird!
|
Seite 1 von 2 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |