[Diskussion] Würfel in RPG's

Fuma-Snake

Exarch
Boah Leute, da kommt man zufälliger weise nochmal nach hause und dann liest man sowas *lach*

Also, junge, schöne und Intelligente janoko, du hast uns jetzt ja freundlicher weise deinen Code da zur verfügung gestellt.
großes Danke erstmal ^_^

Leider merke ich, dass meine PHP-Kenntnisse dem eines Steines gleichens. Ich kann damit kaum was anfagen, und das ist etwas ärgerlich. Sogar ziemlich. (Der Unterricht war aber auch Scheiße! *lach*)

Nun, du hast ja am Schluss drauf hingewiesen, das du da nicht weiter kommst: Wo liegt denn da das Problem?
 

Janoko

Phöser Engel
VIP
das problem liegt darin, das ich die $count dazu bringen muss, einen bestimmten absatz der funktion entsprechend ihrer anzahl zu wiederholen, ich habs schon mit loop versucht, bekomme aber nicht das ergebnis das ich ahben möchte - das alle würfel nebeneinander angezeigt werden.

außerdem habe ich die übergabe in die datenbank noch nicht getätigt, da ich nicht mal eine tabelle angelegt habe ^^

desweiteren muss ich das ja auslesen können, was icha cuh noch nicht habe. und das ganze muss dann noch in die content.php includiert werden.
 

Fuma-Snake

Exarch
*lach*
Okay, gut, klingt doch ganz einfach *grins*

Ähm, danke das du dir die mühe machst. habe nur das Gefühl, nicht einmal im ansatz helfen zu können.
Aber das bekommst du gebacken oder?

@ Xeha: Wenn ich das hier so lese, glaube ich nicht das wir die Hilfe von deinem Freund noch wirklich brauchen. Ausser vielleicht, wenn janoko (warum auch immer habe ich gerade ein Riesen bedrüfniss folgendes zu tun Oo :)-chan das so möchte, als Ansprechpartner, der ihr da vil. ein wenig unter die Arme greift.
 

Ironhide

Na hast du Angst Kleiner?
VIP
Hehe, nun ja, wenn ich sehe, das sie den Code mal eben so heir nur beim schreibend er Antwort ausm Ärmel geschüttelt hat (sicherlich so, das sie das überprüfen konnte) dann fidne ich das schon beachtlich... meinen respekt hat sie jedenfalls dafür xD
 

Xehanot

Anarchist
Also gut, ich habe mal den Bekannten konntaktiert und beschrieben was wir brauchen, nun ja er kennt leider nicht viele Programiersprachen, und obwohl er sich ziemlich sicher ist das er ein Programm mit Javascript erstellen könnte, die unsere Bedingungen erfülltm weiß er leider nicht wir er dies online stellen könnte, also entweder uns wird ein Weg angeboten oder das ist eine Sackgasse.
 

Ironhide

Na hast du Angst Kleiner?
VIP
Ich habe da noch eine andere Frage, wo soll das Script/Seite dann landen? Also irgendwo muss es ja hochgeladen werden, damit die Leute zugruiff darauf haben können. Hat da schon wer eine Möglichkeit? Oder bekomm ich da mal was in den falschen Hals und das wird anders gelöst?
 

Janoko

Phöser Engel
VIP
PHP:
// wurf.php 
<?php
include("connection.php"); //DB-Connection :)

//Jetzt holen wir uns unsere Daten aus dem Formular
$count = $_POST['count'];
$sides = $_POST['sides'];
$username = $_POST['username'];
// Noch was, damit ihr keinen Unfug anstellen könnt
$address = $_SERVER['REMOTE_ADDR'];

//Ich werd hier noch ne Sicherheitsabfrage reinbauen, grad aber keinen Nerv für.
 

//Daten haben wir jetzt, nun fehlt unsere eigentliche Funktion.


for ($i = 1; $i <= $count; $i++)
 {
   $wurf = rand(0, $sides);
   echo ("$i .te Würfel. Du hast eine $wurf geworfen.")
 } 
  
