getsetting('dgplayerfights',1)) {
output('Du fühlst dich bereits zu erschöpft, um gegen hartgesottene Gildenwachen anzutreten!');
addnav('Zum Kriegszimmer','dg_main.php?op=in&subop=war');
page_footer();
exit;
}
// Stärke ermitteln
$int_hpflux = round( (1 + $session['user']['dragonkills'] * 0.25 * 0.01) * $session['user']['maxhitpoints'] );
$arr_badguy = array('creaturename'=>'Gildenwachen',
'creatureweapon'=>'Hammer aus schwerem Eisen',
'creaturehealth'=>$session['user']['maxhitpoints']+$int_hpflux,
'creatureattack'=>$session['user']['attack']+e_rand(1,2),
'creaturedefense'=>$session['user']['defence']+e_rand(1,2),
'creaturelevel'=>$session['user']['level'],
'playerstarthp'=>$session['user']['hitpoints']
);
// .. und Angriff!
$session['user']['badguy'] = createstring($arr_badguy);
user_set_aei(array('guildfights'=>$rowe['guildfights']+1));
$bool_battle = true;
}
break;
// Phase 2: Schlacht der Gildenwachen
case 'attack2':
$int_numberofsoldiers = (int)$_POST['nos'];
$int_numberofsoldiers = min($int_numberofsoldiers,$our_guild['guard_hp']);
if($int_numberofsoldiers > 0) {
// Einfluß der Mitglieder
// rausgenommen
//$arr_infl = dg_calc_strength(array($enemy_guild['guildid'],$our_guild['guildid']));
// Einfluß von Ausbauten etc.
$int_attack = dg_calc_boni($our_guild['guildid'],'guard_atk',1);
$int_def = dg_calc_boni($enemy_guild['guildid'],'guard_def',1);
$int_attack += $our_guild['atk_upgrade'];
$int_def += $enemy_guild['def_upgrade'];
$str_out = '`c`b`&~~ Beginn des Kampfes ~~`b`c`n`n';
$int_ourguild_before = $our_guild['guard_hp'];
$enemy_guild['guard_hp_before'] = $enemy_guild['guard_hp'];
// Gildenwachen durchlaufen und Kampf abwickeln
while($enemy_guild['guard_hp'] > 0 && $int_numberofsoldiers > 0) {
// Startwert: 10
$int_tmp_atk = 10;
$int_tmp_def = 10;
// Situation
$int_tmp_def += e_rand(-8,8);
$int_tmp_atk += e_rand(-8,8);
// Fähigkeiten durch Ausbauten
$int_tmp_atk += e_rand(round($int_attack*0.5),($int_attack*2));
$int_tmp_def += e_rand(round($int_def*0.5),($int_def*2));
// Und jetzt abwiegen
if($int_tmp_atk == $int_tmp_def) {
if(e_rand(1,2) == 2) {
$int_tmp_def = 0;
}
else {
$int_tmp_atk = 0;
}
}
if($int_tmp_atk > $int_tmp_def) {
$str_out .= '`n`@Ein Gegner ist gefallen!`0';
$enemy_guild['guard_hp']--;
}
else {
$str_out .= '`n`$Einer unserer Männer ist gefallen!`0';
$int_numberofsoldiers--;
$our_guild['guard_hp']--;
}
}
$int_atk_lost = $int_ourguild_before - $our_guild['guard_hp'];
$int_def_lost = $enemy_guild['guard_hp_before'] - $enemy_guild['guard_hp'];
// Ende des Kampfes
// Verteidigung hat gewonnen
if($enemy_guild['guard_hp'] > 0) {
//dg_massmail($session['user']['guildid'],'`$Verlorene Schlacht`0','`$In einer tapferen Schlacht gegen die Verteidiger der Gilde
// '.$enemy_guild['name'].'`$ haben unsere Mannen leider den Kürzeren gezogen!`n`n
// Insgesamt ließen auf unserer Seite '.$int_atk_lost.' Mann ihr Leben.`0');
output($str_out.'`n
`$`c`bNiederlage!`b`c`8`n`nUnsere Truppen wurden von den Verteidigern niedergeschlagen.`n
Wir verloren '.$int_atk_lost.' Mann, während die Verteidiger Verluste von '.$int_def_lost.' Kriegern davontrugen.`n'
, true);
// Wenn keine Mann mehr übrig, ist der Angriff zuende
if($our_guild['guard_hp'] <= 0) {
$our_guild['war_target'] = 0;
}
}
// Angreifer hat gewonnen
else {
$enemy_guild['fights_suffered']++;
// Diese Var wird erst beim nächsten Playerupdate der Feindgilde langsam zurückgesetzt
$enemy_guild['fights_suffered_period'] += 2;
$int_heal = 0;
$int_guards_to_replace = dg_calc_boni($gid,'guard_hp_before',$enemy_guild['guard_hp_before']);
if( $int_guards_to_replace > $enemy_guild['guard_hp'] ) {
$int_heal = $int_guards_to_replace;
}
output($str_out.'`n
`@`c`bSieg!`b`c`8`n`nUnsere Truppen haben den Sieg über die Verteidiger davongetragen.`n
Wir verloren '.$int_atk_lost.' Mann, während die Verteidiger Verluste von '.$int_def_lost.' Kriegern davontrugen.`n
Der Weg zur Schatzkammer ist nun frei!', true);
dg_massmail($gid,'`$Verlorene Schlacht`0','`$In einer tapferen Schlacht gegen die angreifenden Truppen der Gilde
'.$our_guild['name'].'`$ haben unsere Mannen leider den Kürzeren gezogen!`n`n
Insgesamt ließen auf unserer Seite '.$int_def_lost.' Mann ihr Leben
'.($int_heal>0?', nach der Heilung werden dennoch '.$int_heal.' wieder kampfbereit sein.`0':'.`0'));
}
}
else { // Anzahl der Angreifer bestimmen
$link = 'dg_battle.php?battle_op=attack2';
addnav('',$link);
output('`8Wie viele unserer derzeit `^'.$our_guild['guard_hp'].'`8 Söldner wollen wir gegen
die `^'.$enemy_guild['guard_hp'].'`8 Mann der Verteidiger in die Schlacht werfen?`n
',true);
}
addnav('Zum Kriegszimmer','dg_main.php?op=in&subop=war');
break;
// Phase 3: Einbruch
case 'attack3':
$our_guild['war_target'] = 0;
$nothing = false;
output('`2Du schreitest an den toten Wachen vorbei ins Innere der Gilde. Nachdem du auch die letzte Tür aufgebrochen hast, erblickst du ');
$decision = e_rand(1,100);
if($decision >= 1 && $decision <= 5) { // Insignien
$min = min($enemy_guild['regalia'],7) * 25;
if(e_rand(1,100) >= $min) {$nothing=true;}
else {
$bool_stolen = false;
output('den Raum der `bInsignien`b!');
if($enemy_guild['regalia'] > 0) {
$enemy_guild['regalia']--;
$our_guild['regalia']++;
$bool_stolen = true;
}
else {
output('`2`nDu kannst dein Pech kaum fassen: Keine einzige Insignie wartet hier noch auf Abholung!');
}
if($bool_stolen) {
dg_commentary($our_guild['guildid'],': `@stiehlt tatsächlich eine Insignie von '.$enemy_guild['name'].'`@!','war');
dg_commentary($enemy_guild['guildid'],': `4stiehlt im Namen '.(($session['user']['sex'])?'ihre':'seine').'r Gilde '.$our_guild['name'].'`4 eine Insignie!','');
dg_addnews($session['user']['name'].'`@ raubt für '.(($session['user']['sex'])?'ihre':'seine').' Gilde '.$our_guild['name'].'`@ eine Insignie von '.$enemy_guild['name'].'`@!',$session['user']['acctid']);
dg_massmail($enemy_guild['guildid'],'`4Insignie geraubt!','`4'.$session['user']['name'].'`4 hat im Namen '.(($session['user']['sex'])?'ihre':'seine').'r Gilde '.$our_guild['name'].'`4 deiner Gilde eine Insignie geraubt!',200);
output('`2`nGlücklicherweise schimmert im Dämmerlicht vor dir eines dieser wertvollen Exemplare. Du zögerst nicht lang, packst die Gelegenheit am Schopfe und verschwindest mit der Insignie!');
}
}
} // END insignien
elseif($decision > 5 && $decision <= 95) { // Einfacher Diebstahl
output('einen Teil der Schatzkammern.');
if($enemy_guild['gold'] > 0 || $enemy_guild['gems'] > 0) {
$steal_gold = min( round($enemy_guild['gold']*0.1) , 25000);
$steal_gems = min( round($enemy_guild['gems']*0.1) , 30);
$our_guild['gold'] += $steal_gold;
$our_guild['gems'] += $steal_gems;
$enemy_guild['gold'] -= $steal_gold;
$enemy_guild['gems'] -= $steal_gems;
dg_commentary($our_guild['guildid'],': `@stiehlt '.$steal_gold.' Gold und '.$steal_gems.' Edelsteine von '.$enemy_guild['name'].'`@!','war');
dg_commentary($enemy_guild['guildid'],': `4stiehlt im Namen '.(($session['user']['sex'])?'ihre':'seine').'r Gilde '.$our_guild['name'].'`4 '.$steal_gold.' Gold und '.$steal_gems.' Edelsteine!','war');
output('`nGierig stopfst du so viel wie möglich in deine Taschen und erbeutest `^'.$steal_gold.'`2 Gold und `^'.$steal_gems.'`2 Edelsteine.');
}
else {
output('`nLeider ist dieser Raum völlig leer und von Gold oder ähnlichem keine Spur.');
}
} // END einfacher Diebstahl
else {
$nothing = true;
}
if($nothing) {
output('nur einen weiteren Raum voller nutzlosen Kitsches.. was für ein Reinfall!');
dg_commentary($our_guild['guildid'],': `8war bei seinem Raubzug in der Gilde '.$enemy_guild['name'].'`8 leider erfolglos.','war');
}
addnav('Zum Kriegszimmer','dg_main.php?op=in&subop=war');
break;
default:
output('Hier hast du nichts verloren. Benachrichtige bitte den Admin. Op: '.$_GET['battle_op']);
break;
}
// Kampf!
if($bool_battle) {
include("battle.php");
if($victory) {
$int_hp_diff = round( ($session['user']['hitpoints'] / $badguy['playerstarthp']) * 100 );
$int_loose = 0;
if($int_hp_diff >= 100) {
$int_loose = 3;
}
else if($int_hp_diff >= 90) {
$int_loose = 2;
}
else {
$int_loose = 1;
}
$enemy_guild['guard_hp'] -= $int_loose;
output('`2Dir gelingt es, nach einem harten Kampf '.$int_loose.' Gildenwachen niederzustrecken!`n');
dg_commentary($our_guild['guildid'],': `@versetzt '.$int_loose.' Gildenwache'.($int_loose>1?'n':'').'`@ den Todesstoß!','war');
addnav('Zum Kriegszimmer','dg_main.php?op=in&subop=war');
} // END if victory
elseif($defeat) {
killplayer(0,0,0,'');
dg_commentary($our_guild['guildid'],': `4stirbt im Kampf gegen '.$badguy['creaturename'].'`4!','war');
dg_addnews($session['user']['name'].'`5 wurde im Krieg '.(($session['user']['sex'])?'ihre':'seine').'r Gilde '.$our_guild['name'].'`5 gegen '.$enemy_guild['name'].'`5 von '.$badguy['creaturename'].'`5 niedergeschmettert!',$session['user']['acctid']);
output('`2Das ist das Ende, du weißt es genau. Ramius wird dich hoffentlich gnädig aufnehmen.');
addnav('Tägliche News','news.php');
}
else {
fightnav(false,false);
}
} // END if battle
// jegliche Veränderung speichern
dg_save_guild();
page_footer();
?>