anpera.net
https://anpera.dyndns.org/phpbb3/

Anfängerspezial - Sirene
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4322
Seite 1 von 1

Autor:  Taratan [ So 10 Feb, 2008 15:36 ]
Betreff des Beitrags:  Anfängerspezial - Sirene

So, ich habe mich heute das erste mal an ein eigenes Skript getraut ^^

Um es mir einfach zu machen, habe ich mir ein spezial genommen - die sind ja noch relativ simpel aufgebaut!

Es ist auch nichts großes, nur eine wirkliche Kleinigkeit, trotzdem stelle ich es hier mal rein, in der Hoffnung, dass man mich vllt. auf Verbesserungen oder mögliche Fehler hinweist

(Der Einbau ist mehr als simpel,
leere Datei öffnen, alles reinkopieren und als sirene.php speichern - diese Datei dann in den Ordner spezial hochladen, fertüg ;) )

Zudem steht es hier, da ich es am passensten fand (von den Möglichkeiten, die ich benutzen darf ^^)

Wie gesagt, nichts großes, eher unbedeutend, aber da hier in letzter Zeit auch wenig los ist, habe ich mich dafür entschieden ;)

____

Zum Spezial selber:

Man hört eine Melodie und kann dieser entweder folgen oder nichts tun (zurück in den Wald)
Wenn man der Melodie folgt, kann man sich:

- verlaufen, 2 runden verlieren
- sterben, gold und 5% exp verlieren
- zur sirene kommen

wenn man zur Sirene kommt, erhält man ein geschenk mit einer kleinen überraschung ;)
(gold, edelsteine oder charme)

___

ich seh grad, ich darf keinen Anhang machen xD

also als PHP hinschreiben ^^

sirene.php



lg
Taratan

Autor:  Arath [ So 10 Feb, 2008 15:49 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Beim groben drüber gucken ist mir jetzt nur eines aufgefallen.
Du solltest

$this->bbcode_second_pass_code('', 'switch ($HTTP_GET_VARS[op])')

ändern in:

$this->bbcode_second_pass_code('', 'switch ($_GET[op])')

Viele Grüße
Arath

Autor:  Taratan [ So 10 Feb, 2008 15:54 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

ah, vielen Dank =)
*das geändert hab*

ich hatte mir das einfach mal abgeguckt, ohne es ganz zu verstehen ^^°
(hatte aber auch so geklappt x) )

und wenn ich ehrlich bin, gibt's noch eine Sache, die ich nicht so ganz verstanden habe =/

$this->bbcode_second_pass_code('', '$session[user][specialinc]="sirene.php";')

diesen Teil, wäre nicht abgeneigt, diese Bedeutung zu erfahren :D