mysql_query("INSERT INTO Wurfe (Count,Sides,Username,Address) 
             VALUES ($count,$sides,$username,$address)");

echo "Damit du mir keinen Unfug mit dem Würfel baust, sind dein $username und deine IP ( $address ) in die Datenbank eingetragen worden."

/* Ich hab das jetzt nicht getestet, außerdem kann ich so nur einen Wurf in die Datenbank übernehmen
 (muss noch schauen, wie ich jeder Wurf Nummer einen Array verpasse, 
den ich dann abspeichern kann).
*/

?>
Ich finde, auch wenn es euch störn würde, die IP muss damit rein.... ansonsten kann damit ja sonst wer was anstellen.

edit: da hab ich doch glatt den abschließenden tag vergessen...
 
Zuletzt bearbeitet:

Ironhide

Na hast du Angst Kleiner?
VIP
Das mit der IP stört mich n feuchten Furz, ums mal so zu sagen. Das ist eines der Geheimniess unser aller Recner die soweiso jede Sau bekommt xD
 

Captain Hero

Puppetmaster
VIP
Charakterverbesserung durch würfeln? War ich noch nie dafür. Ein Charakter sollte sich so entwickeln wie es der Spieler und die Ereignisse wollen, nicht wie es irgendein Würfel sagt.
Interessant fände ich es viel eher auf Charakterwert zu würfeln um Erfolg oder Misserfolg von Charateraktionen zu ermitteln, aber darum geht es hier ja nicht...

@ Janoko
Hab ich das richtig verstanden? Du wolltest das ganze mit Registrierung und Login machen?

Offtopic:
Was das Gezanke hier angeht. Es ist nicht immer nötig gleich in die Bresche zu springen, nur weil jemand sich (eurer Meinung nach) mal ein wenig im Ton vergriffen hat, vor allem wenn ihr gar nicht gemeint seid. Wenn sich jemand von jemand anderem angegriffen fühlt, dann kann er sich auch selbst darum kümmern, erst recht wenn es sich um jemanden wie Janoko handelt.
Dazu kommt das man, wenn man nicht mit den Dingen die hin und wieder von Leuten zu anderen Leuten im Internet gesagt werden, lieber den Stecker aus seinem Router ziehen sollte. Geht schneller/einfacher und ist erfolgreicher als Eins von Unendlich abzuziehen.
Wenn jemand meint etwas wirklich sinniges dazu zu sagen zu haben, kann er mich gerne auf den üblichen Wegen, außer diesem Thread hier, ansprechen. ;-)
 

Kenhin

Crazed Scientist
Otaku Veteran
Also ich dachte eigentlich seit Anfang an, an Aktionen :) denn Charaktereigenschaften zu Würfeln ist doof und führt zu Neid und das wiederrum zu Streit. Sowas wird hier im WoH nie gut gehen.
Aber wie gesagt für Handlungen finde ich es interessant ^^

@ Hero da es hier keinen danke Button für antworten gibt, bedank ich mich so für deinen nützlichen Beitrag
 

Janoko

Phöser Engel
VIP
Charakterverbesserung durch würfeln? War ich noch nie dafür. Ein Charakter sollte sich so entwickeln wie es der Spieler und die Ereignisse wollen, nicht wie es irgendein Würfel sagt.
Interessant fände ich es viel eher auf Charakterwert zu würfeln um Erfolg oder Misserfolg von Charateraktionen zu ermitteln, aber darum geht es hier ja nicht...

@ Janoko
Hab ich das richtig verstanden? Du wolltest das ganze mit Registrierung und Login machen?

[ot]
Was das Gezanke hier angeht. Es ist nicht immer nötig gleich in die Bresche zu springen, nur weil jemand sich (eurer Meinung nach) mal ein wenig im Ton vergriffen hat, vor allem wenn ihr gar nicht gemeint seid. Wenn sich jemand von jemand anderem angegriffen fühlt, dann kann er sich auch selbst darum kümmern, erst recht wenn es sich um jemanden wie Janoko handelt.
Dazu kommt das man, wenn man nicht mit den Dingen die hin und wieder von Leuten zu anderen Leuten im Internet gesagt werden, lieber den Stecker aus seinem Router ziehen sollte. Geht schneller/einfacher und ist erfolgreicher als Eins von Unendlich abzuziehen.
Wenn jemand meint etwas wirklich sinniges dazu zu sagen zu haben, kann er mich gerne auf den üblichen Wegen, außer diesem Thread hier, ansprechen. ;-)
[/ot]
Ich denke, das letztere war meine Intension überhaupt mit dem schreiben an zufangen.

Jep Mit Login, wobei sich im Formular script noch einiges ändern wird, da ich noch passwort abfrage usw rein bringen muss.
Wie ich die Abfragen schreibe weiß ich schon, ich weiß, das es auch funktionieren würde, nur steht hinter allem natürlich der Lustfaktor... und naja, der variiert momentan stark schwankend.

