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

Goldschmiede
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=1174
Seite 1 von 1

Autor:  Garlant [ Fr 25 Mär, 2005 12:38 ]
Betreff des Beitrags:  Goldschmiede

Ok, ich melde mich auch mal wieder. Diesmal mit nichts illegalem(glaube ich).
Ich habe mir einen kleinen Laden gebaut, der Schmuck mit Fähigkeiten verkauft(für 0.9.7). Soweit läuft dieser auch.
Nun mein Problem. Der Name meines Schmuckstückes wird nicht ausgegeben, den ich mir kaufe. Beim kauf wird er ausgegeben.
Jedoch bei den weiteren optionen nicht.
Bild
(vor dem Reinigen , nach dem kaufen fehlt der Name)

da ih nicht weiß wo der fehler ist, stelle ich lieber mal das ganze hier rein.oO
$this->bbcode_second_pass_code('', '
<?php
require_once "common.php";
page_header("Kyokos Goldschmiede");

$repaygold = round($playerschmuck['schmuckcostgold']*2/3,0);
$repaygems = round($playerschmuck['schmuckcostgems']*2/3,0);
$cleancost = $session[user][level]*20;

addnav("Zurück zum Dorf","village.php");
if ($session['user']['hasschmuck']>0 && $session[user][cleanschmuck]==0) addnav("r?{$playerschmuck['schmuck']} reinigen (`^$schmuckcost`0 Gold)","schmuck.php?op=clean");

if ($_GET[op]==""){
checkday();
output("`7Auf dem Dorfplatz hat ein neues Gebäude eröffnet Von diesem Gebäude siehst du eine Menge Qualm dir entgegenkommen kommen. Also du näher kommst, siehst du eine bezaubernde Dame Namens `%K`Ry`vo`Rk`%o`0.`n`n");
output("Du betrittst das Gebäude und siehst sofort diese vielen, wunderschönen Dinge liegen. Du siehst, wie die Elfe `%K`Ry`vo`Rk`%o`0`7 gerade etwas wegpackt, als du kommst.");
output("`&Entschuldigt,wie kann ich euch behilflich sein?`7 Du hörst diese Frage kaum und schaust wie gebannt auf deiese Schmuckstücke.");
}elseif($_GET['op']=="ansehen"){
$sql = "SELECT * FROM goldschmiede WHERE schmuckid='{$_GET['id']}'";
$result = db_query($sql);
if (db_num_rows($result)<=0){
output("`&Wir haben leider schon geschlossen.`7 Spricht die Elfe!");
}else{
output("`&Seht euch doch diese wunderschöne Ding an!`7 bezauberd dich die Elfe.`n`n");
$schmuck = db_fetch_assoc($result);
output("`7Schmuckstück: `&{$schmuck['schmuckname']}`n");
output("`7Beschreibung: `&{$schmuck['schmuckdesc']}`n");
output("`7Preis: `^{$schmuck['schmuckcostgold']}`& Gold, `%{$schmuck['schmuckcostgems']}`& Edelstein".($schmuck['schmuckcostgems']==1?"":"e")."`n");
output("`n");
addnav("Dieses wertvolle Objeckt kaufen","schmuck.php?op=kaufeschmuck&id={$schmuck['schmuckid']}");
}
}elseif($_GET['op']=='kaufeschmuck'){
$sql = "SELECT * FROM goldschmiede WHERE schmuckid='{$_GET['id']}'";
$result = db_query($sql);
if (db_num_rows($result)<=0){
output("`&Wir haben leider schon geschlossen. `7Spricht die Elfe!");
}else{
$schmuck = db_fetch_assoc($result);
if (
($session['user']['gold']+$repaygold) < $schmuck['schmuckcostgold']
||
($session['user']['gems']+$repaygems) < $schmuck['schmuckcostgems']
){
output("`7Kyoko schaut dich äußerst verirrt an. \"`&Ähm, was gläubst du eigentlich was uns die Herstellung von {$schmuck['schmuckname']} kostest? Die Herstelluing Von {$schmuck['schmuckname']} kostet uns `^{$schmuck['schmuckcostgold']}`& Gold und `%{$schmuck['schmuckcostgems']}`& Edelsteine. Also bezahle ordentlich!`7\"");
}else{
if ($session['user']['hasschmuck']>0){
output("`7Du übergibst dein {$playerschmuck['schmuckname']} und bezahlst den Preis für deinem neues Schmuckstück. Kyoko bringt dir dein `&{$schmuck['schmuckname']}`7!`n`n");
$session[user][reputation]--;
}else{
output("`7Du bezahlst den Preis für dein neues Schmuckstück und Kyoko bringt dein neues `&{$schmuck['schmuckname']}`7!`n`n");
}
$session['user']['hasschmuck']=$schmuck['schmuckid'];
$goldcost = $repaygold-$schmuck['schmuckcostgold'];
$session['user']['gold']+=$goldcost;
$gemcost = $repaygems-$schmuck['schmuckcostgems'];
$session['user']['gems']+=$gemcost;
debuglog(($goldcost <= 0?"gibt ":"bekommt ") . abs($goldcost) . " Gold und " . ($gemcost <= 0?"gibt ":"bekommt ") . abs($gemcost) . " gems als tausch des Schmuckstückes");
$session['bufflist']['schmuck']=unserialize($schmuck['schmuckbuff']);
$playerschmuck = $schmuck['schmuckid'];
$repaygold = round($playerschmuck['schmuckcostgold']*2/3,0);
$repaygems = round($playerschmuck['schmuckcostgems']*2/3,0);
}
}
}elseif($_GET['op']=='verkaufeschmuck'){
$session['user']['gold']+=$repaygold;
$session['user']['gems']+=$repaygems;
debuglog("bekommt $repaygold Gold und $repaygems Gems für das Schmuckstück");
unset($session['bufflist']['schmuck']);
$session['user']['hasschmuck']=0;
output("`7So schwer es dir auch fällt, dich von deinem {$playerschmuck['schmuckname']} zu trennen, tust du es doch. Nun scheinst du etwas zu vermissen.`n`n");
output("Aber in dem Moment, in dem du die ".($repaygold>0?"`^$repaygold`7 Gold ".($repaygems>0?" und ":""):"").($repaygems>0?"`%$repaygems`7 Edelsteine":"")." erblickst, fühlst du dich gleich ein wenig erleichtert.");
$session[user][reputation]-=2;
}elseif($_GET['op']=='clean'){
if ($session[user][gold]>=$cleancost) {
$buff = unserialize($playerschmuck['schmuckbuff']);
if ($session['bufflist']['schmuck']['rounds'] == $buff['rounds']) {
output("Dein {$playerschmuck['schmuckname']} ist noch sauber, daher brauchst du es nicht putzen lassen.");
}else if ($session['bufflist']['schmuck']['rounds'] > $buff['rounds']*.5) {
$cleancost=$cleancost/2;
output("Dein {$playerschmuck['schmuckname']} wird von Kyokos weichen Händen gesäubert. Als dein {$playerschmuck['schmuckname']} wieder glänzt hört sie auf. ");
output("Da aber dein {$playerschmuck['schmuckname']} nicht so schmutzig war, musst du nur die hälfte bezahlen. Du gibst Kyoko $cleancost Gold.");
$session[user][gold]-=$cleancost;
$session[user][reputation]--;
}else{
$session[user][gold]-=$cleancost;
output("Dein {$playerschmuck['schmuckname']} wird von Kyoko gründlich geputzt, bis es wieder richtig schön glänzt und funkelt.`n");
output("Dein {$playerschmuck['schmuckname']} ist vollständig gesäubert und poliert. Du gibst Kyoko ihr Gold $cleancost Gold.");
$session[user][reputation]--;
}
$session['bufflist']['schmuck']=$buff;
$session[user][cleanschmuck]=1;
} else {
output("`7Du hast nicht genug Gold dabei, um die Reinigung zu bezahlen. Kyoko weigert sich, dein Schmuckstück zu reinigen.");
}
}

$sql = "SELECT schmuckname,schmuckid,schmuckcategory FROM goldschmiede WHERE schmuckactive=1 ORDER BY schmuckcategory,schmuckcostgems,schmuckcostgold";
$result = db_query($sql);
$category="";
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
if ($category!=$row['schmuckcategory']){
addnav($row['schmuckcategory']);
$category = $row['schmuckcategory'];
}
addnav("Betrachte {$row['schmuckname']}`0","schmuck.php?op=ansehen&id={$row['schmuckid']}");
}
if ($session['user']['hasschmuck']>0){
output("`n`nKyoko bietet dir `^$repaygold`& Gold und `%$repaygems`& Edelsteine für dein {$playerschmuck['schmuckname']}.");
addnav("Sonstiges");
addnav("Verkaufe {$playerschmuck['schmuckname']}","schmuck.php?op=verkaufeschmuck");
}