(als ich nach 10 minuten Suche nicht drauf gekommen war, hab ich's aufgegeben und einfach reingetan *gesteh*)

Autor:  MySql [ So 10 Feb, 2008 16:40 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

$this->bbcode_second_pass_code('', '$session['user']['specialinc'] = 'filename.php';')

Besagt, in welchem "Wald-Special" sich der Spieler befindet.
Daher du ja in einem "Special" forest.php verwendest.
Ohne dieses specialinc würde das Special nicht funktionieren.

My.

Autor:  Taratan [ So 10 Feb, 2008 18:41 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

aaaahhhhh =)
vielen vielen Dank für diese Erklärung! :D

*nun keine Fragen mehr hab* ^__^

viel spaß damit ^^

EDIT:

kleine Änderung noch vorgenommen, oben editiert ;)

(Die Damen möchten natürlich auch gerne mit 'sie' angesprochen werden, nicht mit 'er' - war mir entfallen, wurde aber geändert! :D)

Autor:  -Vladir- [ Mo 11 Feb, 2008 19:12 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Es wäre noch schön wenn du es als zip/rar datei uppen könntest

Autor:  Taratan [ Mo 11 Feb, 2008 19:16 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

würde ich gern machen, kann ich aber nicht =/
darf hier keine dateien anhängen ._.

Autor:  Drazaar [ Mo 11 Feb, 2008 22:13 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Arath hat geschrieben:
Beim groben drüber gucken ist mir jetzt nur eines aufgefallen.
Du solltest

$this->bbcode_second_pass_code('', 'switch ($HTTP_GET_VARS[op])')

ändern in:

$this->bbcode_second_pass_code('', 'switch ($_GET[op])')

Viele Grüße
Arath

Noch besser ist es dann, wenn wir einen String auch als String markieren und nicht als Konstante ;)

$this->bbcode_second_pass_code('', '$_GET['op']')

Autor:  Montekar [ Mo 11 Feb, 2008 22:17 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Nettes special, aber für das Risiko sollte man schon etwas mehr Gold / Charme bekommen, findest du nicht? Na ja, muss jeder selber wissen, aber ich würde etwas mehr Gold springen lassen ^^

€dit: Mir ist grad aufgefallen, das du deine "Todes-Fälle" in der Mitte hast und e_rand verwendest. Dadurch wird der Spieler viel öfter sterben, als das er sich nur verirrt oder GOld bekommt. Für eine gleichmäßige verteilung kannst du auch mt_rand verwenden (ich weiß ja nicht, ob das so beabsichtigt war ;))

Autor:  Taratan [ Di 12 Feb, 2008 15:18 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

huch? o.ô

also beabsichtigt war das ganze nicht, ich muss es dann wohl falsch verstanden haben x.X

ich dachte e_rand nimmt eine Zufällige zahl von der ersten bis zu letzten (insklusive) und dann müsste das doch reine glückssache sein, welcher fall auftritt (und auch relativ gleich oft?)

aber vielen dank für die info, werde ich gleich ändern :D

und das mit dem Tipp, dass man mehr gold springen lassen sollte, den werde ich dann wohl auch berücksichtigen ;)

Vielen dank an alle, wird gleich alles geändert! :D

EDIT:
so, geändert und nu auch als zip downloadbar ;)

Autor:  MySql [ Di 12 Feb, 2008 16:04 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Hm..

Ich würde lieber Single Quotes statt Double Quotes verwenden. (< PHP 5 /.1)
Daher die Single Quotes unter PHP 5 /.1 etwas schneller sind als Double Quotes, doch ab PHP 5 /.1 werden die Double Quotes wieder schneller... Warum auch immer.

Und Single Quotes sehen , meiner Meinung nach, schöner aus.

Aber dafür werden in Single Quotes geschriebene Variablen nicht ausgegeben.

$this->bbcode_second_pass_code('', '
<?php
$var = 'Welt.';
# Double Quotes
echo "Hallo $var <br />";
# Single Quotes
echo 'Hallo $var';
?>
')

Das ist die Ausgabe:

$this->bbcode_second_pass_code('', '
Hallo Welt.
Hallo $var
')

Daher sollte / muss man Variablen in Single Quotes anders schreiben.

$this->bbcode_second_pass_code('', '
<?php
$var = 'Welt.';
# Double Quotes
echo "Hallo $var <br />";
# Single Quotes
echo 'Hallo '.$var;
?>
')

Ausgabe:

$this->bbcode_second_pass_code('', '
Hallo Welt.
Hallo Welt.
')

Grüße,
My.

Autor:  Eliwood [ Di 12 Feb, 2008 18:49 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

MySql hat geschrieben:
Hm..

Ich würde lieber Single Quotes statt Double Quotes verwenden. (< PHP 5 /.1)
Daher die Single Quotes unter PHP 5 /.1 etwas schneller sind als Double Quotes, doch ab PHP 5 /.1 werden die Double Quotes wieder schneller... Warum auch immer.


Häh? Die Double-Quotes und die Single-Quotes sind nahezu gleich schnell. Egal, welche PHP-Version du hast. Das wenig, wo du mit Double-Quotes gewinnst, verlieren eh alle später wieder. Diese quotes sind nichtmal n' Bruchteil der Geschwindigkeit. Der einzige Unterschied ist die Verwendung.

@Taratan: Nein. Wenn du richtigen Zufall willst, musst du mt_rand nehmen. e_rand wurde gebaut, um eine etwas andere Verteilung zu bekommen, wo der Hauptteil mehr in der Mitte liegt, die extreme also nur selten vorkommen.

Autor:  MySql [ Di 12 Feb, 2008 19:55 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Eliwood hat geschrieben:
MySql hat geschrieben:
Hm..

Ich würde lieber Single Quotes statt Double Quotes verwenden. (< PHP 5 /.1)
Daher die Single Quotes unter PHP 5 /.1 etwas schneller sind als Double Quotes, doch ab PHP 5 /.1 werden die Double Quotes wieder schneller... Warum auch immer.


Häh? Die Double-Quotes und die Single-Quotes sind nahezu gleich schnell. Egal, welche PHP-Version du hast. Das wenig, wo du mit Double-Quotes gewinnst, verlieren eh alle später wieder. Diese quotes sind nichtmal n' Bruchteil der Geschwindigkeit. Der einzige Unterschied ist die Verwendung.


Ich kann leider nur das wieder geben was ich mal gelesen habe. (+ Benchmarktest)

Sehen trotzdem schöner aus. :c)

Autor:  Taratan [ Mi 13 Feb, 2008 14:31 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

@Eliwood:

ui, vielen dank *__*
*nickz* nu hab ich das richtig verstanden, vielen vielen Dank :D
*freuz*

@MySql:
Hm *am kopf kratz* also ich denke dieser Bruchteil von sekunden ist mir persönlich etwas egal ^^°
Und was nun schöner ist, das ist sicher Geschmackssache ;)

Ich finde die Double Quotes 'schöner', soll heißen, dass ich da nicht so schnell ein Punkt oder ein Anführungszeichen vergessen kann und vor allem einfach drauflos schreiben kann ;)

*am kopf kratz* wobei, wenn ich so nachdenke ... mein php buch hatte bei variablen auch immer die Single Quotes benutzt ... wurde aber nie wirklich erklärt weshalb *grübel*

Nun ja ;)
Ich möchte euch nochmals danken für eure große Hilfe :D

Autor:  Tiara [ Di 18 Mär, 2008 19:31 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Ist ein nettes Special und gefällt mir auch sehr gut.
Aber mir ist jetzt erst aufgefallen, dass wenn man dem Gesang nicht folgen möchte und zurück in den Wald geht, dass man dann nicht gleich weiter Kämpfen kann. Man muss erst den Wald verlassen und erneut betreten.
Könnt ihr mich vielleicht weiterhelfen und sagen, wodran das liegt?

Autor:  Drazaar [ Mi 19 Mär, 2008 01:59 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

ändere
PHP:
case "leav":
output ("`n`n`2Du schaust nocheinmal auf den Weg vor dich, schüttelst dann aber den Kopf.");
output ("`n'`&Solche Dinge bringen in der Regel doch nur Pech', `2denkst du dir und gehst wieder deinem Weg. Ab und zu erklingt das Lied noch in deinen Ohren, doch als du dich weit genug entfernt hast, ist auch diese Verschwunden ...");
break;


in
PHP:
case "leav":
output ("`n`n`2Du schaust nocheinmal auf den Weg vor dich, schüttelst dann aber den Kopf.");
output ("`n'`&Solche Dinge bringen in der Regel doch nur Pech', `2denkst du dir und gehst wieder deinem Weg. Ab und zu erklingt das Lied noch in deinen Ohren, doch als du dich weit genug entfernt hast, ist auch diese Verschwunden ...");
$session['user']['specialinc'] = '';
break;


Dann müsste es korrekt funktionieren.

Autor:  dragonslayer [ Mi 19 Mär, 2008 11:12 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Ich bin nochmal drüber, hab ein paar unnötig doppelte Ausgaben entfernt, outputs ersetzt und zwei Schreibfehler entfernt.
Ansonsten find ich das ein nettes Special, danke!
$this->bbcode_second_pass_code('', '
<?php
/**
* @desc Triff im Wald auf eine Sirene die dich beschenkt
* @filesource sirene.php
* @author Taratan (Kargo)
*/

if (! isset ( $session ))
{
exit ();
}

$session ['user'] ['specialinc'] = basename ( __FILE__ );
$str_output = '';

switch ( $_GET ['op'])
{
case "" :
$str_output .= "`#Während du durch den Wald streifst, nimmst du plötzlich eine traumhafte Melodie war.
`nDu horchst hin und stellst fest, dass der Ursprung der Melodie nicht weit von dir entfernt sein kann.
`nWirst du ihr folgen?";

addnav ( "Folge der Melodie", "forest.php?op=follow" );
addnav ( "Zurück in den Wald", "forest.php?op=leave" );
break;

case "follow" :
$str_output .= "#Du entscheidest dich der Melodie zu folgen. Somit marschierst du mit geschlossenen Augen durch den Wald, bemüht die Melodie nicht zu verlieren ...";
$rand = mt_rand ( 1, 10 );
switch ( $rand)
{
case 1 :
case 2 :
case 3 :
case 4 :
$str_output .= "`n`n`2Zahlreiche Stunden läufst du durch den Wald, bis die Melodie urplötzlich verklingt. Als du dich in diesem Moment umschaust, stellst du fest, dass du dich komplett im Wald verlaufen hast.
`nWährend du einen Weg zurück suchst, ärgerst du dich über dich selbst. In der verstrichenen Zeit hättest du problemlos Monster töten können.";
$session ['user'] ['turns'] = max ( 0, $session ['user'] ['turns'] - 2 );
break;
case 5 :
case 6 :
case 7 :
$str_output .= "`n`n`7Bis du plötzlich merkst, dass unter deinem rechten Fuß kein Boden mehr ist! Du stürzt in eine Grube und während du fällst wird dir bewusst, dass du diesen Fall nicht überleben wirst. Am Boden befinden sich zahlreiche Waffen anderer Opfer, die in diese Grube fielen und eben diese werden dich töten ...
`nDu verlierst all dein Gold und 5% deiner Erfahrung!";

$session ['user'] ['alive'] = false;
$session ['user'] ['hitpoints'] = 0;
$session ['user'] ['gold'] = 0;
$session ['user'] ['experience'] *= 0.95;
addnav ( "Tägliche News", "news.php" );

addnews ( "`&" . $session ['user'] ['name'] . "`7 starb, als " . ($session ['user'] ['sex'] == 0 ? "er" : "sie") . " sich im Gesang der Sirene verlor!" );
$session ['user'] ['specialinc'] = '';

break;
case 8 :
case 9 :
case 10 :
$str_output .= "`n`n`#Bis die Melodie plötzlich klarer denn je ist. Langsam öffnest du deine Augen und erblickst einen kleinen See inmitte einer Lichtung. Darin ragt ein Fels hervor und eine bezaubernde Sirene sitzt auf ihm und singt ihr Lied.
`nMit bedachtem Schritt näherst du dich ihr und als du den Rand des Sees erreicht hast, erblickst du im Wasser einen Lederbeutel.
`nLeicht zögerlich schaust du zum Beutel und wieder hoch zur Sirene. Diese singt unaufhörlich ihr Lied weiter, ein ermutigendes Lied. Zur selben Zeit drängt dich eine Stimme in deinem Kopf dazu, dieses Geschenk endlich anzunehmen.";

addnav ( "Nimm den Beutel", "forest.php?op=take" );
break;
}
break;

case "take" :
$str_output .= "`n`n`#Vorsichtig greifst du ins Wasser und öffnest anschließend den Beutel ...";
$rand_beutel = e_rand ( 1, 3 );
switch ( $rand_beutel)
{
case 1 :
$gold = e_rand ( $session ['user'] ['level'] * 35, $session ['user'] ['level'] * 85 );
$str_output .= "`n`n`#doch du magst deinen Augen nicht trauen. Darin befinden sich `^$gold Gold`#!. `n Erfreut über dieses Geschenk verneigst du dich und kehrst wieder zurück in den Wald, keinen Gedanken daran verschwendend, woher das Gold stammt. Als du dir den Beutel auf dem Rückweg nocheinmal genauer ansiehst, bemerkst du noch einen Zettel darin ...";
$session ['user'] ['gold'] += $gold;
break;
case 2 :
$gems = e_rand ( 1, 4 );
$str_output .= "`n`n`#doch du kannst deinen Augen nicht glauben. Darin befinden sich `^$gems Edelsteine`#!. `n Erfreut über dieses Geschenk verneigst du dich und kehrst wieder zurück. Keinen Gedanken daran verschwendend, woher diese Edelsteine stammen. Als du dir den Beutel auf dem Rückweg nocheinmal genauer ansiehst, bemerkst du noch einen Zettel darin ...";
$session ['user'] ['gems'] += $gems;
break;
case 3 :
$str_output .= "`n`n`#doch du kannst deinen Augen nicht glauben. Ein glitzerndes Pulver ist in die Höhe geschossen und lässt die Luft schimmern. Es ist ein wunderbarer Anblick! `%Als du anschließend in dein Spiegelbild im Wasser schaust, bemerkt du, dass auch du dich verschönert hast!`# Als du dir den Beutel auf dem Rückweg nocheinmal genauer betrachtest, findest du noch einen Zettel darin ...";
$session ['user'] ['charm'] += 2;

break;
}
$str_output .= "`n`QDu hattest Glück zu überleben, so erhielst du das Geschenk der Toten. Trotzdem danke ich dir für deinen Besuch ... Lebe wohl!";
addnews ( "`&" . $session ['user'] ['name'] . "`# wurde von der Sirene beschenkt!" );
break;
case "leave" :
$str_output .= "`n`n`2Du schaust noch einmal auf den Weg vor dir, schüttelst dann aber den Kopf.
`n'`&Solche Dinge bringen in der Regel doch nur Pech', `2denkst du dir und gehst wieder deines Weges. Ab und zu erklingt das Lied noch in deinen Ohren, doch als du dich weit genug entfernt hast, ist auch diese Verschwunden ...";
$session ['user'] ['specialinc'] = '';
break;
}
output($str_output);
?>
')

Autor:  Drazaar [ Mi 19 Mär, 2008 14:47 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Dragonslayers Scripte sind immer so übersichtlich. Gratz^^

Werd das Special auch einbauen :)

MfG Draz

Autor:  Tiara [ Mi 19 Mär, 2008 19:07 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Zitat:
........
Dann müsste es korrekt funktionieren.


Perfekt. Vielen lieben dank.

Autor:  Taratan [ Sa 05 Apr, 2008 21:17 ]
Betreff des Beitrags:  Re: Anfängerspezial - Sirene

Vielen dank für die Verbesserungen, Zum Download gibt es jetzt einfach die Version von Dragonslayer mit kleienr Danksagung an ihn =)

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