90) { output('nickt dir der Paladin freundlich zu: `&"Ausgezeichnet, mein Freund, ausgezeichnet!"'); } else if($king_mood > 70) { output('sieht dich der Paladin kurz an und meint: `&"Ihre Majestät pflegt gute Beziehungen zu den Gilden '.getsetting('townname','Atrahor').'s!"'); } else if($king_mood > 50) { output('grübelt der Paladin: `&"Nun, Ihre Majestät ist mit den Gilden '.getsetting('townname','Atrahor').'s leidlich zufrieden. Sicherlich könnte es besser sein!"'); } else if($king_mood > 30) { output('sieht dich der Paladin mitleidig an und lacht: `&"Eisig, um es so zu sagen!"'); } else { output('blickt der Paladin starr geradeaus. Als du deine Frage wiederholst, knurrt er: `&"Ihre Majestät ist äußerst unzufrieden mit den Gilden '.getsetting('townname','Atrahor').'s! Gebt gut auf eure Insignien Acht.."'); } addnav('Zum Lager der Paladine','dg_council.php?op=paladin'); } else { output('`8An die das Gildenviertel umgrenzende Mauer schmiegt sich die Feste der Paladine. Sie wachen im Auftrag des Königs über die Gilden, verwalten die Insignien und repräsentieren den Herrscher.`n`nÜberall stehen wohlgerüstete Krieger herum und erfüllen ihre jeweilige Aufgabe. Von ihnen weiß sicherlich auch einer über die Stimmung des Königs Bescheid. Vielleicht sind einige auch bereit, bei diesem ein gutes Wort einzulegen..`n`n'); addnav('Nach Stimmung des Königs fragen','dg_council.php?op=paladin&subop=ask_mood'); addnav('Paladine bestechen','dg_council.php?op=paladin&subop=bribe_king'); if($regalia_left) { output('Eine Tafel vor dem hohen Lagertor verkündet, dass noch `^'.$regalia_left.'`8 Insignien vorhanden sind. Diese kosten für deine Gilde `^'.$regalia_price_gold.'`8 Gold und `^'.$regalia_price_gems.'`8 Edelsteine.'); if($leader) {addnav('Insignie kaufen','dg_council.php?op=paladin&subop=buy_regalia');} } else { output('Eine Tafel vor dem hohen Lagertor verkündet, dass bereits alle Insignien verkauft wurden! Deine Gilde wird wohl auf eine neue Lieferung warten müssen.'); } } } // END if member addnav('Zurück'); addnav('Zum Gildenviertel','dg_main.php'); break; case 'plead_king': $plead_price_turns = 3; $plead_price_gold = $session['user']['level'] * 100; if( $session['user']['guildid'] ) { $guild = &dg_load_guild($session['user']['guildid']); } if($_GET['act'] == 'try') { if($session['user']['gold'] < $plead_price_gold) { } else if($session['user']['turns'] < $plead_price_turns) { } else { if(e_rand(1,2) == 1) { $guild['reputation']++; $session['user']['gold'] -= $plead_price_gold; $session['user']['turns'] -= $plead_price_turns; output(''); } else { } } addnav('Zurück'); addnav('Zum Gildenviertel','dg_main.php'); } break; case 'council': dg_show_header('Der Ratssaal'); $council_days_left = 0; $vote_days_left = getsetting('dgvotedaysmax',170) - getsetting('dgvotedays',0) - DG_COUNCIL_TIME; if($vote_days_left <= 0) { $council_days_left = DG_COUNCIL_TIME + $vote_days_left; } if($_GET['subop'] == 'vote') { $vote = (int)$_GET['vote']; if($_GET['act'] == 'ok') { $reputation = $vote - 100; $reputation = round($reputation*0.25); $reputation -= e_rand(0,2); $guild['reputation'] = max($guild['reputation']+$reputation,0); $guild['reputation'] = min($guild['reputation'],100); $guild['vote'] = $vote; dg_save_guild(); redirect('dg_council.php?op=council'); } else { addnav('Ja, Stimme abgeben!','dg_council.php?op=council&subop=vote&act=ok&vote='.$vote); addnav('Nein!','dg_council.php?op=council'); } } elseif($_GET['voted']) { output('`8Du gibst die '.$guild['regalia'].' Stimmen deiner Gilde für einen Steuersatz von `^'.$_GET['voted'].' %`8!'); } elseif($_GET['subop'] == 'results') { dg_load_guild(0,array('vote','regalia')); $votes = array(); foreach($session['guilds'] as $g) { if($g['vote'] > 0) { $votes[ $g['vote'] ] += $g['regalia']; } } arsort($votes); reset($votes); output('`8Bisheriger Stand:`n`n'); foreach($votes as $v=>$r) { output('`b`^'.$v.' %:`b `8'.$r.' Stimmen`n'); } addnav('Zum Ratssal','dg_council.php?op=council'); } else { output('`8Sofort stechen dir am prachtvollen und beeindruckenden Gebäude des Gildenrats zwei eicherne Türflügel ins Auge. Hinter jenen, so erfährst du, beraten sich die Gilden über gemeinsame Unternehmungen und - wer weiß - vielleicht auch über die Zukunft des Dorfes. Eine Tafel verkündet:`n '.($council_days_left || 1 ? '`n`bDer Gildenrat tagt gerade!`b`n' : '`nNoch `^'.$vote_days_left.'`8 Tage bis zur Einberufung des nächsten Gildenrates.') //' Der derzeitige Steuersatz beträgt `^'.(getsetting('dgtaxmod',1)*100).'`8 %.`n`n' ); if(!$member) { output('`8Du stehst hier allerdings vor verschlossenen Türen, die sich nur für Angehörige einer der Gilden öffnen!'); } else { addcommentary(); output('Hufeisenförmig sind Tische angeordnet und mit gepolsterten Stühlen versehen. Dort nehmen die Führer der einzelnen Gilden Platz, wenn es um wichtige Beratungen geht. Am Rand sind ebenfalls Stühle aufgereiht, die für einfache Mitglieder und deren Zuschauerrolle gedacht sind. Sprechen dürfen hier nämlich nur die Führer.`n'); /*if($council_days_left) { output('`nJetzt gerade herrscht hier rege Betriebsamkeit, Stimmengewirr durchzieht den Raum. Offensichtlich wird hier noch für `^'.$council_days_left.'`8 Tage eine Abstimmung über den Steuersatz abgehalten.`n'); addnav('Stand der Wahl','dg_council.php?op=council&subop=results'); if($leader && $guild['vote'] == 0) { $link = 'dg_council.php?op=council&subop=vote&vote='; addnav('Abstimmung'); addnav('50 % Steuersatz!',$link.'50'); addnav('75 % Steuersatz!',$link.'75'); addnav('100 % Steuersatz!',$link.'100'); addnav('125 % Steuersatz!',$link.'125'); addnav('150 % Steuersatz!',$link.'150'); } output( ($guild['vote'] == 0 ? '`nDeine Gilde hat ihre `^'.$guild['regalia'].'`8 Stimmen noch nicht abgegeben!' : '`nDeine Gilde plädiert mit ihren `^'.$guild['regalia'].'`8 Stimmen für einen Steuersatz von `^'.$guild['vote'].' %`8!') ); }*/ output('`n'); viewcommentary('guildcouncil',($team ? 'Etwas verkünden:':'Du solltest hier besser schweigen!'),25,'verkündet',false,($team?true:false)); } } addnav('Zurück'); addnav('Zum Gildenviertel','dg_main.php'); break; case 'hof': $subop = ($_GET['subop']) ? $_GET['subop'] : 'gp'; $order = ($_GET['order']=='asc') ? $_GET['order'] : 'DESC'; addnav('Bestenlisten'); addnav('Verkaufte Insignien','dg_council.php?op=hof&subop=regalia&order='.$order.'&page='.$page); addnav('Vorrätige Insignien','dg_council.php?op=hof&subop=regalia_recent&order='.$order.'&page='.$page); addnav('Gildenpunkte','dg_council.php?op=hof&subop=gp&order='.$order.'&page='.$page); addnav('Reichtum','dg_council.php?op=hof&subop=gold&order='.$order.'&page='.$page); addnav('Edelsteine','dg_council.php?op=hof&subop=gems&order='.$order.'&page='.$page); //addnav('Ausbau','dg_council.php?op=hof&subop=build&order='.$order.'&page='.$page); addnav('Stärke','dg_council.php?op=hof&subop=strength&order='.$order.'&page='.$page); addnav('Mitglieder','dg_council.php?op=hof&subop=member&order='.$order.'&page='.$page); addnav('Steuerzahler','dg_council.php?op=hof&subop=tax&order='.$order.'&page='.$page); switch($subop) { case 'gp': dg_show_hof('Die Gilden mit den '.(($order=='asc')?'wenigsten':'meisten').' Gildenpunkten in diesem Dorf:`n', 'SELECT guildid,name,points AS data1 FROM dg_guilds ORDER BY points '.$order.', name ASC', false,false,array('Gildenpunkte'),array('Punkte')); break; case 'regalia': dg_show_hof('Die '.(($order=='asc')?'geringsten':'größten').' Insignienlieferanten in diesem Dorf:`n', 'SELECT guildid,name,regalia_sold AS data1 FROM dg_guilds ORDER BY regalia_sold '.$order.', name ASC', false,false, array('Insignien verkauft')); break; case 'regalia_recent': dg_show_hof('Die zur Zeit an Insignien '.(($order=='asc')?'ärmsten':'reichsten').' Gilden:`n', 'SELECT guildid,name,regalia AS data1 FROM dg_guilds ORDER BY regalia '.$order.', name ASC', false,false, array('Insignien auf Lager')); break; case 'gold': dg_show_hof('Die '.(($order=='asc')?'ärmsten':'reichsten').' Gilden dieses Dorfes:`n', 'SELECT guildid,name,gold AS data1 FROM dg_guilds ORDER BY gold '.$order.', name ASC', false,false, array('Vermögen'), array('Gold')); break; case 'gems': dg_show_hof('Die an Edelsteinen '.(($order=='asc')?'ärmsten':'reichsten').' Gilden dieses Dorfes:`n', 'SELECT guildid,name FROM dg_guilds ORDER BY gems '.$order.', name ASC'); break; case 'build': $res = db_query('SELECT guildid,build_list,name FROM dg_guilds'); $guilds = array(); $builds = array(); while($g = db_fetch_assoc($res)) { $g['build_list'] = unserialize($g['build_list']); $builds[$g['guildid']]['data1'] = 0; foreach($g['build_list'] as $id=>$b) { if($id > 0) {$builds[$g['guildid']]['data1']+=$b;} } $guilds[$g['guildid']] = $g; } $builds = sort($builds); $guilds = array_merge(guilds,$builds); dg_show_hof('Die am '.(($order=='asc')?'wenigsten':'weitesten').' ausgebauten Gilden dieses Dorfes:`n', $guilds); break; case 'strength': dg_show_hof('Die '.(($order=='asc')?'schwächsten':'stärksten').' Gilden in diesem Dorf:`n', 'SELECT g.guildid,g.name,ROUND(AVG(a.dragonkills)) AS data1 FROM dg_guilds g,accounts a WHERE a.guildid=g.guildid AND a.guildfunc!='.DG_FUNC_APPLICANT.' GROUP BY g.guildid ORDER BY data1 '.$order.', name ASC', false,false, array('Durchschnitt an Heldentaten'), array('Heldentaten') ); break; case 'member': dg_show_hof('Die Gilden mit den '.(($order=='asc')?'wenigsten':'meisten').' Mitgliedern in diesem Dorf:`n', 'SELECT g.guildid,g.name,COUNT(acctid) AS data1 FROM dg_guilds g LEFT JOIN accounts a ON (a.guildid=g.guildid AND a.guildfunc!='.DG_FUNC_APPLICANT.') GROUP BY g.guildid ORDER BY data1 '.$order.', name ASC', false,false, array('Mitglieder') ); break; case 'tax': dg_show_hof('Diese Gilden haben bisher am '.(($order=='asc')?'wenigsten':'meisten').' Steuern gezahlt:`n', 'SELECT g.guildid,g.name,g.gold_tax AS data1, g.gems_tax AS data2 FROM dg_guilds g ORDER BY data1 '.$order.', data2 '.$order.', name ASC', false,'`cWeiter so!`c', array('Goldsumme','Gemmensumme'), array('Gold','Edelsteine') ); break; } break; case 'found': $min_gold = getsetting('dgguildfoundgold',100000); $min_gems = getsetting('dgguildfoundgems',100); $min_dk = getsetting('dgguildfound_k',20); $max_guilds = getsetting('dgguildmax',100); $subop = ($_GET['subop']) ? $_GET['subop'] : ''; dg_show_header('Gilde gründen'); output('`8Ein edel gewandeter, würdevoller Elf - Gwenmarfar, so sein Name - begrüßt dich im Verwaltungsoffizium der Gildengemeinschaft von '.getsetting('townname','Atrahor').'. '); switch($subop) { case '': // Gründung allg. Info, Prüfung auf Voraussetzungen $guilds = dg_count_guilds(); $fail_count = 0; $out = '`n`n'.get_extended_text('guild_found_info').'`n`n'; $out .= '`q"Eine Gilde zu gründen - keine Aufgabe, die man auf die leichte Schulter nehmen sollte! Lasst Euch mal näher betrachten.." `8woraufhin er dich einer akribischen Inspektion unterzieht:`n`n`q"'; if($max_guilds <= $guilds) {$out.='Leider gibt es bereits '.$max_guilds.' Gilden. Mehr sind zur Zeit nicht zugelassen!`n';$fail_count++;} // if($min_gold > $session['user']['gold']) {$out.='Du besitzt tragischerweise nicht die benötigten '.$min_gold.' Goldstücke!`n';$fail_count++;} // if($min_gems > $session['user']['gems']) {$out.='Schade nur, dass du nicht die benötigten '.$min_gems.' Edelsteine besitzt!`n';$fail_count++;} if($min_dk > $session['user']['dragonkills']) {$out.='Um eine Gilde zu gründen, müsst Ihr schon mindestens '.$min_dk.' Heldentaten vollbracht haben!`n';$fail_count++;} if($fail_count == 0) { $out .= 'Gratuliere, Ihr erfüllt alle formalen Voraussetzungen. Beschreibt Eure Gildenidee nun etwas genauer:"'; $formlink = 'dg_council.php?op=found&subop=found_ok'; foreach($dg_child_types as $k=>$t) { $type_enum .= ','.$k.','.$t[0].' ('.$dg_types[$t[3]]['name'].')'; } $arr_form = array( 'name'=>'Name der Gilde:|?(max. 40 Zeichen inkl. Farbcodes, unveränderlich)', 'type'=>'Art der Gilde:,enum'.$type_enum, 'guildinfo'=>'Beschreibung der Gilde:,textarea,40,20' ); $out .= '`c
`c'; addnav('',$formlink); foreach($dg_types as $t) { $out .= ('`n`b'.$t['name'].'`b:`n'.$t['desc'].'`n'); } //output($out,true); } else { $out .= '`nIch muss Eure Gildengründung deshalb leider zurückweisen!"'; } output($out,true); addnav('Zurück'); addnav('Zum Gildenviertel','dg_main.php'); break; case 'found_ok': // Abschicken! // Alle anderen Tags als erlaubte Farbcodes rausschmeißen $name = preg_replace('/[`][^'.regex_appoencode(1,false).']/','',$_POST['name']).'`0'; $desc = $_POST['guildinfo']; $type = $_POST['type']; $str_petition = "Gildengründung: ".$name."\n\nBeschreibung:\n\n".$desc; $sql = 'INSERT INTO petitions SET author='.$session['user']['acctid'].',date=NOW(),IP="'.addslashes($session['user']['lastip']).'",ID="'.addslashes($session['user']['uniqueid']).'",body="'.addslashes($str_petition).'"'; db_query($sql); output('`8Gwenmarfar nimmt deinen Antrag mit einem freundlichen Nicken entgegen. `q"Vielen Dank! So die Götter Euren Vorschlag für würdig befinden, werdet Ihr davon in Kenntnis gesetzt. Erst dann werden wir Euch einen Platz im Gildenviertel zuteilen und mit der Errichtung der Residenz beginnen. Bis dahin - habt Geduld!"`8`n '); addnav('Zum Gildenviertel','dg_main.php'); break; } break; // END found case 'apply': // Bewerbung bei einer Gilde $gid = (int)$_GET['gid']; if(!$gid) {redirect('dg_main.php');} $guild = dg_load_guild($gid); $subop = ($_GET['subop']) ? $_GET['subop'] : ''; switch($subop) { case '': $min_dk = getsetting('dgmindkapply',3); output('`8Ein edel gewandeter, würdevoller Elf - Gwenmarfar, so sein Name - begrüßt dich im Verwaltungsoffizium der Gildengemeinschaft von '.getsetting('townname','Atrahor').'. '); if($min_dk <= $session['user']['dragonkills']) { $left = dg_guild_is_full($gid); if($left==0) { output(' Mit einem Ausdruck des Bedauerns erklärt er dir, dass diese Gilde bereits zu viele Mitglieder hat und deshalb keine weiteren gebrauchen kann.'); addnav('Zum Gildenviertel','dg_main.php'); } elseif($session['user']['guildfunc'] == DG_FUNC_CANCELLED && $session['user']['guildrank'] > 0) { output(' Kopfschüttelnd bedeutet er dir, besser schnell zu verschwinden. Du musst erst noch die Wartezeit von '.$session['user']['guildrank'].' Tagen abwarten, ehe du dich erneut bewerben darfst!'); addnav('Zum Gildenviertel','dg_main.php'); } else { output(' Freundlich legt er dir das Bewerbungsformular vor, weist dich jedoch zuerst auf die Informationen der Gilde hin.'); output('`n`q"Ich hoffe, dies hilft euch bei eurer endgültigen Entscheidung.."`8 Gwenmarfar nickt dir zu und schiebt eine Feder auf deine Seite.`n`n'); dg_show_guild_bio($gid); addnav('Ja, Bewerbung abgeben!','dg_council.php?op=apply&subop=ok&gid='.$gid); addnav('Nein, zurück!','dg_main.php'); } } else { //output('`8Stirnrunzelnd weist er dich zurück: `q"Du hast noch nicht genügend Heldentaten vollbracht! Komm mit drei grünen Lindwurmköpfen wieder, dann sehen wir weiter.."'); output('`8Stirnrunzelnd weist er dich zurück: `q"Du hast noch nicht genügend Heldentaten vollbracht! Siege über drei der größten aller Monster, dann sehen wir weiter.."'); addnav('Zum Gildenviertel','dg_main.php'); } break; case 'ok': // Infomail verschicken $sql = 'SELECT acctid FROM accounts WHERE (guildfunc='.DG_FUNC_MEMBERS.' OR guildfunc='.DG_FUNC_LEADER.') AND guildid='.$gid; //.' ORDER BY guildfunc ASC, loggedin DESC LIMIT 1'; $res = db_query($sql); while ($mailto = db_fetch_assoc($res)) { systemmail($mailto['acctid'],'`8Neue Gildenbewerbung!',$session['user']['name'].'`8 hat sich für die Mitgliedschaft bei deiner Gilde '.$guild['name'].'`8 beworben!'); } dg_add_member($gid,$session['user']['acctid'],true); output('`8Der Elf nimmt deine Bewerbung gleichmütig entgegen und legt sie in das passende Fach. `q"Bis bald", `8verabschiedet er dich, `q"du wirst von der Gilde hören!"'); addnav('Zum Gildenviertel','dg_main.php'); break; case 'cancel': dg_remove_member($gid,$session['user']['acctid'],true); output('`q"Hm, deine Bewerbung zurückziehen also.. hmhm.."`8 seufzend greift Gwenmarfar in den Stapel und zerreißt das Pergament vor deinen Augen `q"So in Ordnung? Dann auf bald!"'); addnav('Zum Gildenviertel','dg_main.php'); break; } break; // END apply } // END main switch // jegliche Veränderung speichern dg_save_guild(); if($access_control->su_check(access_control::SU_RIGHT_EDITORGUILDS)) { addnav('Admin'); addnav('X?Zum Gildeneditor','dg_su.php'); } page_footer(); ?>