Neues Projekt, Prügelpause remake (da es im Netz nichts mehr gutes gibt)

Marius Heil

Erfahrenes Mitglied
Hi,

jo, also ich hab in 1-2 Foren gelesen, dass ein paar Leute versucht haben, Prügelpause wieder auf die Beine zu stellen. Da ich aber unter Google nichts wirklich ansprechendes find (außer so komisches Zeugs wie Schlampenschlacht oder so, naja, habs mir nicht angeschaut), hab ich mich entschieden, das mal selbst in die Hand zu nehmen, ich wollt das eigentlich vor einiger Zeit schon mache, jetzt hat sichs aber grad ergeben, dass es ne freie .de Domaine gibt, die eh nur nutzlos rumsteht.
Ich bin kein Meister, deswegen dieser Beitrag hier, das ganze soll komplett über PHP laufen, Flash wird lediglich die Visualisierung, hab mir auch schon was ausgedacht, dass Bots und Cheater keine Chance haben (eine recht geringe zumindest).
Ich hab jetzt kein Informatik studiert oder so, muss ich mal schauen, wie weit meine Kenntnisse ausreichen, vorher noch schnell für alle, die Prügelpause ncith kennen, ne kurze Erklärung:
Das Spiel gabs vor einiger Zeit noch bei Lycos, man kann per E-mail andere User auffordern daran teil zu nehmen. Man bekommt anfangs ne Startenergie, ein klein wenig Geld und hat nen Punktestand. Man bekommt außerdem Skillpunkte, die man verteilen kann, es gibt:
Schlag oben, unten, mitte und Energie, darauf kann man die Punkte verteilen.
Man kann 5 Schläge und Verteidigungen definieren. Sprich zb:
oben, unten, mitte, mitte, oben und als Verteidigung: mitte, oben, oben, unten, unten. Der Gegner kann das auch definieren, wenn beide Seiten ihre Wahl getroffen haben, findet der Kampf mittels Flash Visualisierung statt, je nach Verteilung der Skillpunkte bekommt der Gegner nach jedem getroffenen Schlag soundsoviel Energie abgezogen. Wenn er allerdings dort die Abwehr hatte, passiert nichts und er ist an der Reihe. Dann gibts Punktebereiche wie zb 1-20 und 21-35, nach dem Erreichen eines neuen Bereiches wird der Character stärker. Man bekommt außerdem nach nem gewonnenen Kampf Geld, wozu man sich dann Spezialwaffen kaufen kann und so Zeugs. Für das Werben neuer user ekommt man nen Bonus, wenn dieser dann teilnimmt.
Ich denke, das war mal so das Grundprinzip. Lässt sich dann natürlich noch etwas erweitern, aber so im Allgemeinen wars das.
Ok, um damit einigermaßen klar zu kommen, hab ich mir ein Konzept erstellt, für die gnazen PHP Scripte:
index.php -
Cookie für Anmeldung, TOP 10 liest USER aus, Banner einblenden, Google Ads

rangliste.php -
USER auslesen und anzeigen: Rang, User, E-mail (wenn erlaubt), Online, Punkte, Gewinnrate
Suchfunktion für: Username, E-mail, Rang
Anzeige: 20 User, startet bei 10 über eigenem, 9 unter eigenem

profil.php -
USER Auselsen und anzeigen:
Name, E-mail, Punkte, Geld, Skills, gewonnene Kämpfe, verlorene Kämpfe
Aänderung zulassen für: Name, Pwd, E-mail, E-mail anzeigen

posteingang.php -
NACHRICHTEN auslesen, Die letzten 7 Nachrichten anzeigen, Nachrichten älter als 2 Monate löschen, Geantwortet

anzeigen, Gelesen anzeigen, Antwortbutton, max 500 Zeichen, löschen erlauben, nicht mehr als 30 im Eingang

(postausgang?)

verfassen.php -
in NACHRICHTEN von User schreiben, bei mehr als 30 Fehler ausgeben, an Username senden

jemandenherausfordern.php -
neue KampfID in KÄMPFE mit bereits definierten schlägen,.... In entsprechende U_ID in USER, ID_K eintragen,

wenn E-mail nicht in Datenbank eingetragen: bonus wenn dieser sich anmeldet

vonjemandemheraqusgefordert.php -
Knöpfe zum annehmen, Eintrag der USER Entnehmen und dann anch Entsprechung in KÄMPFE suchen.

ichhabeherausgefordert.php -
alle kämpfe die noch offen sind aus USER auslesen, fertige zur Anschauung freigeben



MySQL Datenbank:
USER:
ID_U, Name, Pwd, E-mail, E-mail erlauben, Geld, Punke, skill oben, skill mitte, skill unten, gewonnene

Kämpfe, verlorene Kämpfe, anzunehmende Kämpfe, herausgeforderte Kämpfe, angemeldet seit

KÄMPFE:
ID_K, ID_U, ID Gegner, Schläge: 1,2,3,4,5, Abwehr: 1,2,3,4,5, Gegnerschläge: 1,2,3,4,5, Gegnerabwehr:

1,2,3,4,5, Eigene Figur, Gegnerische Figur, Gewinnsatz, Generischer Gewinnsatz

NACHRICHTEN:
ID_U, Nachricht_ID, Absender, Betreff, Nachrichtentext, gelesen, genatwortet, alter
Soweit so gut, falls ihr Zeit haben solltet, könnt ihr das ja mal durchgehen und schauen, ob was fehlt, weil ich mag am Anfang nichts vergessen, sonst gibts hinterher Probleme.
Die Grafiken werden auch einige Zeit verschlingen, aber ich denk, es ist machbar, ich wollte schon an das Niveau von Prügelpause rankommen. 10 verschiedene Hintergründe oder so, dann hab ich heir 20 Zeichenbücher rumliegen und üb auch schon seit einiger Zeit fleißig, wer interesse hat mitzumachen, soll sich doch melden, es gibt genug zu tun.
Ich hoff, der Beitrag ist ncith zu lang.



Marius
 
Hi,

na da hast Du Dir aber was vorgenommen. ;) ... aber zum Lernen ist so ein Projekt sicher nicht schlecht.

Soll das ganze Frontend in Flash realisiert werden, oder nur die "Kämpfe" selbst? Mit einem reinen Flash-Interface lässt sich die Anmeldung für den Anfang einfacher gestalten, als wenn einzelne PHP-Seiten im Browser aufgerufen werden.

Am schwierigsten stelle ich mir das PN-System vor, zumal wenn Du noch nicht so viele Erfahrungen mit solchen Dingen hast.

Ich wünsch Dir jedenfalls viel Spaß und wenn Fragen auftauchen, helfen wir Dir sicher gern weiter.

Gruß
.
 
Hi,

als ich das anfangs mir mal durchdacht hab, dachte ich, och, das wird doch nix groß, sollte ja cnith allzu viel werden, aber man glabut kaum, was da alles zusammenkommt^^
Mit dem PN system war ich auch schon am rätseln, wie man in dem Konzept sieth hab ich den Postausgang eingeklammert^^ Wenn ich zuviel Zeit ahb, mach ich den auch noch.
Flash hatte ich die visualisierung der Kämpfe sowie das User Interface zugedacht.
Das Design der Hauptseite ist eigentlich schon fertig. Ich gebs hier mal zur Kritik frei:
http://img166.echo.cx/img166/4570/design7wp.jpg
Ich will Flash deshalb nur zur Visualisierung einsetzen, da es ziemlich unsicher ist. Flashdateien lassen sich ohne weiteres decompilieren, deshalb hab ich mri das so gedacht:
Ein User meldet sich an, gibt ein: E-mail, Username, Passwort und der lustige Trick mit nem Code aus nem verzerrten Bild, das man mit der PHP Lybrary fertigen kann. So gibts schonmal keine Chance, das Bots sich anmelden.
Flash übermittelt die Daten einfach in nem kleinen Zeichenstring, mehr als 80 Ziffern werden nciht zusammenkommen. Übermittelt Schläge, Abwehr, vielleicht Hintergrund, Punkte, Energie, Erfahrung der Figur, und die usernamen und so Zeugs.
Man kann jetzt mit nem Bot zwar solche Kämpfe generieren und auch auf diese Weise starten, aber der Gegner muss ja sowieso annehmen und man bekommt auch nur Punkte, wenn der Gegner einigermaßen ebenbürtig ist, genauso mit Geld, vielleicht bau ich noch ne zusätzliche Sicherung ein.
Mit dem Programmieren fang ich an, wenn mir ein paar Leute das Konzept durchgesehen haben und ein wenig auf vollständigkeit geprüft.
Falls ihr Lust habt, könnt ihr das gerne mal machen.
Bei dem Design bin ich über Kritik auch froh, hinterher ändern macht immer mehr Probleme als vorher, auch wenn ichs schön dynamisch aufbau.


