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

Amulett der Macht - Remake
https://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=4853
Seite 1 von 2

Autor:  Garlant [ Di 31 Mär, 2009 11:00 ]
Betreff des Beitrags:  Amulett der Macht - Remake

Ich habe mich mal um eine meiner Erstveröffentlichungen gekümmert. - Amulett der Macht

- Special und Festungsgrotte wurden ein wenig aufgeräumt
- Unnötige Wächter-Tabelle herausgenommen.
- Abänderungen bei den Belohnungen
- Texte stellenweise überarbeitet

Evtl. ist die Berechnung der Wächterstärke noch abzuändern.

Installations-/Updateanleitung sind im Archiv zu finden.

Quelle

Viele grüße
Garlant

Dateianhänge:
amulett_der_macht.zip [9.36 KIB]
450-mal heruntergeladen

Autor:  Rikkarda [ Di 31 Mär, 2009 12:30 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

$this->bbcode_second_pass_code('', '$session['user']['charisma'] += $charme;')

da werden sich einige aber dann wundern^^

Autor:  Garlant [ Di 31 Mär, 2009 14:48 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Rikkarda hat geschrieben:
$this->bbcode_second_pass_code('', '$session['user']['charisma'] += $charme;')

da werden sich einige aber dann wundern^^

*kopfkratz* Wie kommt das nur da rein? Nunja. ... Es ist dann jetzt geändert.

Danke schön.

Garlant

Autor:  Linus [ Di 31 Mär, 2009 15:59 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Recht nett. Aber in der amulett.php fällt mit folgendes auf:$this->bbcode_second_pass_code('', ' if ($session['user']['hitpoints']<=0) {
output("`4Du bist `bTOT`b!!!`nDu verlierst glücklicherweise weder Gold noch Erfahrungspunkte.`nDu kannst morgen wieder kämpfen.");
addnav("Zu den Schatten","shades.php");
addnav("Zu den News","news.php");
addnews($session['user']['name']." `0starb mit dem Amulett der Macht in der Hand.");
}
')Da sollte noch ein $session['user']['alive']=false; hinein. Wer alive ist der ist nicht wirklich tot! ;)

Und in der Zeile 46 finde ich output(getsetting("hasamulett",0)."`n");. Soll das dort wirklich hin? Ich denke das war eher zum debuggen und darf raus.

EDIT:
festungsgrotte.php:
Zitat:
$session['user']['defence'] -= $session['user']['armordef'];
$session['user']['armordef'] ++;
$session['user']['defence']+=$session['user']['armordef'];
könnte man vereinfachen:
Zitat:
$session['user']['armordef'] ++;
$session['user']['defence'] ++;


Und beim verlorenen Kampf das gleiche: Der Tote stirbt nicht wirklich, oder sollte ich besser sagen nicht richtig? ;)

Autor:  Garlant [ Di 31 Mär, 2009 16:11 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Linus hat geschrieben:
Recht nett. Aber in der amulett.php fällt mit folgendes auf:$this->bbcode_second_pass_code('', ' if ($session['user']['hitpoints']<=0) {
output("`4Du bist `bTOT`b!!!`nDu verlierst glücklicherweise weder Gold noch Erfahrungspunkte.`nDu kannst morgen wieder kämpfen.");
addnav("Zu den Schatten","shades.php");
addnav("Zu den News","news.php");
addnews($session['user']['name']." `0starb mit dem Amulett der Macht in der Hand.");
}
')Da sollte noch ein $session['user']['alive']=false; hinein. Wer alive ist der ist nicht wirklich tot! ;)

Und in der Zeile 46 finde ich output(getsetting("hasamulett",0)."`n");. Soll das dort wirklich hin? Ich denke das war eher zum debuggen und darf raus.


Japp, das war zum debuggen.
Das andere hat dann wohl schon 2 Jahre überlebt und ist jetzt bereinigt.
Interessant dürfte auch sein, dass in der goldenegg.php der selbe Fehler existiert.

Danke, für deine Aufmerksamkeit.

Edit: Nein. In der Grotte stirbt der user richtig... schau mal Zeile 161

Autor:  Linus [ Di 31 Mär, 2009 16:29 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Garlant hat geschrieben:
Danke, für deine Aufmerksamkeit.
Bitte, gern geschehen^^

Garlant hat geschrieben:
Edit: Nein. In der Grotte stirbt der user richtig... schau mal Zeile 161

Upps ... sorry! Da war ich unaufmerksam, habs überlesen.

Autor:  Lunastra [ So 25 Okt, 2009 14:29 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

ich weiß das thema is schon recht alt, aber mir ist was aufgefallen oo
kp ob es wer anderes schon gemerkt hatte, aber für die nachwelt, die sichs einbaun XD

if ((int)$_GET['userid']==(int)getsetting("hasamulett",0)) savesetting("hasamulett",0);
$sql = "UPDATE items SET owner=0 WHERE owner=$_GET['userid']";
db_query($sql);

dieser teil in der Prefs.php musste geändert werden, denn bei mir kam dann eine Fehlermeldung
einfach zwischen das $_GET und ['userid'] ein leerzeichen machen, dann funktionierte es .-.

wollts nur anmerken
mfg lun

Autor:  Patzue [ So 25 Okt, 2009 14:46 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Hey.. Ich verwende das Addon zwar nicht.. aber.. eigentlich müsste es doch stimmen mit $_GET['userid'] und nicht $_GET ['userid'] denn wenn du in eine .php mehrere Orte einbindest z.b. oder in einem Special mehrere funktionen, machst du das ja auch mit $_GET['op'] ohne Leerzeichen oder täusche ich mich da grad?

Autor:  Lunastra [ So 25 Okt, 2009 15:59 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

ja eigentlich schon, und wenn ich es mit dem vom goldegg vergleiche steht es auch so da,
aber wenn ich des leerzeichen wieder wegnehme, kommt folgende meldung:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/lunari/prefs.php on line 22

würde dann

$this->bbcode_second_pass_code('', '21 - if ((int)$_GET['userid']==(int)getsetting("hasamulett",0)) savesetting("hasamulett",0);
22 - $sql = "UPDATE items SET owner=0 WHERE owner=$_GET ['userid']";
23 - db_query($sql);')

diese zeilen betreffen

Autor:  Patzue [ So 25 Okt, 2009 16:02 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Lunastra hat geschrieben:

$this->bbcode_second_pass_code('', '21 - if ((int)$_GET['userid']==(int)getsetting("hasamulett",0)) savesetting("hasamulett",0);
22 - $sql = "UPDATE items SET owner=0 WHERE owner=$_GET ['userid']";
23 - db_query($sql);')



Muss es in Zeile 22 nicht

22 - $sql = "UPDATE `items` SET owner=0 WHERE owner=$_GET['userid']";

heißen? sprich die `` um items?

Autor:  Auric [ So 25 Okt, 2009 16:03 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

PHP ignoriert im Normalfall whitespaces zwischen Variablennamen und Array-Index. Das Leerzeichen dürfte also rein gar nichts ändern.
Anders sieht es innerhalb von Strings aus: Wenn man in $this->bbcode_second_pass_code('', '$sql = "UPDATE items SET owner=0 WHERE owner=$_GET['userid']";') ein Leerzeichen setzt und so $this->bbcode_second_pass_code('', '$sql = "UPDATE items SET owner=0 WHERE owner=$_GET ['userid']";') Daraus macht, wird nur $_GET und nicht $_GET['userid'] als Variable interpretiert. Da $_GET aber normalerweise ein Array ist, sorgt das nur für Ärger.
Erschwerend kommt noch hinzu, dass die Singlequotes bei Variablenersetzungen inner halb von Strings nicht gesetzt werden sollten. Wer es also anständig haben will nutzt eine der folgenden Zeilen:
$this->bbcode_second_pass_code('', '$sql = "UPDATE items SET owner=0 WHERE owner=".$_GET['userid'];
// Oder
$sql = "UPDATE items SET owner=0 WHERE owner=$_GET[userid]";
// Oder
$sql = sprintf("UPDATE items SET owner=0 WHERE owner=%u",$_GET ['userid']);')

Also Vorsicht mit solchen Änderungen.

Edit: @Patzue: Das ist optional. Wenn man MySQL als Datenbank verwendet, kann man die Bezeichner von Feldern, Tabelle, Datenbanken etc in Backticks (`) einfassen. Muss man aber nicht und ist auch nicht SQL-Standard.

Autor:  Lunastra [ So 25 Okt, 2009 16:05 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

hmh verstehe, aber worin liegt der Fehler dann? :/

Autor:  Eliwood [ So 25 Okt, 2009 16:07 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

An den '' im String. Nimm eine von Aurics Versionen - und dann gehts. Als vierte Möglichkeit kannst du die Variable innerhalb des Strings auch mit {} ummanteln.

Autor:  Lunastra [ So 25 Okt, 2009 16:10 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

ah, gut okay jetzt klappts^^
ich hatte mir zwar die " schon überlegt, hatte da aber keine Ahnung wie ich sie ändern sollte, deshalb hab ich das eben rausgelassen XD"
okay danke für die hilfe^^

Autor:  Auric [ So 25 Okt, 2009 16:11 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Jop, die Single-Quotes müssen raus!
Wer will, kann es ja mal an folgender Testdatei probieren:
$this->bbcode_second_pass_code('', '<?php

$_GET['userid'] = 15;

$sql = "UPDATE items SET owner=0 WHERE owner=$_GET['userid']";
echo $sql;

echo "\n<br>\n";

$sql = "UPDATE items SET owner=0 WHERE owner=$_GET ['userid']";
echo $sql;

echo "\n<br>\n";

$sql = sprintf("UPDATE items SET owner=0 WHERE owner=%u",$_GET ['userid']); // Egal ob mit oder ohne Leerzeichen!
echo $sql;
?>')
Die erste Variante werfen bei mir folgenden Fehler:
Zitat:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /data/home/dom/Desktop/blub.php on line 5

Nimmt man sie raus, erscheint die folgende Ausgabe:
Zitat:
UPDATE items SET owner=0 WHERE owner=Array ['userid']
<br>
UPDATE items SET owner=0 WHERE owner=15

Autor:  Lunastra [ So 25 Okt, 2009 16:15 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

auric, die fehler meldung kam ja bei mir auch <<
deshalb fragt ich ja, weil darauf irgendwie noch keiner bisher angeschrieben hatte^^°
nunja, hab eine deiner Varianten probiert, es klappt, bin glücklich XDD

Autor:  Harthas [ So 25 Okt, 2009 17:35 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Was die Backticks (`) betrifft, habe ich allerdings etwas festgestellt.
Es scheint einige Tabellen-Namen zu geben, bei welchen man Sie nicht weglassen darf ( Ich meinte mich an ` user` zu erinnern).

Seltsamerweise erhielt ich jedes Mal einen Fehler, wenn ich sie nicht schrieb. Mit funktionierte es problemlos.

Autor:  Eliwood [ So 25 Okt, 2009 19:13 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Ja, reservierte Schlüsselwörter darf man natürlich nicht verwenden als Tabellennamen.

Autor:  Tanjak1710 [ Mi 28 Apr, 2010 18:00 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Hallo zusammen,

habe jetzt schon alles abgesucht, konnte aber leider nichts finden.

Es geht um das Amulett, welches nach dem man den Wächter
überwältigt hat und sich etwas ausgesucht hat, noch immer
bleibt.
Sprich , man kann so oft man will immer wieder in die Grotte.
Kann mir da jemand helfen, dass zu ändern ?


Liebe Grüße
Tanja

Autor:  Linus [ Mi 28 Apr, 2010 18:23 ]
Betreff des Beitrags:  Re: Amulett der Macht - Remake

Zitat:
Warning: show_source() has been disabled for security reasons in /var/www/web1181/html/logd/source.php on line 92


Helfen wird schwierig wenn man deine Sources nicht einsehen kann.

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