page_footer();
?>')

Ich danke für Antworten.
Ehm, ja die Goldschmiede soll später noch etwas mehr können, aber das ist bisher nur ein Hirngespinst von mir. ...

Autor:  bibir [ Fr 25 Mär, 2005 22:29 ]
Betreff des Beitrags: 

[php]addnav("Zurück zum Dorf","village.php");
if ($session['user']['hasschmuck']>0 && $session[user][cleanschmuck]==0) addnav("r?{$playerschmuck['schmuck']} reinigen (`^$schmuckcost`0 Gold)","schmuck.php?op=clean"); [/php]

[php]
output("`7Schmuckstück: `&{$schmuck['schmuckname']}`n");
output("`7Beschreibung: `&{$schmuck['schmuckdesc']}`n");
output("`7Preis: `^{$schmuck['schmuckcostgold']}`& Gold, `%{$schmuck['schmuckcostgems']}`& Edelstein".($schmuck['schmuckcostgems']==1?"":"e")."`n");
output("`n"); [/php]

hm...versuch den ersten teil vllt. mal mit
[php]addnav("Zurück zum Dorf","village.php");
if ($session['user']['hasschmuck']>0 && $session[user][cleanschmuck]==0) addnav("r?{$playerschmuck['schmuckname']} reinigen (`^$schmuckcostgold`0 Gold)","schmuck.php?op=clean"); [/php]

wenn ich das auf die schnelle richtig gesehen habe, waren es falsche variablennamen...
du scheinst an die anderen im laufe der programmierung noch ein paar buchstaben angehaengt zu haben

Autor:  Garlant [ Sa 26 Mär, 2005 15:55 ]
Betreff des Beitrags: 

Ich danke dir, habe es jetzt berichtigt.
Jedoch löst dies mein problem noch nicht.
Ich glaube ich weiß wo der fehler ist.
$this->bbcode_second_pass_code('', '
$playerschmuck = $schmuck['schmuckid'];')

Das ist Zeile 58. Hier wird playerschmuck ja deffiniert.
Nur wird hier der Name nicht eingesetzt , so wie es erforderlich ist um ih an anderer Stelle wiededer aus zu geben.
Jetzt muss ich nurnoch rausbekommen wieso der Name des Schmuckstückes da nicht eingesetzt wird und übertragen.
Ich habe es mal mit $playerschmuck = $_GET_schmuckname['schmuckid']
versucht. Das aber bringt auch rein garnichts.
Überall wo $playerschmuck['schmuckname'] verwendet wird, wird der gegenstand nicht eingetragen.

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