anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 19 Apr, 2024 21:14

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa 25 Sep, 2004 12:09 
Offline
Meister
Meister

Registriert: Sa 25 Sep, 2004 11:49
Beiträge: 337
Wohnort: Irgendwo im Sauerland
LoGD: http://www.rulina.de/logd/source.php
Also hi erst mal ...
Ich bringe mir grade php selber bei mit hilfe von Hadriel und Fly...
Aber bei dieser Source können mir die beiden den Fehler net mehr sagen... ist erst mein zweiter versuch beim ersten habe ich nur ein wenig von einer bestehenden umgeschrieben...

hier der Fehler taucht auf:
[Quote]Warning: main(special/altefrau.php): failed to open stream: No such file or directory in /home/www/web182/html/logd/forest.php on line 31

Warning: main(special/altefrau.php): failed to open stream: No such file or directory in /home/www/web182/html/logd/forest.php on line 31

Warning: main(): Failed opening 'special/altefrau.php' for inclusion (include_path='.:/usr/share/php') in /home/www/web182/html/logd/forest.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web182/html/logd/forest.php:31) in /home/www/web182/html/logd/common.php on line 61 [/qoute]

und hier ist mal der Code:
[php]<?php
/* Scriptet by °*Amerilion*° comments to http://www.steffenmischnick@gmx.de
special THX to Hadirel http://www.hadirelnet.ch and to FLY */

require_once "common.php";
if (!isset($session)) exit();
page_header("Alte Frau");
$min=e_rand(1,2);
$ming=e_rand(200,750);
$minga=e_rand(2000,2500,3000) ;
if($_GET[op]==""||$_GET[op]=="search"){
output("Während du den Wald durchziehst endeckst neben einen kleinen Bach");
output("Ein seltsam windschief Haus welches aus groben Steinen erbaut wurde");
output("die langsam von Moos bedeckt wird. du überlegst noch ob du hineingehen");
output("sollst als sich die Morsche Holztür knarend öffnet. Du blickst in das");
output("runzelige Geschicht einer alten Frau.");
output("`#Hörst du mir bitte mal zu?") ;
output("Nun stehst du vor der Wahl ihr weiter zuzuhören oder aber weiterzugehen") ;
addnav("Zuhören","forest.php?op=Zuhoeren");
addnav("Weitergehen","forest.php?op=Weitergehen");
$session[user][specialinc]="altefrau.php"; }

if($_GET[op]=="Weitergehen"){
output("Du stehst vor der Wahl nach links oder nach rechst zu gehen");
$session[user][specialinc]="altefrau.php";
addnav("Rechts","forest.php?op=Rechts");
addnav("Links","forest.php?op=Links");}


if($_GET[op]=="Rechts"){
$min=e_rand(1,3);
$ming=e_rand(200,750);
switch(e_rand(1,2,3)){
case 1:
$session[user][turns]-=$min;
break;
case 2:
$session[user][gold]-=$ming;
$session[user][turns]-=$min;
output("Du gehst nach rechts und fällst über einen Stein.Dabei verlierst du");
output("etwas Gold und liegst einige Zeit auf den Boden.");
break;
case 3:
$session[user][gems]+=$min;
$session[user][turns]-=$min;
output("Du findest einen kleinen Beutel mit kostbaren Edelsteinen") ;
break;}
}

if($_GET[op]=="Links"){
$min=e_rand(1,3);
$ming=e_rand(200,750);
switch(e_rand(1,3)){

case 1:
$session[user][turns]-=$min;
break;
case 2:
$session[user][gold]+=$ming;
$session[user][turns]-=$min;
output("Du gehst nach rechts und fällst über einen Stein.Dabei findest du");
output("etwas Gold aud den Boden.");
break;
case 3:
$session[user][gems]-=$min;
$session[user][turns]-=$min;
output("Du bemerkst das dir ein paar Edelsteine verlorens hast");
break;}
}

if($_GET[op]=="Zuhoeren"){
output("`#Wie schön sonst rennen viele aus Angst das ich eine Hexe bin weg...`n`n`^");
switch(e_rand(1,3)){
case 1:
case 2:
output("`#und es ist dein Pech das du das nicht getan hast! `~R`4a`~b`4a`~n`4t`~i`4c`~u`4s!!!") ;
output("Ein Blitz rast aus der Handfläche der Frau auf dich zu und tötet dich!") ;
$session[user][alive]=false;
$session[user][hitpoints]=0;
$session[user][gold]=0;
$session[user][experience]*0.97;
addnews($session[user][name]." starb durch die Hand einer alten Frau");
addnav("Tägliche News","news.php");
break;
case 3:
output("`#dabei suche ich nur jemand der meinen Abenteuer lauscht.");
output("Wirst du ihr zuhören oder in den Wald zurückkehren?");
$session[user][specialinc]="altefrau.php";
addnav("Lauschen","forest.php?op=Weiter");
addnav("Zurück","forest.php?op=Weitergehen");
break;}
}

if($_GET[op]=="Weiter"){
$min=e_rand(1,2);

$minga=e_rand(2000,2500,3000) ;
output("`#Wie schön tritt bitte ein.");
output("Du verbringst eine Zeit bei der Frau in der gemütlichen Hütte und ");
output("lernst etwas. Außerdem gibt sie dir etwas ihrer Reichtümer.") ;
$session[user][gold]+=$minga;
$session[user][turns]-=$min;
$session[user][experience]*1.05;
addnews($session[user][name]." bekam Reichtum und Wissen im Wald");
$session[user][specialinc]="";
addnav("Zum Wald","forest.php") ;
}
?> [/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 25 Sep, 2004 12:55 
Offline
Profi
Profi

Registriert: Mo 12 Jul, 2004 21:48
Beiträge: 141
wenn ich das richtig sehe dann sieht das so aus als ob du kein special verzeichniss hast.erstelle eins pack diese datei dort hinein und dann dürfte das gehen


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 25 Sep, 2004 15:02 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1604
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Die Fehlermeldung konnte ich nicht nachvollziehen, schätze aber, dass altefrau.php nicht ins richtige Verzeichnis (special) hochgeladen wurde (Failed opening 'special/altefrau.php' for inclusion (include_path='.:/usr/share/php')), oder altefrau.php irgendwo falsch eingebunden wurde. (Specials lassen sich nicht einfach so irgendwo verlinken.)

Ansonsten hab ich noch ein paar Kleinigkeiten gefunden:
  • Finde und lösche:
    require_once "common.php";

    Die common.php wird bei Specials bereits durch forest.php eingebunden.
  • Finde:
    switch(e_rand(1,2,3)){

    Ersetze es durch:
    switch(e_rand(1,3)){

    Finde:
    $minga=e_rand(2000,2500,3000) ;

    Die Funktion e_rand() erlaubt nur 2 Parameter. Wenn du zufällig zwischen 2000, 2500 und 3000 wählen lassen willst, solltest du folgende Zeile verwenden:

    $minga=500*e_rand(4,6);
  • Bei op="Rechts" erscheint im case 1 kein erklärender Text. Das selbe gilt für case 1 bei op="Links".
  • Allgemein fehlt überall, wo etwas abgezogen wird, eine Abfrage, ob so viel überhaupt abgezogen werden kann.
  • Außerdem sollte das nochmal jemand gründlich auf Rechtschreibfehler durchsuchen ;)

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 25 Sep, 2004 16:03 
Zitat:
Allgemein fehlt überall, wo etwas abgezogen wird, eine Abfrage, ob so viel überhaupt abgezogen werden kann.


Frage... wie mach ich solche Abfragen??? Hadi und Fly haben mich gar net drauf hingewiesen...


Zitat:
Finde und lösche:
require_once "common.php";

Die common.php wird bei Specials bereits durch forest.php eingebunden.

Dafür muss ich Hadi haun :lol: der hatt mir gesagt das die immer rein muss ^^


Ach die Rechtscheibfehler sind beabsichtig ;-) so merk ich ob ihr das gut gelesen habt :D ...

Ich habe bisher kein eigenes LOGD weil ich das mit Apache noch net richtig hinbekommen habe und kann deshalb auch net richtig üben... wie gesagt das ist erst mein zweiter versich


Nach oben
  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 25 Sep, 2004 19:42 
Offline
Lehrling
Lehrling

Registriert: Fr 24 Sep, 2004 21:16
Beiträge: 28
Anonymous hat geschrieben:
Zitat:
Allgemein fehlt überall, wo etwas abgezogen wird, eine Abfrage, ob so viel überhaupt abgezogen werden kann.


Frage... wie mach ich solche Abfragen??? Hadi und Fly haben mich gar net drauf hingewiesen...


8) Glaub ich Dir, die machen das ja auch nie.... :D


Beispiele für Hitpoints:

$this->bbcode_second_pass_code('', 'if ( $session['user']['hitpoints'] > 5 ) {
$session['user']['hitpoints']-=5;
output("Ich zieh Dir 5 ab, weil Du mehr als 5 hattest.");
}')

oder

$this->bbcode_second_pass_code('', 'if ( $session['user']['hitpoints'] > 5 ) {
$session['user']['hitpoints']-=5;
output("Ich zieh Dir 5 ab, weil Du mehr als 5 hattest.");
} else {
$session['user']['hitpoints']=1;
output("Du hattest 1 bis 5 LP, jetzt nur noch 1.");
}')

oder

$this->bbcode_second_pass_code('', 'if ( $session['user']['hitpoints'] > 5 ) {
$session['user']['hitpoints']-=5;
output("Ich zieh Dir 5 ab, weil Du mehr als 5 hattest.");
}
elseif ( $session['user']['hitpoints'] == 1 ) {
output("Deinen LP kannste behalten!");
}
else {
$session['user']['hitpoints']=1;
output("Du hattest 2 bis 5 LP, jetzt nur noch 1.");
}')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 25 Sep, 2004 20:21 
Offline
Meister
Meister

Registriert: Sa 25 Sep, 2004 11:49
Beiträge: 337
Wohnort: Irgendwo im Sauerland
LoGD: http://www.rulina.de/logd/source.php
Ne frage:
Ich will das so haben das wenn der User mehr Gold hatt als die Variable $min er $min abgezogen bekommt is der code so ???

[php]if ( $session['user']['gold'] > $min ) {
$session['user']['gold']-=$min;
output("Du verlierst ein Teil deine Goldes.");
}[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 25 Sep, 2004 21:01 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
jap konkret korrekt ;)



sonst geht auch:

$this->bbcode_second_pass_code('', '
if ( $session['user']['gold'] >=$min ) {
$session['user']['gold']-=$min;
output("Du verlierst ein Teil deine Goldes.");
}
')
mfg

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 25 Sep, 2004 22:51 
Offline
Newbie

Registriert: So 19 Sep, 2004 12:44
Beiträge: 8
Würde ich aber anders machen ... wenn ein Spieler weniger als $min hat, dann verliert er halt wenigstens alles was er hat *gemeinbin*

[php]
if ( $session['user']['gold'] >= $min ) {
$session['user']['gold']-=$min;
output("Du verlierst ein Teil deine Goldes.");
} else {
$session['user']['gold'] = 0;
output("Du verlierst alles Gold.");
}
[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Sep, 2004 10:06 
Offline
Meister
Meister

Registriert: Sa 25 Sep, 2004 11:49
Beiträge: 337
Wohnort: Irgendwo im Sauerland
LoGD: http://www.rulina.de/logd/source.php
Mhh also ich habe ja gesagt das ich ein nOOb bin... ich bräuchte noch ein paar erklärung für Befehle die ich zwar verwende aber nicht weiß was genau sie bewirken und dann hätte ich noch ein paar fragen:

1.Was genau bewirkt
[php]e_rand(1,2)[/php]
bzw.
[php]e_rand(1,X)[/php] X=irgendeine andere Zahl

2.Wie ist das kann man in einen switch befehl noch ein switch befehl einbauen?

3.Apropos switch befehle... wie ist das wenn ich da 3 sachen habe und er eins wählen soll ???


mhhh denn rest den ich fragen wollte habe ich vergessen ^^ werde ich schreiben wenn er mir wieder einfällt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Sep, 2004 10:29 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
1) e_rand bedeutet, dass man zufällig aus X undX auswählt.

2) Jap das sollte gehn