Ich hab inzwischen auch schon nen groben code im sinn, wie ich die arrays bzw alle zahlen bekomme. Dazu bedarf es aber der tatsache, das ich mir keinen Syntax error hole, den man sich schnell einfängt, wenn man scheiße baut.

Ich hab jetzt den ganzen Code nur online geschrieben, heißt, mir hier aus den Fingern gesogen, werd aber, da ich gedenke das als ernsthaftes Projekt zu sehen, das ganze mit Dreamweaver weiter führen, da erknne ich meine Fehler besser, weil das Programm die Syntax kennt.

Auch werde ich wohl einen Apache samt php parser aufn Rechner haun, damit ich das ganze überprüfen kann und euch nicht irgendwelchen Mist schreibe.

Da man Passwörter nie als Plaintext in eine Datenbank schreiben sollte (unsicher !!!!!!) werd ich da mit der md5 funktion von PHP arbeiten müssen. Jetzt kommts, das PHP dann gerne noch etwas weiter geht. Das Passwort wird dann nicht als einfacher (leicht knackbarer) md5-hash gespeichert, sondern etwas schwieriger. in der Datenbank wird ein SALT hash generiert (ja der ist mehr zufall wie unsere würfel hier) der zusammen mit dem Passwort hash nochmal md5-cryptisiert wird.

Lange rede, kurzer Sinn (oder tl;dr ^^): (SALThash+passhash)Hash.

das kann man nun auf mehrere sichere und auch auf einige seeehr unsichere Arten auslesen. (ich bin am knobel wie ich am besten umsetze, das ihr einglogt bleibt, bis ihr euch auslogt, ohne das ich dabei Cookies setze und denoch ne Sessionlänge von maximal 15 Minuten einhalte)


Desweiteren schreibe ich momentan in reinem php, was heißt, das Annehmlichkeiten wie ein Soft-Login etc. nicht berücksichtigt werden können bzw auch nicht werden, da ich keinerlei Lust verspüre auch noch javascript dazu zu nehmen, zu mal meine kenntnisse der Sprache sich auf ein einzelnes Script stützen und dem entsprechend magelhaft sind.

PHP zieht auch diverse grundkenntnisse von HTML nach sich, da in den 'echo' und 'print' befehlen das steht, was wir als Website überhaupt sehen. Im Grund sieht der Benutzer hinter dem Bildschirm in seinem Browserfenster nie eine PHP Seite. Und das obwohl doch oben in der Adresszeile .php steht.

PHP ist eine Serverseitige Sprache, Javascript hingegen Client (also User-)seitig. Die beiden bilden so ein Perfektes asynchron werkelndes Paar. Bestes Beispiel ist AJAX. AJAX bezieht noch die XML Sprache mit ein, die an sich recht komplex ist, im Gegensatz zu anderen Sprachen aber auch, gelinde gesagt, Drittklässler im Schlaf beherschen können.

Jedoch zurück zu PHP. Wie bereits gesagt ist PHP eine Serverseitige Sprache, heißt, der USer bekommt von dem Gangen, was auf dem Server abläuft Null, nada und niente mit. Die Seite die dem User angezeigt wird ist eine reine HTML seite, da ist nicht, aber auch gar nichts von PHP mehr drinne. Und wieso?

Ja, da kommen wir auch die ebenfalls grade ebend erwähnten PHP-Befehle "echo" and "print" zurück. Beide Befehle bezeichnen eine Ausgabe an die gernerierte Seite. "echo" kann ganze absätze etc enthalten, "print" hingegen sollte man nur für das Ausgeben von Variablen benutzen.

Einfaches Beispiel:
PHP:
<?php // das php kann man inzwischen weglassen, ich schreibs aber lieber hin.

echo "Janoko h&auml;lt uns einen Vortrag";

?>
die Ausgabe in HTML sähe dann so aus:

HTML:
Janoko hält uns einen Vortrag
schaut jetzt doch blöd aus, ist aber so. natürlich habe ich damit kein valides HTML-Dokument, was bei einigen Browser gerne mal zum Absturz bzw Fehlermeldungen führt. (ich erinner mich da so an ne Fehlermeldung bei IE )

