Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #UseInterface Web, ShipPortal;
- /* STNE Schiffsportal - Flottenadministration Script:
- * Script von Richard(DE1-72664)
- * Dieses Script erlaubt eine Vielzahl von Schiffs und Flottenaktionen
- * Copyright (C) ab [2010] [Björn Kremer](bjoern-kremer@gmx.net) aktualisiert: 2010-2015
- * STNE Forums-Post zum Script: http://forum.stne.net/showthread.php?2062-Flottenverwaltung&p=13463#post13463
- * This program is free software; you can redistribute it and/or modify it under the terms of the
- * GNU General Public License as published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
- * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- * You should have received a copy of the GNU General Public License along with this program; if
- * not, see <http://www.gnu.org/licenses/>.
- */
- /* Hinweis
- * Flottenaktion:
- * Die Checkbox "Flottenaktion" gibt an ob die Aktionen als Flottenbefehl oder Einzelaktion
- * ausgeführt wird. Wenn der Flottenbefehl verwendet wird, wird nur 1KT ausgelöst(eigentlich).
- * Bei einer Ausführung als Einzelaktion werden mehrere KTs ausgelöst, man umgeht jedoch das
- * Flottenlimit
- *
- *
- */
- /*
- * Version: 2.6.1
- */
- //config
- //Wenn das Script direkt aus der Script-Engine betrieben werden soll, können hier die IDs manuell gesetzt werden.
- If(MyShip is Null)
- {
- MyShip = New CMyShip(1814787);//Ein eigenes Schiff
- GuestUser = New CUser (72664);//Die Id von einem selber
- }
- //Output
- Var begrüßungsText As String = 'Willkommen im Schiffsportal ';
- Var deniedText As String = 'Derzeit sind keine Funktionen verfügbar.(Keine Rechte)';
- //Zugriffsrechte
- Var allowedPlayer[] As Integer = { - 1}; // Allianzfremde Personen mit Zugriffsrechten
- Var allowAllianceDefault As Boolean = False;//Allianzmitglieder haben immer Zugang?
- //Koordinaten (Unter Flugsteuerung angezeigt)
- Var CDestinations As New CEntryList();
- CDestinations.Add("Nach Alwaid", "306|569")
- CDestinations.Add("Nach Bryant", "254|464")
- //Verfügbare Flotte angeben{
- Var possibleFleets As New CIntegerList();
- //Automatisch alle Flotten anzeigen(Auskommentieren zum deaktivieren)
- possibleFleets = GetPossibleFleets();
- //Manuell Flotten hinzufügen
- //possibleFleets.Add(111975);
- //}
- //Code, bitte ab hier nichts ändern!
- Var verwaltung As String = 'fleetSelector';
- Var debug As Boolean = True;
- Var dienst As String = '';
- Var myFleetID As Integer;
- Var myFleet As CMyFleet;
- Function Main() {
- If (Request.Parameters.ContainsKey('Verwaltung'))
- {
- verwaltung = Request.Parameters.Item('Verwaltung');
- }
- If (Request.Parameters.ContainsKey('Dienst'))
- {
- dienst = Request.Parameters.Item('Dienst');
- }
- If (Request.Parameters.ContainsKey('fleetID'))
- {
- myFleetID = Request.Parameters.Item('fleetID');
- myFleet = New CMyFleet(myFleetID);
- }
- If (Request.Form.ContainsKey('Verwaltung'))
- {
- verwaltung = Request.Form.Item('Verwaltung');
- }
- If (Request.Form.ContainsKey('Dienst'))
- {
- dienst = Request.Form.Item('Dienst');
- }
- If (Request.Form.ContainsKey('fleetID'))
- {
- myFleetID = Request.Form.Item('fleetID');
- myFleet = New CMyFleet(myFleetID);
- }
- Var bitAllowed As Boolean = False;
- Var player As Integer;
- // Überprüfe Einzelspieler
- For (Each player In allowedPlayer) {
- If (GuestUser.UserID = player) {
- bitAllowed = True;
- }
- }
- // Überprüfe Allianzen
- Var owner As CMyUser = New CMyUser(MyShip.UserID);
- If (allowAllianceDefault and GuestUser.AllianceID = owner.AllianceID) {
- bitAllowed = True;
- }
- If(GuestUser.UserID = MyShip.UserID){
- bitAllowed = True;
- }
- // Überprüfen ob der Besuch Berechtigungen hat
- If (bitAllowed = True) {
- createView();
- } Else {
- accessDenied();
- }
- }
- //----------------------------------------------------------------------------
- //Wählt die Seite aus
- Function createView() {
- If (verwaltung = 'SrsWare') {
- zeigeSrsWare(True);
- } ElseIf (verwaltung = 'SrsKampf') {
- zeigeSrsKampf();
- } ElseIf (verwaltung = 'manageTruemmer') {
- manageTruemmer(True);
- } ElseIf (verwaltung = 'beamTruemmer') {
- beamTruemmer();
- } ElseIf (verwaltung = 'extractTruemmer') {
- extractTruemmer();
- } ElseIf (verwaltung = 'flottenstatus') {
- flottenstatus(False, False);
- } ElseIf (verwaltung = 'flugkontrolle') {
- flugkontrolleMain(CDestinations);
- } ElseIf (verwaltung = 'kampfstatus') {
- kampfstatus();
- } ElseIf (verwaltung = 'wkfuellenMain') {
- wkfuellenMain(True);
- } ElseIf (verwaltung = 'wkfuellen') {
- wkfuellen();
- } ElseIf (verwaltung = 'index') {
- zeigeIndex();
- } ElseIf (verwaltung = 'fleetPreview') {
- fleetPreview();
- } ElseIf (verwaltung = 'beam') {
- BeamInterface();
- } Else {
- fleetSelector();
- }
- }
- //----------------------------------------------------------------------------
- //Erstellt die Seite für die Startseite
- Function zeigeIndex() {
- Var form As New CHtmlForm(New CScriptUrl());
- Response.Add(form);
- form.Add(New CHtmlSeperator('Schiffsportal'));
- form.Add(New CHtmlNewLine());
- Var user As New CUser(GuestUser.UserID)
- form.Add(begrüßungsText);
- form.Add(user.GetHtmlNameAndID(True));
- form.Add('.');
- form.Add(New CHtmlNewLine());
- form.Add(New CHtmlSeperator('Bitte wählt den Dienst aus:'));
- Var table As New CTable(7);
- form.Add(table);
- Var row As CTableRow = table.AddRow();
- // knopf 1 zum Auflisten der Waren
- Var url As New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'SrsWare');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(0).Add(New CHtmlLinkButton('SRS Scan Ware', url, 'Zeigt die geladenen Waren aller Schiffe an.'));
- // Knopf 2 zum Anzeigen der Kampfeinstellungen
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'SrsKampf');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(1).Add(New CHtmlLinkButton('SRS Scan Kampf', url, 'Zeigt alle für den Kampf relevanten Informationen der Schiffe an.'));
- // Knopf 3 zum Beamen der Waren aus Trümmerfeldern
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'manageTruemmer');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(2).Add(New CHtmlLinkButton('Trümmer verwalten', url, 'Trümmerfelder verwalten'));
- // Knopf 4 zum Anzeigen des Flottenstatus
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'flottenstatus');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(3).Add(New CHtmlLinkButton('Flottenstatus', url, 'Zeigt alle wichtigen Informationen der Flotte an.'));
- // Knopf 5 zum Anzeigen des Flottenstatus
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'flugkontrolle');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(4).Add(New CHtmlLinkButton('Flugkontrolle', url, 'Zum Bewegen der Flotte mittels Autopilot.'));
- // Knopf 6 zum Anzeigen des Flottenstatus
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'wkfuellenMain');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(5).Add(New CHtmlLinkButton('Warpkern nachfüllen', url, 'Die Warpkerne der Flotte nachfüllen.'));
- // Knopf 7 andere Flotte auswählen
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'fleetSelector');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(6).Add(New CHtmlLinkButton('Flottenwahl', url, 'Eine andere Flotte auswählen.'));
- form.Add(New CHtmlNewLine());
- form.Add(New CHtmlNewLine());
- If (debug = True) {
- Response.Add('Debug mode active!');
- Response.Add(New CHtmlNewLine());
- Response.Add('Verwaltung: ');
- Response.Add(verwaltung);
- Response.Add(New CHtmlNewLine());
- Response.Add('Dienst: ');
- Response.Add(dienst);
- Response.Add(New CHtmlNewLine());
- Response.Add('Flotten ID: ');
- Response.Add(myFleetID);
- Response.Add(New CHtmlNewLine());
- Response.Add('Flotte: ');
- Response.Add(myFleet.NameAndID);
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- }
- }
- //----------------------------------------------------------------------------
- //Zeigt den Link zur Hauptseite an
- Function LinkZumIndex()
- {
- Response.Add(New CHtmlBreak());
- Var url As New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'index');
- url.Parameters.Add('Dienst', '');
- url.Parameters.Add('fleetID', myFleetID):
- Response.Add(New CHtmlLinkButton('zurück zur Startseite', url, 'Zur Startseite'));
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'fleetSelector');
- url.Parameters.Add('Dienst', '');
- Response.Add(New CHtmlLinkButton('eine andere Flotte auswählen', url, 'Fleet Selector'));
- }
- Function AddResHeader(row As CTableRow, ware As Object, zaehler As Integer){
- Var goods As New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- Var g As EGoodsType = goods.CurrentWarenInfo.GoodsType;
- Var wNull As Boolean = ware[g] is Null;
- If (not wNull AND ware[g] > 0) {
- row.Cells.Item(zaehler).Add(goods.CurrentWarenInfo.Name);
- row.Cells.Item(zaehler).CssClass = 'buttonbody';
- zaehler = zaehler + 1;
- }
- }
- }
- Function GetMaxGood() As Integer{
- Var maxArr As Integer = 0;
- Var goods As New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- Var g As EGoodsType = goods.CurrentWarenInfo.GoodsType
- If(maxArr < g){
- maxArr = g ;
- }
- }
- Return maxArr
- }
- Function addBasicColInfos(myCurrentShip As CMyShip, index As Integer, row As CTableRow){
- If(myCurrentShip.Sector.IsColonised){
- If(CheckAllowedColo(myCurrentShip.Sector.SectorID)){
- Var col As New CColony(myCurrentShip.MapPosition.X, myCurrentShip.MapPosition.Y);
- Var owner As New CUser(col.UserID);
- row.Cells.Item(index + 1).Add(col.Name);
- row.Cells.Item(index + 2).Add(owner.GetHtmlNameAndID());
- }Else{
- row.Cells.Item(index + 1).Add("???");
- row.Cells.Item(index + 2).Add("???");
- }
- row.Cells.Item(index).Add(myCurrentShip.GalaxyMapItem.GetImage());
- row.Cells.Item(index + 3).Add(myCurrentShip.Sector.TypeName);
- }
- }
- //----------------------------------------------------------------------------
- //Zeigt den Lagerstand der Schiffe im SRS an
- Function zeigeSrsWare(showHeader As Boolean) {
- Var KoordsList As New CObjectList();
- Var myCurrentShip As CMyShip;
- Var wNull As Boolean ;
- Var test As Integer = 0;
- Var goods As CGoodsInfoEnumerator;
- Var g As EGoodsType;
- If(showHeader){
- zeigeIndex();
- }
- Var warnSRS As Boolean = False
- // myCurrentShip = New CMyShip(myFleet.Ships.Item(0).ShipID)
- For (Each myCurrentShip In myFleet.Ships) {
- If(not myCurrentShip.SRSIsActive){
- warnSRS = True;
- }
- If( not KoordsList.Contains(myCurrentShip.MapPosition.InOrbit & myCurrentShip.MapPosition.X & "|" & myCurrentShip.MapPosition.Y & "#" & myCurrentShip.MapPosition.MapID)){
- Response.Add(New CHtmlBreak()); Response.Add(New CHtmlBreak());
- KoordsList.Add(myCurrentShip.MapPosition.InOrbit & myCurrentShip.MapPosition.X & "|" & myCurrentShip.MapPosition.Y & "#" & myCurrentShip.MapPosition.MapID);
- Var ship As CShip;
- Var maxArr As Integer = GetMaxGood();
- Var ware[maxArr + 1] As Integer;
- Var zaehler As Integer;
- // SRSList.Add(MyShip);
- Var resList As New CObjectList();
- //Gesamtmenge ermitteln
- For (Each ship In myCurrentShip.SRS) {
- goods = New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- g = goods.CurrentWarenInfo.GoodsType;
- Var stNull As Boolean = ship.StockRoom is Null;
- If ( not stNull AND ship.StockRoom.Amount(g) > 0) {
- If(ware[g] is Null){
- ware[g] = 0;
- }
- ware[g] = ware[g] + ship.StockRoom.Amount(g);
- If(not resList.Contains(g)){
- resList.Add(g);
- }
- }
- }
- }
- Var mycol As CMyColony;
- If(myCurrentShip.Sector.IsColonised){
- If(CheckAllowedColo(myCurrentShip.Sector.SectorID)){
- mycol = New CMyColony(myCurrentShip.MapPosition.X, myCurrentShip.MapPosition.Y);
- goods = New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- g = goods.CurrentWarenInfo.GoodsType;
- If (mycol.StockRoom.Amount(g) > 0) {
- If(ware[g] is Null){
- ware[g] = 0;
- }
- ware[g] = ware[g] + mycol.StockRoom.Amount(g);
- If(not resList.Contains(g)){
- resList.Add(g);
- }
- }
- }
- }
- }
- Response.Add("Sektor: ");
- If(myCurrentShip.MapPosition.InOrbit){
- Response.Add("@");
- }
- Response.Add (myCurrentShip.MapPosition.X & "|" & myCurrentShip.MapPosition.Y & "#" & myCurrentShip.MapPosition.MapID));
- Response.Add(myCurrentShip.GalaxyMapItem.GetImage());
- If(CheckAllowedColo(myCurrentShip.Sector.SectorID)){
- Response.Add(" eigene Kolonie");
- }
- Response.Add(New CHtmlBreak());
- Var tableWare As New CTable(resList.Count + 6);
- Response.Add(tableWare);
- Var row As CTableRow = tableWare.AddRow();
- zaehler = 0;
- zaehler = AddBasicShipHeader(row, zaehler)
- Var tmpZ As Integer = zaehler;
- //Warenname ausgeben
- AddResHeader(row, ware, zaehler);
- //Waren pro schiff anzeigen
- row = tableWare.AddRow();
- For (Each ship In myCurrentShip.SRS) {
- zaehler = 0;
- zaehler = AddBasicShipInfo(row, zaehler, ship);
- goods = New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- g = goods.CurrentWarenInfo.GoodsType
- stNull = ship.StockRoom is Null;
- If (not stNull AND ship.StockRoom.Amount(g) > 0) {
- row.Cells.Item(zaehler).Add(ship.StockRoom.Amount(g));
- }
- wNull = ware[g] is Null;
- If (not wNull AND ware[g] > 0) {
- zaehler = zaehler + 1;
- }
- }
- Var url As New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'beam');
- url.Parameters.Add('Dienst', 'beamFromShip');
- url.Parameters.Add('DestShip', ship.ShipID);
- url.Parameters.Add('Myhip', myCurrentShip.ShipID);
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(zaehler).Add(New CHtmlLinkButton('Von Schiff beamen', url, 'Von Schiff beamen'));
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'beam');
- url.Parameters.Add('Dienst', 'beamToShip');
- url.Parameters.Add('DestShip', ship.ShipID);
- url.Parameters.Add('Myhip', myCurrentShip.ShipID);
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(zaehler + 1).Add(New CHtmlLinkButton('Zu Schiff beamen', url, 'Zu Schiff beamen'));
- row = tableWare.AddRow();
- }
- If(myCurrentShip.Sector.IsColonised){
- zaehler = tmpZ ;
- addBasicColInfos(myCurrentShip, 0, row);
- If(CheckAllowedColo(myCurrentShip.Sector.SectorID)){
- mycol = New CMyColony(myCurrentShip.MapPosition.X, myCurrentShip.MapPosition.Y);
- goods = New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- g = goods.CurrentWarenInfo.GoodsType;
- If(mycol.StockRoom.Amount(g) > 0){
- row.Cells.Item(zaehler).Add(mycol.StockRoom.Amount(g));
- }
- wNull = ware[g] is Null;
- If (not wNull AND ware[g] > 0) {
- zaehler = zaehler + 1;
- }
- }
- }Else{
- goods = New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- g = goods.CurrentWarenInfo.GoodsType;
- wNull = ware[g] is Null;
- If (not wNull AND ware[g] > 0) {
- zaehler = zaehler + 1;
- }
- }
- }
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'beam');
- url.Parameters.Add('Dienst', 'beamFromColo');
- url.Parameters.Add('DestColoId', myCurrentShip.Sector.SectorID;
- url.Parameters.Add('Myhip', myCurrentShip.ShipID);
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(zaehler).Add(New CHtmlLinkButton('Von Kolonie beamen', url, 'Von Kolonie beamen'));
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'beam');
- url.Parameters.Add('Dienst', 'beamToColo');
- url.Parameters.Add('DestColoId', myCurrentShip.Sector.SectorID);
- url.Parameters.Add('Myhip', myCurrentShip.ShipID);
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(zaehler + 1).Add(New CHtmlLinkButton('Zu Kolonie beamen', url, 'Zu Kolonie beamen'));
- row = tableWare.AddRow();
- }
- // row.Cells.Item(0).ColumnSpan = 3;
- row.Cells.Item(2).Add("Gesamt");
- zaehler = tmpZ;
- goods = New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- g = goods.CurrentWarenInfo.GoodsType;
- wNull = ware[g] is Null;
- If (not wNull AND ware[g] > 0) {
- row.Cells.Item(zaehler).Add(ware[g]);
- zaehler = zaehler + 1;
- }
- }
- ;
- row = tableWare.AddRow();
- zaehler = 0;
- zaehler = AddBasicShipHeader(row, zaehler)
- AddResHeader(row, ware, zaehler);
- }
- }
- If(warnSRS){
- Var d As New CHtmlDiv();
- d.Add("Scan möglicherweise unvollständig. Einige Schiffe haben ein deaktiviertes SRS!");
- d.Style.Add('color', 'red');
- d.Style.Add('font-size', '20px');
- Response.Add(d);
- }
- }
- Function CheckAllowedColo(id As String) As Boolean{
- Var colos As New CColonyEnumerator();
- While (colos.Next())
- {
- If(colos.CurrentColony.SectorID = id){
- Return True;
- }
- }
- Return False;
- }
- Function AddBasicShipHeader(row As CTableRow, counter As Integer)As Integer{
- counter = 0;
- row.Cells.Item(counter).Add('Bild');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Name');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Besitzer');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Klasse');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- Return counter;
- }
- Function AddBasicShipInfo(row As CTableRow, counter As Integer, ship As CBaseShip)As Integer{
- Var user As New CUser(ship.UserID)
- counter = 0;
- row.Cells.Item(counter).Add(ship.Definition.GetImage()));
- counter = counter + 1;
- row.Cells.Item(counter).Add(ship.GetNameHtml()));
- counter = counter + 1;
- row.Cells.Item(counter).Add(user.GetHtmlNameAndID(True));
- counter = counter + 1;
- row.Cells.Item(counter).Add(ship.Definition.GetNameHtml());
- counter = counter + 1;
- Return counter;
- }
- Function AddExtendedShipHeader(row As CTableRow, counter As Integer) As Integer{
- row.Cells.Item(counter).Add('Alarm');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Hülle');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Schilde');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Schildstatus');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Waffen');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Energie');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('EPS');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Crew');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- Return counter;
- }
- Function AddExtendedShipInfo(row As CTableRow, counter As Integer, ship As CBaseShip, srsActive As Boolean, own As Boolean)As Integer{
- Var tmpShip As CShip;
- If(srsActive){
- tmpShip = ship;
- If (tmpShip.AlertLevel = EAlertLevel.Red) {
- row.Cells.Item(counter).Add('Rot');
- row.Cells.Item(counter).Style.Add('color', 'red');
- } ElseIf (tmpShip.AlertLevel = EAlertLevel.Green) {
- row.Cells.Item(counter).Add('Grün');
- row.Cells.Item(counter).Style.Add('color', 'green');
- } Else {
- row.Cells.Item(counter).Add('Gelb');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- }
- }Else{
- row.Cells.Item(counter).Add('???');
- }
- counter = counter + 1;
- If(srsActive){
- tmpShip = ship;
- row.Cells.Item(counter).Add(tmpShip.Hull);
- If(tmpShip.Hull < tmpShip.Definition.Hull){
- row.Cells.Item(counter).Style.Add('color', 'red');
- }
- }Else{
- row.Cells.Item(counter).Add("???");
- }
- row.Cells.Item(counter).Add('/');
- row.Cells.Item(counter).Add(ship.Definition.Hull);
- If(own){
- Var tmpShip2 As CMyShip = tmpShip;
- row.Cells.Item(counter).Add("(+" & tmpShip2 .Tick.ChangeHull & ")");
- }
- counter = counter + 1;
- If(srsActive){
- tmpShip = ship;
- row.Cells.Item(counter).Add(tmpShip.Shields);
- If(tmpShip.Shields < tmpShip.Definition.Shields AND tmpShip.Shields <> - 1){
- row.Cells.Item(counter).Style.Add('color', 'red');
- }
- }Else{
- row.Cells.Item(counter).Add("???");
- }
- row.Cells.Item(counter).Add('/');
- row.Cells.Item(counter).Add(ship.Definition.Shields);
- If(own){
- row.Cells.Item(counter).Add("(+" & CType(ship, CMyShip).Tick.ChangeShields & ")");
- }
- counter = counter + 1;
- If(srsActive){
- tmpShip = ship;
- If (tmpShip.ShieldsActive = True) {
- row.Cells.Item(counter).Add('Aktiviert');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- } Else {
- row.Cells.Item(counter).Add('Deaktiviert');
- }
- }Else{
- row.Cells.Item(counter).Add('???');
- }
- counter = counter + 1;
- If(srsActive){
- tmpShip = ship;
- If (tmpShip.WeaponsActivated = True) {
- row.Cells.Item(counter).Add('Aktiviert');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- } Else {
- row.Cells.Item(counter).Add('Deaktiviert');
- }
- }Else{
- row.Cells.Item(counter).Add('???');
- }
- counter = counter + 1;
- If(srsActive){
- tmpShip = ship;
- row.Cells.Item(counter).Add(tmpShip.Energy);
- }Else{
- row.Cells.Item(counter).Add("???");
- }
- row.Cells.Item(counter).Add('/');
- row.Cells.Item(counter).Add(ship.Definition.Energy);
- counter = counter + 1;
- If(srsActive){
- tmpShip = ship;
- row.Cells.Item(counter).Add(tmpShip.Eps);
- }Else{
- row.Cells.Item(counter).Add("???");
- }
- row.Cells.Item(counter).Add('/');
- row.Cells.Item(counter).Add(ship.Definition.EPS);
- counter = counter + 1;
- If(srsActive){
- tmpShip = ship;
- row.Cells.Item(counter).Add(tmpShip.Crew) ;
- If(own){
- row.Cells.Item(counter).Add("/" & CType(tmpShip.Definition, CMyShipDefinition).CrewBasis);
- If(tmpShip.Crew < CType(tmpShip.Definition, CMyShipDefinition).CrewBasis){
- row.Cells.Item(counter).Style.Add('color', 'red');
- }
- }
- }Else{
- row.Cells.Item(counter).Add("???");
- }
- counter = counter + 1;
- Return counter;
- }
- Function BeamInterface(){
- zeigeIndex();
- Response.Add(New CHtmlSeperator('Beamen'));
- Response.Add(New CHtmlNewLine());
- Response.Add('Hinweis: Jede Aktion wird von der kompletten Flotte ausgeführt. Beamen von/zu Schiff/Kolonie: Jedes Schiff in der Flotte beamt die eingegebene Menge vom/zum Ziel');
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- Var myshipid As Integer = 0;
- If(Request.Parameters.ContainsKey('Myhip')){
- myshipid = Request.Parameters.item('Myhip');
- }
- If(Request.Form.ContainsKey('Myhip')){
- myshipid = Request.Form.item('Myhip');
- }
- Var params As CObjectHashTable();
- Var myship As New CMyShip(myshipid);
- If(Request.Parameters.item('Dienst') = 'beamFromShip' or Request.Form.item('Dienst') = 'doBeamFromShip' or Request.Parameters.item('Dienst') = 'beamToShip' or Request.Form.item('Dienst') = 'doBeamToShip'){
- Var DestShipid As Integer = 0;
- If(Request.Parameters.ContainsKey('DestShip')){
- DestShipid = Request.Parameters.item('DestShip');
- }
- If(Request.Form.ContainsKey('DestShip')){
- DestShipid = Request.Form.item('DestShip');
- }
- Var destShip As CShip;
- Var tmpShip As CShip;
- For (Each tmpShip In myship.SRS) {
- If(tmpShip.ShipID = DestShipid){
- destShip = tmpShip;
- }
- }
- params = New CObjectHashTable();
- params.Add('DestShip', destShip.ShipID);
- params.Add('Myhip', myship.ShipID);
- params.Add('fleetID', myFleetID);
- If(Request.Form.item('Dienst') = 'doBeamFromShip' or Request.Form.item('Dienst') = 'doBeamToShip'){
- DoBeam(destShip, Null, Request.Form.item('Dienst'))
- }
- If(Request.Parameters.item('Dienst') = 'beamFromShip' or Request.Form.item('Dienst') = 'doBeamFromShip'){
- params.Add('Dienst', 'doBeamFromShip');
- Var resList As CObjectHashTable = New CObjectHashTable ();
- Var goods As New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- Var g As EGoodsType = goods.CurrentWarenInfo.GoodsType;
- Var stNull As Boolean = destShip.StockRoom is Null;
- If ( not stNull AND destShip. StockRoom.Amount(g) > 0) {
- resList.Add(g, destShip. StockRoom.Amount(g))
- }
- }
- Response.Add("Flotte beamt von Schiff ");
- Response.Add(destShip.GetNameHtmlAndID());
- GBeamInterface(resList, params);
- }Else{
- Response.Add("Flotte beamt zu Schiff ");
- Response.Add(destShip.GetNameHtmlAndID());
- params.Add('Dienst', 'doBeamToShip');
- GBeamInterface(Null, params);
- }
- }ElseIf(Request.Parameters.item('Dienst') = 'beamFromColo' or Request.Form.item('Dienst') = 'doBeamFromColo' or Request.Parameters.item('Dienst') = 'beamToColo' or Request.Form.item('Dienst') = 'doBeamToColo'){
- Var DestColoId As Integer = 0;
- If(Request.Parameters.ContainsKey('DestColoId')){
- DestColoId = Request.Parameters.item('DestColoId');
- }
- If(Request.Form.ContainsKey('DestColoId')){
- DestColoId = Request.Form.item('DestColoId');
- }
- If(Request.Form.item('Dienst') = 'doBeamFromColo' or Request.Form.item('Dienst') = 'doBeamToColo'){
- DoBeam(Null, DestColoId, Request.Form.item('Dienst'))
- }
- params = New CObjectHashTable();
- params.Add('DestColoId', DestColoId);
- params.Add('Myhip', myship.ShipID);
- params.Add('fleetID', myFleetID);
- If(Request.Parameters.item('Dienst') = 'beamFromColo' or Request.Form.item('Dienst') = 'doBeamFromColo'){
- params.Add('Dienst', 'doBeamFromColo');
- If(CheckAllowedColo(DestColoId)){
- Var myColo As New CMyColony(DestColoId);
- resList = New CObjectHashTable ();
- goods = New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- g = goods.CurrentWarenInfo.GoodsType;
- If (myColo.StockRoom.Amount(g) > 0) {
- resList.Add(g, myColo.StockRoom.Amount(g))
- }
- }
- Response.Add("Flotte beamt von Kolonie " & myColo.Name);
- }Else{
- resList = Null;
- Response.Add("Flotte beamt von Kolonie " & DestColoId);
- }
- GBeamInterface(resList, params);
- }Else{
- params.Add('Dienst', 'doBeamToColo');
- If(CheckAllowedColo(DestColoId)){
- myColo = New CMyColony(DestColoId);
- Response.Add("Flotte beamt zu Kolonie " & myColo.Name);
- }Else{
- Response.Add("Flotte beamt von Kolonie " & DestColoId);
- }
- GBeamInterface(Null, params);
- }
- }
- Response.Add(New CHtmlSeperator('SRS-Scan'));
- zeigeSrsWare(False);
- }
- Function DoBeam(destship As CShip, destColoId As String, direction As String){
- Var myCurrentShip As CMyShip;
- If (Request.Form.ContainsKey('chkFleetCommand'))
- {
- If (debug = True) {
- WriteLine("FleetCommand " & myFleet.NameAndID);
- }
- InnerDoBeam(myFleet.Action, destship, destColoId, direction);
- }Else{
- If (debug = True) {
- WriteLine("NonFleetCommand");
- }
- For (Each myCurrentShip In myFleet.Ships) {
- If (debug = True) {
- WriteLine("Schiff " & myCurrentShip.ShipID);
- }
- InnerDoBeam(myCurrentShip.Action, destship, destColoId, direction);
- }
- }
- Var Span As New CHtmlDiv();
- Span.Add("Vorgang abgeschlossen");
- Span.Style.Add('color', '#FFCC00');
- Response.Add(Span);
- Response.Add(New CHtmlNewLine());
- }
- Function InnerDoBeam(manager As CBaseShipManager, destship As CShip, destColoId As String, direction As String){
- Var goods As New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- Var g As EGoodsType = goods.CurrentWarenInfo.GoodsType;
- If(Request.Form.ContainsKey('ctrl_' & g) and Request.Form.item('ctrl_' & g) <> ""){
- Var tmp As Integer = Request.Form.item('ctrl_' & g);
- If(tmp > 0){
- If(Request.Form.item('Dienst') = 'doBeamFromColo'){
- manager.TransferFromColony(destColoId, tmp, g);
- }ElseIf(Request.Form.item('Dienst') = 'doBeamToColo'){
- manager.TransferToColony(destColoId, tmp, g);
- }ElseIf(Request.Form.item('Dienst') = 'doBeamFromShip'){
- manager.TransferFromShip(destship.ShipID, tmp, g);
- }ElseIf(Request.Form.item('Dienst') = 'doBeamToShip'){
- manager.TransferToShip(destship.ShipID, tmp, g);
- }
- WriteLine(direction & " " & g & " " & tmp);
- }
- }
- }
- }
- Function GBeamInterface(resList As CObjectHashTable, params As CObjectHashTable){
- Var beamTable As New CTable(3);
- Var form As New CHtmlForm(New CScriptUrl());
- form.Add(beamTable);
- Response.Add(form);
- Var goods As New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- Var g As EGoodsType = goods.CurrentWarenInfo.GoodsType;
- If(resList is Null or resList.ContainsKey(g)){
- Var row As CTableRow = beamTable.AddRow();
- row.Cells.item(0).Add(g);
- Var resListNull As Boolean = resList is Null;
- If( not resListNull and resList. ContainsKey(g)){
- row.Cells.item(1).Add(resList.Item(g));
- }
- row.Cells.item(2).Add(New CHtmlInput('', "ctrl_" & g, EHtmlInputType.Text));
- }
- }
- form.Add(New CHtmlInput('beam', 'Verwaltung', EHtmlInputType.Hidden));
- Var param As DictionaryEntry ;
- For (Each param In params) {
- form.Add(New CHtmlInput(param.Value, param.Key, EHtmlInputType.Hidden));
- }
- form.Add(New CHtmlCheckBox (False, 'chkFleetCommand', 'Flottenaktion?'));
- form.Add(New CHtmlSubmitButton('Beamen', 'actionBeam', 'Beamen'));
- }
- //----------------------------------------------------------------------------
- //Zeigt den Zustand der anwesenden Schiffe an
- Function zeigeSrsKampf() {
- Var myCurrentShip As CMyShip
- Var KoordsList As New CObjectList();
- zeigeIndex();
- Var warnSRS As Boolean = False;
- //myCurrentShip = New CMyShip(myFleet.Ships.Item(0).ShipID);
- For (Each myCurrentShip In myFleet.Ships) {
- If( not myCurrentShip.SRSIsActive){
- warnSRS = True;
- }
- If( not KoordsList.Contains(myCurrentShip.MapPosition.InOrbit & myCurrentShip.MapPosition.X & "|" & myCurrentShip.MapPosition.Y & "#" & myCurrentShip.MapPosition.MapID)){
- Response.Add(New CHtmlBreak()); Response.Add(New CHtmlBreak());
- KoordsList.Add(myCurrentShip.MapPosition.InOrbit & myCurrentShip.MapPosition.X & "|" & myCurrentShip.MapPosition.Y & "#" & myCurrentShip.MapPosition.MapID);
- Var ship As CBaseShip;
- Var counter As Integer = 0;
- Var tableKampf As New CTable(12);
- // SRSList.Add(MyShip);
- Response.Add("Sektor: ");
- If(myCurrentShip.MapPosition.InOrbit){
- Response.Add("@");
- }
- Response.Add (myCurrentShip.MapPosition.X & "|" & myCurrentShip.MapPosition.Y & "#" & myCurrentShip.MapPosition.MapID);
- Response.Add(myCurrentShip.GalaxyMapItem.GetImage());
- If(CheckAllowedColo(myCurrentShip.Sector.SectorID)){
- Response.Add(" eigene Kolonie");
- }
- Response.Add(New CHtmlBreak());
- Response.Add(tableKampf);
- Var row As CTableRow = tableKampf.AddRow();
- counter = 0;
- counter = AddBasicShipHeader(row, counter);
- counter = AddExtendedShipHeader(row, counter);
- For (Each ship In myCurrentShip.SRS) {
- row = tableKampf.AddRow();
- counter = 0;
- counter = AddBasicShipInfo(row, counter, ship);
- counter = AddExtendedShipInfo(row, counter, ship, myCurrentShip.SRSIsActive, False);
- }
- counter = counter + 1;
- Response.Add(tableKampf);
- If(myCurrentShip.Sector.IsColonised){
- row = tableKampf.AddRow();
- addBasicColInfos(myCurrentShip, 0, row);
- }
- row = tableKampf.AddRow();
- counter = 0;
- counter = AddBasicShipHeader(row, counter);
- counter = AddExtendedShipHeader(row, counter);
- }
- }
- If(warnSRS){
- Var d As New CHtmlDiv();
- d.Add("Scan möglicherweise unvollständig. Einige Schiffe haben ein deaktiviertes SRS!");
- d.Style.Add('color', 'red');
- d.Style.Add('font - size', '20px');
- Response.Add(d);
- }
- }
- //----------------------------------------------------------------------------
- //----------------------------------------------------------------------------
- //Zugang verweigert
- Function accessDenied() {
- Response.Add(New CHtmlNewLine());
- Response.Add(deniedText);
- Response.Add(New CHtmlNewLine());
- }
- //----------------------------------------------------------------------------
- //Zeigt den Status der Flotte an
- Function flottenstatus(Success As Boolean, preview As Boolean) {
- Var ship As CMyShip
- Var counter As Integer = 0;
- Var definition As CMyShipDefinition;
- If(not preview){
- zeigeIndex();
- }
- If(Success){
- Var Span As New CHtmlSpan();
- Span.Add("Die Aktion wurde ausgeführt");
- Span.Style.Add('color', '#FFCC00');
- Response.Add(New CHtmlNewLine());
- Response.Add(Span);
- Response.Add(New CHtmlNewLine());
- }
- Var tableKampf As New CTable(24);
- Response.Add(tableKampf);
- Var row As CTableRow = tableKampf.AddRow();
- counter = 0;
- counter = AddBasicShipHeader(row, counter);
- counter = AddExtendedShipHeader(row, counter);
- row.Cells.Item(counter).Add('Ionen - Level');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('SRS');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('LRS');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Computer');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Schadenskontrolle');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Reserve');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Warpkern');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Warpkern');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Gondeln');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Standort');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Bild');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Deflektor');
- row.Item(counter).CssClass = 'buttonbody';
- For (Each ship In myFleet.Ships) {
- definition = ship.Definition;
- row = tableKampf.AddRow();
- counter = 0;
- counter = AddBasicShipInfo(row, counter, ship);
- counter = AddExtendedShipInfo(row, counter, ship, True, True);
- row.Cells.Item(counter).Add(ship.ShieldsIonLevel);
- counter = counter + 1;
- If (ship.SRSIsActive = True) {
- row.Cells.Item(counter).Add('Aktiviert');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- } Else {
- row.Cells.Item(counter).Add('Deaktiviert');
- }
- counter = counter + 1;
- If (ship.LRSIsActive = True) {
- row.Cells.Item(counter).Add('Aktiviert');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- } Else {
- row.Cells.Item(counter).Add('Deaktiviert');
- }
- counter = counter + 1;
- If (ship.MainComputerIsActive = True) {
- row.Cells.Item(counter).Add('Aktiviert');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- } Else {
- row.Cells.Item(counter).Add('Deaktiviert');
- }
- counter = counter + 1;
- If (ship.DamageControlActive = True) {
- row.Cells.Item(counter).Add('Aktiviert');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- } Else {
- row.Cells.Item(counter).Add('Deaktiviert');
- }
- counter = counter + 1;
- row.Cells.Item(counter).Add(ship.EmergencyBattery);
- counter = counter + 1;
- row.Cells.Item(counter).Add(ship.WarpCore & "(+" & ship.Tick.ChangeWarpcore & ")");
- counter = counter + 1;
- If (ship.WarpCoreIsActive = True) {
- row.Cells.Item(counter).Add('Aktiviert');
- row.Cells.Item(counter).Style.Add('color', 'yellow');
- } Else {
- row.Cells.Item(counter).Add('Deaktiviert');
- }
- counter = counter + 1;
- row.Cells.Item(counter).Add(ship.FlightRange);
- row.Cells.Item(counter).Add(' / ');
- row.Cells.Item(counter).Add(definition.FlightRange & "(+" & ship.Tick.ChangeFlightRange & ")");
- counter = counter + 1;
- If (ship.MapPosition.InOrbit = True) {
- row.Cells.Item(counter).Add('@');
- }
- row.Cells.Item(counter).Add(ship.MapPosition.X);
- row.Cells.Item(counter).Add('|');
- row.Cells.Item(counter).Add(ship.MapPosition.Y & "#" & ship.MapPosition.MapID));
- counter = counter + 1;
- row.Cells.Item(counter).Add(ship.GalaxyMapItem.GetImage());
- counter = counter + 1;
- row.Cells.Item(counter).Add(ship.Deflector & "/" & ship.Definition.Deflector & "(+" & ship.Tick.ChangeDeflector & ")");
- }
- Response.Add(tableKampf);
- row = tableKampf.AddRow();
- counter = 0;
- counter = AddBasicShipHeader(row, counter);
- counter = AddExtendedShipHeader(row, counter);
- row.Cells.Item(counter).Add('Ionen - Level');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('SRS');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('LRS');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Computer');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Schadenskontrolle');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Reserve');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Warpkern');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Warpkern');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Gondeln');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Standort');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Bild');
- row.Item(counter).CssClass = 'buttonbody';
- counter = counter + 1;
- row.Cells.Item(counter).Add('Deflektor');
- row.Item(counter).CssClass = 'buttonbody';
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- If(not preview){
- Var tableActions As New CTable(6);
- Response.Add(tableActions);
- Var tableActionsRow As CTableRow = tableActions.AddRow();
- tableActionsRow.Style.Add('vertical - align', 'top');
- // ALarmstufe ändern
- Var formAlert As New CHtmlForm(New CScriptUrl());
- Var tableAlert As New CTable(1);
- formAlert.Add(tableAlert);
- tableActionsRow.Cells.Item(0).Add(formAlert);
- Var rowAlert As CTableRow = tableAlert.AddRow();
- rowAlert.Cells.Item(0).Add(New CHtmlInput('kampfstatus', 'Verwaltung', EHtmlInputType.Hidden));
- rowAlert.Cells.Item(0).Add(New CHtmlInput('alarmstufe', 'Dienst', EHtmlInputType.Hidden));
- rowAlert.Cells.Item(0).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- rowAlert.Cells.Item(0).Add('Alarmstufe');
- rowAlert.Item(0).CssClass = 'buttonbody';
- rowAlert = tableAlert.AddRow();
- rowAlert.Cells.Item(0).Add(New CHtmlSubmitButton('Rot', 'Rot', 'Alarmstufe Rot'));
- rowAlert = tableAlert.AddRow();
- rowAlert.Cells.Item(0).Add(New CHtmlSubmitButton('Gelb', 'Gelb', 'Alarmstufe Gelb'));
- rowAlert = tableAlert.AddRow();
- rowAlert.Cells.Item(0).Add(New CHtmlSubmitButton('Grün', 'Grün ', 'Alarmstufe Grün'));
- rowAlert = tableAlert.AddRow();
- rowAlert.Cells.Item(0).Add(New CHtmlCheckBox (False, 'chkFleetCommand', 'Flottenaktion?'));
- // Schild ein-/ausschalten
- Var formShield As New CHtmlForm(New CScriptUrl());
- Var tableShield As New CTable(1);
- Var rowShield As CTableRow = tableShield.AddRow();
- formShield.Add(tableShield);
- tableActionsRow.Cells.Item(1).Add(formShield);
- rowShield.Cells.Item(0).Add(New CHtmlInput('kampfstatus', 'Verwaltung', EHtmlInputType.Hidden));
- rowShield.Cells.Item(0).Add(New CHtmlInput('schild', 'Dienst', EHtmlInputType.Hidden));
- rowShield.Cells.Item(0).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- rowShield.Cells.Item(0).Add('Schild');
- rowShield.Item(0).CssClass = 'buttonbody';
- rowShield = tableShield.AddRow();
- rowShield.Cells.Item(0).Add(New CHtmlSubmitButton('Aktivieren', 'on', 'Schild aktivieren'));
- rowShield = tableShield.AddRow();
- rowShield.Cells.Item(0).Add(New CHtmlSubmitButton('Deaktivieren', 'off', 'Schild deaktivieren'));
- rowShield = tableShield.AddRow();
- rowShield.Cells.Item(0).Add(New CHtmlCheckBox (False, 'chkFleetCommand', 'Flottenaktion?'));
- // Computer de-/aktivieren
- Var formLRS As New CHtmlForm(New CScriptUrl());
- Var tableLRS As New CTable(1);
- Var rowLRS As CTableRow = tableLRS.AddRow();
- formLRS.Add(tableLRS);
- tableActionsRow.Cells.Item(2).Add(formLRS);
- rowLRS.Cells.Item(0).Add(New CHtmlInput('kampfstatus', 'Verwaltung', EHtmlInputType.Hidden));
- rowLRS.Cells.Item(0).Add(New CHtmlInput('computer', 'Dienst', EHtmlInputType.Hidden));
- rowLRS.Cells.Item(0).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- rowLRS.Cells.Item(0).Add('Computer');
- rowLRS.Item(0).CssClass = 'buttonbody';
- rowLRS = tableLRS.AddRow();
- rowLRS.Cells.Item(0).Add(New CHtmlSubmitButton('Aktivieren', 'on', 'LRS aktivieren'));
- rowLRS = tableLRS.AddRow();
- rowLRS.Cells.Item(0).Add(New CHtmlSubmitButton('Deaktivieren', 'off', 'LRS deaktivieren'));
- rowLRS = tableLRS.AddRow();
- rowLRS.Cells.Item(0).Add(New CHtmlCheckBox (False, 'chkFleetCommand', 'Flottenaktion?'));
- (False, 'chkFleetCommand', 'Flottenaktion?'));
- // Schilde aufladen
- Var formShieldRec As New CHtmlForm(New CScriptUrl());
- Var tableShieldRec As New CTable(1);
- Var rowShieldRec As CTableRow = tableShieldRec.AddRow();
- formShieldRec.Add(tableShieldRec);
- tableActionsRow.Cells.Item(3).Add(formShieldRec);
- rowShieldRec.Cells.Item(0).Add('Schilde Aufladen');
- rowShieldRec.Item(0).CssClass = 'buttonbody';
- rowShieldRec = tableShieldRec.AddRow();
- rowShieldRec.Cells.Item(0).Add("Energie ");
- rowShieldRec.Cells.Item(0).Add(New CHtmlInput('', 'Wert', EHtmlInputType.Text));//w1
- rowShieldRec.Cells.Item(0).Add('');
- rowShield = tableShield.AddRow();
- rowShieldRec.Cells.Item(0).Add(New CHtmlInput('kampfstatus', 'Verwaltung', EHtmlInputType.Hidden));
- rowShieldRec.Cells.Item(0).Add(New CHtmlInput('schildeladen', 'Dienst', EHtmlInputType.Hidden));
- rowShieldRec.Cells.Item(0).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- rowShieldRec.Cells.Item(0).Add(New CHtmlSubmitButton('Schilde Aufladen', 'Schilde aufladen'));
- rowShieldRec = tableShieldRec.AddRow();
- rowShieldRec.Cells.Item(0).Add(New CHtmlCheckBox (False, 'chkFleetCommand', 'Flottenaktion?'));
- // Reserve Batterie entladen
- // Warpkern nachfüllen
- Var formWk As New CHtmlForm(New CScriptUrl());
- Var tableWk As New CTable(1);
- Var rowWk As CTableRow = tableWk.AddRow();
- formWk.Add(tableWk);
- tableActionsRow.Cells.Item(4).Add(formWk);
- rowWk.Cells.Item(0).Add('Warpkern füllen');
- rowWk.Item(0).CssClass = 'buttonbody';
- Var url As New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'wkfuellenMain');
- url.Parameters.Add('Dienst', '');
- url.Parameters.Add('Wert', '');
- url.Parameters.Add('fleetID', myFleetID);
- rowWk = tableWk.AddRow();
- rowWk.Cells.Item(0).Add(New CHtmlLinkButton('Warpkern nachfüllen', url, 'Warpkern nachfüllen'));
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'kampfstatus');
- url.Parameters.Add('Dienst', 'wkState');
- url.Parameters.Add('Wert', 'on');
- url.Parameters.Add('fleetID', myFleetID);
- rowWk.Cells.Item(0).Add(New CHtmlLinkButton('Aktivieren', url, 'Warpkern aktivieren'));
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'kampfstatus');
- url.Parameters.Add('Dienst', 'wkState');
- url.Parameters.Add('Wert', 'off');
- url.Parameters.Add('fleetID', myFleetID);
- rowWk.Cells.Item(0).Add(New CHtmlLinkButton('Deaktivieren', url, 'Warpkern deaktivieren'));
- // Rohstoffe sammeln
- Var formRes As New CHtmlForm(New CScriptUrl());
- Var tableRes As New CTable(1);
- Var rowRes As CTableRow = tableRes.AddRow();
- formRes.Add(tableRes);
- tableActionsRow.Cells.Item(5).Add(formRes);
- rowRes.Cells.Item(0).Add('Rohstoffe sammeln');
- rowRes.Item(0).CssClass = 'buttonbody';
- rowRes = tableRes.AddRow();
- rowRes.Cells.Item(0).Add(New CHtmlInput('kampfstatus', 'Verwaltung', EHtmlInputType.Hidden));
- rowRes.Cells.Item(0).Add(New CHtmlInput('collectRes', 'Dienst', EHtmlInputType.Hidden));
- rowRes.Cells.Item(0).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- rowRes.Cells.Item(0).Add("Energie ");
- rowRes.Cells.Item(0).Add(New CHtmlInput('', 'Wert', EHtmlInputType.Text));
- rowRes.Cells.Item(0).Add(New CHtmlSubmitButton('Iridium sammeln', 'collectIri'));
- rowRes.Cells.Item(0).Add(New CHtmlSubmitButton('Deuterium sammeln', 'collectDeut'));
- rowRes.Cells.Item(0).Add("Erfordert Featurepack!");
- rowRes = tableRes.AddRow();
- rowRes.Cells.Item(0).Add(New CHtmlCheckBox (False, 'chkFleetCommand', 'Flottenaktion?'));
- }
- }
- //----------------------------------------------------------------------------
- //Flugkontrolle der Flotte Hauptmenü
- Function flugkontrolleMain(destinations As CEntryList) {
- zeigeIndex();
- If (dienst = 'fliege') {
- fliege(destinations);
- } Else {
- flugkontrolle(destinations);
- }
- }
- //----------------------------------------------------------------------------
- //Flugkontrolle der Flotte Auswahlbildschirm
- Function flugkontrolle(destinations As CEntryList) {
- Response.Add(New CHtmlSeperator('Flugkontrolle'));
- Response.Add(New CHtmlNewLine());
- Response.Add("Erfordert Featurepack!");
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- Response.Add('Fliege zu Punkt');
- Response.Add(New CHtmlNewLine());
- Var url As New CScriptUrl();
- Var row As CTableRow
- Var table As New CTable(1);
- Response.Add(table);
- Var destination As DictionaryEntry;
- For (Each destination In destinations) {
- row = table.AddRow();
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'flugkontrolle');
- url.Parameters.Add('Dienst', 'fliege');
- url.Parameters.Add('Destination', destination.Value);
- url.Parameters.Add('Orbit', True);
- url.Parameters.Add('Flottenaktion', True);
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(0).Add(New CHtmlLinkButton(destination.Key, url, destination.Key));
- }
- /*
- Var row As CTableRow = table.AddRow();
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'flugkontrolle');
- url.Parameters.Add('Dienst', 'fliege');
- url.Parameters.Add('Destination', '306|569');
- url.Parameters.Add('Orbit', True);
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(0).Add(New CHtmlLinkButton('Nach Alwaid', url, 'In den Orbit von Alwaid'));
- row = table.AddRow();
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'flugkontrolle');
- url.Parameters.Add('Dienst', 'fliege');
- url.Parameters.Add('Destination', '254|464');
- url.Parameters.Add('Orbit', True);
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(0).Add(New CHtmlLinkButton('Zum Flottenstützpunkt', url, 'In den Orbit von Bryant'));*/
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- Response.Add('Fliege zu Koordinaten');
- Response.Add(New CHtmlNewLine());
- Var form As New CHtmlForm(New CScriptUrl());
- Var tableCoords As New CTable(2);
- Response.Add(form);
- form.Add(tableCoords);
- Var row2 As CTableRow = tableCoords.AddRow();
- row2.Cells.Item(0).Add('XY Koordinaten [x|y]');
- row2.Item(0).CssClass = 'buttonbody';
- row2.Cells.Item(1).Add(New CHtmlInput('000|000', 'Destination', EHtmlInputType.Text));
- row2 = tableCoords.AddRow();
- row2.Cells.Item(0).Add('In Orbit einfliegen');
- row2.Item(0).CssClass = 'buttonbody';
- row2.Cells.Item(1).Add(New CHtmlCheckBox(False, 'Orbit'));
- row2 = tableCoords.AddRow();
- row2.Cells.Item(0).Add('Flottenaktion');
- row2.Item(0).CssClass = 'buttonbody';
- row2.Cells.Item(1).Add(New CHtmlCheckBox(True, 'Flottenaktion'));
- row2.Cells.Item(1).Add(New CHtmlInput('fliege', 'Dienst', EHtmlInputType.Hidden));
- row2.Cells.Item(1).Add(New CHtmlInput('flugkontrolle', 'Verwaltung', EHtmlInputType.Hidden));
- row2.Cells.Item(1).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- row2 = tableCoords.AddRow();
- row2.Cells.Item(0).Add(New CHtmlSubmitButton('Fliegen', 'Auf, auf und davon!'));
- }
- //----------------------------------------------------------------------------
- //Der wirkliche Flug
- Function fliege(destinations As CEntryList) {
- Var destination As String = '';
- Var orbit As Boolean = False;
- Var Flottenaktion As Boolean = False;
- If (Request.Parameters.ContainsKey('Destination'))
- {
- destination = Request.Parameters.Item('Destination');
- }
- If (Request.Parameters.ContainsKey('Orbit'))
- {
- orbit = Request.Parameters.Item('Orbit');
- }
- If (Request.Parameters.ContainsKey('Flottenaktion'))
- {
- Flottenaktion = Request.Parameters.Item('Flottenaktion');
- }
- If (Request.Form.ContainsKey('Destination'))
- {
- destination = Request.Form.Item('Destination');
- }
- If (Request.Form.ContainsKey('Orbit'))
- {
- orbit = Request.Form.Item('Orbit');
- }
- If (Request.Form.ContainsKey('Flottenaktion'))
- {
- Flottenaktion = Request.Form.Item('Flottenaktion');
- }
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- Var RedAlert As New CShipList ();
- Var ship As CMyShip;
- For (Each ship In myFleet.Ships) {
- If (ship.AlertLevel = EAlertLevel.Red) {
- RedAlert.Add(ship);
- ship.Action.SetAlertLevel(EAlertLevel.Yellow);
- }
- }
- If(Flottenaktion){
- FliegeFlotte(destination, orbit);
- }Else{
- FliegeSingle(destination, orbit);
- }
- If (RedAlert.Count > 0) {
- For (Each ship In RedAlert) {
- ship.Action.SetAlertLevel(EAlertLevel.Red);
- }
- }
- flugkontrolle(destinations);
- }
- Function FliegeFlotte(destination As String, orbit As Boolean){
- myFleet.Action.FlyTo(destination);
- If (orbit = True) {
- myFleet.Action.EnterOrbit();
- }
- WriteSTNEColoredLine('Flugaktion ausgeführt. Typ: Flotte');
- }
- Function WriteSTNEColoredLine(text As String){
- Var Span As New CHtmlSpan();
- Span.Add(text);
- Span.Style.Add('color', '#FFCC00');
- Response.Add(Span)
- Response.Add(New CHtmlNewLine());
- }
- Function FliegeSingle(destination As String, orbit As Boolean){
- Var ship As CMyShip;
- For (Each ship In myFleet.Ships) {
- ship.Action.FlyTo(destination);
- If (orbit = True) {
- ship.Action.EnterOrbit();
- }
- }
- WriteSTNEColoredLine('Flugaktion ausgeführt. Typ: Single');
- }
- //----------------------------------------------------------------------------
- //Kampfeinstellungen ändern
- Function kampfstatus(){
- Var myCurrentShip As CMyShip;
- If (Request.Form.ContainsKey('chkFleetCommand'))
- {
- If (debug = True) {
- WriteLine("FleetCommand " & myFleet.NameAndID);
- }
- Var dockedTo As Integer = 0;
- For (Each myCurrentShip In myFleet.Ships) {
- If(myCurrentShip.DockedToShipID > 0){
- dockedTo = myCurrentShip.DockedToShipID ;
- }
- }
- InnerKampfstatus(myFleet.Action, dockedTo);
- }Else{
- If (debug = True) {
- WriteLine("NonFleetCommand");
- }
- For (Each myCurrentShip In myFleet.Ships) {
- If (debug = True) {
- WriteLine("Schiff " & myCurrentShip.ShipID);
- }
- InnerKampfstatus(myCurrentShip.Action, myCurrentShip.DockedToShipID);
- }
- }
- flottenstatus(True, False);
- }
- Function InnerKampfstatus(manager As CBaseShipManager, dockedToId As Integer) {
- Var wert As String;
- If (Request.Parameters.ContainsKey('Wert'))
- {
- wert = Request.Parameters.Item('Wert');
- }
- If (Request.Form.ContainsKey('Wert'))
- {
- wert = Request.Form.Item('Wert');
- }
- If (dienst = 'alarmstufe') {
- If(Request.Form.ContainsKey('Rot')){
- manager.SetAlertLevel(EAlertLevel.Red);
- }ElseIf(Request.Form.ContainsKey('Gelb')){
- manager.SetAlertLevel(EAlertLevel.Yellow);
- }Else{
- manager.SetAlertLevel(EAlertLevel.Green);
- }
- } ElseIf (dienst = 'schild') {
- If (Request.Form.ContainsKey('on')) {
- manager.ActivateShields(True);
- } Else {
- manager.ActivateShields(False);
- }
- } ElseIf (dienst = 'computer') {
- If (Request.Form.ContainsKey('on')) {
- manager.ActivateMaincomputer(True);
- } Else {
- manager.ActivateMaincomputer(False);
- }
- } ElseIf (dienst = 'wkState') {
- If (Request.Parameters.ContainsKey('Wert')) {
- If (Request.Parameters.Item('Wert') = "on") {
- manager.ActivateWarpCore(True);
- }ElseIf(Request.Parameters.Item('Wert') = "off"){
- manager.ActivateWarpCore(False);
- }
- }
- } ElseIf (dienst = 'schildeladen' AND wert <> "") {
- manager.SchildeAufladen(wert);
- } ElseIf (dienst = 'reserveentladen' AND wert <> "") {
- manager.ReserveBatterieEntladen(wert);
- } ElseIf (dienst = 'collectRes' AND wert <> "") {
- Var wert1 As Integer;
- wert1 = wert;
- manager.Undock();
- manager.DeactivateTractorBeam();
- If (Request.Form.ContainsKey('collectIri')) {
- manager.CollectOre(wert1);
- If (debug = True) {
- WriteLine("CollectOre " & wert);
- }
- }ElseIf(Request.Form.ContainsKey('collectDeut')) {
- manager.CollectDeuterium(wert1);
- If (debug = True) {
- WriteLine("CollectDeuterium " & wert);
- }
- }
- If(dockedToId > 0){
- manager.DockTo(dockedToId);
- If (debug = True) {
- WriteLine("Docken " & dockedToId);
- }
- }
- }
- }
- /*
- Function LoadBattery(amount As Integer){
- Var ship As CMyShip;
- Var table As New CTable(1);
- For (Each ship In myFleet.Ships) {
- Var currAmount As Integer = amount
- Var row As CTableRow = table.AddRow();
- If(Ctype(ship.Definition, CMyShipDefinition) - ship.Energy < currAmount){
- currAmount = Ctype(ship.Definition, CMyShipDefinition) - ship.Energy;
- }
- If(ship.EmergencyBattery < currAmount){
- currAmount = ship.EmergencyBattery;
- }
- Response.Add(table);
- row.Cells.Item(0).Add("Die Reservebatterie von " & ship.Name & " wurde ")
- If(currAmount <> amount){
- row.Cells.Item(0).Add(" nur ")
- }
- row.Cells.Item(0).Add(" um " & currAmount & " aufgeladen ")
- ship.Action.ReserveBatterieEntladen(wert);
- }
- }
- */
- //----------------------------------------------------------------------------
- //Warpkern füllen Hauptseite
- Function wkfuellenMain(showIndex As Boolean) {
- Var row As CTableRow ;
- If(showIndex){
- zeigeIndex();
- }
- //Hautptabelle erzeugen
- Var MainTable As New CTable(3) ;
- Response.Add(MainTable);
- Var MainTableRow As CTableRow = MainTable.AddRow();
- //1. Eintrag
- //Titel
- MainTableRow.Cells.Item(0).Add('Eigenes Schiffslager nutzen');
- MainTableRow.Item(0).CssClass = 'buttonbody';
- Var MainTableRow1 As CTableRow = MainTable.AddRow();
- //Eingabe
- Var form As New CHtmlForm(New CScriptUrl());
- Var table As New CTable(2);
- form.Add(table);
- MainTableRow1.Cells.Item(0).Add(form);
- row = table.AddRow();
- row.Style.Add('vertical - align', 'top');
- row.Cells.Item(0).Add(New CHtmlInput('wkfuellen', 'Verwaltung', EHtmlInputType.Hidden));
- row.Cells.Item(0).Add(New CHtmlInput('lager', 'Dienst', EHtmlInputType.Hidden));
- row.Cells.Item(0).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- row.Cells.Item(0).Add('Anzahl');
- row.Item(0).CssClass = 'buttonbody';
- row.Cells.Item(1).Add(New CHtmlTextBox('0', 'Wert'));
- row.Cells.Item(1).Add(New CHtmlSubmitButton('Max', 'FillFromStockMax'));
- row = table.AddRow();
- Var lb As New CHtmlListBox("fillingType");
- lb.Add(New CHtmlListBoxItem ("AM/Dilli/Deut", 0, True));
- lb.Add(New CHtmlListBoxItem ("Deut", 1, False)));
- lb.Add(New CHtmlListBoxItem ("Plasma", 2, False)));
- row.Cells.Item(0).Add(lb);
- row.Cells.Item(0).ColumnSpan = 2;
- row = table.AddRow();
- row.Cells.Item(0).Add(New CHtmlSubmitButton('Nachfüllen', 'FillFromStock'));
- row.Cells.Item(0).ColumnSpan = 2;
- //Fremdschiff/////////////
- //2. Eintrag
- //Titel
- MainTableRow.Cells.Item(1).Add('Von Lagerschiff laden');
- MainTableRow.Item(1).CssClass = 'buttonbody';
- // MainTableRow1 = MainTable.AddRow();
- //Eingabe
- form = New CHtmlForm(New CScriptUrl());
- table = New CTable(2);
- form.Add(table);
- MainTableRow1.Cells.Item(1).Add(form);
- row = table.AddRow();
- row.Style.Add('vertical - align', 'top');
- row.Cells.Item(0).Add(New CHtmlInput('wkfuellen', 'Verwaltung', EHtmlInputType.Hidden));
- row.Cells.Item(0).Add(New CHtmlInput('ship', 'Dienst', EHtmlInputType.Hidden));
- row.Cells.Item(0).Add(New CHtmlInput(myFleetID, 'fleetID', EHtmlInputType.Hidden));
- row.Cells.Item(0).Add('Schiff - ID');
- row.Item(0).CssClass = 'buttonbody';
- row.Cells.Item(1).Add(New CHtmlInput("", 'shipID', EHtmlInputType.Text));
- row = table.AddRow();
- row.Cells.Item(0).Add('Anzahl');
- row.Item(0).CssClass = 'buttonbody';
- row.Cells.Item(1).Add(New CHtmlTextBox('0', 'Wert'));
- row.Cells.Item(1).Add(New CHtmlSubmitButton('Max', 'FillFromShipMax'));
- row = table.AddRow();
- row.Cells.Item(0).Add(New CHtmlSubmitButton('Nachfüllen', 'FillFromShip'));
- row.Cells.Item(0).ColumnSpan = 2;
- ///////////////
- Var Span As New CHtmlSpan();
- Span.Add("Aktion wird als Einzel-Aktion durchgeführt");
- Span.Style.Add('color', '#333333');
- Response.Add(Span)
- Response.Add(New CHtmlNewLine());
- }
- //----------------------------------------------------------------------------
- Function DetectMaxWKFillingsStock(ship As CMyShip) As Integer{
- Return Math.Floor(ship.StockRoom.FreeStorage / 5) ;
- }
- Function DetectMaxWKFillings(ship As CShip, type As Integer) As Integer{
- Var stNull As Boolean = ship.StockRoom is Null;
- If(not stNull){
- If(type = 0){
- Var Deut As Integer = Math.Floor(ship.StockRoom.Amount(EGoodsType.Deuterium) / 2);
- Var AM As Integer = Math.Floor(ship.StockRoom.Amount(EGoodsType.Antimatter) / 2);
- Var fillings As Integer = ship.StockRoom.Amount(EGoodsType.Dilithium);
- If(Deut < fillings){
- fillings = Deut;
- }
- If(AM < fillings){
- fillings = AM;
- }
- Return fillings ;
- }ElseIf(type = 1){
- Var tmp As Integer = Math.Floor(ship.StockRoom.Amount(EGoodsType.Deuterium) / 2);
- Return tmp ;
- }Else{
- Return ship.StockRoom.Amount(EGoodsType.Plasma);
- }
- }Else{
- Return 0;
- }
- }
- //Warpkern füllen
- Function wkfuellen() {
- zeigeIndex();
- Var wert As Integer = 0;
- Var Max As Boolean = False;
- If (Request.Form.ContainsKey('Wert') AND Request.Form.Item('Wert') <> "")
- {
- wert = Request.Form.Item('Wert');
- }
- If (Request.Form.ContainsKey('FillFromStockMax') or Request.Form.ContainsKey('FillFromShipMax'))
- {
- Max = True;
- }
- // Zum Nachfüllen das Schifflsager verwenden
- If (dienst = 'lager') {
- FillWKFromStock(wert, Max, Request.Form.Item('fillingType'));
- wkfuellenMain(False);
- }
- // Zum Nachfüllen ein Versorgungsschiff verwenden
- If (dienst = 'ship') {
- FillWKFromShip(wert, Max);
- wkfuellenMain(False);
- }
- // Zum Nachfüllen eine Kolonie nutzen
- If (dienst = 'kolonie') {
- Response.Add("Noch nicht implementiert!");
- }
- }
- Function BeamWKFillingsFromShip(amount As Integer, ship As CMyShip, supply As CShip, row As CTableRow){
- Var beamCapacity As Integer = CType(ship.Definition, CMyShipDefinition).BeamCapacity ;
- Var shipEPS As Integer = Math.Min(ship.Eps, ship.Energy);
- Var maxAmount As Integer = Math.Floor(shipEPS * beamCapacity / 25) * 5
- /*Var DilliBeamEps As Integer = Math.Ceiling(amount / beamCapacity);
- Var AMDeutBeamEps As Integer = 2 * Math.Ceiling((amount * 2) / beamCapacity);
- Var BeamEPS As Integer = DilliBeamEps + AMDeutBeamEps;
- */
- If(maxAmount < amount){
- amount = maxAmount ;
- row.Cells.Item(0).Add(GetErrorSpan(ship.Name & ' hat nicht genug EPS. Reduziere Menge auf ' & amount));
- }
- If(amount > 0){
- row.Cells.Item(0).Add('Beame ' & amount & " WK-Ladungen und lade Warpkern");
- ship.Action.TransferFromShip(supply.ShipID, amount, EBeamResource.Dilithium);
- ship.Action.TransferFromShip(supply.ShipID, amount * 2, EBeamResource.Deuterium);
- ship.Action.TransferFromShip(supply.ShipID, amount * 2, EBeamResource.Antimatter);
- ship.Action.RefillWarpCore(amount, EWarpcoreFillType.dilliAmDeut);
- }
- }
- Function FillWKFromShip(wert As Integer, Max As Boolean) As Boolean{
- Var shipId As Integer = 0;
- Var supplyShip As CShip;
- If (Request.Form.ContainsKey('shipID') AND Request.Form.Item('shipID') <> "")
- {
- shipId = Request.Form.Item('shipID');
- }Else{
- Response.Add(GetErrorSpan("Bitte Schiffs-ID angeben"));
- Return False;
- }
- Var table As New CTable(2);
- Response.Add(table);
- Var ship As CMyShip;
- For (Each ship In myFleet.Ships) {
- Var row As CTableRow = table.AddRow();
- row.Cells.Item(0).Add("Schiff " & ship.Name);
- Var innerTable As New CTable(1);
- row.Cells.Item(1).Add(innerTable);
- Var innerRow As CTableRow = innerTable.AddRow();
- Var tmpWert As Integer = wert;
- If (not ship.SRS.ContainsShipID(shipId)) {
- innerRow.Cells.Item(0).Add(GetErrorSpan('Das Versorgungsschiff befindet sich nicht im selben Sektor!'));
- } Else{
- supplyShip = GetShipFromList(shipId, ship.SRS));
- Var base As CShip = Null;
- If(supplyShip.FreeDockingPorts(ship)){
- base = supplyShip;
- WriteLine("Schiff ist Basis");
- }Else{
- If(supplyShip.Docked){
- base = supplyShip.DockedTo;
- WriteLine("Supply Schiff ist angedockt...");
- If(not base.FreeDockingPorts(ship)){
- WriteLine("...aber keine Plätze mehr frei");
- base = Null;
- }
- }
- }
- If(base is Null){
- }Else{
- Var docked As Boolean = ship.Docked;
- If(not docked){
- ship.Action.DockTo(base.ShipID);
- innerRow.Cells.Item(0).Add("Docke an Basis " & base.Name & " an.")
- }
- }
- Var maxFillingStock As Integer = DetectMaxWKFillingsStock(ship);
- If(Max){
- innerRow.Cells.Item(0).Add("Max ausgewählt. Versuche " & maxFillingStock & " Füllungen zu laden");
- innerRow = innerTable.AddRow();
- wert = maxFillingStock ;
- }
- Var rounds As Integer = 0;
- Var counter As Integer = 0;
- While(counter < wert){
- innerRow.Cells.Item(0).Add("Durchlauf " & rounds);
- innerRow = innerTable.AddRow();
- tmpWert = wert - counter;
- If(tmpWert > maxFillingStock){
- tmpWert = maxFillingStock ;
- }
- Var existingFillings As Integer = DetectMaxWKFillings(supplyShip, 0);
- If(existingFillings < tmpWert){
- innerRow.Cells.Item(0).Add(GetErrorSpan('Auf dem Lagerschiff sind nicht genügend Ressourcen vorhanden. Reduziere auf ' & existingFillings));
- innerRow = innerTable.AddRow();
- tmpWert = existingFillings;
- If(tmpWert = 0){
- wert = - 1;
- }
- }
- If(tmpWert > 0){
- BeamWKFillingsFromShip(tmpWert, ship, supplyShip, innerRow);
- innerRow = innerTable.AddRow();
- }
- counter = counter + maxFillingStock;
- rounds = rounds + 1;
- innerRow = innerTable.AddRow();
- }
- If(not docked){
- ship.Action.Undock();
- }
- }
- }
- Return True;
- }
- Function GetShipFromList(id As Integer, list As CShipList) As CShip{
- Var ship As CBaseShip;
- // Überprüfe Einzelspieler
- For (Each ship In list) {
- If(ship.ShipID = id){
- Return ship;
- }
- }
- Return Null;
- }
- Function GetErrorSpan(text As String) As CHtmlSpan{
- Var Span As New CHtmlSpan();
- Span.Add(text);
- Span.Style.Add('color', 'Red');
- Return Span;
- }
- Function FillWKFromStock(wert As Integer, Max As Boolean, type As Integer) As Boolean{
- Var tableLager As New CTable(1);
- Var rowLager As CTableRow = tableLager.AddRow();
- Response.Add(tableLager);
- Var ship As CMyShip;
- For (Each ship In myFleet.Ships) {
- Var MaxFillings As Integer = DetectMaxWKFillings(ship, type);
- Var alert As Boolean = False;
- If(debug = True){
- WriteLine(' (Debug: MaxFillings = ' & MaxFillings & " )");
- }
- If (MaxFillings <= 0) {
- rowLager.Cells.Item(0).Add(GetErrorSpan('Auf ' & ship.Name & ' sind nicht genügend Ressourcen vorhanden.'));
- rowLager = tableLager.AddRow();
- } Else {
- Var TmpValue As Integer = wert;
- If(Max){
- TmpValue = MaxFillings ;
- }Else{
- If(MaxFillings < wert){
- TmpValue = MaxFillings ;
- alert = True;
- }
- }
- If(type = 0){
- ship.Action.RefillWarpCore(TmpValue, EWarpcoreFillType.dilliAmDeut);
- }ElseIf(type = 1){
- ship.Action.RefillWarpCore(TmpValue, EWarpcoreFillType.deuterium);
- }Else{
- ship.Action.RefillWarpCore(TmpValue, EWarpcoreFillType.plasma);
- }
- rowLager.Cells.Item(0).Add('Der Warpkern von ');
- rowLager.Cells.Item(0).Add(ship.Name);
- rowLager.Cells.Item(0).Add(' wurde ');
- If(alert){
- rowLager.Cells.Item(0).Add('nur ');
- rowLager.Cells.Item(0).Style.Add('color', 'red');
- }
- rowLager.Cells.Item(0).Add('um ');
- rowLager.Cells.Item(0).Add(TmpValue);
- rowLager.Cells.Item(0).Add(' Einheiten aufgeladen.');
- rowLager = tableLager.AddRow();
- }
- }
- Return True;
- }
- //----------------------------------------------------------------------------
- //----------------------------------------------------------------------------
- //Prüft ob die ganze Flotte im selben Sektor ist
- Function fleetInSameSector() As Boolean {
- Var ship As CMyShip;
- Var sameSector As Boolean = True;
- For (Each ship In myFleet.Ships) {
- If (ship.MapPosition = myFleet.Ships.Item(0).MapPosition) {
- } Else {
- sameSector = False;
- }
- }
- Return(sameSector);
- }
- //----------------------------------------------------------------------------
- //Zeigt den Fleet Selector an
- Function fleetSelector()
- {
- Var id As Integer;
- Var form As New CHtmlForm(New CScriptUrl());
- Var fleet As CMyFleet;
- Response.Add(form);
- form.Add(New CHtmlSeperator('Schiffsportal'));
- form.Add(New CHtmlNewLine());
- Var user As New CUser(GuestUser.UserID)
- form.Add(begrüßungsText);
- form.Add(user.GetHtmlNameAndID(True));
- form.Add('.');
- form.Add(New CHtmlNewLine());
- form.Add(New CHtmlSeperator('Bitte wählt eine Flotte aus:'));
- Var table As New CTable(2);
- form.Add(table);
- Var row As CTableRow;
- Var url As New CScriptUrl();
- For (Each id In possibleFleets) {
- row = table.AddRow();
- row.Cells.Item(0).Add(CreateFleetSelectButton(id));
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'fleetPreview');
- url.Parameters.Add('fleetID', id);
- fleet = New CMyFleet(id);
- row.Cells.Item(1).Add(New CHtmlLinkButton('Ansehen', url, 'Wenn man nicht genau weiß ob das die richtige Flotte ist.'));
- }
- If (debug = True) {
- Response.Add('Debug mode active!');
- Response.Add(New CHtmlNewLine());
- Response.Add('Verwaltung: ');
- Response.Add(verwaltung);
- Response.Add(New CHtmlNewLine());
- Response.Add('Dienst: ');
- Response.Add(dienst);
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- }
- }
- Function CreateFleetSelectButton(id As Integer) As CHtmlLinkButton
- {
- Var url As New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'index');
- url.Parameters.Add('fleetID', id);
- Var fleet As New CMyFleet(id);
- Return New CHtmlLinkButton(fleet.Name, url, fleet.NameAndID);
- }
- //----------------------------------------------------------------------------
- Function GetPossibleFleets() As CIntegerList {
- Var Fleets As New CFleetEnumerator();
- Var RetVal As New CIntegerList();
- While(Fleets.MoveNext){
- RetVal.Add(Fleets.CurrentFleet.FleetID)
- }
- Return RetVal;
- }
- Function fleetPreview(){
- fleetSelector();
- flottenstatus(False, True);
- }
- Function manageTruemmer(showScan As Boolean){
- zeigeIndex();
- Response.Add(New CHtmlSeperator('Aktionen'));
- Response.Add(New CHtmlNewLine());
- Var tableTruemmer As New CTable(2);
- Var row As CTableRow = tableTruemmer.AddRow();
- Response.Add(tableTruemmer);
- Var url As New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'beamTruemmer');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(0).Add(New CHtmlLinkButton('Beamen aus allen Trümmern im Sektor', url, 'Beamt Waren aus Trümmerfeldern.'));
- url = New CScriptUrl();
- url.Parameters.Add('Verwaltung', 'extractTruemmer');
- url.Parameters.Add('fleetID', myFleetID);
- row.Cells.Item(1).Add(New CHtmlLinkButton('Alle Trümmer im Sektor extrahieren', url, 'Alle Trümmer im Sektor extrahieren'));
- Response.Add("Hinweis: Aktives SRS nötig!");
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- If(showScan){
- Response.Add(New CHtmlSeperator('SRS - Scan'));
- zeigeSrsWare(False);
- }
- }
- Function extractTruemmer(){
- manageTruemmer(False);
- Response.Add(New CHtmlSeperator('Ergebnis'));
- Response.Add(New CHtmlNewLine());
- Var myCurrentShip As CMyShip;
- Var ship As CShip;
- Var row As CTableRow;
- Var tableTruemmer As New CTable(1);
- Response.Add(tableTruemmer);
- Var match As Boolean = False;
- For (Each myCurrentShip In myFleet.Ships) {
- If(myCurrentShip.SRSIsActive and myCurrentShip.Energy > 0 and myCurrentShip.Eps > 0 and myCurrentShip.Definition.HasWreckExtractor and myCurrentShip.StockRoom.FreeStorage(EGoodsType.Duranium) > 0){
- For (Each ship In myCurrentShip.SRS){
- If (ship.UserID = 3 and ship.Hull > 5){
- If(myCurrentShip.TractorToShipID <> ship.ShipID){
- myCurrentShip.Action.DeactivateTractorBeam();
- }
- myCurrentShip.Action.ActivateTractorBeam(ship.ShipID);
- myCurrentShip.Action.ExtractFromWreck(myCurrentShip.Energy);
- myCurrentShip.Action.DeactivateTractorBeam();
- row = tableTruemmer.AddRow();
- row.Cells.Item(0).Add('Extrahiere von: ' & ship.Name & '(' & ship.ShipID & ')');
- match = True;
- }
- }
- }
- }
- Var Span As New CHtmlDiv();
- Span.Add("Vorgang abgeschlossen");
- Span.Style.Add('color', '#FFCC00');
- Response.Add(Span);
- If( not match){
- Response.Add("Keine Trümmer gefunden oder keine Extraktoren vorhanden und einsatzbereit.");
- }
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlSeperator('SRS - Scan'));
- zeigeSrsWare(False);
- }
- //Beamt Waren von Trümmerfeldern
- Function beamTruemmer() {
- manageTruemmer(False);
- Response.Add(New CHtmlSeperator('Ergebnis'));
- Response.Add(New CHtmlNewLine());
- Var ship As CShip
- Var myCurrentShip As CMyShip;
- Var row As CTableRow;
- Var tableTruemmer As New CTable(1);
- Response.Add(tableTruemmer);
- Var match As Boolean = False;
- For (Each myCurrentShip In myFleet.Ships) {
- If(myCurrentShip.SRSIsActive){
- For (Each ship In myCurrentShip.SRS){
- If (ship.UserID = 3 and ship.StockRoom.Sum <> 0){
- Var goods As New CGoodsInfoEnumerator();
- While (goods.Next())
- {
- Var g As EGoodsType = goods.CurrentWarenInfo.GoodsType
- If (ship.StockRoom.Amount(g) > 0) {
- row = tableTruemmer.AddRow();
- row.Cells.Item(0).Add(ship.Name & '(' & ship.ShipID & ') enthält ' & ship.StockRoom.Amount(g) & ' ' & goods.CurrentWarenInfo.Name);
- myCurrentShip.Action.TransferFromShip(ship.ShipID, ship.StockRoom.Amount(g), g);
- match = True;
- }
- }
- }
- }
- }
- }
- Var Span As New CHtmlDiv();
- Span.Add("Vorgang abgeschlossen");
- Span.Style.Add('color', '#FFCC00');
- Response.Add(Span);
- If( not match){
- Response.Add("Keine Trümmer gefunden");
- }
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlNewLine());
- Response.Add(New CHtmlSeperator('SRS - Scan'));
- zeigeSrsWare(False);
- }
- Main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement