anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 12 Jun, 2025 08:05

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Item-Probleme
BeitragVerfasst: Mo 05 Mär, 2007 21:13 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Mo 25 Dez, 2006 20:57
Beiträge: 64
LoGD: www.avalon-logd.de.vu
Hallo zusammen,

ich hab folgendes Prob: bei einem neuen Laden, werden alle Items mit einer Benutzer-ID versehen, wenn sie gekauft werden. Also sie können nur einmal gekauft werden von einer Person. Wie krieg ich das hin, dass jeder die Gegenstände beliebig oft kaufen kann?

Hier der Code:
[php]<?php
// Amroth der Krämer
// http://www.fargoth.de
// Idee: Belkelel
// Umsetzung und Modifikation: Erinyen
// Base: Aeki der Wanderhändler

require_once "common.php";
page_header("`+Amroth`qs Krämerladen");

if ($_GET['op']=="buy")
{
if (!$_GET['id'])
{
$sorti=($_GET['sorti']?"$_GET[sorti]":"class DESC, name");
output("`qDu betrittst das große große Krämerladen, in dem dich gleich ein kleiner leicht genervter Zwerg namens `+Amroth`qbegrüßt und dir versucht gleich ein paar Kleinigkeiten aufzuschwatzen, die dir stark überteuert erscheinen und du dich erst einmal in ruhe in seinem Geschäft umzusehen beginnst… ");


$ppp=25;

if (!$_GET['limit'])
{
$page=0;
}else
{
$page=(int)$_GET['limit'];
addnav("Vorherige Waren","kraemer.php?op=buy&sorti=$sorti&limit=".($page-1));
}
$limit="".($page*$ppp).",".($ppp+1);

$sql="SELECT * FROM items WHERE owner=0 AND kraemer = 1 ORDER BY $sorti ASC LIMIT $limit";
$result=db_query($sql);
if (db_num_rows($result)>$ppp) addnav("Mehr Waren","kraemer.php?op=buy&sorti=$sorti&limit=".($page+1));
if (db_num_rows($result))
{
output("<table border = '0' cellpadding='2' cellspacing='2'>",true);
output("<tr class='trhead'><td>`b<a href='kraemer.php?op=buy&sorti=name&limit={$_GET['limit']}'>Name</a>`b</td><td>`b<a href='kraemer.php?op=buy&sorti=".urlencode("gems ASC,gold")."&limit=$_GET[limit]'>Preis</a>`b</td><td>`b<a href='kraemer.php?op=buy&sorti=".urlencode("class DESC,name")."&limit=$_GET[limit]'>Klasse</a>`b</td></tr>",true);
addnav("","kraemer.php?op=buy&sorti=name&limit={$_GET['limit']}");
addnav("","kraemer.php?op=buy&sorti=".urlencode("gems ASC,gold")."&limit={$_GET['limit']}");
addnav("","kraemer.php?op=buy&sorti=".urlencode("class DESC,name")."&limit={$_GET['limit']}");
for ($i=0;$i<db_num_rows($result);$i++)
{
$row = db_fetch_assoc($result);
$bgcolor=($i%2==1?"trlight":"trdark");
output("<tr class='$bgcolor'><td><a href='kraemer.php?op=buy&id=$row[id]'>$row[name]</a></td><td align='right'>`^$row[gold]`0 Gold, `#$row[gems]`0 Edelsteine</td><td>{$row['class']}</td></tr><tr class='$bgcolor'><td colspan='3'>$row[description]</td></tr>",true);
addnav("","kraemer.php?op=buy&id={$row['id']}");
}
output("</table>",true);

}
else
{
output("`+Amroth`qhat heute schon ein gutes Geschäft gemacht hat, will er sich leider nicht von seinen verbliebenen Sachen trennen. Enttäuscht schlenderst du zurück zum Dorfplatz.");
}
}
else
{
$sql="SELECT * FROM items WHERE id={$_GET['id']}";
$result=db_query($sql);
$row = db_fetch_assoc($result);
if ($session['user']['gems']<$row['gems'] || $session['user']['gold']<$row['gold'])
{
output("`qDas kannst du dir nicht leisten. `+Amroth`q schüttelt nur traurig den Kopf und verstaut $row[name] wieder in einem der Regale.");
addnav("Weiter umschauen","kraemer.php?op=buy");
}
else if (db_num_rows(db_query("SELECT id FROM items WHERE name='$row[name]' AND owner=".$session['user']['acctid']." AND class='kraemer'"))>0)
{
output("`qDu hast ".$row['name']."`q schon. Du überlegst, ob sich eine Neuanschaffung wirklich lohnt. Allerdings müsstest du dazu auch erst den alten Krempel verkaufen.");
addnav("Weiter umschauen","kraemer.php?op=buy");
}
else
{
output("`+Amroth`q reibt sich die Hände und übergibt dir $row[name], während du ".($row[gold]?"`^$row[gold] `qGold":"")." ".($row[gems]?"`#$row[gems]`q Edelsteine":"")." abzählst. ");

addnav("Mehr kaufen","kraemer.php?op=buy");
$sql="UPDATE items SET owner={$session['user']['acctid']} WHERE id={$_GET['id']}";


$session['user']['gold']-=$row['gold'];
$session['user']['gems']-=$row['gems'];
db_query($sql);
}
}
addnav("Zurück","kraemer.php");
addnav("Zurück zum Dorf","village.php");
}
else if ($_GET['op']=="sell")
{
if (!$_GET['id'])
{
output("`+Amroth`q begutachtet deinen Besitz. Mit dem geübten Auge eines Kenners sortiert er die Dinge aus, die ihn interessieren würden und nennt dir einen Preis dafür.`n`n");
$sql="SELECT * FROM items WHERE owner=".$session['user']['acctid']." AND kraemer = 1";
$result=db_query($sql);
if (db_num_rows($result))
{
output("<table border='0' cellpadding='0'>",true);
output("<tr class='trhead'><td>`bName`b</td><td>`bPreis`b</td></tr>",true);
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$bgcolor=($i%2==1?"trlight":"trdark");
output("<tr class='$bgcolor'><td><a href='kraemer.php?op=sell&id=$row[id]'>$row[name]</a></td><td align='right'>`^$row[gold]`0 Gold, `#$row[gems]`0 Edelsteine</td></tr><tr class='$bgcolor'><td colspan='2'>$row[description]</td></tr>",true);
addnav("","kraemer.php?op=sell&id={$row['id']}");
}
output("</table>",true);

}
else
{
output("Du hast aber nichts, was `+Amroth`q interessieren würde. Enttäuscht schlenderst du zurück zum Dorfplatz.");
}
}
else
{ // Hell Raiser
$sql="SELECT * FROM items WHERE id={$_GET['id']}";
$result=db_query($sql);
$row = db_fetch_assoc($result);
output("`qMit einem breiten und siegessicheren Grinsen gibt er dir die vereinbarten ".($row[gold]?"`^$row[gold] `qGold":"")." ".($row[gems]?"`#$row[gems]`q Edelsteine":"")." und schnappt sich $row[name]. ");
if ($row['class']=="Beute") output("Noch bevor du fragen kannst, wofür $row[name] wirklich zu gebrauchen ist, lässt der Krämer das Teil in einem seiner Regale verschwinden, grinst immer noch und fragt, ob du sonst noch etwas für ihn hast.");
addnav("Mehr verkaufen","kraemer.php?op=sell");
addnav("Mehr verkaufen","kraemer.php?op=sell");
$sql="UPDATE items SET owner=0 WHERE id={$_GET['id']}";


$session['user']['gold']+=$row['gold'];
$session['user']['gems']+=$row['gems'];
db_query($sql);
}
addnav("Zurück zum Dorf","village.php");
}
else
{

output("`qDu betrittst das große große Krämerladen, in dem dich gleich ein kleiner leicht genervter Zwerg namens `+Amroth`qbegrüßt und dir versucht gleich ein paar Kleinigkeiten aufzuschwatzen, die dir stark überteuert erscheinen und du dich erst einmal in ruhe in seinem Geschäft umzusehen beginnst… ");

addnav("Im Laden umsehen","kraemer.php?op=buy");
addnav("Etwas verkaufen","kraemer.php?op=sell");
addnav("Zurück zum Dorf","village.php");
}
page_footer();

