anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 26 Apr, 2019 01:17

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Schach-Addon by Peter Rolle
BeitragVerfasst: Mo 09 Feb, 2009 18:36 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3915
Wohnort: Basel
Geschlecht: Männlich
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


Dateianhänge:
Dateikommentar: Für LotGD 0.9.7+jt (Update vom 9. März 2009)
chess_0.8.4_lotgd097(3).zip [72.4 KIB]
113-mal heruntergeladen
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mo 09 Feb, 2009 20:19 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
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! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mo 09 Feb, 2009 22:08 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
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

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Di 10 Feb, 2009 10:58 
Offline
User
User
Benutzeravatar

Registriert: Fr 11 Jan, 2008 17:10
Beiträge: 17
Wohnort: Butzbach
LoGD: http://www.an-daingean.de/source.php
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?

_________________
Komm und spiel: http://www.homaf.de
Komm und schau: http://www.dear-yaoi.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Di 10 Feb, 2009 13:52 
Offline
Held
Held
Benutzeravatar

Registriert: Mi 10 Dez, 2008 17:10
Beiträge: 235
Wohnort: München
Geschlecht: Männlich
LoGD: läuft derzeit Lokal
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

_________________
Hungrig in München? www.24lieferservice.de
___________________________________________________
spiele auch Du Quests of Gallendor (Welt 1 nur über Einladung möglich)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Di 10 Feb, 2009 15:26 
Offline
User
User
Benutzeravatar

Registriert: Fr 11 Jan, 2008 17:10
Beiträge: 17
Wohnort: Butzbach
LoGD: http://www.an-daingean.de/source.php
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.

_________________
Komm und spiel: http://www.homaf.de
Komm und schau: http://www.dear-yaoi.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Di 10 Feb, 2009 20:11 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
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! :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Di 10 Feb, 2009 23:51 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
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.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mi 11 Feb, 2009 00:04 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
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.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mi 11 Feb, 2009 00:15 
Offline
Held
Held
Benutzeravatar

Registriert: Mi 10 Dez, 2008 17:10
Beiträge: 235
Wohnort: München
Geschlecht: Männlich
LoGD: läuft derzeit Lokal
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

_________________
Hungrig in München? www.24lieferservice.de
___________________________________________________
spiele auch Du Quests of Gallendor (Welt 1 nur über Einladung möglich)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mi 11 Feb, 2009 09:13 
Offline
Freak
Freak
Benutzeravatar

Registriert: Mi 06 Jul, 2005 19:10
Beiträge: 543
Wohnort: Bremen
Geschlecht: Männlich
LoGD: http://my-logd.com/motwd
Machst du aus "db_real_escape_string()" einfach "mysql_real_escape_string()"

_________________
Das schwarze Schaf der LotGD-Community, 2. platzierter, beim Giga.de Homepage-Award 2007 und 1. platzierter beim German Web Award 2008.
PC-ACTION meint: "Sehr gut" für MotWD!
Mind of the White Dragon => http://my-logd.com/motwd


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mi 11 Feb, 2009 09:15 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mi 11 Feb, 2009 16:14 
Offline
Held
Held
Benutzeravatar

Registriert: Mi 10 Dez, 2008 17:10
Beiträge: 235
Wohnort: München
Geschlecht: Männlich
LoGD: läuft derzeit Lokal
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 :)

_________________
Hungrig in München? www.24lieferservice.de
___________________________________________________
spiele auch Du Quests of Gallendor (Welt 1 nur über Einladung möglich)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mi 11 Feb, 2009 21:01 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
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.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Mi 11 Feb, 2009 21:39 
Offline
Held
Held
Benutzeravatar

Registriert: Mi 10 Dez, 2008 17:10
Beiträge: 235
Wohnort: München
Geschlecht: Männlich
LoGD: läuft derzeit Lokal
ok dann passts ja :)

_________________
Hungrig in München? www.24lieferservice.de
___________________________________________________
spiele auch Du Quests of Gallendor (Welt 1 nur über Einladung möglich)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Do 26 Feb, 2009 19:32 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Bin in der undo.php noch auf zwei Fehler gestossen:
In Zeile 9 steht da zu lesen:
Code:
$tmpMaxTime = mysql_query("SELECT Max(timeOfMove) FROM history WHERE gameID = ".$_SESSION['gameID']);

korrekt sollte es lauten:
Code:
$tmpMaxTime = mysql_query("SELECT Max(timeOfMove) FROM chesshistory WHERE gameID = ".$_SESSION['gameID']);

Analog dazu in Zeile 10! Richtig ist:
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:
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! :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Do 26 Feb, 2009 22:04 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
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.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Do 26 Feb, 2009 22:33 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
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?:
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:
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.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Do 26 Feb, 2009 23:16 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 02 Feb, 2009 21:11
Beiträge: 168
Geschlecht: Männlich
LoGD: salator.selfhost.de/lotgd
Nope, den Gewinn steckt fälschlicherweise auch der ein der aufgibt.
Ich glaube, schon die Abfrage in Zeile 494 ist falsch.
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:
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.

_________________
if(date("ymmd")=="10050502") echo("Der alte Sack wird heute 40");


Zuletzt geändert von Salator am Fr 27 Feb, 2009 22:03, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schach-Addon by Peter Rolle
BeitragVerfasst: Fr 27 Feb, 2009 02:39 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 05 Feb, 2007 12:33
Beiträge: 375
Wohnort: Hattingen
Geschlecht: Männlich
LoGD: http://www.alvion-logd.de/logd/
Salator hat geschrieben:
Gut aufgepasst Linus!
Und in Zeile 63 darfst du auch noch ein history durch chesshistory ersetzen.
Upps, die Zeile 63 ist mir da echt entgangen! :D

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!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum