LoGD Standardrelease steht hier zum Download zur Verfügung!
<?php
// 26052004
//
// The vendor Aeki sells furniture for houses and buys items found at beaten monsters in the forest.
// items.class for furniture prototypes must be 'Möbel.Prot'.
// items.class for bought furniture is set to 'Möbel' automatically.
// Use itemeditor.php in admin grotto to generate furniture prototyps and items.
// More classes will be added soon!
//
// Requires 'items' table first introduced with my houses mod and a few other modifications for
// inventory management and drop items.
// No installation instructions available so far. Sorry!!
//
// Vendor only appears on a view (game) days in village
// This is controlled by weather mod by Talisman
//
// by anpera (2004) while listening to music by 'The Sweet' ;)
/*
2024-02-15 aragon code-style, php8
*/
require_once "common.php";
page_header("Wanderhändler");
if ($_GET['op'] == "buy") { // Wig-Wam Bam
if (!$_GET['id']) {
output("`qStolz präsentiert dir der Händler `tAeki`q seinen Wagen."
. " Zu jedem der seltsamen Gegenstände, Artefakte und Zauber scheint er eine kleine Geschichte"
. " zu kennen. Dabei scheint er auffällig oft darauf ");
output("hinzuweisen, dass viele Leute, von denen er etwas gekauft hat, den wahren Wert dieser"
. " Dinge nicht zu kennen scheinen.`n ");
$sql = "SELECT * FROM items WHERE owner=0 AND (class='Schmuck' OR class='Möbel.Prot') ORDER BY class ASC";
$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='vendor.php?op=buy&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("", "vendor.php?op=buy&id={$row['id']}");
}
output("</table>", true);
} else {
output("`qDa `tAeki `qheute 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 { // Alexander Graham Bell (what? no, he's not the author of this part. It's the name of a song by The Sweet)
$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("`qHoppla! Das kannst du dir nicht leisten. Der Händler schüttelt nur traurig den Kopf"
. " und verstaut {$row['name']} wieder in seinem Wagen.");
addnav("Zurück", "vendor.php?op=buy");
} elseif ($row['class'] == "Möbel.Prot" && $session['user']['housekey'] <= 0) {
output("`q{$row['name']}`q gefällt dir wirklich gut, aber da du kein eigenes Haus besitzt,"
. " kannst du mit Möbeln auch nichts anfangen.");
addnav("Zurück", "vendor.php?op=buy");
} elseif (
db_num_rows(db_query("SELECT id FROM items
WHERE name='{$row['name']}' AND owner=" . $session['user']['acctid'] . " AND class='Möbel'")) > 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("Zurück", "vendor.php?op=buy");
} else {
output("`qDer Händler 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. ");
if ($row['class'] == "Möbel.Prot") {
output(" Er ist dir noch kurz beim Transport behilflich, bevor er sich seinem nächsten Kunden zuwendet.");
}
addnav("Mehr kaufen", "vendor.php?op=buy");
$sql = "UPDATE items SET owner=" . $session['user']['acctid'] . " WHERE id={$_GET['id']}";
// insert SQL für special classes here to reset their values
if ($row['class'] == "Möbel.Prot") {
$sql = "INSERT INTO items(name,class,owner,value1,gold,gems,description)
VALUES ('{$row['name']}','Möbel'," . $session['user']['acctid'] . "," . $session['user']['house'] . ",0,"
. (round($row['gems'] / 2)) . ",'{$row['description']}')";
}
$session['user']['gold'] -= $row['gold'];
$session['user']['gems'] -= $row['gems'];
db_query($sql);
}
}
addnav("Zurück", "vendor.php");
addnav("Zurück zum Dorf", "village.php");
} elseif ($_GET['op'] == "sell") { // Ballroom Blitz
if (!$_GET['id']) {
output("`qDer Händler 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 (gold>0 OR gems>0)";
$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='vendor.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("", "vendor.php?op=sell&id={$row['id']}");
}
output("</table>", true);
} else {
output("Du hast aber nichts, was `tAeki`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 Händler das Teil in seinem Wagen verschwinden, grinst immer noch und fragt,"
. " ob du sonst noch etwas für ihn hast.");
}
addnav("Mehr verkaufen", "vendor.php?op=sell");
$sql = "UPDATE items SET owner=0 WHERE id={$_GET['id']}";
// insert SQL für special classes here to reset their values
if ($row['class'] == "Möbel") {
$sql = "DELETE FROM items WHERE id={$_GET['id']}";
}
if ($row['class'] == "Beute") {
$sql = "DELETE FROM items 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 { // Teenage Rampage
checkday();
output("`qHeute ist der Wanderhändler `tAeki `qwieder im Dorf! Direkt vor `!MightyE`qs"
. " Waffenladen hat er seinen Wagen aufgebaut, was MightyE sichtlich missfällt. Da er aber ");
output(" selbst hin und wieder Handel mit ihm betreibt, läßt er ihn gewähren.`nNeugierig näherst"
. " du dich dem Wagen, um zu sehen, ob der Händler diesmal etwas Interessantes");
output(" für dich dabei hat. Vielleicht hast du aber auch etwas, das du ihm verkaufen kannst?`n");
addnav("Waren durchstöbern", "vendor.php?op=buy");
addnav("Etwas verkaufen", "vendor.php?op=sell");
addnav("Zurück zum Dorf", "village.php");
}
page_footer();
// reading source code can seriously damage your eyes! Well, at least it can take out the fun of a game...