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!


./gypsy.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:
<?php

// 15082004

require_once 'common.php';
addcommentary();
$cost $session['user']['level']*20;
$gems=array(1=>1,2,3);
$costs=array(1=>4000-3*getsetting("selledgems",0),7800-6*getsetting("selledgems",0),11400-9*getsetting("selledgems",0));
$scost=1200-getsetting("selledgems",0);

switch(
$_GET['op'])
{
    case 
'killed':
    {
        
page_header();
        
addnews('`6Vessa`5 wurde beobachtet, wie sie die Leiche von `^'.$session['user']['name'].'`5 im Wald verscharrte.');
        
output('`ZDu überreichst Vessa das verlangte Gold. Die Zigeunerin bittet dich, dass du dich auf einem Teppich hinlegst. Mit einem dir unbekannten Gesang versetzt sie dich langsam in Trance.
        `n`ZDu befindest dich nun im Reich der Toten, wandelst umher, auf der Suche nach dem wertvollen Kleinod.`n`n'
);

        if (
$_GET['act']=='user')
        {
            
output('`ZDas gefällt dem alten Besitzer natürlich gar nicht! Und bevor du dich versiehst, hast du eine Geisterhand an deiner Kehle, die unerbittlich zudrückt. Bevor dich Dunkelheit umgibt, hörst du von weitem noch `[Vessas`Z leises Fluchen, als sie deinen leblosen Körper entsorgt.');
        }
        elseif (
$_GET['act']=='chance')
        {
            
output('`ZDu willst gerade zurückkehren, als du bemerkst, dass plötzlich von überall her Hände nach dir greifen und dich festhalten. Du spürst, wie sich deine Seele von deinem Körper löst und bevor dich Dunkelheit umgibt, hörst du von weitem noch `[Vessas`Z leises Fluchen, als sie deinen leblosen Körper entsorgt.');
        }
        
addnav('Du bist tot');
        
killplayer(0,0,0,'shades.php','Och nee!');
        
$session['bufflist']['headache'] = array('name'=>'`$Geisterhand`0','rounds'=>30,'wearoff'=>'`&Die Geisterhand lässt von dir ab.`0','atkmod'=>0.85,'defmod'=>0.85,'roundmsg'=>'Eine Geisterhand behindert dich.','activate'=>'defense');
        break;
    }
    case 
'pay':
    {
        if (
$session['user']['gold']>=$cost)
        { 
// Gunnar Kreitz
            
$session['user']['gold']-=$cost;
            
//debuglog('spent $cost gold to speak to the dead');
            
if ($_GET['was']=='flirt')
            {
                 
redirect('gypsy.php?op=flirt2');
            }
            else
            {
                
redirect('gypsy.php?op=talk_shades');
            }
        }
        else
        {
            
page_header('Zigeunerzelt');
            
addnav('Zurück zum Marktplatz','market.php');
            
output('`ZDu bietest der alten Zigeunerin deine `$'.$session['user']['gold'].'`Z Gold für die Beschwörungssitzung. Sie informiert dich, dass die Toten zwar tot, aber deswegen trotzdem nicht billig sind.');
        }
        break;
    }
    case 
"talk_shades":
    {
        
page_header("`ZIn tiefer Trance sprichst du mit den Schatten");
        
// by nTE- with modifications from anpera
        /*$sql="SELECT name FROM accounts WHERE locked=0 AND loggedin=1 AND alive=0 AND laston>'".date("Y-m-d H:i:s",strtotime(date("r")."-".getsetting("LOGINTIMEOUT",900)." seconds"))."' ORDER BY login ASC";
        $result=db_query($sql);
        $count=db_num_rows($result);
        $names=$count?'':'niemandem';
        for ($i=0;$i<$count;$i++)
        {
            $row=db_fetch_assoc($result);
            $names.='`^'.$row['name'];
            if ($i<$count-1) $names.='`^, ';
        }
        db_free_result($result);
        output('`ZDu fühlst die Anwesenheit von '.$names.'`Z.`n`n');*/
        
output('`ZSolange du in tiefer Trance bist, kannst du mit den Toten sprechen:`n');
        
viewcommentary('shade','Sprich zu den Toten',25,'spricht');
        
addnav('Erwachen','market.php');
        break;
    }
    case 
"talk_haven":
    {
        
page_header("`ZIn tiefer Trance sprichst du mit den Schatten des Himmels");
        
output('`ZSolange du in tiefer Trance bist, kannst du mit den Toten sprechen:`n');
        
viewcommentary('heaven','Sprich zu den Toten',25,'spricht');
        
addnav('Erwachen','market.php');
        break;
    }
    case 
"talk_hell":
    {
        
page_header("`ZIn tiefer Trance sprichst du mit den Schatten der Hölle");
        
output('`ZSolange du in tiefer Trance bist, kannst du mit den Toten sprechen:`n');
        
viewcommentary('hell','Sprich zu den Toten',25,'spricht');
        
addnav('Erwachen','market.php');
        break;
    }
    case 
"flirt2":
    {
        
page_header('`ZIn tiefer Trance sprichst du mit den Schatten');
        
output('`ZDie Zigeunerin versetzt dich in tiefe Trance.`n`Z Du findest '.($session['user']['sex']?'deinen Mann':'deine Frau').' im Land der Schatten und flirtest eine Weile mit '.($session['user']['sex']?'ihm, um sein':'ihr, um ihr').' Leid zu lindern. ');
        
output('`n`4Du bekommst einen Charmepunkt.');
        
$session['bufflist']['lover']=array('name'=>'`!Schutz der Liebe','rounds'=>60,'wearoff'=>'`!Du vermisst deine große Liebe!`0','defmod'=>1.2,'roundmsg'=>'Deine große Liebe lässt dich an deine Sicherheit denken!','activate'=>'defense');
        
$session['user']['charm']++;
        
$session['user']['seenlover']=1;
        
addnav('Erwachen','market.php');
        break;
    }
    
//Eier-Klau, die 2.
    
case "egg":
    {
        
page_header();
        
$sql 'SELECT acctid,name,loggedin,alive FROM accounts WHERE acctid = '.getsetting('hasegg',0);
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
$ecost=$session['user']['level']*100;
        if (
$session['user']['gold']<$ecost)
        {
            
output('`ZDein Griff ins Totenreich erwies sich sehr schnell als Griff ins Klo, nachdem die Zigeunerin bemerkt hatte, dass du dir dieses Unternehmen gar nicht leisten kannst. Mit hochrotem Kopf entfernst du dich rasch.`n');
            
addnav('Nix wie weg','market.php');
        }
        else
        {
            
$session['user']['gold']-=$ecost;
            
output('`ZDu überreichst Vessa das verlangte Gold. Die Zigeunerin bittet dich, dass du dich auf einem Teppich hinlegst. Mit einem dir unbekannten Gesang versetzt sie dich langsam in Trance.
            `nDu befindest dich nun im Reich der Toten, wandelst umher, auf der Suche nach dem wertvollen Kleinod.`n`n'
);
            if (
$row['alive'])
            {
                
output('`ZZu deinem Ärger musst du jedoch feststellen, dass sich sowohl das `^goldene Ei`Z als auch sein Besitzer nicht mehr hier aufhalten. Da hat wohl jemand den Braten gerochen! Dir bleibt nichts weiter übrig, als wieder zurück zu kommen.`n');
                
addnav('Zurück zum Marktplatz','market.php');
            }
            else
            {
                
output ('`ZDann erblickst du es: Das `^goldene Ei`Z in strahlendem Glanz! Langsam pirschst du dich an '.$row['name'].' heran und schnappst dir das Ei.`n');
                if (
$row['loggedin'])
                {
                    
redirect('gypsy.php?op=killed&act=user');
                }
                else
                {
                    
$dice=($session['user']['spirits'] == RP_RESURRECTION e_rand(1,5));
                    switch (
$dice)
                    {
                        case 
:
                            
output('`ZMit mehr Glück als Verstand gelingt es dir tatsächlich, mit dem `^goldenen Ei`Z zu entkommen!`nOhne ein Wort des Dankes erhebst du dich schnell und flüchtest vor der Zigeunerin, die schon ganz gierig schaut.`n');
                            
systemmail($row[acctid],'`$Diebstahl!`0','`$'.$session['user']['name'].'`$ hat dir im Totenreich das goldene Ei abgenommen!');
                            
savesetting('hasegg',stripslashes($session['user']['acctid']));
                            
item_set(' tpl_id=\'goldenegg\'', array('owner'=>$session['user']['acctid']) );
                            
addnews("`^".$session['user']['name']."`^ stiehlt das goldene Ei aus dem Totenreich!");
                            
addnav('Schnell weg','market.php');
                            break;
                        case 
:
                        case 
:
                        case 
:
                        case 
:
                            
redirect('gypsy.php?op=killed&act=chance');
                        break;
                    }
                }
            }
        }
        break;
    }
    
//Ausgeklaut
    
case "buy":
    {
        
page_header('Zigeunerzelt');
        
$rowe user_get_aei('gemsin'); //wenn man erst weniger als erlaubt kauft sind nochmal 3 möglich. ändern?
        
if ($rowe['gemsin']>getsetting('transferreceive',3))
        {
            
output('`ZDu hast heute schon genug Geschäfte gemacht. `[Vessa`Z hat keine Lust mehr, mit dir zu handeln. Warte bis morgen.');
        }
        else if (
$session['user']['gems']>getsetting('selledgems',0))
        {
            
output('`[Vessa`Z wirft einen neidischen Blick auf dein Säckchen Edelsteine und beschließt, dir nichts mehr zu geben, da du ohnehin mehr als sie hast.');
        }
        else if (
$session['user']['gemsinbank']>99)
        {
            
output('`ZWeil `[Vessa`Z dich öfter in die Bank gehen sieht, weiß sie auch, dass du dort nicht nur Gold bunkerst. Grün vor Neid beschließt sie, dir nichts mehr zu geben, da du ohnehin mehr als sie hast.');
        }
        else
        {
            if (
$session['user']['gold']>=$costs[$_GET['level']])
            {
                if (
getsetting("selledgems",0) >= $_GET['level'])
                {
                    
output'`[Vessa`Z grapscht sich deine `$'.($costs[$_GET['level']]).'`Z Goldstücke und gibt dir im Gegenzug `$'.($gems[$_GET['level']]).'`Z Edelstein'.($gems[$_GET['level']]>=2?'e':'').'.`n`n');
                    
$session['user']['gold']-=$costs[$_GET['level']];
                    
$session['user']['gems']+=$gems[$_GET['level']];
                    
user_set_aei( array('gemsin'=>$rowe['gemsin']+$gems[$_GET['level']]) );
                    if (
getsetting('selledgems',0) - $_GET['level'] < 1)
                    {
                        
savesetting('selledgems','0');
                    }
                    else
                    {
                        
savesetting('selledgems',getsetting('selledgems',0)-$_GET['level']);
                    }
                }
                else
                {
                    
output('`[Vessa`Z teilt dir mit, dass sie nicht mehr so viele Edelsteine hat und bittet dich später noch einmal wiederzukommen.`n`n');
                }
            }
            else
            {
                
output'`[Vessa`Z zeigt dir nur ihre kalte Schulter, als du versuchst, ihr weniger zu zahlen, als ihre Edelsteine momentan Wert sind.`n`n');
            }
        }
        