Aber mit diesem kleinen Beispiel kann man doch sehr gut verdeutlichen, was php eigentlich ist. Das was jemand als User wirklich vom Server bekommt, ist eine eigenes für diesen generierte statische (nicht dynamische) HTML-Seite. Wenn man also von dynamischer Webseite Spricht ist damit die Anpassungsfähigkeit durch das php-srcipt dahinter gemeint. Wie am Beispiel gesehen wird der ganze Wirklich relevante Code gar nicht an den User übertragen, heißt, ich könnte sonst was an code schreiben, ihr würdet nur die "echo"s und "print"s bekommen.

Desweiteren kann ich mit echo auch noch ganz lustige Konstruckte machen :)

PHP:
<?php

$nick = Janoko; // Hier gebe ich der Variable 'nick' den Wert 'Janoko'
$atrib = PHP-Kenntnisse; // Und hier der Variable 'atrib' den Wert 'PHP-Kenntnisse'

echo "Wisst ihr was? $nick hat $atrib";
echo 'Wisst ihr was? $nick hat $atrib';

?>
Jetzt habe ich zweimal die gleiche Ausgabe, ne? hab zwei mal geschrieben "echo" und genau das gleiche. Muss das gleiche Rauskommen, ne?

Schauen wir doch mal nach...

HTML:
Wisst ihr was? Janoko hat PHP-Kenntnisse
Wisst ihr was? $nick hat $atrib
Ja, was ist den nun falsch gelaufen?
Ganz einfach. PHP unterscheidet zwischen doppelten Anführungsstrichen ( " ) und einfachen Anführungsstrichen ( ' ). Alles was zwischen einfachen Anführungstrichen stehen wird genauso, wie es dort im Scriptsteht ge"echo"t. heißt, eine variable kann keinen Wert annehmen und wird somit als Variable übertragen.

Auch ist es wichtig in PHP das abschließende Semikolon ( ; ) nicht zu vergessen, das führt mit unter zu den häufigsten Fehlern in PHP.

und jetzt verläßt mich die Lust euch PHP zu erklären xD


[ot]Die beste Art dem Gegner die Zähne zu zeigen ist immer noch zu Lächeln. Lächle und schweige.[/ot]
 

Ironhide

Na hast du Angst Kleiner?
VIP
Okay, ich versteh nur Bahnhof.
Na ja halbwegs. ein wenig denke ich bin ich dahintergestiegen, auch wenn sich mir natürlich als totaler Nichtskönner auf dem Gebiet, dort denoch vieles verschließt.
:)
 

Nu¥eN

Scriptor
Schade. Denk ich mir, ich könnt auftrumpfen indem ich ne Schleife bastel, aber Janoko war schneller... ^^

hab das jetzt auch nur überflogen, aber das letzte Beispiel mit der For-Schleife sieht sehr gut aus. Was ich nun noch anbieten könnte wären ein paar zusätzliche Ideen, die grundlegende Informationen schon beim Aufruf der Seite übergeben würden...

Ich würd mit nem Formular anfangen. die URL dazu könnte lauten... server.net/dice.php?rpg=Fuma
Das Formular könnte dann ein
PHP:
echo '<input type="hidden" value='.$_get[rpg].'>'
enthalten. Falls jemand das ?rpg= in der Adresse vergisst würd ich stattdessen ein Dropdown-Menü einbauen, in dem alle zur zeit laufenden Spiele aufgeführt werden. Dann sollte man noch eingeben, wie viele Würfel welchen Typs man verwenden will und bekommt dann von Janoko's Script die Ergebnisse ausgegeben. Außerdem würde ich diese Ergebnisse in eine DB schreiben (wie in Janokos Script vorgesehen) und diesem Würfel-Event eine ID zuweisen. Würde man nun z.B. die dice.php?ID=13 aufrufen bekäme man eine Ausgabe der Daten, die in diesem Würfel-Event gespeichert sind.

Natürlich ist das nur ein grober Gedankengang. Es sollte vorher z.B. noch ein Login stattfinden, um das Würfel-Event einem User zu zu weisen. Außerdem sollte der Spielleiter (in unserem momentanen beispiel also Fuma) jederzeit in der Lage sein, alle Würfe nach zu vollziehen, die ein User gemacht hat, um mehrmaliges Würfeln erkennen und ggf. dagegen vorgehen zu können (vielleicht mit strafpunkten, die alle nachfolgenden Würfel-Events verschlechtern? Sollt man nochmal ansprechen)

Bin mal gespant, was Fuma dazu zu sagen hat... ^^
btw: wenn ich nur wiederholt hab, was schon da stand, dann entschuldigt bitte. Wie gesagt, habs erstmal nur überflogen, weil es ja doch schon ein paar mehr Beiträge sind ^^
 
