Quellcode der Dragonslayer-Edition
Quellcode der Dragonslayer-Edition: 0.9.7(DS V3) Ithil-Edition


Anmerkung: Dies ist nur ein Auszug aus dem Source. Ein etwas älteres, abgespecktes Release der Dragonslayer-Edition ist für jeden Interessenten frei zum Download verfügbar. Was wir uns unbedingt verbitten, ist Diebstahl unserer Arbeit ohne Nennung des Copyrights.
Falls beim Lesen des Source ein Bug entdeckt werden sollte, bitten wir um sofortige Meldung per Anfrage!


./dressmaker.php

zurück
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:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
<?php
/************************************************
* Der Schneider
* Verkauf von exquisiten Gewändern rein zu Rollenspielzwecken,
* userdefinierte Gewänder analog zu Unikaten
* Autor: Salator (salator [-[at]-] gmx.de)
* für lotgd Dragonslayer Version 3.23
*************************************************
Deklaration:
Item value1 muss 0 sein!
Item hvalue: Unterkategorie:
0/1 für ihn/sie
98/99 Unikat für ihn/sie
Item hvalue2: Geschlecht des Artikels: 0=männlich, 1=weiblich, 2=sächlich
Item special_info: Name des Designers
*/

require_once('common.php');
require_once(
LIB_PATH.'board.lib.php');
checkday();
page_header('Der Schneider');
$str_filename=basename(__FILE__);
define('DP_KOSTEN_SPECIAL_ITEM',100);
addcommentary();

$str_out=get_title('`IDer Schneider');

if (
$_GET['op']=='')
{
    
$str_out.='Du betrittst geradewegs die Schneiderstube. Ein kleines, unscheinbares Männchen sitzt an einem kleinen Tisch zwischen Unmengen von edlen Stoffen und näht. Überall stehen Kleiderständer, auf denen die edlen Stücke ausgestellt sind.
    `nAls Nadelflink dich bemerkt eilt er geschäftstüchtig auf dich zu um seine Waren anzupreisen. Hier hast du die Möglichkeit, dich einzukleiden. Egal ob Wahl zum Schützenkönig oder Ball am königlichen Hof, Nadelflink hat für jeden Anlass das passende Gewand.
    `n`nAn der Wand hängt direkt neben der Elle ein Gürtel mit der Aufschrift "`9Sieben auf einen Streich`0". '
;
    if (
$session['user']['specialtyuses']['thievery'])
    {
        
$str_out.='Du glaubst, dass damit sicher 7 Diebe gemeint sind, also denkst du erst gar nicht daran, hier etwas zu stehlen.';
    }
    elseif (
$session['user']['specialtyuses']['wisdom'])
    {
        
$str_out.='Du weißt natürlich, dass es sich dabei um 7 Fliegen handelt. Dich kann man nicht hereinlegen.';
    }
    elseif (
$session['user']['race']=='zwg')
    {
        
$str_out.='Du hast schonmal etwas von den "sieben Zwergen" gehört, so dass dir dieser Spruch zusammen mit der Elle gehörigen Respekt einflößt.';
    }
    else
    {
        
$str_out.='Jedoch hat sich noch niemand getraut, Nadelflink nach der Bedeutung dieses Spruchs zu fragen.';
    }
    
$str_out.='`n`n';
    
output($str_out);
    
$str_out='';
    
viewcommentary('schneider','Über Mode diskutieren');
    
addnav('Waren ansehen');
    
addnav('D?Für die Dame',$str_filename.'?op=browse&class=1');
    
addnav('H?Für den Herrn',$str_filename.'?op=browse&class=0');
    
addnav('Maßgeschneidertes',$str_filename.'?op=item');
}

else if (
$_GET['op']=='browse')
{
    
$rowc['id']=30//db-Abfrage sparen
    /*
    $sql = 'SELECT id FROM items_classes WHERE class_name="Kleidung"';
    $result = db_query($sql);
    $rowc = db_fetch_assoc($result);
    */

    
$sql 'SELECT tpl_id,tpl_name,tpl_description,tpl_gold,tpl_gems
        FROM items_tpl
        WHERE tpl_class='
.$rowc['id'].'
        AND tpl_id!="kleiddummy"
        AND tpl_hvalue'
.($_GET['class']>1?'='.$_GET['class']:'%2='.$_GET['class']).'
        ORDER BY tpl_id ASC'
;
    
$result db_query($sql);
    
$str_out='Der Schneider kann dir diese Dinge verkaufen:`0';

    
$str_out.='`n`n<table border="0" cellpadding="0" width=95%>';
    
$str_out.='<tr class="trhead"><th>Name</th><th>Beschreibung</th><th align="right">Preis</th></tr>';

    for (
$i=0;$i<db_num_rows($result);$i++)
    {
        
$row db_fetch_assoc($result);
        
$bgcolor=($bgcolor=='trdark'?'trlight':'trdark');
        
$str_out.='<tr class="'.$bgcolor.'">
        <td valign="top">'
.create_lnk($row['tpl_name'],$str_filename."?op=buy&id=".$row['tpl_id']).'</td>
        <td>'
.$row['tpl_description'].'</td>
        <td align="right" valign="top">'
.($row['tpl_gold']>0?'<br>`^'.$row['tpl_gold'].'&nbsp;Gold':'').($row['tpl_gems']>0?'<br>`#'.$row['tpl_gems'].'&nbsp;Edelstein'.($row['tpl_gems']>1?'e':''):'').'`0</td>
        </tr>'
;
    }
    
$str_out.='</table>';

    
$show_invent true;
}

else if (
$_GET['op']=='buy'//etwas kaufen
{
    
$sql 'SELECT * FROM items_tpl WHERE tpl_id="'.$_GET['id'].'"';
    
$result db_query($sql);
    if (
db_num_rows($result)==0//Fehler
    
{
        
$str_out.='Du denkst, dir etwas ganz Besonderes ausgesucht zu haben, doch der Schneider meint nur: "`QTut mir leid, aber mit '.$_GET['id'].' kann ich nicht dienen.`q"';
    }
    else 
//OK, tpl gefunden
    
{
        
$row db_fetch_assoc($result);
        if (
$row['tpl_gold']>$session['user']['gold'] || $row['tpl_gems']>$session['user']['gems'])
        {
            
$str_out.='`$Das kannst du dir nicht leisten!`0';
        }
        else
        {
            
$uncol_name=strip_appoencode($row['tpl_name']);
            
$arr_colorcodes=array(
            
'`A`4`$`4`A',
            
'`D`d`q`d`D',
            
'`^`/`y`/`^',
            
'`J`2`j`2`J',
      
'`G`g`8`g`G',
      
'`1`!`9`!`1',
      
'`w`F`f`F`w',
            
'`x`R`r`R`x',
            
'`S`T`Y`T`S',
            
'`u`I`t`I`u',
            
'`(`)`7`)`(',
      
'`e`s`&`s`e'
            
);

            if(
$_POST['colorcode']>'' || (isset($_POST['itemname']) && $_POST['itemname']!=$uncol_name)) //Farbe wurde bereits ausgesucht
            
{
                if(
$_POST['colorcode']=='own' || $_POST['itemname']!=$uncol_name//eigene Färbung
                
{
                    if(
strip_appoencode($_POST['itemname'])==$uncol_name)
                    {
                        
$row['tpl_name'] = $_POST['itemname'];
                    }
                    else 
//falscher Name
                    
{
                        
$session['message']='Der Name darf nicht geändert werden! Nur Farbcodes sind erlaubt.';
                        
redirect($str_filename.'?op=buy');
                    }
                }
                elseif(
$_POST['colorcode']=='user'//Färbung wie Username
                
{
                    
$row['tpl_name']=color_from_name(strip_appoencode($row['tpl_name']),$session['user']['name']);
                }
                elseif(
$_POST['colorcode']=='none'//Originalfarbe behalten
                
{
                    
//nothing to do
                
}
                else 
//Standardfarben
                
{
                    
$row['tpl_name']=color_from_name(strip_appoencode($row['tpl_name']),$arr_colorcodes[$_POST['colorcode']]);
                }

                if(!
strpos($row['tpl_name'],'`0')) $row['tpl_name'].='`0'//ggf Farbaufhebung anhängen
                
$str_out.='Du übergibst dem Schneider den verlangten Preis und bekommst dafür '.($row['tpl_hvalue2']?($row['tpl_hvalue2']==1?'eine wunderschöne ':'ein exquisites ' ):'einen prächtigen ').$row['tpl_name'].'.
                `n`n"`oEine sehr gute Wahl, '
.($session['user']['sex']?($session['user']['dragonkills']>10?'Madame':'junges Fräulein'):'mein Herr').', '.strip_appoencode($row['tpl_description']).'
                `nUnd wenn Ihr wieder etwas braucht, ich stehe stets zu Euren Diensten.`0"'
;
                
$session['user']['gold']-=$row['tpl_gold'];
                
$session['user']['gems']-=$row['tpl_gems'];

                
item_add($session['user']['acctid'],'',$row);

                
addnav('Mehr kaufen',$str_filename.'?op=browse&class='.$session['user']['sex']);
            }
            else 
//Formular Farbauswahl
            
{
                
addnav('',$str_filename.'?op=buy&id='.$_GET['id']);
                if(isset(
$session['message']))
                {
                    
$str_out.='`b`$'.$session['message'].'`0`b`n`n';
                    unset(
$session['message']);
                }
                
                
$str_out.='Nadelflink lässt dich wissen, dass du die Kleider aus farbigen Stoffen nach deinen Wünschen bekommen kannst.
                `nBitte wähle aus diesen Möglichkeiten:`n
                <form action="'
.$str_filename.'?op=buy&id='.$_GET['id'].'" method="post">';
                foreach(
$arr_colorcodes as $key => $value)
                {
                    
$str_out.='
                    <input type="radio" name="colorcode" value="'
.$key.'"> '.color_from_name($uncol_name,$value).'`0`n';
                }
                
$str_out.='
                Deine Farbe:`n
                <input type="radio" name="colorcode" value="user"> '
.color_from_name($uncol_name,$session['user']['name']).'`0`n
                '
.(substr($row['tpl_name'],0,1)=='`'?'Originalfarbe':'ohne Farbe').':`n
                <input type="radio" name="colorcode" value="none"> '
.$row['tpl_name'].'`0`n
                etwas ganz anderes:`n
                <input type="radio" name="colorcode" id="owncolor" value="own">
                '
.js_preview('itemname').'`n
                <input type="text" name="itemname" id="itemname" value="'
.$uncol_name.'">`n`n
                <input type="submit" class="button" value="Färbung übernehmen">
                </form>'
;
            }
        }
    }
}

else if (
$_GET['op'] == 'item'//einzigartiges Kleidungsstück
{
    
$str_out.='Hier hast du die Möglichkeit, dir für 20 Edelsteine und '.DP_KOSTEN_SPECIAL_ITEM.' Donationpoints ein einzigartiges, nach deinen Wünschen gestaltetes Kleidungsstück fertigen zu lassen.
    `nAußerdem bietet Nadelflink dir auch an, dieses Kleidungsstück an andere Einwohner '
.getsetting('townname','Atrahor').'s zu versenden.
    `nJedem dieser Gewänder liegt ein Zertifikat bei, welches dich als Designer kennzeichnet.'
;
    if (
$session['user']['gems']>=20 && $session['user']['donation']-$session['user']['donationspent'] >= DP_KOSTEN_SPECIAL_ITEM)
    {
        
$str_out.='`n`nNadelflink benötigt nun die folgenden Informationen von dir:
        `n`n`0<form method="POST" action="'
.$str_filename.'?op=item_confirm">
        <table border=0 width=100%>
        <tr>
        <td>Das Kleidungsstück ist für:</td>
        <td><input type="radio" name="hvalue" value="99" checked> eine Dame
        `n<input type="radio" name="hvalue" value="98"> einen Herrn</td>
        </tr><tr>
        <td>Vorschau:</td>
        <td>'
.js_preview('name').'</td>
        </tr><tr>
        <td>Name des Kleidungsstücks:</td>
        <td><input type="text" name="name" id="name" size="40" maxlength="90" value="'
.$name.'"></td>
        </tr><tr>
        <td>Vorschau:</td>
        <td>'
.js_preview('desc').'</td>
        </tr><tr>
        <td>Beschreibung:</td>
        <td><input type="text" name="desc" id="desc" size="60" maxlength="300" value="'
.$desc.'"></td>
        </tr><tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="ok" value="Kaufen"></td>
        </tr>
        </table>
        `n</form>'
;
        
addnav('',$str_filename.'?op=item_confirm');
    }
    else
    {
        
$str_out.='`n`n`4Leider kannst du dir diesen Luxus nicht leisten.';
    }
}

else if (
$_GET['op'] == 'item_confirm'//einzigartiges Kleidungsstück selbst verwenden oder verschenken
{
    
output($str_out);
    unset(
$str_out);
    
addnav('Besonderes Kleidungsstück');
    
$name '`7 '.trim(stripslashes($_POST['name'])).'`0';
    
$desc trim(stripslashes($_POST['desc']));
    
output('Wirklich `b'.DP_KOSTEN_SPECIAL_ITEM.'`b Punkte für dieses einzigartige Kleidungsstück ausgeben? Es wird ungefähr so aussehen:
    `n`n'
.$name.' `&('.$desc.'`&)
    `nWillst du es selbst verwenden oder an jemanden verschenken?
    `n`n<form method="POST" action="'
.$str_filename.'?op=item_ok">
    `n<input type="hidden" name="hvalue" value="'
.(int)$_POST['hvalue'].'">
    <input type="hidden" name="name" value="'
);
    
rawoutput(htmlentities($name));
    
output('"><input type="hidden" name="desc" value="');
    
rawoutput(htmlentities($desc).'`0');
    
output('">
    <input type="submit" name="ok_selbst" value="Selbst verwenden!">
    <input type="submit" name="ok_geschenk" value="Verschenken">
    `n</form>'
);
    
addnav('',$str_filename.'?op=item_ok');
}

else if (
$_GET['op'] == 'item_ok'//einzigartiges Kleidungsstück kaufen/verschenken Abschluss
{
    
output($str_out);
    unset(
$str_out);
    
$name trim(stripslashes($_POST['name']));
    
$desc trim(stripslashes(substr($_POST['desc'],0,310)));

    if (
$_GET['act'] == 'search' && strlen($_POST['search']) > 2)
    {

        
output($name.' `&('.$desc.'`&)`n`n');

        
$search str_create_search_string($_POST['search']);

        
$sql 'SELECT name,acctid FROM accounts WHERE name LIKE "'.$search.'" AND acctid!='.$session['user']['acctid'].' ORDER BY (login="'.db_real_escape_string($_POST['search']).'") DESC, login';
        
$res db_query($sql);

        
$link $str_filename.'?op=item_ok';

        
output('<form action="'.$link.'" method="POST">
        <input type="hidden" name="hvalue" value="'
.(int)$_POST['hvalue'].'">
        <input type="hidden" name="name" value="'
);
        
rawoutput(htmlentities($name));
        
output('"><input type="hidden" name="desc" value="');
        
rawoutput(htmlentities($desc));
        
output('">
        <select name="acctid">'
);

        while (
$p db_fetch_assoc($res) )
        {
            
output('<option value="'.$p['acctid'].'">'.preg_replace("'[`].'","",$p['name']).'</option>');
        }

        
output('</select>`n`n
        <input type="submit" class="button" value="Auswählen!"></form>'
);
        
addnav('',$link);
    }
    else if (
$_POST['ok_geschenk'])
    {
        
$link $str_filename.'?op=item_ok&act=search';

        
output($name.' `&('.$desc.'`&)
        `n`nAn wen willst du das Gewand versenden?
        `n`n`0<form action="'
.$link.'" method="POST">
        <input type="hidden" name="hvalue" value="'
.(int)$_POST['hvalue'].'">
        <input type="hidden" name="name" value="'
);
        
rawoutput(htmlentities($name));
        
output('"><input type="hidden" name="desc" value="');
        
rawoutput(htmlentities($desc));
        
output('">
        Name: <input type="text" name="search">
        <input type="submit" class="button" value="Suchen!"></form>'
);
        
addnav('',$link);

    }
    
// END Geschenk
    
else
    {
        
$acctid = (int)$_POST['acctid'];

        
$session['user']['donationspent'] += DP_KOSTEN_SPECIAL_ITEM;
        
$session['user']['gems']-=20;

        
$item['tpl_name'] = html_entity_decode($name);
        
$item['tpl_description'] = html_entity_decode($desc);
        
$item['tpl_gold'] = 0;
        
$item['tpl_gems'] = 10;
        
$item['tpl_hvalue'] = (int)$_POST['hvalue'];
        
$item['tpl_special_info'] = $session['user']['name'];

        
item_add(($acctid $acctid $session['user']['acctid']) , 'kleiddummy' $item );

        
output('Nadelflink protokolliert gewissenhaft diesen Wunsch und meint dann:`n');
        if (!
$acctid)
        {
            
output('`7"Dein besonderes Kleidungsstück steht nun für dich bereit. Viel Spaß damit..."');
            
debuglog('Gab '.DP_KOSTEN_SPECIAL_ITEM.' DP für Specialitem '.$name);
        }
        else
        {
            
systemmail($acctid,'`2Ein Geschenk!',$session['user']['name'].'`2 hat dir ein einzigartiges Gewand namens '.$name.'`2 zum Geschenk gemacht. Du kannst es mit dir rumtragen, es anbeten oder einfach in ein Haus oder Privatgemach legen! Ist das nicht nett?`n(Kleiner Tipp: Du findest es in deinem Inventar.)');
            
output('`7"Dein besonderes Kleidungsstück wurde an die gewünschte Person geliefert. Hoffentlich gefällt es..."');
            
debuglog('Gab '.DP_KOSTEN_SPECIAL_ITEM.' DP für Specialitem '.$name.' für',$acctid);
        }
        
output('`0, woraufhin er sich wieder seiner Arbeit zuwendet.');
    }
}

output($str_out);
addnav('Zurück');
addnav('Zur Übersicht',$str_filename);
addnav('M?Zum Markt','market.php');
page_footer();
?>
0.9.7(DS V3) Ithil-Edition