Quellcode der Dragonslayer-Edition
Quellcode der Dragonslayer-Edition : 0.9.7(Dragonslayer Edition V/3)


Anmerkung: Dies ist nur ein Auszug aus dem Source. Ein etwas älteres, abgespecktes Release ist für jeden Interessenten frei zum Download verfügbar. Allerdings würden wir uns über eine Anfrage freuen, in der die Serveradresse bzw. sonstiger Verwendungszweck aufgeführt sind, da wir gern wissen würden wohin unsere Version geht. 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:
<?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('`6Jemand`5 wurde beobachtet, wie er die Leiche von `^'.$session['user']['name'].'`5 im Wald verscharrte.');
        
output('`ZDu überreichst Sybill 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 `[Sybills`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 `[Sybills`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');
            }
        }
        else
        {
            
page_header('Astro TV Zentrale');
            
addnav('Zurück zum Marktplatz','market.php');
            
output('`ZDu bietest der 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":
    {
        
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 
"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 Sybill 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, ehe sie es dir noch wegnimmt.`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('Astro TV Zentrale');
        
$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. `[Sybill`Z hat keine Lust mehr, mit dir zu handeln. Warte bis morgen.');
        }
        else if (
$session['user']['gems']>getsetting('selledgems',0))
        {
            
output('`[Sybill`Z wirft einen 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 `[Sybill`Z dich öfter in die Bank gehen sieht, weiß sie auch, dass du dort nicht nur Gold bunkerst. Sie beschließt, 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'`[Sybill`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('`[Sybill`Z teilt dir mit, dass sie nicht mehr so viele Edelsteine hat und bittet dich später noch einmal wiederzukommen.`n`n');
                }
            }
            else
            {
                
output'`[Sybill`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('Astro TV Zentrale');
        
$rowe user_get_aei('gemsout');
        
$maxout $session['user']['level']*getsetting('maxtransferout',25);
            if (
$session['user']['gems']<1)
            {
                
output('`[Sybill`Z ist verwirrt. Du hast doch gar keinen Edelstein!`n`n');
        }
        else if (
$rowe['gemsout']>getsetting('transferreceive',3))
        {
            
output('`ZDu hast heute schon genug Geschäfte gemacht. `[Sybill`Z hat keine Lust mehr, mit dir zu handeln. Warte bis morgen.');
            }
            else
            {
                
output('`ZSybill 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('Astro TV Zentrale','gypsy.php');
        
addnav('M?Zurück zum Marktplatz','market.php');
        break;
    }
    default:
    {
        
checkday();
        
page_header('Astro TV Zentrale');
                 
output('`c`b`zDie Astro TV Zentrale`b`c`n');
        
$ecost=$cost*5;
        
output('`ZAuf einer kleineren Wiese hinter den anderen Geschäften und Ständen des Marktplatzes steht die Astro TV Zentrale, die ebenso groß, wie der Fernsehsender gut ist. Es ist ein kleines Zelt. Die Zigeunerin Sybill, welche ihm innewohnt, sieht äußerst hysterisch aus, hat verzaustes Haar und trägt eine riesige Brille. Sie heißt dich herzlich willkommen.
`n`nGegen etwas Gold wird Sybill 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 Sybill für `$'
.$cost.' Gold`Z ein Gespräch mit den Verstorbenen gestattet. Mit ihrer hysterischen 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 Sybill 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('Bezahle und rede mit den Toten','gypsy.php?op=pay');

        
//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');
        }
        
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(Dragonslayer Edition V/3)