Marius
---
Ein paar Leute meitnen, es wäre nicht passend zum Thema, deshalb hab ich das Logo etwas geändert ^^
http://img73.echo.cx/img73/1603/designcopy9ae.jpg
 
Zuletzt bearbeitet:
Hi,

hätte den Beitrag wohl als erstes im PHP Forum erstellen sollen.
Design steht eignetlich fertig, nach einigen Problemen hab ich sogar bei mri auf dem PC ein downgrade auf PHP 4 geschafft, worauf MySQL wieder gemeckert hat, naja, jetzt geht alles.
Jetzt bin ich beim Userlogin.
Dazu hätte ich ein paar Fragen, das macht man wohl am günstigsten mit PHP Sessions.
Ich hab das noch nie gebraucht, daher die Fragen.
Ich speicher also die aktuellen Sessions inclusive User E-mail in der MySQL Datenbank, womit ich gleichzeitig meine onlineliste habe.
Ich kann vom User nicht erwarten, dass er sich ausloggt, das mach ich bei E-mail auch nie...
Wie funktioniert das also konkret, dass wenn er den Browser schließt oder davonsurft die Session aus der Datenbank gelöscht wird?
Ich hab jetzt auch ein paar unterschiedliche Quellen gefunden, die eine besagt, dass PHP die Weitergabe der Session ID automatisch regelt, auch bei Cookieverbot.
Die andere Quelle besagt, dass ich jeden Link und jedes Formular manuell mit dem anhängen der SessionID zu präperieren hab.
Eine andere besagt, dass man die SessionID klauen kann (wenn man durch Zufall eien erwischen sollte) und die Userdaten mitlesen könnte. Die andere besagt, dass die SessionIDs an die IP gebunden sind. Meine Erfahrung besagt, dass eine Session beim schließen des Browserfenster automatisch gekillt wird (wenn das nciht dran leigt, dass ich Cookies standartmäßig an hab.) und außerdem gibts nen Error, wenn mir ein Freund ein Link mit zugehöriger SessionID schickt.
Und nun die Frage an Euch^^ Falls ihr Tutorials habt, her damit.
Ach ja, PHP 4 und session.auto_start ist aus.



Marius
 
Äh. was sagt denn das PHP-Forum zum Thema Session? :suspekt:

Gruß

Datic (der zu seiner Schande eingestehen muss, noch keine Session angefasst zu haben)
.
 
Soooo,
jetzt bin ich soweit recht gut über Sessions informiert. Jetzt wieder ne Frage a die Flash genies.
Bin jetzt am überelgen, ob ich einfach in FLash alle 5 min ne Abfrage an den Server abgeb.
So hab ich eine schön gepflegte onhjlineliste und die Sessions lassen sich auch gut verwalten.
Ich amch die ganze Menüführung udn so in Flash, das wird klein, benutezrfreundlich, eifnach zu programmieren.
Würdet ihr auch alle 5 min ne Anfrage machen? So kann ich die Sessions schön verwalten. alte werd ich trotzdem noch mittels CronJobs löschen müssen, da hab ich ncoh nix gescheites gefunden.


Marius
 