?>[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 05 Mär, 2007 21:23 
Offline
Held
Held

Registriert: Sa 18 Feb, 2006 19:07
Beiträge: 243
Nimm diese Stelle aus deinem Script:

[php] else if (db_num_rows(db_query("SELECT id FROM items WHERE name='$row[name]' AND owner=".$session['user']['acctid']." AND class='kraemer'"))>0)
{
output("`qDu hast ".$row['name']."`q schon. Du überlegst, ob sich eine Neuanschaffung wirklich lohnt. Allerdings müsstest du dazu auch erst den alten Krempel verkaufen.");
addnav("Weiter umschauen","kraemer.php?op=buy");
} [/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 05 Mär, 2007 21:40 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Mo 25 Dez, 2006 20:57
Beiträge: 64
LoGD: www.avalon-logd.de.vu
hat leider nicht geklappt das item verschwindet nach wie vor aus dem sortiment, wenn ichs gekauft hab


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 05 Mär, 2007 21:59 
Offline
Held
Held

Registriert: Sa 18 Feb, 2006 19:07
Beiträge: 243
Gut .. hab da ein paar Fragen:

1. Die Items sind dann für alle weg oder nur für dich?
2. Klasse = kraemer .. hast du auch eine kraemer.prot? Also die Items vorher als Standard definiert damit man sie kaufen kann? Oder kann man nur Items kaufen, die man vorher verkauft hat? (Frage 1 wäre damit dann auch geklärt)

3. Du fragst vorher ab ob das Item owner = 0 und kraemer = 1 ist, ist diese kraemer denn in deiner Item-Tabelle drin?

Ja also erstmal das um zu wissen, was du eigentlich von deinem Krämer willst


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 05 Mär, 2007 23:01 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Dein Problem besteht darin, dass du keine Klasse (Ware) zugeordnet hast. Es werden also die Items aufgelistet die eig. als Klasse (Ware) dienen, und werden anschließend beim Kauf einfach auf den jeweilgen Käufer überschrieben. Und somit kommt es dazu, dass die Items verschwinden. D.h., solltest du eine Klasse (Ware) zuordnen und die Items beim Kauf einfach Separat in einer weiteren Klasse ordnen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 06 Mär, 2007 07:48 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Mo 25 Dez, 2006 20:57
Beiträge: 64
LoGD: www.avalon-logd.de.vu
mal dumm frag, da newbie :D wie stell ich das an?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 06 Mär, 2007 09:10 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Nenne die Items die Verkauft werden sollen, Verkauf.Prot. und die beim Kauf nutzt du die Item Klasse Verkauf. Aber das ist jedem selbst überlassen... =)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 06 Mär, 2007 17:16 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Sprich: Erzeuge eine Kopie des Items (am besten per INSERT) und ordne diesem als owner deann einfach den Besitzer zu.. ist doch bei Aeki nicht anders...

_________________
Mehr oder minder inaktiv


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 16 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