1 //Mindestpunktzahl zum Betreten der Jägerhütte ,'bio_disc' => 500 //Knappen-Bio ,'bio_extra' => 400 //Bio Extrainfo ,'bio_long' => 200 //verlängerte Bio ,'bio_mount' => 600 //Tier-Bio ,'castle' => 100 //zur Burg reiten ,'charm' => 20 //Charmepunkte abfragen ,'dollchange' =>1000 //einzigartige Mumie ,'forestfights' => 100 //zusätzliche Waldkämpfe ,'gems' => 25 //Edelsteine ,'golinda' => 100 //Heilerin Golinda ,'history' => 75 //besonderes Ereignis ,'history_gems' => 5 //Edelsteinkosten besonderes Ereignis ,'immun' => 300 //PvP-Immunität ,'innstays' => 30 //10 Nächte in der Kneipe ,'itemcolor' => 25 //Möbel färben ,'keys' => 10 //Hausschlüssel ersetzen ,'keys_new' => 100 //zusätzlicher Hausschlüssel ,'keys_new_gems'=> 10 //Edelsteinkosten zusätzlicher Hausschlüssel ,'namechange' => 25 //farbiger Name ,'namechange1' => 300 //erstmalig farbiger Name ,'poison' => 20 //Truhenfallengift ,'shortcut' => 100 //Shortcuts ,'special_item' => 350 //einzigartiges Möbelstück ,'taunt' => 100 //Gegnerspott ,'title' => 50 //eigener Titel ,'trophy' => 200 //Präparierset ); addcommentary(); page_header('Jägerhütte'); if(isset($session['message'])) { output('`@'.$session['message'].'`0`n'); unset($session['message']); } addnav('Zurück'); addnav('D?Zum Dorf','village.php'); if(isset($_GET['op'])) addnav('h?Zur Jägerhütte','lodge.php'); if (!$_GET['op']) { addnav('Punkte','lodge.php?op=points'); } if(!isset($_GET['op']) && getsetting('enable_referral_system',1) == 1) { addnav('`yEmpfehlungen`0','referral.php'); } $config = unserialize($session['user']['donationconfig']); $pointsavailable=$session['user']['donation']-$session['user']['donationspent']; if ($_GET['op']=='') { output('`c`b`IDie Jägerhütte`0`b`c`n'); output('`0Du folgst einem schmalen Pfad, der hinter den Ställen entlang führt. Am Ende dieses Pfades steht die Jägerhütte. Ein Türsteher stoppt dich und möchte deine Mitgliedskarte sehen. `n`n '); if ($session['user']['donation']>=$cost['lodge_enter']) { output('Nach dem Zeigen deiner Mitgliedskarte sagt er, "`7Sehr schön, willkommen in der J. C. Petersen Jägerhütte. Du hast noch `$`b'.$pointsavailable.'`b`7 Punkte zur Verfügung,`0" und lässt dich rein. `n`nDu betrittst einen Raum, der durch einen großen Kamin am anderen Ende beherrscht wird. Die holzgetäfelten Wände werden mit Waffen, Schilden und angebrachten Jagdtrophäen einschließlich den Köpfen von einigen Drachen bedeckt, die im flackernden Licht des Kamines zu leben scheinen. `n`nViele hohe Stühle füllen den Raum. In dem Stuhl, der am nächsten beim Feuer ist, sitzt J. C. Petersen und liest "Alchemie Heute." `n`nWährend du dich näherst, hebt ein großer Jagdhund, der zu seinen Füßen liegt, den Kopf und überlegt ob er dich kennt. Als er dich als vertrauenswürdig einstuft, legt er sich wieder hin und schläft weiter.`n`n'); //output('`b`4Solltest du allerdings auch nur auf die Idee kommen, die Anwesenden mit Protzereien oder Gejammer über die Anzahl deiner Punkte zu langweilen, wird er deine Mitgliedskarte genüsslich zwischen seinen rasiermesserscharfen Zähnen zerfetzen. Mindestens...`4`b`n`n'); //output('In der Nähe ein schroffes Jägergerede:`n'); //viewcommentary('hunterlodge','Hinzufügen',25); addnav('Punkte einsetzen'); addnav('Charmepunkte abfragen ('.$cost['charm'].' Punkte)','lodge.php?op=charm'); addnav('10 Nächte in der Kneipe ('.$cost['innstays'].' Punkte)','lodge.php?op=innstays'); addnav('2 Edelsteine ('.($cost['gems']*2).' Punkte)','lodge.php?op=gems'); addnav('Extra Waldkämpfe für 30 Tage ('.$cost['forestfights'].' Punkte)','lodge.php?op=forestfights'); addnav('H?Heilerin Golinda für 30 Tage ('.$cost['golinda'].' Punkte)','lodge.php?op=golinda'); addnav('B?Zur Burg reiten ('.$cost['castle'].' Punkte)','lodge.php?op=reiten1'); addnav('Jägerbedarf (ab 200 Punkte)','lodge.php?op=huntweapon'); addnav('Gegnerspott '.($config['taunt']?'ändern':'('.$cost['taunt'].' Punkte)'),'lodge.php?op=taunt',false,false,false,false); addnav('r?Präparierset (200 Punkte)','lodge.php?op=trophy'); addnav('Einzigartige Mumie ('.$cost['dollchange'].' Punkte)','lodge.php?op=dollchange',false,false,false,false); addnav('v?PvP-Immunität'.($session['user']['pvpflag'] == PVP_IMMU?'':'( '.$cost['immun'].' Punkte)'),'lodge.php?op=immun'); addnav('Charakter'); addnav('Shortcuts kaufen ('.$cost['shortcut'].' Punkte)','lodge.php?op=shortcut1'); addnav('N?Farbiger Name ('.($config['namechange'] ? $cost['namechange']:$cost['namechange1']).' Punkte)','lodge.php?op=namechange'); addnav('Aufzeichnungen ('.$cost['history'].' Punkte)','lodge.php?op=history'); //addnav('Atrahor-Spezial'); addnav('Goldpressen e.G.','goldpresse.php'); if ($session['user']['donation']>=2000) { addnav('Sonderbonus'); addnav('Titel ändern ('.$cost['title'].' Punkte)','lodge.php?op=title'); } addnav('Heimwerkerbedarf'); if ($session['user']['house']>0) { addnav('u?Hausschlüssel','lodge.php?op=keys1'); //addnav('i?Privatgemächer','lodge.php?op=private_keys1'); } addnav('M?Einzigartiges Möbelstück ('.$cost['special_item'].' Punkte)','lodge.php?op=item'); addnav('f?Möbel färben ('.$cost['itemcolor'].' Punkte)','lodge.php?op=itemcolor'); addnav('Giftphiole erwerben ('.$cost['poison'].' Punkte)','lodge.php?op=poison'); addnav('Profil'); addnav('Längere Bio ('.$cost['bio_long'].' Punkte)','lodge.php?op=bio'); addnav('Bilder','lodge.php?op=prof&buy=pic'); addnav('Erweiterungen','lodge.php?op=prof&buy=addon'); } else { output('Du ziehst die Karte deines Lieblingsgasthauses heraus, wo 9 von 10 Slots mit dem kleinen Profil von Chandos abgestempelt sind. `n`n Der Türsteher schaut flüchtig auf deine Karte, rät dir nicht soviel zu trinken und weist dir den Weg zurück.'); } } else if ($_GET['op']=='points') //Punkte Übersicht { output('`c`b`&Punkte:`0`b`c `n`&Legend of the Green Dragon bietet dir die Möglichkeit, spezielle "Donationpoints" zu sammeln, mit denen du Sonderfunktionen freischalten kannst.`n Diese Punkte gibt es für besondere (geheime) Leistungen und für sogenannte "Referrals" (Empfehlungen). Erst wenn du mindestens '.$cost['lodge_enter'].' Donationpoint besitzt, kommst du in die Jägerhütte.`n`n Klicke im Eingangsbereich der Jägerhütte auf "Empfehlungen", wenn du wissen willst, wie du auf diesem Weg an Donationpoints kommst.`n'); if(getsetting('paypal_author_enabled',1)==1) { output('`nWenn du den `bursprünglichern Erfinder von LoGD belohnen`b willst, kannst du pro gespendetem US-$ ebenfalls 100 Punkte kassieren. Schicke dazu irgendeinen Beweis deiner Spende, z.B. einen Screenshot der PayPal-Bestätigung, an `3'.getsetting('gameadminemail','').'`&.`n Für eine Spende an den Erfinder (Eric Stevens a.k.a. MightyE) benutze den PayPal-Author-Link, der auf jeder Seite zu finden ist.`n'); } if(getsetting('paypal_server_enabled',1)==1) { output('`nWenn du den `bBetreiber des Servers unterstützen`b willst, kannst du pro gespendetem Euro ebenfalls 100 Punkte kassieren. Schicke dazu irgendeinen Beweis deiner Spende, z.B. einen Screenshot der PayPal-Bestätigung, an `3'.getsetting('gameadminemail','').'`&.`n Für eine Spende an den Serverbetreiber kannst du`n a) eine Anfrage schreiben um die Kontonummer für Überweisungen zu erfahren oder`n b) den PayPal-SiteAdmin-Link benutze, der auf jeder Seite zu finden ist.`n'); } output('`n `bDas kannst du mit diesen Punkten anstellen:`b`n - Umsonst in der Kneipe wohnen (10 Nächte für '.$cost['innstays'].' Punkte)`n - Edelsteine kaufen (2 Stück für '.($cost['gems']*2).' Punkte)`n - Zusätzliche Waldkämpfe kaufen ('.$cost['forestfights'].' Punkte für 30 Tage lang 1 extra Kampf; maximal 5 mehr pro Tag)!`n - "Zur Burg reiten" im Wald freischalten ('.$cost['castle'].' Punkte)`n - Zusätzliche Shortcuts erwerben ('.$cost['shortcut'].' Punkte)`n - Ein Präparierset kaufen (200 Punkte)`n - PvP-Immunität kaufen ('.$cost['immun'].' Punkte für permanente Immunität)`n - Die Zeichenbegrenzung deiner Bio von '.getsetting('biomaxlength',255).' auf '.getsetting('longbiomaxlength',4096).' erhöhen!`n - Zusätzliche Bilder und Bio-Erweiterungen freischalten!`n - Einen farbigen Namen machen ('.$cost['namechange1'].' Punkte). Umfärben kostet nur noch '.$cost['namechange'].' Punkte. `n - Anzeige der Charmepunkte ('.$cost['charm'].' Punkte)`n - Tödliches Gift erwerben ('.$cost['poison'].' Punkte)`n - Eintrag in deine Aufzeichnungen ('.$cost['history'].' Punkte)`n - Ersatzschlüssel ('.$cost['keys'].' Punkte) und zusätzliche Schlüssel ('.$cost['keys_new'].' Punkte + '.$cost['keys_new_gems'].' Edelsteine) für dein Haus kaufen.`n - Besondere, von dir gestaltete Möbel ('.$cost['special_item'].' Punkte) für dein Haus kaufen.`n - Ab 2000 gesammelten Punkten (ob ausgegeben oder nicht) kannst du dir für '.$cost['title'].' Punkte einen eigenen Titel aussuchen.`n `n`n`7Du hast noch `$`b'.$pointsavailable.'`b`7 Punkte von insgesamt `4'.$session['user']['donation'].' `7gesammelten Punkten übrig. '); } else if ($_GET['op']=='golinda') //Golinda { output('30 Tage Zugang zu Golinda der Heilerin kosten `&'.$cost['golinda'].' Punkte`0. Golinda heilt zum halben Preis.'); if ($pointsavailable<$cost['golinda']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Zugang zu Golinda'); addnav('JA','lodge.php?op=golindaconfirm'); } } else if ($_GET['op']=='golindaconfirm') //Golinda bestätigen { if ($pointsavailable >= $cost['golinda']) { $config['healer'] += 30; output('J. C. Peterson gibt dir eine Karte und sagt "Mit dieser Karte kannst du an 30 verschiedenen Tagen bei Golinda vorstellig werden."'); $session['user']['donationspent']+=$cost['golinda']; debuglog('Gab '.$cost['golinda'].'DP für Golinda'); } } else if ($_GET['op']=='reiten1') //zur Burg reiten { if ($config['castle']) { output('Du hast diese Option bereits gekauft. Um zur Burg zu kommen, brauchst du ansonsten nur ein `bPferd`b. Ein `iPferd`i ist ein Tier der Kategorie "Pferde" in Mericks Stall.'); } else { output('Hiermit schaffst du dir für `&'.$cost['castle'].' Punkte`0 die Möglichkeit, mit einem Reittier im Wald auch zur Burg reiten zu können. Du kannst nur auf Pferden reiten, also die Tiere in Merick\'s Stall, die in der Kategorie "Pferde" stehen.'); if ($pointsavailable<$cost['castle']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Freischaltung'); addnav('JA','lodge.php?op=reiten2'); } } } else if ($_GET['op']=='reiten2') //zur Burg reiten bestätigen { if ($pointsavailable >= $cost['castle']) { $config['castle'] = 100; output('J. C. Peterson gibt dir eine Karte und sagt "Mit dieser Karte findest du den Weg zur Burg, wenn du ein Pferd hast."'); $session['user']['donationspent']+=$cost['castle']; debuglog('Gab '.$cost['castle'].'DP für Orkburg'); } } else if ($_GET['op']=='shortcut1') //eigene RPG-Kürzel { $sqlex = 'SELECT shortcuts FROM account_extra_info WHERE acctid='.$session['user']['acctid']; $resex = db_query($sqlex); $rowex = db_fetch_assoc($resex); if ($rowex['shortcuts']>=9) { output('Du hast bereits 10 Shortcuts.`nMehr kannst du nicht erwerben!'); } else { output('Hiermit kannst du dir für `&'.$cost['shortcut'].' Punkte`0 einen weiteren Shortcut erwerben.`n Shortcuts belegst du in deinen Einstellungen mit kurzen Texten (Namen, häufig verwendete Begriffe etc.) und kannst sie im RPG mit den Kürzeln %x0 - %x9 aufrufen, wodurch sie durch den von dir voreingestellten Text ersetzt werden.`nSie dürfen farbig sein, aber keine anderen Shortcuts enthalten.`n`n Du hast bereits `^'.($rowex['shortcuts']+1).'`& von `^10 möglichen`& Shortcuts.`n`0'); if ($pointsavailable<$cost['shortcut']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Freischaltung'); addnav('JA','lodge.php?op=shortcut2'); } } } else if ($_GET['op']=='shortcut2') //eigenen RPG-Kürzel bestätigen { if ($pointsavailable >= $cost['shortcut']) { $sql = 'UPDATE account_extra_info SET shortcuts=shortcuts+1 WHERE acctid='.$session['user']['acctid']; db_query($sql); output('J. C. Peterson gewährt dir einen weiteren Shortcut und gibt dir die Möglichkeit dich eleganter auszudrücken.'); $session['user']['donationspent']+=$cost['shortcut']; debuglog('Gab '.$cost['shortcut'].'DP für Shortcuts'); $config['shortcuts']+=1; } } else if ($_GET['op']=='forestfights') //zusätzliche Waldkämpfe { if (!is_array($config['forestfights'])) { $config['forestfights']=array(); } output('1 Extra Waldkampf pro Tag für 30 Tage kostet `&'.$cost['forestfights'].' Punkte`0. Du bekommst einen extra Waldkampf an jedem Tag, an dem du spielst.`n'); if ($pointsavailable<$cost['forestfights']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Extra Waldkämpfe'); addnav('JA','lodge.php?op=fightbuy'); } reset($config['forestfights']); foreach($config['forestfights'] as $key=>$val) { output("Du hast noch ".$val['left']." Tage, an denen zu einen zusätzlichen Waldkampf für deine am ".$val['bought']." ausgegebenen Punkte bekommst.`n"); } } else if ($_GET['op']=='fightbuy') //zusätzliche Waldkämpfe bestätigen { if (count($config['forestfights'])>=5) { output('Du kannst pro Tag maximal 5 extra Waldkämpfe haben.`n'); } else { if ($pointsavailable>$cost['forestfights']) { array_push($config['forestfights'],array('left'=>30,'bought'=>date('M d'))); output('Du wirst in den nächsten 30 Tagen, an denen du spielst, einen extra Waldkampf haben.'); $session['user']['donationspent']+=$cost['forestfights']; debuglog('Gab '.$cost['forestfights'].'DP für extra Waldkampf'); } else { output('Extra Waldkämpfe zu kaufen kostet '.$cost['forestfights'].' Punkte, aber du hast nicht so viele.'); } } } else if ($_GET['op']=='innstays') //Übernachtungen in der Kneipe kaufen { output('10 freie Übernachtungen in der Kneipe kosten `&'.$cost['innstays'].' Punkte`0. Bist du dir sicher, dass du das willst?'); if ($pointsavailable<$cost['innstays']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige 10 freie Übernachtungen'); addnav('JA','lodge.php?op=innconfirm'); } } else if ($_GET['op']=='innconfirm') //Übernachtungen in der Kneipe bestätigen { if ($pointsavailable>=$cost['innstays']) { output('J. C. Petersen gibt dir eine Karte und sagt "Coupon: Gut für 10 Übernachtungen in der Schenke Zum Eberkopf"'); $config['innstays']+=10; $session['user']['donationspent']+=$cost['innstays']; debuglog('Gab '.$cost['innstays'].'DP für Schlafen in Kneipe'); } } else if ($_GET['op']=='charm') //Anzeige Charmepunkte { output('Du fragst J. C. Petersen, ob er dein Aussehen beurteilen kann. Er mustert dich kurz und verspricht dir dann, dass er dir für die Kleinigkeit von `&'.$cost['charm'].' Punkten`0 eine ehrliche Antwort geben wird.'); if ($pointsavailable<$cost['charm']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Charmepunkt-Anzeige'); addnav('JA','lodge.php?op=charmconfirm'); } } else if ($_GET['op']=='charmconfirm') //Charmepunkte bestätigen { if ($pointsavailable>=$cost['charm']) { if ($session['user']['charm']<=0) { output('J. C. Petersen schaut dich angewidert an und sagt "`7Du bist hässlich wie die Nacht, ich kann einfach nichts Schönes an dir finden.`0"'); } else if ($session['user']['charm']==1) { output('J. C. Petersen schaut dich kurz an und sagt "`7Du bist genauso häßlich wie jeder gemeine Bürger, mehr als `^1 Punkt`0 wird dir kein Preisrichter geben.`0"'); } else { $max_charm = db_fetch_assoc(db_query('SELECT acctid,charm FROM accounts WHERE sex='.$session['user']['sex'].' ORDER BY charm DESC LIMIT 1')); $max_charm=max(1,$max_charm['charm']); $rel_charm=round($session['user']['charm'] * 10000 / $max_charm); $rel_charm/=100; output('J. C. Petersen mustert dich noch einmal ganz genau und sagt "`7Du bist `^'.$session['user']['charm'].'`7mal so schön wie der gemeine Bürger. Das sind etwa '.$rel_charm.' Prozent '.($session['user']['sex']?'von der':'vom').' derzeit Dorfschönsten.`0"'); } $session['user']['donationspent']+=$cost['charm']; debuglog('Gab '.$cost['charm'].'DP für Charmepunktanzeige'); } } else if ($_GET['op']=='poison') //Truhenfallengift kaufen { output('Du fragst J. C. Petersen frei heraus, ob er dir nicht etwas seines tödlichen und verbotenen Giftes aushändigen kann kann. Sofort packt er dich am Kragen und hält dir den Mund zu, dann zieht er dich in eine Ecke und gibt dir zu verstehen, dass dich eine Phiole das `&'.$cost['poison'].' Punkte`0 kosten wird und 3 Ladungen enthält. Weiterhin macht er dir klar, dass dir sein Jagdhund dorthin beissen wird, wo es besonders weh tut, solltest du noch einmal auf die Idee kommen dieses Thema laut anzusprechen.'); if ($pointsavailable<$cost['poison']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Erwerb von Gift'); addnav('JA','lodge.php?op=poisonconfirm'); } } else if ($_GET['op']=='poisonconfirm') //Truhenfallengift bestätigen { if ($pointsavailable>=$cost['poison']) { output('Petersen öffnet ein kleines Wandschränkchen und holt eine winzige Phiole mit grünem Inhalt heraus.`nDieses Gift reicht für 3 Ladungen, schau dir einfach eine Truhenfalle deiner Wahl im Haus an und fülle sie damit auf!`n'); item_add($session['user']['acctid'],'gftph'); $session['user']['donationspent']+=$cost['poison']; debuglog('Gab '.$cost['poison'].'DP für Truhengift'); } } else if ($_GET['op']=='gems') //Edelsteine kaufen { output('2 Edelsteine für `&'.($cost['gems']*2).' Punkte`0. Bist du dir sicher, dass du das willst?'); if ($pointsavailable<$cost['gems']*2) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige 2 Edelsteine'); addnav('JA','lodge.php?op=gemsconfirm'); if($pointsavailable>$cost['gems']*3) { addnav('','lodge.php?op=gemsconfirm'); output('`n`nDu kannst auch größere Mengen (bis zu '.floor($pointsavailable/$cost['gems']).') kaufen.
'); } } } else if ($_GET['op']=='gemsconfirm') //Edelsteinkauf bestätigen { $amount=max(2,intval($_POST['amount'])); $dp_cost=$amount*$cost['gems']; if ($pointsavailable>=$dp_cost) { output('J. C. Petersen gibt dir '.$amount.' Edelsteine und sagt "Damit, mein Freund, wird Dein Leben leichter werden"'); $session['user']['gems']+=$amount; $session['user']['donationspent']+=$dp_cost; debuglog('Gab '.$dp_cost.'DP für Edelsteine'); } else { output('J. C. Petersen nimmt einen Zettel mit der Überschrift "`$Schlechtschein`0", schreibt deinen Namen und die Zahl '.($dp_cost-$pointsavailable).' darauf. `nEin Schlechtschein!? Es gibt doch gar keinen Schlechtschein! Da fällt dir ein, dass du dir für '.$pointsavailable.' Punkte ja `^höchstens '.floor($pointsavailable/$cost['gems']).'`0 Edelsteine leisten kannst.'); addnav('Nochmal versuchen','lodge.php?op=gems'); } } else if ($_GET['op'] == 'title') //eigener Titel { $arr_tmp = user_get_aei('ctitle'); $str_ctitle = $arr_tmp['ctitle']; unset($arr_tmp); output('`c`bTitel ändern`b`c`n Hier darfst du dir einen einzigartigen Titel geben, der vor deinem Loginnamen angezeigt werden wird.`n Natürlich gilt es, einige elementare Hinweise zu beachten:`n `$Es ist nicht erlaubt, offizielle Spieltitel (Bauernjunge etc.) anzunehmen, um sich damit durch Täuschung anderer Spieler Vorteile zu erschleichen!`&`n Weiterhin sollte der Titel natürlich den Regeln (keine Beleidigungen etc.) entsprechen.`n`n'); if($_GET['finished']) { output('`n`n`c`@`b'); if(!empty($str_ctitle)) { output('Gratulation, du besitzt hiermit den eigenen Titel '.$str_ctitle.'`@!`n'); } else { output('Du setzt deinen Titel zurück auf `&'.$session['user']['title'].'`@!`n'); } output('Zusammen ergibt das '.$session['user']['name'].'`@!`b`c`0`n`n'); $session['user']['donationspent'] += $cost['title']; debuglog('Gab '.$cost['title'].'DP für eigenen Titel'); page_footer(); exit; } output('Den Titel zu ändern kostet '.$cost['title'].' Punkte.'); if($pointsavailable < $cost['title']) { output('`nLeider verfügst du über zu wenig Punkte, um dir das leisten zu können!'); page_footer(); exit; } output('`n`n`0Wie soll dein eigener Titel aussehen? (Lasse das Feld leer, um deinen normalen Titel '.$session['user']['title'].'`0 wiederherzustellen)`n`n'); $str_newtitle = stripslashes($_POST['newtitle']); if(isset($_POST['newtitle'])) { $str_msg = ''; $str_newtitle = str_replace('`0','',$str_newtitle); // Alle anderen Tags als erlaubte Farbcodes rausschmeißen $str_newtitle = preg_replace('/[`][^'.regex_appoencode(1,false).']/','',$str_newtitle); output('Du wählst: `b'.$str_newtitle.'`b`n`n'); // Auf was wollen wir alles kontrollieren (Standard reicht hier nicht aus)? $int_options = USER_NAME_BADWORD | USER_NAME_BLACKLIST | USER_NAME_EXCLUSIVE_TITLE | USER_NAME_NOCHANGE;// | USER_NAME_OFFICIALTITLE; $str_result = user_retitle(0,false,$str_newtitle,true,$int_options); if(true !== $str_result) { switch($str_result) { case 'ctitle_blacklist': $str_msg .= 'Diesen Titel darfst du leider nicht wählen, da er von den Göttern verboten wurde.`n'; break; case 'ctitle_tooshort': $str_msg .= 'Dieser Titel ist zu kurz (Mindestens '.getsetting('titleminlen',3).' Zeichen).`n'; break; case 'ctitle_toolong': $str_msg .= 'Dieser Titel ist zu lang (Maximal '.getsetting('titlemaxlen',25).' Zeichen).`n'; break; case 'ctitle_badword': $str_msg .= 'Dieser Titel enthält verbotene oder anstößige Wörter.`n'; break; case 'ctitle_officialtitle': case 'ctitle_exclusive': $str_msg .= 'Diesen Titel darfst du nicht nehmen.`n'; break; case 'ctitle_changeforbidden': $str_msg .= 'Deinen aktuellen Titel darfst du leider nicht auf diese Weise ändern.`n'; break; case 'ctitle_toomuchcolors': $str_msg .= 'Dein gewählter Titel enthält zu viele Farbcodes. Maximal erlaubt sind '.getsetting('title_maxcolors',7).'.`n'; break; default: $str_msg .= ''; break; } output($str_msg); } else { user_set_name(0); redirect('lodge.php?op=title&finished=1'); } } else { $str_newtitle = (!empty($str_ctitle) ? $str_ctitle : ''); } $str_lnk = 'lodge.php?op=title'; addnav('',$str_lnk); $arr_form = array('newtitle'=>'Dein neuer Titel mit oder ohne Farbcodes:'); $arr_data = array('newtitle'=>$str_newtitle); output('`&Vorschau: '); rawoutput(js_preview('newtitle')); output('`n
',true); showform($arr_form,$arr_data,false,'Diesen Titel übernehmen!'); output('
',true); } else if ($_GET['op']=='namechange') //Name färben { output('`c`bNamensfarbe ändern`b`c`n'); $arr_tmp = user_get_aei('cname'); $str_cname = $arr_tmp['cname']; unset($arr_tmp); if ($config['namechange']==1) { $int_cost = $cost['namechange']; output('Da du schon vorher viele Punkte für die Farbänderung gegeben hast kostet es dich diesmal nur `&'.$cost['namechange'].' Punkte`0.'); } else { $int_cost = $cost['namechange1']; output('Da es deine erste Farbänderung ist kostet es dich `&'.$cost['namechange1'].' Punkte`0. Beim nächsten Wechsel fallen nur '.$cost['namechange'].' Punkte Kosten an.'); } if($_GET['finished']) { output('`n`n`c`@`bGratulation, '.(!empty($str_cname) ? 'du wählst dir den farbigen Namen '.$str_cname : 'du setzt deinen Namen farblich zurück').'`2!`b`c`0`n`n'); $session['user']['donationspent'] += $int_cost; debuglog('Gab '.$int_cost.'DP für farbigen Namen'); $config['namechange']=1; $session['user']['donationconfig'] = serialize($config); page_footer(); exit; } if($pointsavailable < $int_cost) { output('`nLeider verfügst du über zu wenig Punkte, um dir das leisten zu können!'); page_footer(); exit; } output('`n`nDein geänderter Name muss der selbe Name sein wie vor der Farbänderung, nur dass er jetzt die Farbcodes enthalten darf.`n`n'); if(!empty($str_cname)) { output('Dein farbiger Name bisher ist: '); $output.=$str_cname; output(', und so wird er aussehen: '.$str_cname); } else { output('Bisher besitzt du keinen farbigen Namen!'); } output('`n`n`0Wie soll dein farbiger Name in Zukunft aussehen?`n`n'); $str_newname = stripslashes($_POST['newname']); if(!empty($str_newname)) { $str_msg = ''; $str_newname = str_replace('`0','',$str_newname); // Alle anderen Tags als erlaubte Farbcodes rausschmeißen $str_newname = preg_replace('/[`][^'.regex_appoencode(1,false).']/','',$str_newname); output('Du wählst: `b'.$str_newname.'`b`n`n'); // Validieren und gegebenenfalls ändern $str_comp1 = strip_appoencode(trim($session['user']['login']),3); $str_comp2 = strip_appoencode(trim($str_newname),3); // Wenn wir Änderung der Groß-/Kleinschreibung erlauben..: if(getsetting('name_casechange',1)) { // Namen in reiner Großschreibung verhindern if(!getsetting('allletter_up_allow',1)) { if(ctype_upper($str_comp2)) { $str_result = 'all_up'; } } // 1. Buchstabe immer groß if(getsetting('firstletter_up',1)) { if(ctype_lower(substr($str_comp2,0,1))) { $str_result = 'first_down'; } } $str_comp1 = strtolower($str_comp1); $str_comp2 = strtolower($str_comp2); } if($str_comp1 != $str_comp2) { $str_result = 'nochange'; } if(empty($str_result)) { $str_result = user_rename(0,$str_newname,true); } if(true !== $str_result) { switch($str_result) { case 'cname_toomuchcolors': $str_msg .= 'Du hast zu viele Farben in deinem Namen benutzt. Du kannst maximal '.getsetting('name_maxcolors',10).' Farbcodes benutzen.`n'; break; case 'nochange': $str_msg .= 'Dein neuer Name muss genauso bleiben wie dein alter Name. Du kannst '.(getsetting('name_casechange',1) ? 'die Groß-/Kleinschreibung ändern, ' : '').' Farbcodes entfernen oder hinzufügen, aber ansonsten muss alles gleichbleiben.`n'; break; case 'all_up': $str_msg .= 'Namen, die nur in Großschreibung gehalten sind, sind verboten. Bitte ändere dies.`n'; break; case 'first_down': $str_msg .= 'Namen, deren erster Buchstabe in Kleinschreibung gehalten ist, sind verboten. Bitte ändere dies und verwende als erstes Zeichen einen Großbuchstaben.`n'; break; default: $str_msg .= 'Irgendwas stimmt nicht mit deinem Login. Schreib bitte eine Anfrage!`nCode: '.$str_result.'`n'; break; } output('`$'.$str_msg.'`0`n'); } else { user_set_name(0); redirect('lodge.php?op=namechange&finished=1'); } } else { $str_newname = (!empty($str_cname) ? $str_cname : $session['user']['login']); } $str_lnk = 'lodge.php?op=namechange'; addnav('',$str_lnk); $arr_form = array('newname'=>'Dein neuer Name mit Farbcodes:'); $arr_data = array('newname'=>$str_newname); output('`&Vorschau: '); rawoutput(js_preview('newname')); output('`n
',true); showform($arr_form,$arr_data,false,'Diese Färbung übernehmen!'); output('
',true); } else if ($_GET['op']=='immun') //PvP-Immunität kaufen { // HOT Items $bool_hot = (bool)item_count(' hot_item>0 AND owner='.$session['user']['acctid'].' AND deposit1=0 ',true); $crimedate=date("Y-m-d H:i:s",time()-(getsetting('pvpimmu_daysaftercrime',7)*86400)); $row=user_get_aei('last_crime'); if ($session['user']['pvpflag']==PVP_IMMU) { output('J. C. Petersen nickt dir zu und gibt dir zu verstehen, dass du noch immer unter seinem Schutz stehst.'); if($bool_hot) { output('`nJedoch trägst du da etwas bei dir, das diesen Schutz beeinträchtigen könnte..'); } if(getsetting('pvp_immu_return',0) == 1) { addnav('Immunität `iaufgeben`i?','lodge.php?op=immunlose',false,false,false,false,'Möchtest Du deine PvP-Immunität wirklich aufheben?'); } } else if (($session['user']['pvpflag']=='1986-10-06 00:42:00' && $session['user']['marks'] & CHOSEN_FULL < CHOSEN_FULL) || $row['last_crime'] > $crimedate) { output('J. C. Petersen zeigt dir einen Vogel und macht dir sehr schnell klar, dass er vorerst nichts mehr für dich tun kann. Er kann niemanden schützen, der selbst mordend durchs Land zieht.'); } else { output('Du fragst J. C. Petersen, ob er deinen Aufenthaltsort vor herumstreifenden Dieben und Mördern verbergen kann. Er nickt und verspricht dir, dass dir für die Kleinigkeit von `&'.$cost['immun'].' Punkten`0 niemand mehr ein Haar krümmen wird. Er wird auch mit Dag Durnick reden. Allerdings kann er für nichts mehr garantieren, wenn du selbst einen Mord begehst!`n`n'); if($bool_hot) { output('`nAußerdem trägst du da etwas bei dir, das diesen Schutz beeinträchtigen könnte..`n`n'); } output($cost['immun'].' Punkte für permanente PvP Immunität ausgeben? `n(Die Immunität verfällt, sobald du selbst PvP machst, oder ein Kopfgeld auf jemanden aussetzt und kann dann `bnicht`b mehr so schnell erneuert werden!)'); addnav('Immunität bestätigen?'); addnav('JA','lodge.php?op=immunconfirm'); } } else if ($_GET['op']=='immunconfirm') //PvP-Immu bestätigen { if ($pointsavailable>=$cost['immun']) { output('J. C. Petersen nutzt seinen Einfluss, um dich für PvP-Spieler unangreifbar zu machen. Es kann auch kein (weiteres) Kopfgeld auf dich ausgesetzt werden.`nDenke daran, dass du nur so lange geschützt bist, bis du selbst jemanden angreifst, oder jemanden auf Dag\'s '); output(' Kopfgeldliste setzt. Tust du das, kann selbst Petersen dir in Zukunft nicht mehr helfen.'); $session['user']['pvpflag']=PVP_IMMU; $session['user']['donationspent']+=$cost['immun']; debuglog('Gab '.$cost['immun'].'DP für PvP-Immu'); } else { output('Du hast nicht genug Punkte!'); } } else if ($_GET['op']=='immunlose') //PvP-Immu rückgängig { output(' J.C.Petersen schaut dich entrüstet an, holt aber eine kleine Flasche aus einem Schränkchen.`n Er sagte noch etwas wie `iEigentlich ja nur für mich`i und übergießt dich mit ein wenig davon...`n `n Du merkst langsam wie sein Schutz nicht mehr wirkt... '); $session['user']['pvpflag'] = "0000-00-00 00:00:00"; debuglog('Gab seine PvP-Immunität bei J.C. Petersen `bfreiwillig`b auf!'); } else if ($_GET['op']=='keys1') //Hausschlüssel kaufen/ersetzen { $sql = 'SELECT k.*,a.acctid FROM keylist k LEFT JOIN accounts a ON a.acctid=k.owner WHERE value1='.$session['user']['house'].' AND type='.HOUSES_KEY_DEFAULT.' ORDER BY id ASC'; $result = db_query($sql); $keycount = db_num_rows($result); $lost = array(); while ($k = db_fetch_assoc($result)) { if ($k['owner'] == 0 || $k['acctid'] == 0) { $lost[] = $k; } } if (sizeof($lost)) { output("`c`b`&Verlorene Schlüssel:`0`b`c `n",true); for ($i=0; $i ",true); addnav('','lodge.php?op=keys2&id='.$row['id']); } output("
Nr. Aktion
".$session['user']['house']." ".create_lnk('Ersetzen ('.$cost['keys'].' Punkte)','lodge.php?op=keys2&id='.$row['id'])."
`n",true); } else { output('Der Schlüsselsatz für dein Haus ist komplett. '); } $sql = 'SELECT status,build_state FROM houses WHERE owner='.$session['user']['acctid']; $res = db_query($sql); $house = db_fetch_assoc($res); if ($keycount1)); // Entschädigung $session['user']['donation'] += 40; $session['user']['gems'] += 10; debuglog('hat Gemach ('.$arr_item['id'].') markiert und dafür Entschädigung kassiert'); $str_output .= '`2Gemach markiert und Entschädigung transferiert!`0'; } else { $str_output .= '`$Gemach konnte nicht gefunden werden!`0'; } } else { $str_output .= 'Folgende Gemächer kannst du noch gegen eine Entschädigung (40DP, 10 Edelsteine) einlösen:`n`n'; while($i = db_fetch_assoc($res)) { $link = 'lodge.php?op=private_keys1&id='.$i['id']; addnav('Gemach in '.strip_appoencode($i['housename'],3),$link); $str_output .= '`&Eigenes Gemach in '.$i['housename'].'`0: '.$i['description'].'`0`n'.create_lnk('Entschädigung!',$link).'`n'; $str_output .= '`n~~~`n'; } } addnav('Zurück','lodge.php'); } else { $str_output .= 'Du hast keine Gemächer mehr, die du einlösen könntest!`n`n'; } $str_out .= $str_output; output($str_out,true); */ } else if ($_GET['op'] == 'item') //einzigartiges Möbelstück { $max_zeichen = 250 + $_GET['gems']*10; if ($_GET['gems']) $gem_text = ' und `b'.$_GET['gems'].'`b Edelsteine'; $res = item_list_get(" tpl_id='unikat' AND owner=".$session['user']['acctid'],'',false); $anzahl = db_num_rows($res); output('Hier hast du die Möglichkeit, Dir für '.$cost['special_item'].' Punkte'.$gem_text.' ein einzigartiges, nach deinen Wünschen gestaltetes Möbelstück fertigen zu lassen. Für besonders ausführliche Wünsche verlangt Petersen eine zusätzliche Bezahlung in Edelsteinen.`n'); output('Außerdem bietet Petersen dir auch an, dieses Möbelstück an andere Einwohner '.getsetting('townname','Atrahor').'s zu versenden.`n'); if ($pointsavailable >= $cost['special_item']) { output('`n`nPetersen benötigt nun die folgenden Informationen von dir: `n`n`0
Vorschau: `^'.js_preview('name').' `n`&Name des Möbelstücks: `n`nVorschau: '.js_preview('desc').' `nBeschreibung: ('.$max_zeichen.') `n`n `n`0
',true); addnav('','lodge.php?op=item_confirm&gems='.$_GET['gems']); addnav('Mehr Zeichen?'); addnav('Beschreibungstext für Edelsteine verlängern','lodge.php?op=item_chars'); } else { output('`n`nLeider hast du nicht genug Punkte.`n'); } output('`n
Bisher wurden für dich '.$anzahl.' besondere'.($anzahl==1?'s':'').' Möbel hergestellt:`n'); while ($item = db_fetch_assoc($res)) { output('`i`n'.$item['name'].'`i'); } output ('`n`n'); } else if ($_GET['op'] == 'item_chars') //einzigartiges Möbelstück, Beschreibungstext verlängern { output('Für 1 Edelstein kannst du 10 Zeichen zum Beschreibungstext deines Unikates dazukaufen, maximal jedoch die Länge von 250 auf 500 Zeichen verdoppeln. Wie viele Edelsteine willst du dafür ausgeben?`n`n'. form_header('lodge.php?op=char_confirm').generateform(array('gems'=>'Wie viele Edelsteine ausgeben?,int'),array(),false,'Bestätigen').''); addnav('Mehr Zeichen?'); addnav('Doch nicht','lodge.php?op=item'); } else if ($_GET['op'] == 'char_confirm') //Bestätigung Beschreibungstext verlängern { $int_gems=intval($_POST['gems']); if ($_POST['gems'] && ($int_gems < 1 || $int_gems > 25)) { output('`b`$'.$_POST['gems'].' ist kein gültiger Wert!`0`b`n`nDu musst mindestens 1 und kannst höchstens 25 Edelsteine zum Verlängern des Beschreibungstextes ausgeben.'); addnav('Mehr Zeichen?'); addnav('Nochmal versuchen','lodge.php?op=item_chars'); addnav('Doch nicht','lodge.php?op=item'); } else if ($int_gems > $session['user']['gems']) { output('`b`$Du hast keine '.$int_gems.' Edelsteine!`0`b`n`nDu musst mindestens 1 und kannst höchstens 25 Edelsteine zum Verlängern des Beschreibungstextes ausgeben und musst diese natürlich auch besitzen.'); addnav('Mehr Zeichen?'); addnav('Nochmal versuchen','lodge.php?op=item_chars'); addnav('Doch nicht','lodge.php?op=item'); } else { $zeichen = $int_gems*10; output('Willst du wirklich '.$int_gems.' Edelsteine ausgeben und damit den Beschreibungstext deines Unikates um '.$zeichen.' Zeichen verlängern?`n`n'); addnav('Mehr Zeichen?'); addnav('Aber sicher!','lodge.php?op=item&gems='.$int_gems); addnav('Doch nicht','lodge.php?op=item'); } } else if ($_GET['op'] == 'item_confirm') //einzigartiges Möbelstück, Vorschau { addnav('Besonderes Möbelstück'); $max_zeichen = 250 + $_GET['gems']*10; // warum auch immer da mehrfach escaped wird.. if(date('m')==12 && date('d')>23 && date('d')<27) { $name = '`DWeih`$nachtsgesc`Dhenk`^ - '.trim(stripslashes($_POST['name'])); } else { //$name = '`^Unikat - '.trim(stripslashes($_POST['name'])); $name = '`^'.trim(stripslashes($_POST['name'])); } if ($_GET['gems']) $gem_text = ' und `b'.$_GET['gems'].'`b Edelsteine'; $desc = trim(stripslashes($_POST['desc'])); output('Wirklich `b'.$cost['special_item'].'`b Punkte'.$gem_text.' für dieses einzigartige Möbelstück ausgeben? Es wird ungefähr so aussehen: `n`n'.$name.' `&('.$desc.'`&)`0 `nWillst du es selbst verwenden oder an jemanden verschenken? `n`n
`n `n
'); addnav('','lodge.php?op=item_ok&gems='.$_GET['gems']); } else if ($_GET['op'] == 'item_ok') //einzigartiges Möbelstück bestätigen { // Falls jemand der Laula erklären kann, warum das 252 sein muss und bei 250 2 Zeichen abschneidet.. bitte Oo //(inzwischen entfernter) Zeilenumbruch durch rawoutput? $max_zeichen = 252 + $_GET['gems']*10; $name = trim(stripslashes($_POST['name'])); $desc = trim(stripslashes(substr($_POST['desc'],0,$max_zeichen))); if ($_GET['act'] == 'search' && strlen($_POST['search']) > 2) { $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 = 'lodge.php?op=item_ok&gems='.$_GET['gems']; output($name.' `&('.$desc.'`&)`0 `n`n
`n`n
'); addnav('',$link); } else if ($_POST['ok_geschenk']) { $link = 'lodge.php?op=item_ok&act=search&gems='.$_GET['gems']; output($name.' `&('.$desc.'`&)`0 `n`nAn wen willst du das Unikat versenden? `n`n
Name:
'); addnav('',$link); } // END Geschenk else { $acctid = (int)$_POST['acctid']; $session['user']['donationspent'] += $cost['special_item']; if ($_GET['gems']) { $session['user']['gems']-= $_GET['gems']; $gem_text = ' und '.$_GET['gems'].' ES'; } if ($acctid) { debuglog('Gab '.$cost['special_item'].' DP'.$gem_text.' für Specialitem '.$name.' für',$acctid); } else { debuglog('Gab '.$cost['special_item'].' DP'.$gem_text.' für Specialitem '.$name); } $item['tpl_name'] = html_entity_decode($name).'`0'; $item['tpl_description'] = html_entity_decode($desc).'`0'; $item['tpl_gold'] = 0; $item['tpl_gems'] = 10; item_add(($acctid ? $acctid : $session['user']['acctid']) , 'unikat' , $item ); output('Petersen protokolliert gewissenhaft diesen Wunsch und meint dann:`n'); if (!$acctid) { output('`7"Dein besonderes Möbelstück steht nun für dich bereit. Viel Spaß damit..."'); addnav('Besonderes Möbelstück'); } else { systemmail($acctid,'`2Ein Geschenk!',$session['user']['name'].'`2 hat dir ein Unikat namens '.$name.'`2 zum Geschenk gemacht. Du kannst es mit dir rumtragen, es anbeten oder einfach in ein Haus oder Privatgemach stellen! Ist das nicht nett?`n(Kleiner Tipp: Du findest es in deinem Inventar.)'); output('`7"Dein besonderes Möbelstück wurde an die gewünschte Person geliefert. Hoffentlich gefällt es..."'); } output('`0, woraufhin er sich wieder seinem Buch zuwendet.'); } } else if ($_GET['op']=='itemcolor') //Möbel von Aeki färben { switch($_GET['act']) { case 'input': $row=item_get('id='.$_GET['id']); output('Vorschau: `^'.js_preview('name').'`0 `n
`n
`n`nBeschreibung: `&'.$row['description']); addnav('','lodge.php?op=itemcolor&act=confirm&id='.$row['id']); addnav('Zur Liste','lodge.php?op=itemcolor'); break; case 'confirm': $row=item_get('id='.$_GET['id']); $temp_newname=strip_appoencode($_POST['name']); $temp_newname=str_replace('`0','',$temp_newname); $temp_oldname=strip_appoencode($row['name']); $temp_oldname=str_replace('`0','',$temp_oldname); if($temp_newname<>$temp_oldname) { $session['message']='`$Der Name darf nicht geändert werden, einzig Farbcodes sind erlaubt!`0`n'; redirect('lodge.php?op=itemcolor&act=input&id='.$row['id']); } else { $colname=$_POST['name']; if(!strrchr($colname,'0')) $colname .= '`0'; $arr_data=array('name' => $colname); if(item_set('id='.$row['id'],$arr_data)) { output('Petersen schwingt den Pinsel und gibt dir wenig später dein '.$_POST['name'].'`0 in neuem Glanz zurück.`nVorsicht! Die Farbe braucht eine Weile zum Trocknen!'); $session['user']['donationspent']+=$cost['itemcolor']; debuglog('Gab '.$cost['itemcolor'].' DP für farbiges Möbelstück'); } else output('Petersen zuckt mit den Schultern und sagt "`7Ich weiß auch nicht wie das passieren konnte, aber die Farbtöpfe sind völlig leer.`0"'); addnav('Mehr färben','lodge.php?op=itemcolor'); } break; default: if($pointsavailable<$cost['itemcolor']) $str_out.='`c`b`$Fehler!`0`b`nMöbel färben kostet '.$cost['itemcolor'].' Punkte, welche du nicht hast.`c'; else { $result=item_list_get('owner='.$session['user']['acctid'].' AND (tpl_class=7 AND i.name NOT LIKE "`^Unikat -%" OR tpl_class=18)','',true,'name,id,description'); //class 7 = Möbel, class 18 = Apparatur $str_out .= '`cDu kannst folgende Möbel für '.$cost['itemcolor'].'DP neu färben: `n`n'; while($row=db_fetch_assoc($result)) { $bgcolor=($bgcolor=='trlight'?'trdark':'trlight'); $str_out .= ''; } $str_out .= '
Name Aktion Beschreibung
'.$row['name'].'`0 '.create_lnk('färben','lodge.php?op=itemcolor&act=input&id='.$row['id']).' '.closetags(substr($row['description'],0,40),'`b`c`i').'...`0
`c`n`n'; } output($str_out); } } else if ($_GET['op']=='bio') //verlängerte Bio { $resextra = db_query('SELECT has_long_bio FROM account_extra_info WHERE acctid='.$session['user']['acctid']); $rowextra = db_fetch_assoc($resextra); output('`c`b`&Verlängerte Bio`b`c`n'); if ($rowextra['has_long_bio']==1) { output('Du hast diese Option bereits gekauft und hast in deiner Bio Platz für '.getsetting('longbiomaxlength',4096).' Zeichen.'); } elseif($session['user']['marks'] >= CHOSEN_FULL) { output('Als Auserwählter verfügst du ohnehin über eine verlängerte Bio und brauchst dafür keine Punkte ausgeben!'); } else { output('Hiermit schaffst du den ersten Schritt aus deiner Unbedeutenheit heraus. Die anderen Kämpfer werden viel mehr über dich erfahren können, wenn du diese Option freischaltest.`n`n'); if ($pointsavailable < $cost['bio_long']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Freischaltung'); addnav('JA','lodge.php?op=bio2'); } } } else if ($_GET['op']=='bio2') //verlängerte Bio bestätigen { output('`c`b`&Verlängerte Bio`b`c`n`n'); if ($pointsavailable >= $cost['bio_long']) { $sql = "UPDATE account_extra_info SET has_long_bio=1,long_bio=IF(long_bio='',bio,long_bio) WHERE acctid = ".$session['user']['acctid']; db_query($sql); output("J. C. Peterson erfüllt dir deinen Wunsch und macht dich zu einem bedeutenderem Bürger.`nDeine Bio fasst nun ".getsetting('longbiomaxlength',4096)." Zeichen."); $session['user']['donationspent']+= $cost['bio_long']; debuglog('Gab '.$cost['bio_long'].' DP für eine lange bio '); } } else if ($_GET['op']=='huntweapon') //Jagdtrophäen { output(get_title('`IJägerbedarf').'J. C. Peterson erklärt dir den Sinn der Jagdwaffen: "`7Du kannst diese Waffe 5 mal pro Heldenzyklus im Wald einsetzen und versuchen, damit ein zur Jagd freigegebenes Tier zu töten. Gelingt dir dies, kannst du dir eine Jagdtrophäe mitnehmen, jedoch pro Heldenzyklus von jeder Art nur eine.`0" `n`nFolgende Jagdwaffen sind im Angebot: `nJagdspeer: `&200 Punkte`0 `nPfeil und Bogen: `&300 Punkte`0 `nArmbrust: `&400 Punkte `0 `nSilberpfeile: `&500 Punkte`0 `n`n'); $item=item_get('tpl_id="huntweapon" AND owner='.$session['user']['acctid']); $itemcontent=unserialize($item['content']); if(!$item['id'] && $pointsavailable>=200) //neu kaufen { output(' `nFür den Anfang solltest du dich im Umgang mit dem Jagdspeer üben. Nachdem du eine Weile damit gejagt hast kannst du dir auch eine bessere Waffe kaufen. `nJäger zu sein bedeutet aber nicht nur Spaß, sondern auch Verantwortung. `n `nBist du bereit, die Tiere des Waldes zu achten und nicht aus Lust und Habgier zu töten? `nBist du bereit, `b200 Punkte`b für deine erste Jagdwaffe auszugeben? `nSo antworte mit einem deutlichen "Ja"! `0`n`n`c
`c'); addnav('','lodge.php?op=huntweapon2&lvl=2'); } elseif($itemcontent['weaponage']==$session['user']['dragonkills']) //Waffe wurde erst gewechselt { output('J. C. Petersen erklärt dir, dass nur Übung den Meister macht. Du solltest '.$item['name'].' mindestens einen Heldenzyklus nutzen, ehe du es mit etwas anderem versuchst.'); } elseif($item['hvalue2']>=5) //hat schon beste Waffe { output('Wie du selbst sehen kannst, gibt es keine bessere Jagdwaffe als du bereits besitzt.'); } elseif($pointsavailable>=($item['hvalue2']*100+100)) //Update { $lvl=$item['hvalue2']+1; output('Du besitzt im Moment: '.$item['name'].'. Die nächstbessere Waffe würde dich `b'.($lvl*100).' Punkte`b kosten. `nWillst du die Punkte ausgeben? `0`n`c
`c'); addnav('','lodge.php?op=huntweapon2&lvl='.$lvl); } else //zu teuer { output('`$Du hast nicht genug Punkte!`0 `n`nDu besitzt im Moment: '.$item['name'].'. Die nächstbessere Waffe kostet '.($item['hvalue2']*100+100).' Punkte'); } if($item['id']>0) { addnav('Nur für Jäger'); addnav('Mitgliederliste','lodge.php?op=hunterlist'); addnav('Vereinszimmer','lodge.php?op=trophylist'); addnav('Trophäe verkaufen','lodge.php?op=trophysell'); //Boss einfügen $rowe=user_get_aei('hunterlevel'); if($rowe['hunterlevel']==6) { include_once(LIB_PATH.'boss.lib.php'); boss_get_nav('huntgod'); } } } else if ($_GET['op']=='huntweapon2') //Jagdtrophäen Waffenkauf { if($_GET['lvl']==2) //neu kaufen { output(get_title('Willkommen im Kreis der Jäger!').'Für 200 Punkte überreicht dir Petersen einen brandneuen Jagdspeer und wünscht dir "Weidmanns Heil". `nDu verabschiedest dich mit einem "Weidmanns Dank".'); $itemcontent['weaponage']=$session['user']['dragonkills']; $item['content']=serialize($itemcontent); $item['hvalue2']=2; //Waffenstärke und Berechnungsgrundlage item_add($session['user']['acctid'],'huntweapon',$item); $session['user']['donationspent']+= 200; debuglog('Gab 200 DP für Jagdwaffe'); } else //Update { $item=item_get('tpl_id="huntweapon" AND owner='.$session['user']['acctid']); if($item) { $itemcontent=unserialize($item['content']); $arr_names=array(3=>'Pfeil und Bogen',4=>'Armbrust',5=>'Silberpfeile'); $item['hvalue2']++; //Waffenstärke $points=$item['hvalue2']*100; output(get_title('Gratulation!').'Für '.$points.' Punkte tauschst du dein '.$item['name'].' gegen '.$arr_names[$item['hvalue2']].'. `nWeidmanns Heil!'); $item['value']=5; //5 Anwendungen $item['hvalue']+=10; //Treffsicherheit $item['name']=$arr_names[$item['hvalue2']]; $itemcontent['weaponage']=$session['user']['dragonkills']; $item['content']=serialize($itemcontent); item_set('id='.$item['id'],$item); $session['user']['donationspent']+= $points; debuglog('Gab '.$points.' DP für Jagdwaffe'); } else { output('Deine Jagdwaffe hat sich scheinbar auf mysteriöse Weise dematerialisiert. Lass das mal von einem Admin prüfen.'); } } addnav('Zurück zur Übersicht','lodge.php?op=huntweapon'); } else if ($_GET['op']=='trophy') //Präparierset { $resextra = db_query('SELECT trophyhunter FROM account_extra_info WHERE acctid='.$session['user']['acctid']); $rowextra = db_fetch_assoc($resextra); if ($rowextra['trophyhunter']==1) { output('Du hast doch bereits dein eigenes von J. C. Petersen signiertes Präparierset.`nOder weißt du etwa nicht was du damit anstellen sollst ?`n'); } else { output('J. C. Petersen zeigt dir die vielen Jagdtrophäen in seiner Hütte, die er selbst herstestellt hat. Nun bietet er dir sein persönliches Präparierset für läppische `&'.$cost['trophy'].' Punkte`0 an.'); if ($pointsavailable<$cost['trophy']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Freischaltung'); addnav('JA','lodge.php?op=trophy2'); } } } else if ($_GET['op']=='trophy2') //Präparierset Bestätigung { if ($pointsavailable >= $cost['trophy']) { $sql = 'UPDATE account_extra_info SET trophyhunter=1 WHERE acctid = '.$session['user']['acctid']; db_query($sql); output('Gratulation! Du besitzt nun dein eigenes Präparierset und bist somit im Stand deine eigenen Trophäen herzustellen.'); $session['user']['donationspent']+=$cost['trophy']; debuglog('Gab '.$cost['trophy'].'DP für Präparierset'); } } else if ($_GET['op']=='trophysell') //Liste aller Trophäen zum Verkaufen { $sql='SELECT * FROM items WHERE owner='.$session['user']['acctid'].' AND tpl_id="trph" AND deposit1=0 AND deposit2=0 ORDER BY hvalue ASC, value2=9 DESC, name LIMIT 100'; $result=db_query($sql); $str_out.=''; while($item=db_fetch_assoc($result)) { $trclass=($trclass=='trdark'?'trlight':'trdark'); $str_out.=''; } $str_out.='
Name Wert Aktion
'.$item['name'].'`0 `^'.$item['gold'].'`0 Gold`n `#'.$item['gems'].'`0 Gems   '.create_lnk('Verkaufen','lodge.php?op=trophysell2&id='.$item['id']).'
'; output($str_out); addnav('n?Doch nichts verkaufen','lodge.php?op=huntweapon'); } else if ($_GET['op']=='trophysell2') //Verkauf der Jagdtrophäen / Mitleidsabnahme der Alter-Mann-Trophäen { $item=item_get('id='.$_GET['id']); if($item['value2']==9 && $item['hvalue']==0 || $_GET['act']=='OK') //normale Jagdtrophäe { output($item['name'].'`0, was für eine wundervolle Trophäe. `nPetersen gratuliert dir zu deinem Erfolg und überreicht dir `^'.$item['gold'].' Gold`0 und `#'.$item['gems'].' Edelsteine`0 als Lohn.'); $session['user']['gold']+=$item['gold']; $session['user']['gems']+=$item['gems']; //item set owner=petersen, value1=timestamp, special_info=name item_set('id='.(int)$item['id'],array('owner' => ITEM_OWNER_PETERSEN, 'value1' => strtotime(date('r')), 'special_info' => $session['user']['name']),1); //löschen aller items mit owner=petersen außer die neuesten 30 $sql='SELECT id FROM items WHERE owner = '.ITEM_OWNER_PETERSEN.' AND tpl_id="trph" ORDER BY value1 DESC LIMIT 30 , 50'; $result=db_query($sql); if(db_num_rows($result)>0) { while ($row=db_fetch_assoc($result)) { item_delete('id='.(int)$row['id'].''); } } } //END normale Jagdtrophäe elseif($item['value2']==0 && $item['hvalue']==0) //Alter-Mann-Trophäe { output($item['name'].'`0, was für eine wundervolle Trophäe. `nPetersen schaut dich irgendwie... mitleidig... an, als er dir '.$item['gold'].' Gold in die Hand drückt.'); $session['user']['gold']+=$item['gold']; item_delete('id="'.$item['id'].'"'); } //END Alter_Mann_Trophäe elseif($item['value2']==10 && $item['hvalue']==0) //einmalige Jagdtrophäe { output('J.C. Petersen ist sichtlich überrascht, als du ihm dein '.$item['name'].' anbietest. So etwas bekommt selbst er nicht oft zu sehen. `nDer Legende nach ist es einem Sterblichen `$nur ein einziges Mal vergönnt`0, den Champion des Waldgottes zu besiegen und in den Besitz des mystischen Geweihs zu kommen. `n`nBist du dir wirklich sicher, dass du dieses `&einzigartige Exemplar verkaufen`0 willst? `n`n'.create_lnk('Ja, weg damit','lodge.php?op=trophysell2&id='.$_GET['id'].'&act=OK')); } //END einmalige Jagdtrophäe else //Der Rest sind dann PvP-Trophäen und Stierköpfe { output('Petersen schüttelt den Kopf. '.$item['name'].'`0 passt überhaupt nicht in die Ausstellung der Jägerhütte.'); } addnav('Jagdwaffen ansehen','lodge.php?op=huntweapon'); addnav('Nur für Jäger'); addnav('Mitgliederliste','lodge.php?op=hunterlist'); addnav('Vereinszimmer','lodge.php?op=trophylist'); addnav('Mehr verkaufen','lodge.php?op=trophysell'); } //END Jagdtrophäen verkaufen else if ($_GET['op']=='trophylist') //die letzten 30 verkauften Jagdtrophäen { $arr_items=item_list_get('owner='.ITEM_OWNER_PETERSEN,'ORDER BY value1 DESC',false,'*',true); $str_out.=get_title('Das Vereinszimmer').' Erhfurchtsvoll betrittst du das Vereinszimmer. Hier ist jedes freie Fleckchen an der Wand und auf dem Boden mit Jagdtrophäen bedeckt, eine schöner als die andere. Du erblickst unendlich viele Bärenfelle, prachtvolle Zwölfender und sogar einen weißen Wolf. An der Decke wurden ausgestopfte Vögel an dünnen Seilen befestigt, so dass sie sich im Luftzug wiegen. `nPetersen lässt es sich nicht nehmen, dich auf die neuesten Exemplare aufmerksam zu machen: `n`n`0'; foreach($arr_items as $item) { $int_count++; $str_out.=''; } $str_out.='
'.$item['name'].' von '.$item['special_info'].'`0
'; output($str_out); addnav('Jagdwaffen ansehen','lodge.php?op=huntweapon'); addnav('Nur für Jäger'); addnav('Mitgliederliste','lodge.php?op=hunterlist'); addnav('Trophäe verkaufen','lodge.php?op=trophysell'); } //END Jagdtrophäenliste else if ($_GET['op']=='hunterlist') //Auflistung aller Jäger die mindestens 1 Trophäe bekommen haben { $sql='SELECT name,hunterlevel FROM account_extra_info aei LEFT JOIN accounts a ON a.acctid=aei.acctid WHERE hunterlevel>0 ORDER BY hunterlevel DESC, aei.acctid ASC'; $result=db_query($sql); $str_out.=get_title('Die erfolgreichen Jäger').' Petersen führt genau Buch, wer in diesem Dorf Wild mit Anrecht auf eine Trophäe erlegt hat. Diese Liste, welche nach Rang und Alter sortiert ist, kann von jedem Jagdsmann eingesehen werden. `n`n'; $arr_titles=array('none' ,'Jagdsprösslinge' ,'Jungjäger' ,'Jäger' ,'Jägermeister' ,'Oberförster' ,'Hüter des Waldes' ,'Beherrscher des Waldes' ); while($row=db_fetch_assoc($result)) { if($row['hunterlevel']!=$int_level) { $str_out=str_replace('#PLACEHOLDER#',$int_count,$str_out); $int_count=0; $str_out.=''; $int_level=$row['hunterlevel']; } $int_count++; $str_out.=''; } $str_out=str_replace('#PLACEHOLDER#',$int_count,$str_out); $str_out.='
#PLACEHOLDER# '.$arr_titles[$row['hunterlevel']].':
'.$row['name'].'
'; output($str_out); addnav('Jagdwaffen ansehen','lodge.php?op=huntweapon'); addnav('Nur für Jäger'); addnav('Vereinszimmer','lodge.php?op=trophylist'); addnav('Trophäe verkaufen','lodge.php?op=trophysell'); } //END Jägerliste else if ($_GET['op']=='dollchange') //Kadaverpuppe in Unikat umwandeln { if ($item=item_get('tpl_id="kpuppe" AND owner='.$session['user']['acctid'])) { if($_GET['act']=='OK') { output('Petersen holt seine Utensilien, die er für die Mumifizierung braucht, dann begebt ihr euch in Richtung Wohnviertel zu deinem Haus. `n`nDir kommt es gar nicht so lange vor, aber als Petersen seine Arbeit beendet hat, sind ganze 3 Tage vergangen... `nPetersen streicht dir 1000 Punkte von deiner Karte, während du das Ergebnis betrachtest. Tatsache, sieht genau so aus wie vorher, riecht aber nicht mehr so muffig.'); item_set('id='.$item['id'],array('tpl_id'=>'unikat', 'description'=>$item['description'].'`nZustand: mumifiziert')); $session['user']['donationspent']+=$cost['dollchange']; $session['user']['age']+=3; debuglog('gab '.$cost['dollchange'].'DP für Mumie'); } else { output('Du hast gehört, dass J. C. Petersen auch Mumien aus besonderen Puppen herstellt, also sprichst du ihn darauf an. `nPetersen erklärt dir, dass eine Mumifizerung ein sehr aufwändiger Prozess ist. Er bietet dir aber seine Dienste für läppische 1000 Punkte an. `n`n`2Für diesen Preis wird er zu dir nach Hause kommen und das wertvolle `q'.$item['name'].'`2-Exemplar in eine einzigartige Mumie verwandeln. Am Aussehen von '.$item['name'].'`2 wird sich fast nichts ändern, auf die bisherige Funktion musst du jedoch verzichten.'); if ($pointsavailable<$cost['dollchange']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Mumifizierung'); addnav('JA','lodge.php?op=dollchange&act=OK'); } } } else { output('Du hast gehört, dass J. C. Petersen auch Mumien aus besonderen Puppen herstellt, also sprichst du ihn darauf an. `nPetersen erklärt dir, dass eine Mumifizerung ein sehr aufwändiger Prozess ist. `n`$Und vor allem braucht er eine Puppe dafür, welche du dir aber schon selbst besorgen musst.'); } } //END dollchange else if($_GET['op']=='taunt') //Gegnerspott für PvP { function get_taunt_prev($taunt='',$sex=0) //Negation der Funktion get_taunt() { global $session,$badguy; if($taunt=='') { if($badguy['creaturewin']!='' && $taunt!==false) { $taunt = $badguy['creaturewin']; } else { $sql = 'SELECT taunt FROM taunts ORDER BY rand('.e_rand().') LIMIT 1'; $result = db_query($sql); $taunt = db_fetch_assoc($result); $taunt = $taunt['taunt']; } } $taunt = str_replace('%s',($sex?'sie':'ihn'),$taunt); $taunt = str_replace('%o',($sex?'sie':'er'),$taunt); $taunt = str_replace('%p',($sex?'ihr':'sein'),$taunt); $taunt = str_replace('%x',($badguy['creatureweapon']),$taunt); $taunt = str_replace('%X',$session['user']['weapon'],$taunt); $taunt = str_replace('%W',$session['user']['name'],$taunt); $taunt = str_replace('%w',$badguy['creaturename'],$taunt); $taunt = words_by_sex($taunt,$sex); $taunt='`5'.$taunt.'`0'; return $taunt; } $badguy['creaturename']='Bauerntrampel `2Joe`^Bloe'; $badguy['creatureweapon']='`#Zahnstocher'; if($_GET['act']=='confirm' && $pointsavailable >= $cost['taunt']) //Spott-Kauf bestätigen { $config['taunt'] = 1; output('J. C. Peterson beglückwünscht dich zu deiner Entscheidung, etwas Individualität in allfällige Streitigkeiten zu bringen.`n`n'); $session['user']['donationspent']+=$cost['taunt']; debuglog('Gab '.$cost['taunt'].'DP für Gegnerspott'); } if ($config['taunt']) //Spott ist bereits gekauft { if(isset($_POST['changetaunt'])) //Änderung abgeschickt { $changes['creaturewin']=strip_tags($_POST['creaturewin']); $changes['creaturewin']=closetags($changes['creaturewin'],'`b`c`i'); $changes['creaturewin']=addstripslashes($changes['creaturewin']); $changes['creaturelose']=strip_tags($_POST['creaturelose']); $changes['creaturelose']=closetags($changes['creaturelose'],'`b`c`i'); $changes['creaturelose']=addstripslashes($changes['creaturelose']); user_set_aei($changes); output('`@Änderungen übernommen.`0`n`n'); } $rowe=user_get_aei('creaturewin,creaturelose'); $creaturewin=stripslashes($rowe['creaturewin']); $creaturelose=stripslashes($rowe['creaturelose']); output('Hier hast du nun die Möglichkeit, die Sprüche zu ändern.'); rawoutput('