So, das Projekt macht Fortschritte, nicht sher weit aber es klappt eigentlich.
Jetzt hab ich mich grad an nem total doofen Problem aufgehängt. Die Ranglsite hat mir schonmal ein Problem bereitet, wegend en Unterscheidelichen MySQL Versionen, aber das gehört net hier her.
zum Problem:
Ich muss alle offenen Kämpfe auflisten, das mach ich mittels eines Textfeldes, das Linie für Linie scrollt, in der Hoffnung, dass das so geht.
Jetzt wollte ich die Zeilen abwechselnd etwas färben um mehr Übersicht zu bekommen. Wenn ich das allerdings so macht verrutscht das wenn man es vergrößert oder verkleinert, sprich, der Hintergrund wird nicht mit der Schrift gleich skaliert, was ein unschönes Bild gibt.
hat da jemand ne Idee?
table Tags unterstützt Flash ja nciht.



Marius
---
Stopp0, alles wieder rückgängig^^
Flash unterstützt wohl doch Tabellen, hab mich aber nun entschlossen, einen gescrollten MovieClip zu nehmen, da auch Bilder und so reinmüssen.


Marius
 
Zuletzt bearbeitet:
Hi,

wie vergrößerst Du denn das Textfeld?

Wenn Du das Textfeld in einen MovieClip packst, kannst Du ihn skalieren und die Schrift vergrößert sich ebenfalls.

Hast Du im Übrigen das Problem mit den Serveranfragen inzwischen gelöst?

Gruß
.
 
Das was ich grad genommen hab, war sowas ähnliches wie hier:
http://www.selteco.com/tutorials/t1033.asp
Mit vergrößern meinte ich nicht innerhalb Flash, sondern wenn man hinterher den fertigen Film vergrößert oder verkleinert, dann ändern sich die maße, ich nehm jetzt nen stinknormalen MC Scroller, muss mich nur erst wieder ein klein wenig in Flash reinarbeiten, da die gnaze letzte Arbeit PHP und HTML war.
Wegen der Onlineliste fragst du mcih jetzt was^^
Soweit ich weiß, hatte ich das Problem gelöst, aber ich muss grad nochmal nachschauen, ist schon ne Weile her, als ich Sessions und so dafür Programmiert hab, ich schau mal schnell..



Marius
---
Gefunden, ich hatte damals ein paar Foren analysiert und geschaut, wie gut das OnlineScript funktioniert, die habens einfach so gemacht, dass sie nen Timestamp bei der letzten Anfrage gesetzt haben, nach 5 min oder so ist der User dann ohne weitere Rückmeldung faktisch offline. Ob ich das alle 4 Minuten doer so von Flash updaten lassen soll, weiß ich noch net. Falls wer interesse ahben sollte, könnte ich nen Link zur derzeitigen Seite shcicken, aber allzuviel steht da noch net, Anmeldung, registreirung, aktivierung, Userverwaltung, Datenbankstruktur, einige Abfragen, die Grundstruktur für die gnazen Seiten, die Rangsliste ist fast fertig, jetzt bin cih gerade am Kontrollzentrum.


Marius
 
Zuletzt bearbeitet:
Hi,

stell Stage.scaleMode auf "noScale", dann lässt sich der Film auch im Player nicht skalieren.

@Onlineliste: Ich habe grade ein kleines Tutorial für einen Chat geschrieben - dabei aktualisiere ich die Daten auch alle paar Sekunden über eine Serveranfrage. Ich verwende keine Sessions, vergebe aber eindeutige IDs. Wenn sich ein User nach einer bestimmten Zeitspanne nicht beim Server gemeldet hat, wird er aus der dB rausgeworfen. Ist ein "rustikales" Prinzip, funktioniert aber gut, sofern keine sehr großen Datenmengen übermittelt werden müssen. Vielleicht hilft es Dir (sollte es online gehen) etwas weiter, allerdings habe ich das Gefühl, dass Du (vas PHP und Datenbanken angeht) schon weisst, was Du tust. ;)

Gruß
.
 
Zurück