Zuletzt bearbeitet:

Ironhide

Na hast du Angst Kleiner?
VIP
Wegen dem letzten, da denke ich würde eine einfache Liste genügen, wo jeder sehen kann wer wie oft gewürfelt hat und nicht nur der Leiter des RPG's
Die Liste sollte so angelegt sein, das jeder sehen kann, wer welchen wurf zu welcher zeit gemacht hat, So ist eine gewisse transparenz in dem ganzen.

Sobald man sich mit seinem Namen einloggt, sollte man dann eine Auswahlmöglichkeit haben, für welches RPG man würfeln will. Sobald man dann ausgewählt hat, bekommt man automatsich die anzahl der würfel und würfe, die man zur verfügung hat. Das ganze wird dokumentiert, mit Uhrzeit usw udn dann macht man im RPG eben seinen "Zug". Anahnd der Uhrzeit in dem Post und bei den dokumentierten Würfen, sieht man ja dann auch, ob das soweit alles passt :)

Auch sollte man jeden User einzeln abfragen können, was gerade bei mehreren RPG's hilfreich wäre, bzw jedes RPG einzeln ab fragen ;)
 
Zuletzt bearbeitet:

Janoko

Phöser Engel
VIP
Ich würd mit nem Formular anfangen. die URL dazu könnte lauten... server.net/dice.php?rpg=Fuma
Das Formular könnte dann ein
PHP:
echo '<input type="hidden" value='.$_get[rpg].'>'
enthalten. Falls jemand das ?rpg= in der Adresse vergisst würd ich stattdessen ein Dropdown-Menü einbauen, in dem alle zur zeit laufenden Spiele aufgeführt werden. Dann sollte man noch eingeben, wie viele Würfel welchen Typs man verwenden will und bekommt dann von Janoko's Script die Ergebnisse ausgegeben. Außerdem würde ich diese Ergebnisse in eine DB schreiben (wie in Janokos Script vorgesehen) und diesem Würfel-Event eine ID zuweisen. Würde man nun z.B. die dice.php?ID=13 aufrufen bekäme man eine Ausgabe der Daten, die in diesem Würfel-Event gespeichert sind.
ich wollte nicht mit GET arbeiten, da man so sehr leicht manipulieren kann. Fürs aufrufen der Ergebnise zum späteren Zeitpunkt kann man natürlich die GET methode benutzen auch wenn ich es mir aus der SQL holen würde. Achja: Mein erster beitrag dazu

was mir momentan schwierigkeiten bereitet ist tatsächlich die tatsache, das ich in der for schleife meine variablen zwar bekommen, diese aber nicht abgespeichert bekomme, oder grade n eichenbrett vor dem kopf habe.


Edit:


PHP:
// wurf.php 
<?php
include("connection.php"); //DB-Connection :)

//Jetzt holen wir uns unsere Daten aus dem Formular
$count = $_POST['count'];
$sides = $_POST['sides'];
$username = $_POST['username'];
// Noch was, damit ihr keinen Unfug anstellen könnt
$address = $_SERVER['REMOTE_ADDR'];

//Ich werd hier noch ne Sicherheitsabfrage reinbauen, grad aber keinen Nerv für.
 

//Daten haben wir jetzt, nun fehlt unsere eigentliche Funktion.

$save = array()

for ($i = 1; $i <= $count; $i++)
 {
   $wurf = rand(0, $sides);
   echo ("$i .te Würfel. Du hast eine $wurf geworfen.")
  $save[] = $wurf
 } 
  
mysql_query("INSERT INTO Wurfe (Count,Sides,Username,Address) 
             VALUES ($count,$sides,$username,$address)");

echo "Damit du mir keinen Unfug mit dem Würfel baust, sind dein $username und deine IP ( $address ) in die Datenbank eingetragen worden."

/* So haben wir erstmal die Variable $save['array1,array2,array3, ... ']
Jetzt muss ich mir nur noch eine entsprechende Auslese seite einfallen lassen.
*/

?>
Was das Drop down Menu angeht, das sind Feinheiten, die ich Momentan noch nicht intigrieren möchte, da ich mir so erstmal unnötigen Codemüll erspare :) (was nicht heißt, das der Vorschlag nicht gut ist, nur momentan muss ich erstmal den Würfel zum würfeln bringen)
 
Zuletzt bearbeitet:
Oben