Page 2 of 2 FirstFirst 12
Results 11 to 17 of 17

Thread: Positionsvergleich

  1. #11

    Re: Positionsvergleich

    Auf die Gefahr hin, dich vollkommen zu verwirren...sowohl
    Quote Originally Posted by quor
    Var Kolo1 As New CMyColony(12345);
    Var Ship1 As New CMyShip(123456);

    WriteLine('Koords Kolo: ' & (CStr(Kolo1.SRS.Item(0).MapPosition));
    WriteLine('Koords Shiff: ' & (CStr(Ship1.SRS.Item(0).MapPosition));
    als auch
    Quote Originally Posted by quor
    Var Kolo1 As New CMyColony(68406);
    Var Ship1 As New CMyShip(549215);

    WriteLine('Koords Kolo: ' & Kolo1.SRS.Item(0).MapPosition.ToString());
    WriteLine('Koords Shiff: ' & Ship1.SRS.Item(0).MapPosition.ToString());
    funktionieren bei mir einwandfrei (nachdem ich die IDs durch eigene ersetzt hatte natürlich)...
    An den Anführungszeichen liegts übrigens auch nicht, da geht tatsächlich beides
    Ich schätz mal dass Item(0) auf das "nullte" Item des SRS zugreift, also das Schiff/die Kolonie selbst.

  2. #12

    Re: Positionsvergleich

    Das nullte Element ist das erste aus dem SRS und nicht das Schiff selber. Problematisch wird es wenn es keine anderen Schiffe im SRS gibt und deshalb eine Fehlermeldung erzeugt wird.
    Woher kommt eigentlich diese Ausführung mit dem SRS?

  3. #13

    Re: Positionsvergleich

    Versuch es mal damit:
    Code:
    Var gleichePosition As Boolean = False;
    Var Kolo1 As New CMyColony(12345);
    Var Ship1 As New CMyShip(12345);
    
    If((Kolo1.Coordinates.CompareTo(Ship1.MapPosition.Coords) = 0) and Ship1.MapPosition.InOrbit) {gleichePosition = True}

  4. #14

    Re: Positionsvergleich

    Danke, Dragon Head.

    Das bringt mich etwas weiter, denn vermutlich lag es tatsächlich daran, dass einfach kein SRS erzeugt wurde.

    Leider klappt das CompareTo irgendwie nicht, da Coords auch den Orbit mit in die Ausgabe einbindet(@123|123) und Coordinates nicht.
    Der Orbit ist aber auch garnicht relevant.

    Aber ich versuch mal mit der CompareTo weiter zu kommen. Noch nicht so klar ist mir gleichePosition = True. Kann ich das bei einer Boolean Abfrage so einbauen??

    Code:
    If((Kolo1.Coordinates.CompareTo(Ship1.MapPosition.Coords) = 0) and Ship1.MapPosition.InOrbit)
    {
      gleichePosition = True row.Cells.Item(1).Add(Ship1.Name)
    }
    Else
    { 
      row.Cells.Item(1).Add(" - ")
    }
    Ich schreibe kompliziert, weil ich 102 Tasten habe.

  5. #15

    Re: Positionsvergleich

    So habe jetzt endlich ne Lösung für den Baustein . Danke an alle für die Hilfe.

    Code:
    Var Kolo1 As New CMyColony(68406);
    Var Ship1 As New CMyShip(549215);
    
    WriteLine('Koords Kolo: ' + Kolo1.SectorID.ToString());
    WriteLine('Koords Kolo: ' + Kolo1.Coordinates.ToString());
    WriteLine('Koords Ship1: ' + Ship1.MapPosition.ToString());
    WriteLine('Koords Ship1: ' + Ship1.Sector.SectorID.ToString());
    
    If(Kolo1.SectorID.ToString() = Ship1.Sector.SectorID.ToString())
    { WriteLine('Yes, Schiff und Kolo ='); }
    Else
    {   WriteLine('No, Schiff und Kolo ungleich'); }
    Ich schreibe kompliziert, weil ich 102 Tasten habe.

  6. #16

    Re: Positionsvergleich

    Ich glaube du verwechselst SMapPosition mit SPoint. Coords gibt letzteres zurück und berücksichtigt nicht den Orbit.

    Ich versuche gerade zu verstehen was du erreichen möchtest

    Wie siehts hiermit aus: (ohne berücksichtigung vom Orbit)

    Code:
    If(Kolo1.Coordinates.CompareTo(Ship1.MapPosition.Coords)* =* 0)
    {
      row.Cells.Item(1).Add(Ship1.Name)
    }
    Else
    {
      row.Cells.Item(1).Add(" - ")
    }

  7. #17

    Re: Positionsvergleich

    Habe meine Schiffe nicht als NEW CMyShip deklariert, jetzt funzt.

    Danke an Alle für die Tips.
    Ich schreibe kompliziert, weil ich 102 Tasten habe.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •