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!


./special/castle.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:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
698:
699:
700:
701:
702:
703:
704:
705:
706:
707:
708:
709:
710:
711:
712:
713:
714:
715:
716:
717:
718:
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730:
731:
732:
733:
734:
735:
736:
737:
738:
739:
740:
741:
742:
743:
744:
745:
746:
747:
748:
749:
750:
751:
752:
753:
754:
755:
756:
757:
758:
759:
760:
761:
762:
763:
764:
765:
766:
767:
768:
769:
770:
771:
772:
773:
774:
775:
776:
777:
778:
779:
780:
781:
782:
783:
784:
785:
786:
787:
788:
789:
790:
791:
792:
793:
794:
795:
796:
797:
798:
799:
800:
801:
802:
803:
804:
805:
806:
807:
808:
<?php

// 25082004

// originally found at www.lotgd.com
// changes & translation by anpera
// additional changes by nTE

checkday();
page_header("Hackwarts");
$session['user']['specialinc']='castle.php';
$runden=$session['user']['turns'];
$castleoptions unserialize($session['user']['specialmisc']);
if (!
is_array($castleoptions) || $castleoptions['castleinit'] != 1)
{
    
$castleoptions = array();
    
$castleoptions['beautyshop_uses'] = 0;
    
$castleoptions['well_uses'] = 0;
    
$castleoptions['castleinit'] = 1;
    
$castleoptions['gems_onenter']=$session['user']['gems'];
    
$castleoptions['navigatorhead']=item_count('tpl_id="navikopf" AND owner='.$session['user']['acctid']); //User hat ein Item "Kopf des Navigators" vom beleidgterpirat-Special
}
$session['user']['specialmisc'] = serialize($castleoptions);

function 
castlenav($what=''$runden=0)
{
    global 
$session;
    switch (
$what)
    {
    case 
'main':
        
addnav('Schlosshof');
        
addnav('Wunschbrunnen (1 Edelstein)','forest.php?op=well');
        
addnav('Glücksspieler','stonesgame.php');
        
//addnav('Schießbude','forest.php?op=bar');
        
if ($runden>0)
        {
            
addnav('Klassenzimmer','forest.php?op=train');
        }
        
addnav('Shops');
        
addnav('Waffenschmied','forest.php?op=blacksmith');
        
addnav('Rüstungsschmied','forest.php?op=armourer');
        
addnav('Kokos Beautyshop','forest.php?op=medicine');
        
addnav('Sonstige');
        if (
$runden>0)
        {
            
addnav('Katakomben betreten...','forest.php?op=catacombs');
        }
        
addnav('v?Schloss verlassen','forest.php?op=leavecastle');
        break;
    case 
'kala'://ACHTUNG: $runden = kalavisits
        
if($runden == -//Chilimaske
        
{
            
castlenav();
            return;
        }
        if(
$runden==-2//Tageslimit erreicht
        

            
addnav('G?Noch eine Gurkenmaske!''forest.php?op=mask2');
        }
        
//fehlendes break; beabsichtigt!
    
case 'return':
        
addnav('Nach draußen','forest.php?op=return');
        break;
    default:
        
$session['user']['specialinc']='';
        
$session['user']['specialmisc']='';
        
forest();
        break;
    }
}

function 
catacombs()
{
    global 
$session,$castleoptions;
    
$where=false;
    if(
$castleoptions['navigatorhead'])
    {
        
output('`n`%Der Kopf des Navigators weist dir den Weg:');
    }
    else
    {
        
output('`n`%Du kannst in folgende Richtungen gehen:');
        switch (
e_rand(1,2))
        {
        case 
1:
            
output('`n<a href="forest.php?op=north">Norden</a>',true);
            
addnav('Norden','forest.php?op=north');
            
addnav('','forest.php?op=north');
            
$where=true;
            break;
        case 
2:
            break;
        }
        switch (
e_rand(1,2))
        {
        case 
1:
            
output('`n<a href="forest.php?op=east">Osten</a>',true);
            
addnav('Osten','forest.php?op=east');
            
addnav('','forest.php?op=east');
            
$where=true;
            break;
        case 
2:
            break;
        }
        switch (
e_rand(1,2))
        {
        case 
1:
            
output('`n<a href="forest.php?op=south">Süden</a>',true);
            
addnav('Süden','forest.php?op=south');
            
addnav('','forest.php?op=south');
            
$where=true;
            break;
        case 
2:
            break;
        }
        switch (
e_rand(1,2))
        {
        case 
1:
            
output('`n<a href="forest.php?op=west">Westen</a>',true);
            
addnav('Westen','forest.php?op=west');
            
addnav('','forest.php?op=west');
            
$where=true;
            break;
        case 
2:
            break;
        }
    }
    if (
$where == false)
    {
        switch (
e_rand(1,5))
        {
        case 
1:
            
output('`n<a href="forest.php?op=north">Norden</a>',true);
            
addnav('Norden','forest.php?op=north');
            
addnav('','forest.php?op=north');
            break;
        case 
2:
            
output('`n<a href="forest.php?op=east">Osten</a>',true);
            
addnav('Osten','forest.php?op=east');
            
addnav('','forest.php?op=east');
            break;
        case 
3:
            
output('`n<a href="forest.php?op=south">Süden</a>',true);
            
addnav('Süden','forest.php?op=south');
            
addnav('','forest.php?op=south');
            break;
        case 
4:
            
output('`n<a href="forest.php?op=west">Westen</a>',true);
            
addnav('Westen','forest.php?op=west');
            
addnav('','forest.php?op=west');
            break;
        case 
5:
            switch (
e_rand(1,5))
            {
            case 
1:
                
addnews($session['user']['name'].' hat große Reichtümer in den Katakomben gefunden!');
                
$gems e_rand(1,3);
                
$gold e_rand($session['user']['level']*11,$session['user']['level']*100);
                
output('`^ Vorwärts!`n`n`%Du erreichst eine verschlossene Tür und drückst sie auf. Dahinter findest du Berge von Reichtümern und du stopfst dir die Taschen voll!`n');
                
output('`n`^Du hast '.$gems.' Edelsteine und '.$gold.' Gold mitgenommen!');
                
$session['user']['gems']+=$gems;
                
$session['user']['gold']+=$gold;
                break;
            case 
2:
                
output('`^ Vorwärts!`n`n`%Du erreichst eine verschlossene Tür und drückst sie auf. Dahinter findest du Berge von Gold und du stopfst dir die Taschen voll!`n');
                
$gold e_rand($session['user']['level']*11,$session['user']['level']*100);
                
output('`n`^Du hast '.$gold.' Gold mitnehmen können!');
                
$session['user']['gold']+=$gold;
                break;
            case 
3:
                
output('`^ Vorwärts!`n`n`%Du erreichst eine verschlossene Tür und drückst sie auf. Dahinter findest du ... `bnichts`b! Ein anderer war wohl schneller als du.`n');
                
output('`nSchwer enttäuscht suchst du einen Ausgang aus den Katakomben.');
                break;
            case 
4:
                
output('`^ Vorwärts!`n`n`%Du erreichst eine verschlossene Tür und drückst sie auf. Dahinter findest du ... `bnichts`b! Ein anderer war wohl schneller als du.`n');
                
output('Schwer enttäuscht suchst du einen Ausgang aus den Katakomben.`n`nWenigstens hast du durch das Herumirren etwas an `^Erfahrung`% gewonnen.');
                
$session['user']['experience']+=$session['user']['experience']*0.02;
                break;
            case 
5:
                
output('`^ Vorwärts!`n`n`%Du erreichst eine verschlossene Tür und drückst sie auf. Dahinter findest du einen besonders schönen Edelstein und steckst ihn ein!`n');
                
output('`n`^Du hast 1 Edelstein gefunden!');
                
$session['user']['gems']+=1;
                break;
            }
            
output('`n`n`n<a href="forest.php?op=exitlab">Katakomben verlassen</a>',true);
            
addnav('Katakomben verlassen','forest.php?op=exitlab');
            
addnav('','forest.php?op=exitlab');
            
$castleoptions['navigatorhead']=false;
            
$session['user']['specialmisc'] = serialize($castleoptions);
            
item_delete('tpl_id="navikopf" AND owner='.$session['user']['acctid'],1);
            break;
        }
    }
}

if (
$_GET['op']=='enter')
{
    
$show_invent true;

    
output('`#Du betrittst den Schlosshof, in dessen Mitte mit Kreide "Mc G. ist doof!" geschrieben wurde. Drumherum sind viele interessante Stände und Läden zu entdecken. Nur komisch, dass es in einem Metzgerei-Zauberschloss kein FLEISCH gibt...`n');
    
viewcommentary('Courtyard','Rede mit Anderen');
    
castlenav('main'$runden);
}
    
/******Leave Castle******/
else if ($_GET['op']=='leave')
{
    
$session['user']['specialinc']='';
    
$session['user']['specialmisc'] = '';
    
output('`#Du beschließt, dass du keine Zeit für Hackwarts hast und kehrst um, zurück in den Bahnhof...');
}
else if (
$_GET['op']=='leavecastle')
{
    
$gems_spent=$castleoptions['gems_onenter']-$session['user']['gems'];
    if(
$gems_spent>0)
    {
        
debuglog($gems_spent.' Edelsteine in Hackwarts gelassen');
    }
    
$session['user']['specialinc']='';
    
$session['user']['specialmisc'] = '';
    
output('`#Du gehst durch das Tor und über den Pfad zurück in den Bahnhof.
    `n`n`^Du vertrödelst einen Waldkampf!'
);
    if (
$session['user']['turns']>0)
    {
        
$session['user']['turns']--;
    }
}
    
/********Return to Courtyard*******/
else if ($_GET['op']=='return')
{
    
$show_invent true;

    
output('`#Du gehst nach draußen. Die Mitte des Schlosshofs ist ein großer, mit Gras bewachsener Platz, um den herum viele interessante Stände und Läden sind. Einige davon klingen wirklich verlockend! Du weißt gar nicht, wo du zuerst hingehen sollst, aber auf dem Platz stehen einige Leute, so beschließt du, sie einfach zu fragen.`n');
    
viewcommentary('Courtyard','Rede mit Anderen');
    
castlenav('main'$runden);
}
    
/*********catacombs*******/
else if ($_GET['op']=='catacombs')
{
    
output('`#Du betrittst die Katakomben. Ein Schild am Eingang warnt: `%"Große Reichtümer warten im Inneren, aber ebenso großes Leid! Der Weg nach draußen liegt im `^Osten`%... Merk dir das!!"`n');
    
catacombs();
}
else if (
$_GET['op']=='north')
{
    
output('`#Im Inneren der Katakomben gehst du auf der Suche nach Reichtum nach `^Norden`#...`n');
    
catacombs();
}
else if (
$_GET['op']=='east')
{
    
output('`#Im Inneren der Katakomben gehst du auf der Suche nach Reichtum nach `^Osten`#...`n');
    switch (
e_rand(1,5))
    {
    case 
1:
    case 
2:
    case 
3:
    case 
4:
        
catacombs();
        break;
    case 
5:
        
catacombs();
        
output('`n`n`^Du findest einen Ausgang...
        `n<a href="forest.php?op=exitlab">Katakomben verlassen</a>'
);
        
addnav('Ausgang');
        
addnav('Katakomben verlassen','forest.php?op=exitlab');
        
addnav('','forest.php?op=exitlab');
        break;
    }
}
else if (
$_GET['op']=='south')
{
    
output('`#Im Inneren der Katakomben gehst du auf der Suche nach Reichtum nach `^Süden`#...`n');
    
catacombs();
}
else if (
$_GET['op']=='west')
{
    
output('`#Im Inneren der Katakomben gehst du auf der Suche nach Reichtum nach `^Westen`#...`n');
    
catacombs();
}
else if (
$_GET['op']=='exitlab')
{
    
$session['user']['specialmisc'] = 0;
    
$session['user']['specialinc']='';
    
$ff e_rand(1,4);
    if(
$ff>$session['user']['turns'])
    {
        
$ff=$session['user']['turns'];
    }
    
output('`#Du hast es geschafft, einen Ausgang aus den Katakomben zu finden. Allerdings musst du feststellen, dass du wieder im Bahnhof gelandet bist. Dein Abenteuer in den Katakomben hatte seinen Preis...`n
    `n`^Du verlierst '
.$ff.' Waldkämpfe!');
        
$session['user']['turns']-=$ff;
}
    
/*********Bar, wird zur Schießbude umgestaltet und zum Dorffest gesteckt*******/
else if ($_GET['op']=='bar')
{
    
$orkhits=e_rand(0,10);
    if(
$_GET['act']=='stone')
    {
        
output('`#Du entscheidest dich für die Steinschleuder und stellst dein Können mit dieser Waffe unter Beweis: Du triffst '.$orkhits.' Orks, die jedoch keinen größeren Schaden nehmen.');
        
$session['user']['gold']-=5//Scheißegal ob man das auch ohne Gold ewig machen kann
    
}
    elseif(
$_GET['act']=='bow')
    {
        
output('`#Du entscheidest dich für Pfeil und Bogen und stellst dein Können mit dieser Waffe unter Beweis: '.$orkhits.' Orks fallen um.');
        
$session['user']['gold']-=5//Scheißegal ob man das auch ohne Gold ewig machen kann
    
}
    elseif(
$_GET['act']=='catapult')
    {
        
output('`#Du entscheidest dich für das Katapult und stellst dein Können mit dieser Waffe unter Beweis: Du triffst '.$orkhits.' Orks, die durch die Wucht des Aufpralls regelrecht zersplittern.');
        
$session['user']['gold']-=5//Scheißegal ob man das auch ohne Gold ewig machen kann
    
}
    elseif(
$_GET['act']=='machinegun')
    {
        if(
$orkhits==5)
        {
            
output('`#Du entscheidest dich für das RPG2000 und grübelst, wie man damit Orks trifft. Dann findest du den Abzug und schießt dir selbst ins Bein. `$AUTSCH!`# So ein gefährliches Ding! Da bist du froh, dass sowas erst in ein paar hundert Jahren für ein Computerspiel erfunden wird. Was auch immer ein Computer sein mag...');
            
$session['user']['hitpoints']*=0.6;
        }
        else
        {
            
output('`#Du entscheidest dich für das RPG2000 und grübelst, wie man damit Orks trifft. Vielleicht solltest du in ein paar hundert Jahren wiederkommen, wenn Computerspiele erfunden sind. Was auch immer Computerspiele sein mögen...');
        }
        
$session['user']['gold']-=5//Scheißegal ob man das auch ohne Gold ewig machen kann
    
}
    else
    {
        
output("`#Du gehst durch die Tür in die `^'Schießbude'`# und das Erste, was dir auffällt, ist eine endlose Kette von Holz-Orks, welche durch den Raum gezogen werden. Du hast von diesem Ort gehört, die unbegrenzten Möglichkeiten, auf Orks zu schießen, machen ihn zu einem guten Ort zum Entspannen oder Dampf ablassen.`nAuf einer Holztafel steht die Preisliste: 10 Schuss 5 Gold.");

    }
    
output('`n`n');
    
viewcommentary('orcfield','Auch Orks killen',30,'ruft');
    
addnav('Steinschleuder','forest.php?op=bar&act=stone');
    
addnav('Pfeil und Bogen','forest.php?op=bar&act=bow');
    
addnav('Katapult','forest.php?op=bar&act=catapult');
    
addnav('RPG2000','forest.php?op=bar&act=machinegun');
    
castlenav('return'$runden);
}
    
/********Armourer********/
else if ($_GET['op']=='armourer')
{
    if (
strchr($session['user']['armor'],'High-Grade'))
    {
        
output('`#Du betrittst `@Kwinks`# Rüstungsladen. Du siehst Kwink in ein Buch vertieft in einer Ecke sitzen. Er schaut auf und wirft sofort einen Blick auf dein `^'.$session['user']['armor'].'`#. `%"SCHÖN ZU SEHEN, DASS DU MEIN HANDWERK TRÄGST!"`# schreit er, bevor er sich wieder seinem Buch zuwendet. Dabei dachtest du doch Kwink schreit jetzt weniger...');
    }
    else
    {
        
$newdefence $session['user']['armordef'] + 2;
        
$cost $session['user']['armordef'] * 250;
        
output('`#Du betrittst `@Kwinks`# Rüstungsladen. Du siehst Kwink in ein Buch vertieft in einer Ecke sitzen. Er schaut auf und wirft sofort einen Blick auf dein `^'.$session['user']['armor'].'`#. ');
        if (
$cost == 0)
        {
            
output('`%"DARAUS KANN ICH NICHTS MACHEN!!!"`#, schreit er, bevor er sich wieder seinem Buch zuwendet.
            `n`n`^Niedergeschlagen machst du dich daran, den Laden zu verlassen...'
);
        }
        else if (
$cost $session['user']['gold'])
        {
            
output('`%"ICH KÖNNTE DAS ZU EINEM `!High-Grade '.$session['user']['armor'].'`% MIT `^'.$newdefence.'`% RÜSTUNGSSCHUTZ MACHEN, WENN DU WILLST. UND DAS KOSTET NUR `^'.$cost.'`% GOLD!"`#, schreit er, bevor er sich wieder seinem Buch zuwendet. Warum schreit der so?!
            `n`n`^Da du aber nicht so viel Gold dabei hast, beschließt du den Laden zu verlassen...'
);
        }
        else
        {
            
output('`%"ICH KÖNNTE DAS ZU EINEM `!High-Grade '.$session['user']['armor'].'`% MIT `^'.$newdefence.'`% RÜSTUNGSSCHUTZ MACHEN, WENN DU WILLST. UND DAS KOSTET NUR `^'.$cost.'`% GOLD!"`#, schreit er, bevor er sich wieder seinem Buch zuwendet.
            `n`n<a href="forest.php?op=upgradearmour">Rüstung verbessern</a>'
);
            
addnav("","forest.php?op=upgradearmour");
            
addnav("Rüstung verbessern","forest.php?op=upgradearmour");
        }
    }
    
castlenav('return'$runden);
}
else if (
$_GET['op']=='upgradearmour')
{
    
output('`#`@Kwink`# nimmt dein `^'.$session['user']['armor'].'`# und arbeitet eine Weile daran. Bald steht er auf, passt dir die Rüstung an und macht noch ein paar abschließende Änderungen. Die Rüstung fühlt sich jetzt etwas schwerer an, scheint aber tatsächlich von viel höherer Qualität zu sein als vorher. Zufrieden verlässt du den Laden. `%"ICH SCHREIE AB JETZT WENIGER! VERSPROCHEN!!!"`# ruft er dir noch hinterher.');
    
$newarmor 'High-Grade '.$session['user']['armor'];
    
$cost $session['user']['armordef'] * 250;
    
$session['user']['gold']-=$cost;

    
item_set_armor($newarmor,$session['user']['armordef']+2,$session['user']['armorvalue']+$cost,0,0,1);

    
castlenav("return"$runden);
}
    
/********Blacksmith********/
else if ($_GET['op']=='blacksmith')
{
    if (
strchr($session['user']['weapon'],'High-Grade'))
    {
        
output('`#Du betrittst die Schmiede. Der Waffenschmied beugt sich über einen Schmelztiegel mit geschmolzenem Metall und betrachtet dein `^'.$session['user']['weapon'].'`#. `%"Das war ne tolle Arbeit, die ich da für dich gemacht hab, also warum bist du hier?"`#, gibt er an. Etwas enttäuscht verlässt du die Schmiede.');
    }
    else
    {
        
$newattack $session['user']['weapondmg'] + 2;
        
$cost $session['user']['weapondmg'] * 250;
        
output('`#Du betrittst die Schmiede. Der Waffenschmied beugt sich über einen Schmelztiegel mit geschmolzenem Metall und betrachtet dein `^'.$session['user']['weapon'].'`#. ');
        if (
$cost == 0)
        {
            
output('`%"Du erwartest doch nicht, dass ich sowas bearbeite? Komm wieder, wenn du eine ordentliche Waffe hast."
            `n`n`^Niedergeschlagen machst du dich daran, den Laden zu verlassen...'
);
        }
        else if (
$cost $session['user']['gold'])
        {
            
output('`%"Daraus kann ich ein `5High-Grade '.$session['user']['weapon'].'`% mit `5'.$newattack.'`% Schaden machen! Aber das wird dich `5'.$cost.'`% Gold kosten..."
            `n`n`^Da du nicht genug Gold hast, beschließt du den Laden zu verlassen...'
);
        }
        else
        {
            
output('`%"Daraus kann ich ein `5High-Grade '.$session['user']['weapon'].'`% mit `5'.$newattack.'`% Schaden machen! Aber das wird dich `5'.$cost.'`% Gold kosten..."
            `n`n<a href="forest.php?op=upgradeweapon">Waffe verbessern</a>'
);
            
addnav('','forest.php?op=upgradeweapon');
            
addnav('Waffenschmied');
            
addnav('Waffe verbessern','forest.php?op=upgradeweapon');
        }
    }
    
castlenav('return'$runden);
}
else if (
$_GET['op']=='upgradeweapon')
{
    
output('`#Der Waffenschmied nimmt `^'.$session['user']['weapon'].'`# und arbeitet eine Weile daran. Bald steht er auf und gibt dir deine Waffe zurück. Sie wirkt etwas schwerer, aber die Qualität scheint wesentlich besser als vorher zu sein. Zufrieden verlässt du den Laden. ');
    
$newweapon 'High-Grade '.$session['user']['weapon'];
    
$cost $session['user']['weapondmg'] * 250;
    
$session['user']['gold']-=$cost;

    
item_set_weapon($newweapon,$session['user']['weapondmg']+2,$session['user']['weaponvalue']+$cost,0,0,1);

    
castlenav('return'$runden);
}
    
/********Training Room********/
else if ($_GET['op']=='train')
{
    
output('`#Du betrittst ein Klassenzimmer und setzt Dich zu den anderen Schülern. Der Satanist mit der gepitchten Stimme und die norddeutsche Gewitterziege vorne an der Tafel könnten Dir sicherlich einiges beibringen, was deinen Erfahrungsschatz bereichnern würde!');
    if (
$session['user']['turns'] < 1)
    {
        
output('`n`n`%Du hast leider keine Waldkämpfe zum Lernen übrig!');
    }
    else
    {
        
output('`n`%Wieviele Runden willst du lernen?`0`n
        <form action="forest.php?op=train2" method="POST">
        <input name="trai" id="trai"><input type="submit" class="button" value="Lernen">
        </form>
        '
.focus_form_element('trai'));
        
addnav('','forest.php?op=train2');
    }
    
castlenav('return'$runden);
}
else if (
$_GET['op']=="train2")
{
    
$trai abs((int)$_GET['trai'] + (int)$_POST['trai']);
    if (
$session['user']['turns'] <= $trai)
    {
        
$trai $session['user']['turns'];
    }
    if (
$session['user']['turns']<=0)
    {
        
output('`^Du stolperst über eine Giraf... Ähm... Ich meinte eine Katze und landest sehr unsanft auf dem rauen Boden, bevor du lernen konntest. Du verlierst einen Teil deiner Lebensenergie.');
        
$session['user']['hitpoints']=round($session['user']['hitpoints']*0.8);
        if (
$session['user']['hitpoints']<=0)
        {
            
$session['user']['hitpoints']=1;
        }
    }
    else
    {
        
$session['user']['turns']-=$trai;
        
$exp $session['user']['level']*e_rand(5,12)+e_rand(0,9);
        
$totalexp $exp*$trai;
        
$session['user']['experience']+=$totalexp;
        
output('`^Du lernst '.$trai.' Stunden und bekommst '.$totalexp.' Erfahrungspunkte!`n');
    }
    
castlenav('return'$runden);
}
    
/********Well********/
else if ($_GET['op']=='well')
{
    
output('`#Auf einer Seite des Schlossplatzes befindet sich ein Wunschbrunnen. Du läufst hin und schaust hinunter. Ein Schild davor behauptet: `^"Wirf einen Edelstein hinein und wünsch dir was..."');
    if (
$session['user']['gems'] < && (e_rand(1,10) != || $castleoptions['well_uses']>=1))
    {
        
output('`n`n`%Da du keinen Edelstein hast, hat sich die Sache für dich erledigt...');
    }
    else
    {
        
output('`n`n`#Du wirfst einen '.($session['user']['gems']>0?'Edelstein':'glänzenden Kieselstein').' hinein und wünschst dir ');
        if(
$session['user']['gems']>0)
        {
            
$session['user']['gems']--;
        }
        else
        {
            
debuglog('schummelte beim Wunschbrunnen');
        }
        
$castleoptions['well_uses']+=1;
        
$rand1 e_rand(1,6);
        switch (
$rand1)
        {
        case 
1:
            
output('`^Erfahrung...');
            break;
        case 
2:
            
output('`^Mehr Gold...');
            break;
        case 
3:
            
output('`^Mehr Lebenskraft...');
            break;
        case 
4:
            
output('`^Den Edelstein zurück...');
            break;
        case 
5:
            
output('`^Einen längeren Tag...');
            break;
        case 
6:
            
output('`^Mehr Charme...');
            break;
        }
        
$rand2 e_rand(1,4);
        switch (
$rand2)
        {
        case 
1:
        case 
2:
        case 
3:
            
output('`n`n`%Leider gewähren dir die Götter diesen Wunsch nicht.');
            break;
        case 
4:
            
output('`n`n`%Die Götter gewähren dir diesen Wunsch! ');
            switch (
$rand1)
            {
            case 
1:
                
$reward e_rand($session['user']['experience'] * 0.05,$session['user']['experience'] * 0.1);
                
$session['user']['experience'] += $reward;
                
output('`6'.$reward.'`^ Erfahrungspunkte...');
                break;
            case 
2:
                
$gold e_rand($session['user']['level']*10,$session['user']['level']*100);
                
$session['user']['gold'] += $gold;
                
output('`6'.$gold.' `^mehr Gold...');
                break;
            case 
3:
                
$reward 1;
                
$session['user']['maxhitpoints'] += $reward;
                
output('`6'.$reward.' `^zusätzlichen Lebenspunkt...');
                break;
            case 
4:
                
$gems e_rand(2,4);
                
$session['user']['gems'] += $gems;
                
output('`6'.$gems.' `^Edelsteine...');
                break;
            case 
5:
                
$ff e_rand(1,4);
                
$session['user']['turns'] += $ff;
                
output('`6'.$ff.' `^mehr Waldkämpfe...');
                break;
            case 
6:
                
$charm e_rand(1,5);
                
$session['user']['charm'] += $charm;
                
output('`6'.$charm.' `^mehr Charme...');
                break;
            }
            break;
        }
        
$session['user']['specialmisc'] = serialize($castleoptions);
    }
    
castlenav('return'$runden);
}
    
/********Healer********/
else if ($_GET['op']=='medicine')
{
    
$loglev log($session['user']['level']);
    
$cost = ($loglev * ($session['user']['maxhitpoints']-$session['user']['hitpoints'])) + ($loglev*10);
    
$cost=$cost*0.9;
    
$cost round($cost,0);
    
output('`c`b`#Kokos Beautyshop`0`b`c`n
    `3Die wunderschöne Koko begrüßt dich in ihrem Beautyshop. "`6Ah.. hallo '
.$session['user']['name'].'`6.
    Brauchst du Heilung? Willst du schöner werden? Oder soll sich deine Schönheit endlich bezahlt machen? Dann bist du hier genau richtig!`3", sagt sie.`n
    Du fragst sie, was genau sie damit meint. "`6Also: Heilung dürfte dir klar sein. Mit einer Gesichtsmaske - vorzugsweise aus Gurken von Dinsch - kann ich dich attraktiver machen. Und wenn du willst, kannst du mir etwas von deiner Schönheit ... überlassen und dafür etwas Erfahrung gewinnen.`3"'
);
    
$indate getsetting('gamedate','0005-01-01');
    
$date explode('-',$indate);
    
$monat $date[1];
    
$tag $date[2];
    if (
$session['user']['exchangequest']==20 && $monat==11 && $tag<5
    {
        
output('`n`n`%Beim Stichwort "Gurkenmaske" fängt eine zufällig anwesende Dame mittleren Alters an zu erzählen: "`7Die Gurkenmasken sind sehr empfehlenswert. Ich komme jeden Tag hier her und lasse mir Gurkenmasken machen. Aber irgendetwas fehlt mir noch.`%"
        `nDie Dame ist ohne Frage hübsch, sie sieht reich aus und ist bestimmt sogar adlig. Und irgendwie hat sie exakt die selbe Frisur wie die Nixe neulich an Poseidons See.
        `nOb sie vielleicht mit der Perlenkette...?'
);
        
addnav('`%Die Dame ansprechen`0','exchangequest.php');
    }
    if (
$session['user']['hitpoints'] < $session['user']['maxhitpoints'])
    {
        
addnav('Komplette Heilung (`^'.$cost.' Gold`0)','forest.php?op=buy1');
    }
    
addnav('Gurkenmaske (`#1 Edelstein`0)','forest.php?op=maske');
    if (
$session['user']['charm']>0)
    {
        
addnav('Charme opfern (`^100 Gold`0)','forest.php?op=copfer');
    }
    
castlenav('return'$runden);
}
else if (
$_GET['op']=='buy1')
{
    
$loglev log($session['user']['level']);
    
$cost = ($loglev * ($session['user']['maxhitpoints']-$session['user']['hitpoints'])) + ($loglev*10);
    
$cost=$cost*0.9;
    
$cost round($cost,0);
    if (
$session['user']['gold']>=$cost)
    {
        
$session['user']['gold']-=$cost;
        
//debuglog('spent $cost gold on healing');
        
$session['user']['hitpoints'] = $session['user']['maxhitpoints'];
        
output('`3Koko gibt dir einen großen, wohlschmeckenden Heiltrank. Du bist angenehm überrascht, da du eigentlich etwas Ähnliches wie das Zeug vom Wildhüter im Bahnhof erwartet hättest. Kokos Trank entfaltet sofort seine Wirkung.`n`n`^Du bist vollständig geheilt.');
    }
    else
    {
        
output('`3"`6Also, ohne Gold bekommst du hier gar nichts! Verschwinde lieber!`3", raunzt Koko dich an, als sie merkt, dass du keine '.$cost.' Gold dabei hast.');
    }
    
castlenav('return'$runden);
}
else if (
$_GET['op']=='maske')
{
    
$k_vists user_get_aei('kala_visits');
    
$k_vists = (int)$k_vists['kala_visits'];
    if (
$session['user']['gems']>=&& $k_vists<3)
    {
        
$session['user']['gems']-=1;
        
//debuglog('spent 1 gem for charm in castle');
        
$session['user']['charm']+= 1;
        
//$castleoptions['beautyshop_uses']+=1;
        
user_set_aei(array('kala_visits'=>++$k_vists));
        
output('`3Du gibst ihr einen Edelstein und Koko packt dich mit einer Kraft, die du ihr nicht zugetraut hättest, auf einen Stuhl und fängt sofort an, dein Gesicht mir irgendwelchen mehr oder weniger schleimigen Dingen zu bedecken. Dabei scheint sie hin und wieder von den Zutaten zu naschen, aber sicher bist du dir nicht, denn deine Augen waren das Erste, was unter Gurkenscheiben verschwunden ist. Du kommst dir ziemlich albern vor, aber nach einiger Zeit, als du das Ergebnis präsentiert bekommst, bist du der Meinung, dass es sich doch gelohnt hat..
        `n`n`^Du erhältst einen Charmepunkt!'
);
    }
    else if (
$k_vists>=3)
    {
        
output('`3"`6Ja, ich könnte dir noch eine Gurkenmaske machen, aber helfen wird sie dir heute nicht mehr.`3"');
        if(
$k_vists==3){
            
output('`nSie schaut dich erwartungsvoll an und wartet deine Reaktion ab.`n');
            
$k_vists = -2;
        }
    }
    else
    {
        
output('`3"`6Also, ohne Edelstein bekommst du hier gar nichts! Verschwinde lieber!`3", raunzt Koko dich an, als sie merkt, dass du keinen Edelstein hast.');
    }
    
$session['user']['specialmisc'] = serialize($castleoptions);
    
castlenav('kala'$k_vists);
}
else if (
$_GET['op']=='mask2')
{
    
$k_option 0;
    if (
$session['user']['gems']>=1)
    {
        
$k_vists user_get_aei('kala_visits');
        
$k_vists = (int)$k_vists['kala_visits'];
        
$session['user']['gems']-=1;
        
user_set_aei(array('kala_visits'=>++$k_vists));
        
//debuglog('spent 1 gem for charm in castle');
        
$int_rnd e_rand(0,100);
        
output('`3Du gibst ihr einen Edelstein und setzt dich auf den Stuhl auf den dich Koko heute schon 3 mal gesetzt hat, lehnst dich an und schließt in freudiger Erwartung auf die erneute Wohltat deine Augen.`n
                Nach kurzer Zeit trägt Koko die Maske auf dein Gesicht auf.`n'
);
        if(
$int_rnd<25){
            
output('`4Doch plötzlich brennt dein Gesicht wie Feuer! Koko hat dir ausversehen eine `bChilimaske`b aufgetragen.`nSchnell springst du auf und rennst unter lautem Gelächter der Hackwartsbewohner davon!`n
                    Als du an einem Bach vorbeikommst, wäschst du dir die brennende Paste ab und musst mit Erschrecken feststellen, dass dein Gesicht furchtbar aussieht.`n`n
                    `3Du verlierst 3 Charmepunkte!'
);
            
$k_option = -1;
            
$session['user']['charm']-= 3;
        }
        elseif(
$int_rnd<50){
            
output('`3Du genießt die wohltuende Gurkenmaske eine Weile und verlässt dann Kokos Shop.`n`n`^Du erhältst einen Charmepunkt!');    
            
$session['user']['charm']+= 1;
        }
        elseif(
$int_rnd<75){
            
output('`3Du genießt die wohltuende Gurkenmaske eine Weile und verlässt dann Kokos Shop. Doch als du an die frische Luft kommst, fühlst du dich schwach!`n`n
                    `4Du hast eine Gurkenallergie bekommen!'
);
            
$buff = array("name"=>"`JGurkenallergie`!","rounds"=>30,"wearoff"=>"`JDeine Gurkenallergie schwindet!`0","atkmod"=>0.5,"roundmsg"=>"`JDeine Gurkenallergie lässt dich nur mit halber Kraft zuschlagen!`!","activate"=>"offense");
            
$session['bufflist']['gurkenallergie']=$buff;
        }
        elseif(
$int_rnd<100){
            
output('`3Du genießt die wohltuende Gurkenmaske eine Weile und verlässt dann Kokos Shop.`n`n`^Aus irgendeinem Grund hatte die Maske diesmal keine Wirkung!');
        }
        elseif(
$int_rnd==100){
            
output('`3Doch es fühlt sich anders an, als die 3 Masken zuvor! Es ist, als würden kleine Feen über dein Gesicht tänzeln und deine Haut liebkosen.`n
            "`6Oh nein!`3", schreit Koko, "`6Ich habe ausversehen eine Aloha Vera Maske gemacht! Sie hat die fünffache Wirkung.`3"`n`n
            `tDu erhältst 5 Charmepunkte!'
);
            
$session['user']['charm']+= 5;
        }
    }
    else
    {
        
output('`3"`6Also, ohne Edelstein bekommst du hier gar nichts! Verschwinde lieber!`3", raunzt Koko dich an, als sie merkt, dass du keinen Edelstein hast.');
    }
    
$session['user']['specialmisc'] = serialize($castleoptions);
    
castlenav('kala'$k_option);
}
else if (
$_GET['op']=='copfer')
{
    if (
$session['user']['gold']>=100)
    {
        
$session['user']['gold']-=100;
        
//debuglog("spent 100 gold on turning charm into experience");
        
$amt=e_rand(1,5);
        
$exp=20*($session['user']['level']+2*$amt);
        
$session['user']['charm']-=$amt;
        if (
$session['user']['charm']<0)
        {
            
$session['user']['charm']=0;
        }
        
$session['user']['experience']+=$exp;
        
$castleoptions unserialize($session['user']['specialmisc']);
        if (
$castleoptions['beautyshop_uses']>0)
        {
            
$castleoptions['beautyshop_uses']-=1;
        }
        
$session['user']['specialmisc'] = serialize($castleoptions);
        
output("`3Koko nimmt dein Gold und reibt dein Gesicht mit einer übel riechenden Pampe ein. Nach einer Weile wäscht sie dir das Zeug mit Wasser ab - und gibt dir das Wasser mit der Pampe zu trinken!");
        
output(" Noch etwas benommen von dem furchtbaren Anblick im Spiegel, leistest du kaum Widerstand und trinkst.`n`n`^Du VERLIERST ".$amt." Charmepunkte!`nDu bekommst ".$exp." Erfahrungspunkte dafür.");
    }
    else
    {
        
output("`3\"`6Also, ohne Gold bekommst du hier gar nichts! Verschwinde lieber!`3\", raunzt Koko dich an, als sie merkt, dass du keine 100 Gold dabei hast.");
    }
    
castlenav("return"$runden);
}
    
/********Guard Fight********/
else if ($_GET['op']=='guardfight' || $_GET['op'] == 'fight' || $_GET['op'] == 'run')
{
    if (
$_GET['op']=='guardfight')
    {
        
$badguy = array('creaturename'=>'Sido-Satanist','creaturelevel'=>$session['user']['level'],'creatureweapon'=>'Scharfe Krallen und Schnabel','creatureattack'=>$session['user']['attack'],'creaturedefense'=>$session['user']['defence'],'creaturehealth'=>$session['user']['maxhitpoints'], 'diddamage'=>0);
        
$session['user']['badguy']=createstring($badguy);
        
$fight=true;
    }
    else if (
$_GET['op'] == 'fight')
    {
        
$fight=true;
    }
    else if (
$_GET['op'] == 'run')
    {
        
output('`%Dein Stolz verbietet es dir, vor diesem Kampf davonzulaufen!`n');
        
$fight=true;
    }
    if (
$fight)
    {
        if (
count($session['bufflist'])>&& is_array($session['bufflist']) || $_GET['skill']!='')
        {
            
$_GET['skill']='';
            if (
$_GET['skill']=='')
            {
                
$session['user']['buffbackup']=serialize($session['bufflist']);
            }
            
$session['bufflist']=array();
            
output('`&Dein Stolz verbietet es dir, deine besonderen Fähigkeiten einzusetzen!`0');
        }
        include 
'battle.php';
        if (
$victory)
        {
            
$session['user']['reputation']++;
            
output('`n`#Du hast den Satanisten besiegt und dir wird der Eintritt nach Hackwarts gewährt!`n
            `n`%Du betrittst den Schlosshof, in dessen Mitte mit Kreide "Mc G. ist doof!" geschrieben wurde. Drumherum sind viele interessante Stände und Läden zu entdecken. Nur komisch, dass es in einem Metzgerei-Zauberschloss kein FLEISCH gibt...`n'
);
            
castlenav('main'$runden);
        }
        else if (
$defeat)
        {
            
output('`n`^Kurz vor dem endgültigen Todesstoß geht der Sido-Satanist zurück auf seinen Platz und bewacht wieder das Tor. Du hast nur noch 1 Lebenspunkt und verlierst 3 Waldkämpfe, aber du hast Glück, noch am Leben zu sein !');
            
$session['user']['hitpoints']=1;
            
$session['user']['turns']=max(0,$session['user']['turns']-2);
            
$session['user']['specialinc']="";
        }
        else
        {
            
fightnav(false,true);
        }
    }
}
else
{
    if (
e_rand(1,100) <95)
    {
        if (
$session['user']['turns']<1)
        {
            
$session['user']['specialinc']='';
            
output('`#Eigentlich hast du dich auf Hackwarts gefreut, aber deine Füße und dein lahmes Pferd freuen sich bereits auf den Feierabend. Du entscheidest, heute doch nicht zum Schloss zu reiten!');
            
addnav('W?Weiter','forest.php');
            
page_footer();
        }
        
output('`#Du folgst einem unbefestigten Pfad und siehst dabei in der Ferne gelegentlich ein großes Schloss... Könnte `bdas`b das legendäre `^Metzgerei Zauberschloss Hackwarts`# sein?`n
        `%Du kommst näher und bist dir plötzlich gar nicht mehr so sicher, ob du dich dem Schloss wirklich weiter nähern oder lieber umkehren solltest.`n`n
        `#Aber du gibst dir einen Ruck, lässt deine Ängste hinter dir und läufst weiter auf das Schloss zu. Als du näher kommst, bemerkst du, dass ein als Sido verkleideter Satanist vor dem Tor Wache hält. Du kommst dort an und der mystische Kerl spricht dich an. `%"Willkommen in Hackwarts! Wenn du hier rein willst, musst du deine Tapferkeit entweder schon mit einer Heldentat bewiesen haben oder du musst mich in einem fairen Kampf besiegen!"'
);
        if (
$session['user']['dragonkills']>0)
        {
            
output('`n`n`^Da du bereits eine Heldentat vollbracht hast, darfst du passieren.
            `n`n<a href="forest.php?op=enter">Das Schloss betreten</a>`n<a href="forest.php?op=leave">Umkehren</a>'
);
            
addnav('Das Schloss betreten','forest.php?op=enter');
            
addnav('','forest.php?op=enter');
        }
        else
        {
            
output('`n`n<a href="forest.php?op=guardfight">Bekämpfe die Wache</a>`n<a href="forest.php?op=leave">Kehre um</a>');
            
addnav('Wache bekämpfen','forest.php?op=guardfight');
            
addnav('','forest.php?op=guardfight');
        }
        
addnav('','forest.php?op=leave');
        
addnav('Umkehren','forest.php?op=leave');
    }
    else
    {
        
$session['user']['specialinc']='';
        
$session['user']['specialmisc'] = '';
        
output('`#Du folgst einem unbefestigten Pfad und verirrst dich total!');
        
output('`n`n`^Beim Versuch, einen Weg zurück zu finden, verlierst du 2 Waldkämpfe!`n`n');
        
$session['user']['turns']=max(0,$session['user']['turns']-2);
        
addnav('Zum Hauptbahnhof','forest.php');
        
//forest();
    
}
}
?>
0.9.7(Dragonslayer Edition V/3)