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

Waldereignis: Zwangsglücksspiel
https://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=4815
Seite 1 von 1

Autor:  Sangreal [ Di 03 Mär, 2009 22:13 ]
Betreff des Beitrags:  Waldereignis: Zwangsglücksspiel

Ich habe mit Hilfe meiner Basic Programmierkenntnisse und dem Aufbau der Waldereignisse
selber eines erstellt. Das Ereignis zwingt den Spieler in ein Glücksspiel herein, welches in
geringem Maße die Goldmege reduziert, da der Bankvorteil 2,098% beträgt.
Da ich selber keine Möglichkeit habe es zu testen, können noch kleine Fehler vorhanden sein.
Einige habe ich schon durch Durchlesen gefunden und entfernt.
Ebenso müsste die Formatierung der Textzeilen und deren Farben noch ausgearbeitet werden.

Da man in der Regel in höherem Level genügend Gold hat, wir man gezwungen einen hohen
Betrag zu setzen. Der Betrag hängt vom Gold was man bei sich trägt und seinem Level ab.
Auf Level 1 wird man wieder weggeschickt, ebenso bei leerem Goldbeutel, auf 15 ist wird
automatisch das ganze Gold gesetzt.

Verwendet wird der Tarockkartensatz. Es werden 2 Karten gezogen. Hab diese die gleiche
Farbe, gleichen Wert, sind 2 Trümpf oder der Narr (=Sküs/Joker/Excuse) so gewinnt man
3:1 (Also 3fache vom Einsatz+Einsatz).
In Anlehnung an das Vierfarbenblatt vom Skat soll Kreuz Anthrazit, Pik Grün, Herz Rot und
Karo Orange erscheinen, für Trumpf habe ich weiß gewählt und der Narr in allen 5 Farben.

Hier der Quellcode (wird von Zeit zu Zeit bei Fehlerkorrektur berichtigt):

-Fünfte Korrektur-

So...nachdem es fehlerfrei ist, als ZIP Archiv angehängt
(Randfunktion ersetzt)

Dateianhänge:
tarot.zip [2.03 KIB]
279-mal heruntergeladen