Text unter dem Kampf, wenn du verlierst:


Spott in den News, wenn du gewinnst:

'); output('`n`2Beim Spott werden die folgenden Codes unterstützt: `n`7%w`0 = Name des Verlierers ('.$badguy['creaturename'].'`0) `n`7%x`0 = Waffe des Verlierers ('.$badguy['creatureweapon'].'`0) `n`7%s`0 = Geschlecht des Verlierers (ihn/sie) `n`7%p`0 = Geschlecht des Verlierers (sein/ihr) `n`7%o`0 = Geschlecht des Verlierers (er/sie) `n`7%W`0 = Name des Gewinners ('.$session['user']['name'].'`0) `n`7%X`0 = Waffe des Gewinners ('.$session['user']['weapon'].'`0) `n`7[männl|weibl]`0 = Passagen geschlechtsspezifisch ersetzen (Frisö[r|se]) `n`n
So würde dein derzeitiger Spott aussehen: '.($creaturewin?'':'`n`$Du hast noch keinen Spott definiert, es wird ein Zufalls-Spott angezeigt.`0').' `n`n`%'.$badguy['creaturename'].'`5 wurde bei seinem Angriff auf `4'.$session['user']['name'].'`5 getötet. `n'.get_taunt_prev($creaturewin)); $badguy['creaturename']='Flittchen `2Jane`^Bloe'; output('`n`n`%'.$badguy['creaturename'].'`5 wurde bei ihrem Angriff auf `4'.$session['user']['name'].'`5 getötet. `n'.get_taunt_prev($creaturewin,1)); if($creaturelose>'') { output('
So würde dein derzeitiger Todesspruch aussehen: `n`n`b`&'.$creaturelose.'`0`b`n `b`$Du hast '.$session['user']['name'].'`$ besiegt!`0`b`n `#Du erbeutest `^'.$session['user']['gold'].'`# Gold! `n...'); } addnav('','lodge.php?op=taunt'); } else //Spott ist noch nicht gekauft { output('Du bist es leid, in den News immer nur Sprüche zu lesen wie: `n`n`%'.$badguy['creaturename'].'`5 wurde bei seinem Angriff auf `4'.$session['user']['name'].'`5 getötet. `n'.get_taunt_prev(false).' `n`n`0Hiermit schaffst du dir die Möglichkeit, deine Angreifer so richtig zu verspotten, wenn sie dir im Kampf unterliegen. '); if ($pointsavailable<$cost['taunt']) { output('`n`n`$Du hast nicht genug Punkte!`0'); } else { addnav('Bestätige Freischaltung'); addnav('JA','lodge.php?op=taunt&act=confirm'); } } } //ERWEITERTE BIO else if ($_GET['op']=='prof') { //Bitte hier den zusätzlichen small_letter angeben wenn die vorhandenen //Bilder bei Verkauf der Bio gleich mit gelöscht werden sollen. $ext = array( 'mount' => array('small_letter'=>'m', 'name' => 'Tierbiographie','cost' => $cost['bio_mount'],'desc'=>'Eine Biographie für dein Tier. Man kann ein Bild hochladen und hat '.getsetting('mount_biomaxlength',2342).' Zeichen zu Verfügung.'), 'disciple' => array('small_letter'=>'d', 'name' => 'Knappenbiographie','cost' => $cost['bio_disc'],'desc'=>'Eine Biographie für deinen Knappen. Man kann ein Bild hochladen und hat '.getsetting('disc_biomaxlength',2342).' Zeichen zu Verfügung.'), 'extra_info' => array( 'name' => 'Zusatzinformationen','cost' => $cost['bio_extra'],'desc'=>'Ein weiterer Schritt, '.getsetting('townname','Atrahor').' mehr über dich zu verraten. Du kannst noch einige Zusatzinformationen über dich preisgeben und hast dafür '.getsetting('longbiomaxlength',4096).' Zeichen zu Verfügung.'), 'marks' => array( 'name' => 'graphische Mal-Anzeige','cost' => 200,'desc'=>'Die Male werden nicht mehr nur noch aufgelistet, sondern stattdessen graphisch dargestellt.'), 'colors' => array( 'name' => 'Farbkonfiguration','cost' => 300,'desc'=>'Lege die Farben deines Profils selber fest!'), //'stammbaum' => array( 'name' => 'Stammbaum','cost' => 300,'desc'=>'Ein Stammbaum für deine Familie.'), ); $str_out = ''; switch( $_GET['buy'] ){ case 'pic': $ext_prof = user_get_aei('ext_profile,bio_extra_info'); $ext_prof = unserialize($ext_prof['ext_profile']); if(!is_array($ext_prof['pic'])) { $ext_prof['pic'] = array(); } $arr_count = array_count_values($ext_prof['pic']); $pic = count($ext_prof['pic']); $pictype = unserialize(getsetting('pictypes','a:0:{}')); $str_out .= '`cDu kannst folgende Bilder für deine Biographie kaufen (Achtung: Diese Bilder dienen nur der Verzierung des Biographietextes!):`n`n'; $str_out .= ''; foreach($pictype as $k => $p){ $bl = 'lodge.php?op=prof&buy=pic2&id='.$k; $bgcolor=($bgcolor=='trlight'?'trdark':'trlight'); $str_out .= ''; } $str_out .= '
Namemax. GrößeKosten
'.$p['name'].''.$p['x'].' x '.$p['y'].' px'.$p['cost'].' DP'; if($arr_count[$k]>=$p['max']) { $str_out.='`$Limit!`0'; } elseif($pointsavailable<$p['cost']) { $str_out.='`$zu teuer!`0'; } else { $str_out.='kaufen'; addnav( '', $bl ); } $str_out.='
`c`n`n'; $str_out.='Du hast insgesamt bereits `^'.$pic.'`0 Bilderrahmen gekauft.`n'; foreach($arr_count as $k => $p) { $str_out.= $p.'x '.($pictype[$k]['name']?$pictype[$k]['name']:'`iunbekannter Typ`i').'`n'; } break; case 'pic2': addnav( 'Kaufen?' ); addnav( 'Ja!', 'lodge.php?op=prof&buy=pic3&id='.$_GET['id'] ); addnav( 'Nein!', 'lodge.php?op=prof&buy=pic' ); $str_out .= '`n`n`bWillst du diesen Bildtyp wirklich zukaufen?`b`n`n'; break; case 'pic3': $pictype = unserialize(getsetting('pictypes','a:0:{}')); $conf = user_get_aei('ext_profile'); $conf = unserialize($conf['ext_profile']); if( !is_array($conf['pic']) ){ $conf['pic'] = array(); } array_push( $conf['pic'], $_GET['id'] ); user_set_aei( array('ext_profile' => addslashes(serialize($conf))) ); $session['user']['donationspent']+=$pictype[ $_GET['id'] ]['cost']; $str_out .= '`n`n`bBild gekauft!`b`n`n'; addnav( 'Zurück', 'lodge.php?op=prof&buy=pic' ); break; case 'addon': $aei_conf = user_get_aei('ext_profile,bio_extra_info'); $conf = unserialize($aei_conf['ext_profile']); if( isset($ext[$_GET['which']]) ){ $price = $ext[$_GET['which']]['cost']; if($conf[$_GET['which']]==true) { $price*=-0.5; $session['message'] .= '`bDu verkaufst '.$ext[$_GET['which']]['name'].' für '.abs($price).'DP!`b`n'; if($_GET['which'] == 'stammbaum') { $stammb = new CStammbaum($session['user']['acctid']); $stammb->del_tree(); } debuglog('Verkaufte '.$ext[$_GET['which']]['name'].' für '.$price.'DP'); $conf[$_GET['which']] = false; //Wenn die Extrabio verkauft wird, dann werden auch gleich alle damit assoziierten //Bilder gelöscht, um keine Dateileichen zurückzulassen if(isset($ext[$_GET['which']]['small_letter'])) { picture::delete($session['user']['acctid'],$ext[$_GET['which']]['small_letter']); } } else { $session['message'] .= '`bDu kaufst '.$ext[$_GET['which']]['name'].' für '.$price.'DP!`b`n'; if($_GET['which'] == 'stammbaum') { $stammb = new CStammbaum($session['user']['acctid']); $stammb->make_tree(); } debuglog('Gab '.$price.'DP für '.$ext[$_GET['which']]['name']); $conf[$_GET['which']] = true; } $pointsavailable -= $price; $session['user']['donationspent'] += $price; user_set_aei(array('ext_profile'=>addslashes(serialize($conf)))); redirect('lodge.php?op=prof&buy=addon'); } $str_out .= '`cDu kannst folgende Erweiterungen für deine Biographie kaufen:`n`n'; $str_out .= ''; $i = 0; foreach( $ext as $k => $e ){ if( !$conf[$k] ){ if( $pointsavailable >= $e['cost'] ){ $ac = create_lnk('kaufen','lodge.php?op=prof&buy=addon&which='.$k,true,false,'Willst du die Erweiterung '.$e['name'].' wirklich kaufen?'); } else{ $ac = '`$zu teuer!`0'; } } else{ $ac = '`@vorhanden`0`n'.create_lnk('verkaufen','lodge.php?op=prof&buy=addon&which='.$k,true,false,'Willst du die Erweiterung '.$e['name'].' wirklich loswerden? Du würdest '.($e['cost']/2).'DP zurückbekommen. Der Inhalt muss vorher gelöscht werden!'); } $str_out .= ''; $i++; } $str_out .= '
NameKostenBeschreibungStatus
'.$e['name'].''.$e['cost'].''.$e['desc'].''.$ac.'
'; break; } output( $str_out ); } else if ($_GET['op'] == 'history') //besonderes Ereignis { $int_max_length = 100; // Aktuelles Spieldatum $str_current_date = getsetting('gamedate','0000-00-00'); // .. als Array $arr_current_date = explode('-',$str_current_date); // Max. anwählbares Jahr $int_max_year = (int)$arr_current_date[0]; // Max. anwählbarer Monat $int_max_month = (int)$arr_current_date[1]; // Max. anwählbarer Tag $int_max_day = (int)$arr_current_date[2]; if($_GET['act'] == 'save') { // Invalide Spieldaten verhindern $int_year = min((int)$_REQUEST['year'],$int_max_year); $int_month = (int)$_REQUEST['month']; $int_day = (int)$_REQUEST['day']; if($int_year == $int_max_year) { $int_month = min($int_month,$int_max_month); if($int_month == $int_max_month) { $int_day = min($int_day,$int_max_day); } } // this piece of code was taken from chaosmakers gamedate-mod $str_gamedate = sprintf('%04d-%02d-%02d',$int_year,$int_month,$int_day); $str_msg = stripslashes(urldecode($_REQUEST['msg'])); $str_msg = substr($str_msg,0,$int_max_length); $str_msg_save = '`^Besonderes Ereignis:`0 '.$str_msg; if($_GET['ok']) { $session['user']['donationspent'] += $cost['history']; $session['user']['gems'] -= $cost['history_gems']; debuglog('Gab '.$cost['history'].'DP+'.$cost['history_gems'].'ES für spezielle Aufzeichnung'); addhistory($str_msg_save,1,0,$str_gamedate); redirect('lodge.php?op=history&act=done'); } else { output('Deine spezielle Aufzeichnung würde folgendermaßen aussehen:`n`n `@'.getgamedate($str_gamedate).' : `2'.$str_msg_save.'`n`n`0 Entspricht dies deinen Wünschen?`n`n'); $str_lnk = 'lodge.php?op=history&act=save&ok=1&day='.$int_day.'&month='.$int_month.'&year='.$int_year.'&msg='.urlencode($str_msg); output(create_lnk('Ja, für '.$cost['history'].' DP + '.$cost['history_gems'].' Edelsteine eintragen!',$str_lnk)); } } elseif ($_GET['act'] == 'done') { output('`@Petersen nimmt deinen Wunsch entgegen und reicht ihn weiter in das Hinterzimmer der Hütte. Bereits nach kurzer Zeit kannst du das Ergebnis betrachten:`n`n'); show_history(1,$session['user']['acctid']); page_footer(); exit; } elseif ($_GET['act'] == 'del') { output('`@Wie gewünscht, streicht Petersen diesen Eintrag aus deinen Aufzeichnungen.`n`n'); db_query('DELETE FROM history WHERE id='.(int)$_GET['id']); addnav('Neuen Eintrag vornehmen','lodge.php?op=history'); page_footer(); exit; } else { output('Petersen hat hervorragende Verbindungen zu den Geschichtsschreibern des Landes. Deshalb kann er dir gegen `&'.$cost['history'].' Punkte `0und `#'.$cost['history_gems'].' Edelsteine`0 zu einem Eintrag deiner Wahl in deinen Aufzeichnungen verhelfen. Hierbei kannst du entweder selbst ein (natürlich gültiges) Datum angeben oder das des heutigen Tages verwenden. An den Text deiner Aufzeichnung wird vorne die Bemerkung "Besonderes Ereignis" angefügt.`n Achtung: Diese Option dient der Ausgestaltung eures Rollenspiel-Charakters! Unsinnige Spaß-Einträge werden ohne Entschädigung entfernt!`n'); $int_day = $int_max_day; $int_month = $int_max_month; $int_year = $int_max_year; } $str_lnk = 'lodge.php?op=history&act=save'; if($pointsavailable < $cost['history'] || $session['user']['gems'] < $cost['history_gems']) { output('`$Doch leider, leider kannst du dir das gar nicht leisten.. Schade.'); } else { $arr_data=array('msg'=>$str_msg,'year'=>$int_year,'month'=>$int_month,'day'=>$int_day); if($_GET['act']=='edit') { $sql = 'SELECT * FROM history WHERE id='.$_GET['id']; $res = db_query($sql); $arr_data=db_fetch_assoc($res); $arr_data['gamedate']=explode('-',$arr_data['gamedate']); $arr_data['year']=$arr_data['gamedate'][0]; $arr_data['month']=$arr_data['gamedate'][1]; $arr_data['day']=$arr_data['gamedate'][2]; $arr_data['msg']=str_replace('`^Besonderes Ereignis:`0 ','',$arr_data['msg']); } addnav('',$str_lnk); output('
'); $arr_form = array ( 'msg'=>'Nachricht:,textarea,70,2,'.$int_max_length, 'msg_pr'=>'Vorschau:,preview,msg', 'day'=>'Tag,enum_order,1,31', 'month'=>'Monat,enum_order,1,12', 'year'=>'Jahr,enum_order,1,'.$int_max_year ); showform($arr_form,$arr_data,false,'Vorschau!'); output('
'); } $sql = 'SELECT id,gamedate,msg FROM history WHERE acctid='.$session['user']['acctid'].' AND msg LIKE "%Besonderes Ereignis:%" ORDER BY id DESC'; $res = db_query($sql); if(!db_num_rows($res)) { $str_out = '`n`n`&Bisher hast du bei Petersen noch keine Einträge zu deinen Aufzeichnungen hinzufügen lassen.`n`n'; } else { $str_out = '`n`n`&Bisher hast du bei Petersen die folgenden Einträge zu deinen Aufzeichnungen hinzufügen lassen:`n`n'; while($h = db_fetch_assoc($res)) { $str_out .= '
`&'.$h['gamedate'].' '.$h['msg'].'`&`n ~~ '.create_lnk('Streichen!','lodge.php?op=history&act=del&id='.$h['id'],true,false,'Willst du diesen Eintrag wirklich aus deinen Aufzeichnungen streichen?'); $str_out .= '`& | '.create_lnk('Als Vorlage','lodge.php?op=history&act=edit&id='.$h['id']).'`n`n'; } } output($str_out,true); } $session['user']['donationconfig'] = serialize($config); page_footer(); ?>