-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathvendor.php
133 lines (127 loc) · 8.29 KB
/
vendor.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php
// 24072004
// 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 few (game) days in village
// This is controlled by weather mod by Talisman
//
// by anpera (2004) while listening to music by 'The Sweet' ;)
require_once "common.php";
page_header("Wanderhändler");
if ($_GET[op]=="buy"){ // Wig-Wam Bam
if (!$_GET[id]){
$sorti=($_GET[sorti]?"$_GET[sorti]":"class DESC, name");
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 ");
$ppp=25; // Player Per Page to display
if (!$_GET[limit]){
$page=0;
}else{
$page=(int)$_GET[limit];
addnav("Vorherige Waren","vendor.php?op=buy&sorti=$sorti&limit=".($page-1));
}
$limit="".($page*$ppp).",".($ppp+1);
$sql="SELECT * FROM items WHERE owner=0 AND (class='Schmuck' OR class='Möbel.Prot' OR class='Beute') ORDER BY $sorti ASC LIMIT $limit";
$result=db_query($sql);
if (db_num_rows($result)>$ppp) addnav("Mehr Waren","vendor.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='vendor.php?op=buy&sorti=name&limit=$_GET[limit]'>Name</a>`b</td><td>`b<a href='vendor.php?op=buy&sorti=".urlencode("gems ASC,gold")."&limit=$_GET[limit]'>Preis</a>`b</td><td>`b<a href='vendor.php?op=buy&sorti=".urlencode("class DESC,name")."&limit=$_GET[limit]'>Klasse</a>`b</td></tr>",true);
addnav("","vendor.php?op=buy&sorti=name&limit=$_GET[limit]");
addnav("","vendor.php?op=buy&sorti=".urlencode("gems ASC,gold")."&limit=$_GET[limit]");
addnav("","vendor.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='vendor.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("","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("Etwas anderes kaufen","vendor.php?op=buy");
}else if ($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("Etwas anderes kaufen","vendor.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='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("Etwas anderes kaufen","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 for 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].",1,".(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");
}else if ($_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) AND class<>'Fluch' AND class<>'Zauber'";
$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]";
if ($row['class']=="Waffe" || $row['class']=="Rüstung") $sql="DELETE FROM items WHERE id=$_GET[id]";
if ($row['class']=="Schmuck" AND $row['name']=="Elfenkunst") $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();
if (!getsetting("vendor",0)) redirect("village.php");
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("Inventar anzeigen","prefs.php?op=inventory&back=vendor.php");
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...
?>