public function feuern($ziel, $modus) { $cur_feld = new Weltraum($this->position->x, $this->position->y, $this->position->system->id, $this->position->system->id > 0); if ($cur_feld->feld->hide) { echo '<span class="error">Du kannst hier (' . $cur_feld->name . ') nicht feuern!</span>'; return 0; } /* Moduscodierung 0= normales angreifen 1= feuern ohne gegenwehr ( alarm rot ) 10= normales angreifen mit photonen 11 feuern ohne gegenwehr mit photonen 20 = normales angreifen mit quanten 21 = feuern ohne gegenwerh mit quanten 30= feuern mit phaser und quanten 31 = feuern mit phaser und quanten ohne gegenwehr */ // MODUS 0 if ($ziel->klasse == 'Schlitten' && $this->klasse != 'Vorposten') { echo 'Zu Weihnachten wird nicht geballert!'; return 0; } if ($modus == 0) { $this->feuern($ziel, 1); //ALLE im sektor die selbe allianz / vertrag / id haben // //$ziel->feuern($this,1); $this->kampftick("3", $ziel); } if ($modus == 10) { $this->feuern($ziel, 11); $this->kampftick("3", $ziel); } if ($modus == 20) { $this->feuern($ziel, 21); $this->kampftick("3", $ziel); } if ($modus == 1 || $modus == 11 || $modus == 21) { //haben wir torpedos? if ($modus == 21 && $this->frachtraum->fracht[11]->anzahl <= 0) { echo "Keine Quantentorpedos an Board. Feuere daher mit Photonentorpedos!<br />"; $modus = 11; } if ($modus == 11 && $this->frachtraum->fracht[10]->anzahl <= 0) { echo "Keine Photonenorpedos an Board. Feuere daher mit Phaser!<br />"; $modus = 1; } //if($ziel->typ!='s') { echo 'falscher Feuermodus<br />'; return 0; } if ($this->besitzer->id != $ziel->besitzer->id && $ziel->besitzer->id != 2 && $this->besitzer->id != 2 && $this->energie >= 1 && ($this->phaser < $this->maxphaser && $modus == 1 || $this->torpedohitze < $this->maxtorpedohitze && $modus == 11 || $this->torpedohitze < $this->maxtorpedohitze && $modus == 21) && $this->tarnung == 0 && $this->position->x == $ziel->position->x && $this->position->y == $ziel->position->y && $this->position->orbit == $ziel->position->orbit && $this->position->system->id == $ziel->position->system->id && ($this->besitzer->allianz->id != $ziel->besitzer->allianz->id || $this->besitzer->allianz->id == 0) && !in_array($this->besitzer->id, $ziel->besitzer->vertrag("nap")) && !in_array($this->besitzer->id, $ziel->besitzer->vertrag("frieden")) && ($ziel->besitzer->level >= 4 && $this->besitzer->level >= 4 || ($ziel->klasse = 'Vorposten'))) { $ausgabe = ""; $change = $ziel->schilde; //echo "<br />"; if ($this->typ == 's') { $objekt = "Das Schiff"; } else { $objekt = "Der Planet"; } if ($modus == 1) { $amount = $this->laser; $waffenname = "Phaser"; } else { if ($modus == 11) { $amount = 20; $waffenname = "Photonentorpedo"; } else { if ($modus == 21) { $amount = 30; $waffenname = "Quantentorpedo"; } } } $this->energie--; if ($modus == 1) { $this->phaser++; } if ($modus == 11) { $this->torpedohitze++; $this->frachtraum->fracht[10]->anzahl--; } if ($modus == 21) { $this->torpedohitze++; $this->frachtraum->fracht[11]->anzahl--; } while ($amount > 0 && $ziel->schilde > 0 && $ziel->schildstatus == 1) { $ausgabe = "Angriff: {$objekt} '{$this->name} ({$this->id})' greift das Schiff '{$ziel->name} ({$ziel->id})' mit " . $waffenname . " an."; $amount--; $ziel->schilde--; if ($ziel->schilde <= 0) { $ziel->schildstatus = 0; $ziel->schilde = 0; } } if ($ziel->schilde == 0) { $ziel->schildstatus = 0; } if ($change != $ziel->schilde) { $ausgabe .= "Schilde von {$change} gesunken auf {$ziel->schilde}. "; } $change = $ziel->hull; while ($amount > 0 && $ziel->hull > 0 && $ziel->schildstatus == 0 && $ziel->typ == 's') { $ausgabe = "Angriff: {$objekt} '{$this->name} ({$this->id})' greift das Schiff '{$ziel->name} ({$ziel->id})' mit " . $waffenname . " an."; $amount--; $ziel->hull--; } if ($change != $ziel->hull) { $ausgabe .= "Hülle von {$change} gesunken auf {$ziel->hull}. "; } // $ausgabe ins log eintragen sowie 2 zeilen nach hier bearbeiten echo "<span class=\"error\">" . $ausgabe . "</span><br />"; if ($ziel->hull == 0 && $ziel->typ == 's') { //KILL mysql_query("UPDATE account SET kills=kills+1 WHERE id='" . $this->besitzer->id . "'"); mysql_query("UPDATE schiffe SET kills=kills+1 WHERE id='{$this->id}'"); echo "Zerstörung: Schiff " . $ziel->name . " (" . $ziel->id . ") wurde von " . $this->name . " (" . $this->id . ") vernichtet. Besitzer des Vernichters: " . $this->besitzer->nickname . " (" . $this->besitzer->id . ")<br />"; //pruefen auf questerf�llung //berechnung gruppenstring $usrfeld = array(); $gruppenabfrage = mysql_query("SELECT id FROM account WHERE gruppe>0 AND gruppe='" . $this->besitzer->gruppe . "'"); while ($gruppenrow = mysql_fetch_array($gruppenabfrage)) { $usrfeld[] = $gruppenrow[0]; } //******** $ziel->zerstoerung(); } //echo "<br />"; if ($ziel->schildstatus == 0 && $ziel->energie >= 1 && $ziel->schilde > 0) { $ziel->dock = 0; $ziel->schildstatus = 1; $ziel->energie--; } $this->frachtraum->save(); mysql_query("UPDATE schiffe SET torpedohitze='{$this->torpedohitze}',phaser='{$this->phaser}',energie='{$this->energie}',hull='{$this->hull}',schilde='{$this->schilde}',schildstatus='{$this->schildstatus}' WHERE id='{$this->id}'"); if ($ziel->typ == 's') { mysql_query("UPDATE schiffe SET dock='{$ziel->dock}',phaser='{$ziel->phaser}',energie='{$ziel->energie}',hull='{$ziel->hull}',schilde='{$ziel->schilde}',schildstatus='{$ziel->schildstatus}' WHERE id='{$ziel->id}'") or die(mysql_error()); } else { mysql_query("UPDATE planeten SET phaser='{$ziel->phaser}',energie='{$ziel->energie}',hull='{$ziel->hull}',schilde='{$ziel->schilde}',schildstatus='{$ziel->schildstatus}' WHERE id='{$ziel->id}'") or die(mysql_error()); } $eintrag = new Logbuch("typ", "neu"); $eintrag->x = $this->position->x; $eintrag->y = $this->position->y; $eintrag->zeit = date("Y-m-d H:i:s"); $eintrag->system = $this->position->system->id; $eintrag->typ = "Kampf"; $eintrag->klasse = "Eingang"; $eintrag->text = "Schiff " . $this->name . " (" . $this->id . ") feuert."; if ($this->typ != 's') { $eintrag->text = "Planet " . $this->name . " (" . $this->id . ") feuert."; } $eintrag->initiator = $this->besitzer->id; $eintrag->betroffener = $ziel->besitzer->id; $eintrag->save(); $eintrag = new Logbuch("typ", "neu"); $eintrag->x = $this->position->x; $eintrag->y = $this->position->y; $eintrag->zeit = date("Y-m-d H:i:s"); $eintrag->system = $this->position->system->id; $eintrag->typ = "Kampf"; $eintrag->klasse = "Ausgang"; $eintrag->text = "Schiff " . $this->name . " (" . $this->id . ") feuert."; if ($this->typ != 's') { $eintrag->text = "Planet " . $this->name . " (" . $this->id . ") feuert."; } $eintrag->initiator = $this->besitzer->id; $eintrag->betroffener = $ziel->besitzer->id; $eintrag->save(); } } //zurueckschiessen }
function feuern(&$angreifer, &$verteidiger, $fid) { //Hinfeuern $fehler = ""; if ($angreifer->phaser >= $angreifer->maxphaser) { $fehler = "Phaser sind überhitzt! Warte einen Tick bis sie sich abgekühlt haben.<br />"; } if ($angreifer->energie < 1) { $fehler = "Dein Schiff hat keine Energie mehr zum feuern!<br />"; } if ($angreifer->tarnung == 1) { $fehler = "Dein Schiff ist getarnt. DU kannst nicht feuern!<br />"; } if ($angreifer->position->orbit == 0 || $angreifer->position->x != $verteidiger->position->x || $angreifer->position->y != $verteidiger->position->y || $angreifer->position->system->id != $verteidiger->position->system->id) { $fehler = "Du bist nicht im Orbit eines Planeten!<br />"; } if ($angreifer->besitzer->level <= 3 || $verteidiger->besitzer->level <= 3) { $fehler = "Du oder dein Opfer ist noch im Schutzzustand!<br />"; } if ($verteidiger->heimat == 1) { $fehler = "Du kannst keine Heimatplaneten angreifen!<br />"; } if ($fehler != "") { echo "<span style=\"color:red;font-weight:bold;\">{$fehler}</span>"; } else { $text = "Schiff von " . $angreifer->besitzer->nickname . " greift deine Gebäude auf deinem Planeten " . $verteidiger->name . "(ID " . $verteidiger->id . ") in Sektor " . $angreifer->position->x . "|" . $angreifer->position->y . " an ( im " . $angreifer->position->system->name . "-System )!"; $amount = $angreifer->laser; $angreifer->energie--; $angreifer->phaser++; mysql_query("UPDATE schiffe SET energie=energie-1,phaser=phaser+1 WHERE id='{$angreifer->id}'"); if ($verteidiger->feld[$fid]->hull - $amount > 0) { $verteidiger->feld[$fid]->hull -= $amount; $verteidiger->feld[$fid]->save(); echo 'Das Gebäude nimmt Schaden und besitzt noch ', $verteidiger->feld[$fid]->hull, ' Intigrität!<br />'; } else { //ABFRAGEN der gebäude und neue werte setzen if ($verteidiger->feld[$fid]->was == 2) { $verteidiger->frachtraum->max -= 500; $verteidiger->maxenergie -= 20; mysql_query("UPDATE planeten SET lager=lager-500,maxenergie=maxenergie-20 WHERE id='{$verteidiger->id}'"); } if ($verteidiger->feld[$fid]->was == 5 || $verteidiger->feld[$fid]->was == 17) { $verteidiger->laser -= 6; mysql_query("UPDATE planeten SET laser=laser-6 WHERE id='{$verteidiger->id}'"); } if ($verteidiger->feld[$fid]->was == 6 || $verteidiger->feld[$fid]->was == 16) { $verteidiger->maxschilde -= 80; if ($verteidiger->schilde > $verteidiger->maxschilde) { $verteidiger->schilde = $verteidiger->maxschilde; } mysql_query("UPDATE planeten SET schilde='{$verteidiger->schilde}',maxschilde='{$verteidiger->maxschilde}' WHERE id='{$verteidiger->id}'"); } if ($verteidiger->feld[$fid]->was == 3 || $verteidiger->feld[$fid]->was == 7 || $verteidiger->feld[$fid]->was == 13) { $verteidiger->maxenergie -= 20; if ($verteidiger->energie > $verteidiger->maxenergie) { $verteidiger->energie = $verteidiger->maxenergie; } mysql_query("UPDATE planeten SET energie='{$verteidiger->energie}',maxenergie='{$verteidiger->maxenergie}' WHERE id='{$verteidiger->id}'"); } if ($verteidiger->feld[$fid]->was == 12) { $verteidiger->lager -= 200; mysql_query("UPDATE planeten SET lager=lager-200 WHERE id='{$verteidiger->id}'"); } $verteidiger->feld[$fid]->was = 0; $verteidiger->feld[$fid]->bauzeit = 0; $verteidiger->feld[$fid]->hull = 60; $verteidiger->feld[$fid]->aktiv = 1; $verteidiger->feld[$fid]->save(); echo 'Das Gebäude wurde vernichtet!<br />'; $text .= " und vernichtete ein Gebäude!!"; } //Logbuch $wer = $angreifer->besitzer; $wen = $verteidiger->besitzer; $wann = date("Y-m-d H:i:s"); //mysql_query("INSERT INTO logbuch (was,wann,wer,wen) VALUES ('$text','$wann','$wer','$wen')") or die(mysql_error()); $eintrag = new Logbuch("typ", "neu"); $eintrag->x = $angreifer->position->x; $eintrag->y = $angreifer->position->y; $eintrag->zeit = date("Y-m-d H:i:s"); $eintrag->system = $angreifer->position->system->id; $eintrag->typ = "Kampf Planet"; $eintrag->klasse = "Eingang"; $eintrag->text = $text; $eintrag->initiator = $angreifer->besitzer->id; $eintrag->betroffener = $verteidiger->besitzer->id; $eintrag->save(); $angreifer->kampftick("3", $verteidiger); //ende zurück } }