addnav('Zurück zum Marktplatz','market.php');
        break;
    }
    case 
"sell":
    {
        
page_header('Zigeunerzelt');
        
$rowe user_get_aei('gemsout');
        
$maxout $session['user']['level']*getsetting('maxtransferout',25);
            if (
$session['user']['gems']<1)
            {
                
output('`[Vessa`Z haut mit der Faust auf den Tisch und fragt dich, ob du sie veralbern willst. Du hast keinen Edelstein.`n`n');
        }
        else if (
$rowe['gemsout']>getsetting('transferreceive',3))
        {
            
output('`ZDu hast heute schon genug Geschäfte gemacht. `[Vessa`Z hat keine Lust mehr, mit dir zu handeln. Warte bis morgen.');
            }
            else
            {
                
output('`ZVessa nimmt deinen Edelstein und gibt dir dafür `$'.$scost.' `ZGoldstücke.`n`n');
                
$session['user']['gold']+=$scost;
                
$session['user']['gems']-=1;
                
savesetting('selledgems',getsetting('selledgems',0)+1);
                
user_set_aei( array('gemsout'=>$rowe['gemsout']+1) );
            }
        
addnav('Zigeunerzelt','gypsy.php');
        
addnav('M?Zurück zum Marktplatz','market.php');
        break;
    }
    default:
    {
        
checkday();
        
page_header('Zigeunerzelt');
                 
output('`c`b`zDas Zigeunerzelt`b`c`n');
        
$ecost=$cost*5;
        
output('`ZAuf einer kleineren Wiese hinter den anderen Geschäften und Ständen des Marktplatzes hat Vessa, die Zigeunerin, ihr aus vielen bunten Stofffetzen bestehendes Zelt aufgeschlagen.
        Sollte man sich von den exotischen Düften anlocken lassen, die aus dem Inneren des Zigeunerzeltes strömen, wird man sogleich von wachsamen Augen ausführlich gemustert und die Worte
        `["Ich habe euch bereits erwartet, '
.$session['user']['name'].'" `Zempfangen jeden Besucher. Graues Haar, gemischt mit wenigen schwarzen Strähnen, die unter einer haubenähnlichen Kopfbedeckung hervor ranken
        und das leicht faltige Gesicht der Zigeunerin umranden, geben Vessa einen fast mystischen Eindruck, ebenso wie das hochgeschlossene, sehr bunt gehaltene Kleid, das die Alte trägt.
        Abgerundet wird das sich den Besuchern bietende Bild durch eine Kristallkugel auf einem kleinen Tisch vor der Zigeunerin, die im Inneren fast rauchig wirkt.`n`n
        Gegen einen kleinen Aufpreis wird Vessa für dich einen Blick in die Kristallkugel werfen, um dir deine Zukunft zu verkünden…
        Außerdem ist es im Dorf allgemein bekannt, dass dir Vessa für `$'
.$cost.' Gold`Z ein Gespräch mit den Verstorbenen gestattet. Mit ihrer tiefen, rauchigen Stimme erklärt sie dir, dass du für `$'.$ecost.' Gold `Zversuchen kannst, dass goldene Ei aus dem Totenreich zu stehlen, wenn es sich dort befindet.
                 Zugleich deuten einige Säckchen, aus denen das Licht der Kerzen blitzend zurückgeworfen wird, darauf hin, dass Vessa auch mit Edelsteinen handelt. Momentan bewahrt sie `$'
.getsetting('selledgems',0).' wertvolle Steine `Zin jenen Säckchen.');
        if (
getsetting('selledgems',0)>=getsetting('gypsy_maxselledgems',100))
        {
            
output(' Sie scheint aber kein Interesse an weiteren Edelsteinen zu haben. Oder sie hat einfach kein Gold mehr, um weitere Edelsteine zu kaufen.');
        }
        
addnav('Blicke ins Land der Schatten','gypsy.php?op=talk_shades');
        
addnav('Blicke in die Hölle','gypsy.php?op=talk_hell');
        
addnav('Blicke in den Himmel','gypsy.php?op=talk_haven');

        
//Goldenes Ei aus dem Totenreich klauen
        
if (getsetting('hasegg',0)>0){
            
$sql 'SELECT name,loggedin,alive FROM accounts WHERE acctid = '.getsetting("hasegg",0);
            
$result db_query($sql);
            
$row db_fetch_assoc($result);
            if (!
$row['alive'])
            {
                
addnav('E?Versuche das goldene Ei aus dem Totenreich zu stehlen','gypsy.php?op=egg');
            }
        }
        
//Klau-Ende

        
if ($session['user']['charisma']==4294967295 && $session['user']['seenlover']<1)
        {
            
$sql "SELECT name,alive FROM accounts WHERE ".$session['user']['marriedto']." = acctid ORDER BY charm DESC";
            
$result db_query($sql);
            
$row db_fetch_assoc($result);
            if (
$row['alive']==0addnav('f?Bezahle und flirte mit '.$row['name'],'gypsy.php?op=pay&was=flirt');
        }
        
addnav('Wahrsagen lassen','nerwen.php');
        
//addnav("Tarotkarten legen (1 Edelstein)","tarot.php");
        /*if ($access_control->su_check(access_control::SU_RIGHT_COMMENT)) 
        {
            addnav('Superusereintrag','gypsy.php?op=talk_shades');
        }*/
        
addnav('Edelsteine');
        if (
$session['user']['level']<15)
        {
            
addnav('1?Kaufe 1 Edelstein ('.$costs[1].' Gold)','gypsy.php?op=buy&level=1');
            
addnav('2?Kaufe 2 Edelsteine ('.$costs[2].' Gold)','gypsy.php?op=buy&level=2');
            
addnav('3?Kaufe 3 Edelsteine ('.$costs[3].' Gold)','gypsy.php?op=buy&level=3');
        }
        if (
getsetting('selledgems',100)<getsetting('gypsy_maxselledgems',100) && $session['user']['level']>1addnav('Verkaufe 1 Edelstein für '.$scost.' Gold','gypsy.php?op=sell');
        
addnav('Zurück');
        
addnav('Zurück zum Marktplatz','market.php');
    }
}

page_footer();
?>
0.9.7(DS V3) Ithil-Edition