Autor:  Kevz [ Mi 04 Mär, 2009 17:19 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Du hast in dieser Zeile etwas vergessen, siehe vorher/nachher. (waren nur Anführungszeichen Oben):
$this->bbcode_second_pass_code('', 'Suche:
if ($a2=="b2) {

Ersetze durch:
if ( $a2 == "b2" ) {')

Desweiteren ersetze bitte alle $HTTP_GET_VARS durch $_GET. Ansonsten dürfte es zu Problemen bei vielen Server geben, die unter PHP 5 laufen sowie PHP 4 wo bereits register_global? deaktiviert ist.


Nun zum Feedback,

es ist ein schönes Ereignis im Grundegenommen, dennoch wird es nicht einwandfrei laufe, weil Du kein $session['user']['specialinc'] = 'tarot.php'; gesetzt hast, wo Du die Navigation im Script nutzt. Das heißt soviel wie, dass der Spieler gar nicht erst weiterklicken kann, weil es ihm eben nicht gestattet ist. Schau es dir einmal in anderen Ereignissen an, wie es dort gehandhabt wird. :)

Achja und bitte beim nächstenmal das Script einfach als Zip-Archiv hochladen, dann ist es auch für Linux-User angenehmer, als wenn es in RAR o.Ä. hochgeladen wird!! Und man muss erst nicht solang scrollen. ;)

Autor:  Linus [ Mi 04 Mär, 2009 18:19 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Fein dass du dich daran machst PHP-Scripte zu erstellen ohne von PHP wirklich Ahnung zu haben. :)
Doch zunächst mal ein Tipp: Auch wenn du keinen eigenen Server oder Webspace besitzt so ist es doch möglich einen localen Server auf deinem PC zu installieren auf dem auch ein LoGD laufen kann. Für den Anfang würde ich das xampp-Paket vorschlagen. Das ist meiner bescheidenen Meinung nach am einfachsten zu händeln.

Und nun zu deinem Special:
Solange das Special selbst andauern soll muss $session['user']['specialinc'] mit dem Namen der PHP-Datei deines Special gestezt sein! Vor einer Seitenaktalisierung, z.B. durch addnav(). Sonst fällst du beim nächsten Klick aus dem Special raus. Dass sieht dann etwa so aus:
$this->bbcode_second_pass_code('', '...
$session['user']['specialinc']="tarot.php";
addnav("Weiter","forest.php?op=1");')

Du definierst mehrdimensoniale Arrays wo eindimensionale gefragt sind. Richtig wäre es dann so:
$this->bbcode_second_pass_code('', '$value=array(
0=>"1",
1=>"2",
2=>"3",
3=>"4",
4=>"5",
5=>"6",
6=>"7",
7=>"8",
8=>"9",
9=>"10",
10=>"Bube",
11=>"Reiter",
12=>"Dame",
13=>"König"
);

$color=array(
0=>"´rKreuz",
1=>"`@Pik",
2=>"`$Herz",
3=>"`QKaro"
);

$tarot=array(
0=>"I",
1=>"II",
2=>"III",
3=>"IV",
4=>"V",
5=>"VI",
6=>"VII",
7=>"VIII",
8=>"IX",
9=>"X",
10=>"XI",
11=>"XII",
12=>"XIII",
13=>"XIV",
14=>"XV",
15=>"XVI",
16=>"XVII",
17=>"XVIII",
18=>"XIX",
19=>"XX",
20=>"XXI"
);')

Einfache Variable sind nach der Seitenaktualisierung nicht mehr Verfügbar. Endweder du übergibst deren Werte im addnav() und fragst sie mit §_GET wieder ab. Ein Beispiel:
$this->bbcode_second_pass_code('', ' addnav("Weiter","forest.php?ops=2&a1=$a1&a2=$a2");
...
...
...
}elseif ($_GET['ops']=="2"){
$a1=$_GET['a1'];
$a2=$_GET['a2'];
...')

Oder du speicherst in $_SESSION zwischen.
$this->bbcode_second_pass_code('', '$_SESSION['temp']['gold']=floor($session[user][gold])*log($session[user][level])/log(15));')


$HTTP_GET_VARS, $HTTP_POST_VARS sollten nicht mehr genutzt werden. Nimm besser $_GET bzw $_POST!

Die Namen von Array-Feldern sollten gequotet sein um zu Verhindern dass sie mit Konstanten kollidieren. Also $session['user']['level'] anstatt $session[user][level]!

Dass wäre so alles was mir auf den ersten Blick aufgefallen ist!

Autor:  -DoM [ Mi 04 Mär, 2009 22:16 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Kevz hat geschrieben:
[...]
Achja und bitte beim nächstenmal das Script einfach als Zip-Archiv hochladen, dann ist es auch für Linux-User angenehmer, als wenn es in RAR o.Ä. hochgeladen wird!! Und man muss erst nicht solang scrollen. ;)


Also ich habe mir das Script noch nicht wirklich angeschaut, da es nicht als Datei gepackt war...
Aber Kevz, warum wünschst du dir *.zip-Dateien, wenn du gerade am Montag erst eine *.rar-Datei hochgeladen hast....*fg*
Bild

Nicht böse sein, aber ich musste schmunzeln.... Ich bevorzuge im übrigen *.rar-Dateien!
*RAR an die MACHT!!! RAR an die MACHT!!!*

Sorry für den Spam, aber ich konnte es mir nicht verkneifen!
Back to Topic...

EDIT:
WB Kevz!

Autor:  Kevz [ Mi 04 Mär, 2009 22:34 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Danke dir, -Dom!!

Und nette Bildbearbeitung, musst mir mal bei Gelegenheit zeigen. :D - Wobei ich mir teils schon denken kann, wie Du es vollbracht hast. Aber nett. Howto irgendwo? :P

Ich weiß, hatte es zwar in RAR hochgeladen, aber auch nur, weil ich es angenehmer find. Aber bevor wieder die Linux-User vernachlässigt werden, betone ich es gleich lieber auf einem Zip-Archiv. *kicher* RAR bevorzuge ich dennoch selbst gern.

Mhh.. hätte den Satz anders schreiben sollen, meinte nur, dass er es lieber hochladen sollte, als einfach so reinzuschreiben. Ist dann wenigstens ned so nervig mit dem scrollen, aber einerseits muss man dann auch nix herunterladen. :-)


Back to topic nun... *lach*

Autor:  Eliwood [ Mi 04 Mär, 2009 22:45 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Kevz hat geschrieben:
Desweiteren ersetze bitte alle $HTTP_GET_VARS durch $_GET. Ansonsten dürfte es zu Problemen bei vielen Server geben, die unter PHP 5 laufen sowie PHP 4 wo bereits register_global? deaktiviert ist.


register_long_arrays. Register_globals ist für $_GET['var'] => $var.

@Archivtyp: Zip-Archive können auf jeder (halbswegs modernen) Plattform ohne zusätzliche Software entpackt werden. Die Kompressionsrate ist hier bei Scripten eigentlich herzlich egal, so gross sind die nun wirklich nicht, dass man da gross packen muss. Wer allerdings Wert auf starke Kompression legt der soll lieber auf 7-Zip zurückgreifen. *Das* komprimiert besser als rar - zumindest meinen Erfahrungen nach.
(PS: Auch unter Linux lässt sich mittels unrar Rar-Archive entpacken. Nicht, dass einer meint, es würde nicht gehen...)

Autor:  Salator [ Mi 04 Mär, 2009 23:30 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Linus hat geschrieben:
Oder du speicherst in $_SESSION zwischen.
$this->bbcode_second_pass_code('', '$_SESSION['temp']['gold']=floor($session[user][gold])*log($session[user][level])/log(15));')


Möp!
Die Session ist bei einem Timeout weg. Deshalb sollten auf die Art nur Dinge gespeichert werden auf die man notfalls verzichten kann. Sonst steht man vielleicht ohne Navi im Wald oder schlimmeres.

Für das Zwischenspeichern von Waldereignis-Daten gibts aber $session['user']['specialmisc']
Falls vorhanden kann man auch pqtemp hinzunehmen (ich seh grad dass pqtemp nicht zur Standard-0.9.7 gehört)
Das ist in der Datenbank ein Textfeld und kann somit einen Wert oder ein serialisiertes Array aufnehmen.

Edit: Böser Vertippser, specialmisc muss es natürlich heißen. Danke DoM

Autor:  Fynn [ Do 05 Mär, 2009 07:33 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

mal ne ganz dumme frage: kann man denn die variablen nicht gleich am anfang des skriptes belegen und auch die berechnungen durchführen lassen? dann hat man nicht das problem wie man sie speichern soll und alles ...

und dann hätt ich noch ne zweite frage: meines wissens nach gibt es addition, subtraktion, multiplikation und division aber für was steht das % in der berechnung? o.O --> das wäre diese stelle: $a2=$a%14; daraus werd ich echt nicht schlau

Autor:  Sangreal [ Do 05 Mär, 2009 08:17 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

>Du hast in dieser Zeile etwas vergessen, siehe vorher/nachher. (waren nur
>Anführungszeichen Oben):

Nicht ganz ;)
" -> $ (Variablenverlgeich)

....wobei ich glaube ich sehe grade in Logikfehler.....[aber....siehe letzte Zeile in diesem Post]

>es ist ein schönes Ereignis im Grundegenommen, dennoch wird es nicht einwandfrei laufe,
>weil Du kein $session['user']['specialinc'] = 'tarot.php'; gesetzt hast, wo Du die Navigation
>im Script nutzt.
&
>Solange das Special selbst andauern soll muss $session['user']['specialinc'] mit dem Namen
>der PHP-Datei deines Special gestezt sein!

Ergänzt.

>Desweiteren ersetze bitte alle $HTTP_GET_VARS durch $_GET.

Registiert - folgt noch

>Du definierst mehrdimensoniale Arrays wo eindimensionale gefragt sind.

Da muß ich mich wohlein Mehrdimensionales als Vorlage gefunden haben. Angepasst.

>meines wissens nach gibt es addition, subtraktion, multiplikation und division aber für was
>steht das % in der berechnung?

Modulo - also der Rest einer Division

>Einfache Variable sind nach der Seitenaktualisierung nicht mehr Verfügbar. Endweder du
>übergibst deren Werte im addnav() und fragst sie mit §_GET wieder ab. Ein Beispiel:

Ich werde die Reihenfolge anpassen - vielleicht geht es ohne diesen Weg.


>Achja und bitte beim nächstenmal das Script einfach als Zip-Archiv hochladen

Mal schauen, ob das irgendwie ma hinbekomme.

(aber erst ma pennen)

Autor:  Fynn [ Do 05 Mär, 2009 08:54 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

okay danke ^^ jetzt verstehs ich

jedoch hab ich es gestern bei mir eingebaut (testserver) und auch die fehler alle behoben nur zeigt es mir manchmal bei den karten die entsprechende farbe nicht an

ich hab jetzt mal bei der formel geschaut und auch den grund gefunden

denn nehmen wir mal an $a = 55 dann berechnet sich $a2=$a%14 --> also wäre $a2=9 und dann eingesetzt in: $a3=($a-$a2)/4 kommt dann ja als ergebnis (55-9)/4= 11,5 raus

und wenn ich mri da jetzt das anschaue: output("$color['a3'] $value['a2']`n"); da ist das $value ja klar aber welche $color bekommt der da nun??? in der ausgabe erscheint nichts

kann es sein das du dich da vertan hast und man eigentlich durch eine andere zahl dividieren muss damit es klappt?

Autor:  -DoM [ Do 05 Mär, 2009 11:29 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Salator hat geschrieben:
Linus hat geschrieben:
Oder du speicherst in $_SESSION zwischen.
$this->bbcode_second_pass_code('', '$_SESSION['temp']['gold']=floor($session[user][gold])*log($session[user][level])/log(15));')


Möp!
Die Session ist bei einem Timeout weg. Deshalb sollten auf die Art nur Dinge gespeichert werden auf die man notfalls verzichten kann. Sonst steht man vielleicht ohne Navi im Wald oder schlimmeres.

Für das Zwischenspeichern von Waldereignis-Daten gibts aber $session['user']['specialinc']
Falls vorhanden kann man auch pqtemp hinzunehmen (ich seh grad dass pqtemp nicht zur Standard-0.9.7 gehört)
Das ist in der Datenbank ein Textfeld und kann somit einen Wert oder ein serialisiertes Array aufnehmen.


So jetzt mal was nützliches schreib:
Bitte NICHT "specialinc" nehmen, dann dort wird das aktuelle Special für die "forest.php" bestimmt, wenn im Special eine Navigation erforderlich ist. Denn sonst, ist nach der ersten Anzeige des Specials schon wieder schluss.
Aber es gibt ein Feld dafür, welches sich "specialmisc" nennt. Dort können Daten sicher zwischengespeichert werden.

@Kevz:
Du das ist ne ganz normale PNG-Datei (ohne Hintergrund gespeichert), und mit dem weichen Radierer (welcher in jedem Bilbearbeitungsprogramm zu finden ist) aus geschnibbelt.
Schaust du dir Seite aber in einem alten Browser an, dann siehst du nen hässlichen, grauen Hintergrund und der Effelt wirkt nicht mehr...*g*

Autor:  Sangreal [ Do 05 Mär, 2009 15:20 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

>denn nehmen wir mal an $a = 55 dann berechnet sich $a2=$a%14 --> also wäre $a2=9 und
>dann eingesetzt in: $a3=($a-$a2)/4 kommt dann ja als ergebnis (55-9)/4= 11,5 raus

>kann es sein das du dich da vertan hast und man eigentlich durch eine andere zahl dividieren
>muss damit es klappt?

Stimmt.....14 statt 4 (habs ja im modulo auch auf dem Wert)

Sowas passiert, wenn man das nachts um 2...3 Uhr programmiert.... ;)

BTW 55%14->13 ;)

>>Desweiteren ersetze bitte alle $HTTP_GET_VARS durch $_GET.

Gemacht.

>Einfache Variable sind nach der Seitenaktualisierung nicht mehr Verfügbar. Endweder du
>übergibst deren Werte im addnav() und fragst sie mit §_GET wieder ab. Ein Beispiel:

Für den Goldgewinn eingefügt - restliche Variablen an andere Position gestellt.

>if ($a2==$b2) {
>...

Ist an der Stelle komplett geflogen - Wenn a1 & b1 jeweils 1 sind, dann sind beide Karten
Trümpfe und somit a2 & b2 immer unterschiedlich, aber immer eine Gewinnsituation.

Ich hoffe es dann so weit fehlerfrei.
BTW: Ist zwischen Kartenfarbe & Kartenwert eigentlich ein Leerzeichen?

Autor:  Liath [ Do 05 Mär, 2009 16:48 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

nur mal ein kleiner offtopic tipp... benutz für deine zitate doch den BBCode Quote, damit machst du das lesen Deiner Posts um vieles einfacher :)

[quote ]dies ist ein Zitat[/quote ]
Zitat:
dies ist ein Zitat


[quote= "Name"]dies ist ein Zitat[/quote ]
Name hat geschrieben:
dies ist ein Zitat

musst nur die leerzeichen da rausnehmen :)


oder klick einfach auf den Bild Button :) dann wird Dir der Text automatisch in quotes eingefügt und Du brauchst nur das nicht benötigte rauslöschen

Autor:  Linus [ Do 05 Mär, 2009 17:24 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

$this->bbcode_second_pass_code('', '$g=floor($session[user][gold])*log($session[user][level])/log(15));')Entweder ist dort eine einleitende Klammer zu wenig, oder eine schließende zuviel!

$this->bbcode_second_pass_code('', 'output("$color['a3'] $value['a2']`n");')Da a3 und a2 Variable sind in denen der Array-Index als Zahl steht darf hier nicht gequotet werden, sondern es muss $color[$a3] lauten. Wenn du Array-Felder über ihren Namen ansprichst wie z.B in $session['user']['gold'] muss gequotet werden.

$this->bbcode_second_pass_code('', '}elseif ($HTTP_GET_VARS[op]=="0"){
output("Du wendest dich wieder dem Wald zu.");
$session[user][specialinc]="";
$session[user][specialmisc]="";
}')Wenn du ein Special ohne weiteres addnav('Blabla','forest.php'); verlassen möchtest, was ich durchaus angenehm finde, muss noch ein $this->bbcode_second_pass_code('', 'forest();') mit hinein. Das lässt die normale Navigation im Wald wieder erscheinen.

Autor:  Sangreal [ Do 05 Mär, 2009 21:30 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Eine schliessende zu viel (hoffe ich mal)
Hab die entsprechende mal entfernt.

Quoten in Array-Feldern angepasst.

Den 'Ausgang' in den Wald eingebaut.

Ausserdem:

Etwas Text ergänzt, wenn man mit zu wenig Gold(/Level) abgeschoben wird.
Soll ja vom Text her schon etwas RP anlehnend sein.

Ausserdem einigen Substantiven endlich ihren Großbuchstaben gegönnt ;)

[dritte Änderung]

Autor:  Fynn [ Fr 06 Mär, 2009 08:34 ]
Betreff des Beitrags:  Re: Zwangsglücksspiel

Sangreal hat geschrieben:
Stimmt.....14 statt 4 (habs ja im modulo auch auf dem Wert)

Sowas passiert, wenn man das nachts um 2...3 Uhr programmiert.... ;)

BTW 55%14->13 ;)

BTW: Ist zwischen Kartenfarbe & Kartenwert eigentlich ein Leerzeichen?


ich werd es ändern und mal schauen ob es dann alles geht ^^

ja es wird ein leerzeichen angezeigt

EDIT: so ich hab es nun mit den änderungen mal getestet und hab somit nun ne laufende version ohne fehler ^^

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