3) Hmm wie meinst du das?

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Sep, 2004 10:35 
Offline
Meister
Meister

Registriert: Sa 25 Sep, 2004 11:49
Beiträge: 337
Wohnort: Irgendwo im Sauerland
LoGD: http://www.rulina.de/logd/source.php
Also bei der aphrodite.php steht da
[php] switch(e_rand(1,10)){ [/php]
und es sind dann 10 möglichkeiten gegeben... warum ist nur jede 2 beschriftet ???

und noch was was mir eingefallen ist
Wofür steht das `n`n`^ am ende eines outputs und wofür das `n am anfang eines outputs


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Sep, 2004 12:23 
Offline
Lehrling
Lehrling

Registriert: Fr 24 Sep, 2004 21:16
Beiträge: 28
Amerilion hat geschrieben:
Also bei der aphrodite.php steht da
[php] switch(e_rand(1,10)){ [/php]
und es sind dann 10 möglichkeiten gegeben...

stimmt.
Amerilion hat geschrieben:
warum ist nur jede 2 beschriftet ???

Hä? Hat diese Frage einen Zusammenhang mit switch? :???:


Amerilion hat geschrieben:
und noch was was mir eingefallen ist
Wofür steht das `n`n`^ am ende eines outputs und wofür das `n am anfang eines outputs

`n erzwingt eine nächste Zeile im Output.


Zum switch: Gerade einem noob schadet es wirklich nicht, mal im netz zu suchen.... google: php switch
Oder gleich mal in ein Manual gucken, z.B. http://de3.php.net/manual/de/control-structures.switch.php


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 26 Sep, 2004 12:41 
Offline
Newbie

Registriert: So 19 Sep, 2004 12:44
Beiträge: 8
Amerilion hat geschrieben:
Also bei der aphrodite.php steht da
[php] switch(e_rand(1,10)){ [/php]
und es sind dann 10 möglichkeiten gegeben... warum ist nur jede 2 beschriftet ???


Ok, einfache Antwort:

[php]
switch(e_rand(1,10)){
case 1:
case 2:
// Wenn Ergebnis 1 oder 2 dann ....
//Blabla Code
break;
case 3:
case 4:
// Wenn Ergebnis 3 oder 4 dann ....
//Blabla Code
break;
case 5:
// Wenn Ergebnis 5 dann ....
//Blabla Code
break;
case 6:
// Wenn Ergebnis 6 dann ....
//Blabla Code
break;
case 7:
case 8:
case 9:
case 10:
// Wenn Ergebnis 7,8,9 oder 10 dann ....
//Blabla Code
break;
}
[/php]

Der Scriptautor erhöht einfach für gewisse Ergebnisse die Chancen, sie zu kriegen.

Zitat:
und noch was was mir eingefallen ist
Wofür steht das `n`n`^ am ende eines outputs und wofür das `n am anfang eines outputs


Das heißt nichts anderes als "neue Zeile".

Gruß,
Gwydion

[EDIT] Gargamel war schneller ^^


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 62 Gäste


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:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum