Raketenabwehr Moskito

Hier ist der ideale Ort um über Scripts und Mods für X³: Reunion zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

Lord Morpheus
Posts: 764
Joined: Thu, 15. Dec 05, 21:27
x3tc

Post by Lord Morpheus »

Mach ich irgendwas falsch? Hab einfach Moskitos draufgeladen und die Abwehr aktiviert. Muß man noch irgendwas einstellen?

Ansonsten denke ich aber daß ne Reichweitenerhöhung schon ganz gut wäre. 10-15km paßt schon ;)
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Mehr brauchst du auch nicht zu machen, das funktioniert schon so.
Ja, für GKS wäre eine Reichweitenerhöhung auf 10km schon ganz vernünftig.
Donmato
Posts: 470
Joined: Tue, 2. Aug 05, 14:01
xr

Post by Donmato »

mir is aufgefallen
das die ram nur funzt
wenn ich die raketen auch übers waffenmeü installiere :oops:
wenn ich die da rausnehem
dann werden auch keine verschossen :roll:
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

Donmato wrote:mir is aufgefallen
das die ram nur funzt
wenn ich die raketen auch übers waffenmeü installiere :oops:
wenn ich die da rausnehem
dann werden auch keine verschossen :roll:
Kann ich nicht bestätigen. Bei mir brauchen sie nur im Laderaum sein.

Gruß
Lucike
Image
Lord Morpheus
Posts: 764
Joined: Thu, 15. Dec 05, 21:27
x3tc

Post by Lord Morpheus »

Bei mir funktioniert die RAM nicht wenn die Moskitos bereits als aktive Rakete gewählt waren, bevor die RAM aktiviert wird. Sobald ich dann einmal die Rakete entferne funktioniert die RAM und zwar auch wenn ich die Moskitos dann wieder installiere.

Nochmal zur Reichweite bei GKS, ich denke 10km tuns auch. 15km ist wohl etwas zuviel des guten ;)
Donmato
Posts: 470
Joined: Tue, 2. Aug 05, 14:01
xr

Post by Donmato »

Donmato wrote:mir is aufgefallen
das die ram nur funzt
wenn ich die raketen auch übers waffenmeü installiere :oops:
wenn ich die da rausnehem
dann werden auch keine verschossen :roll:
nachtrag
bei den kampfschiffen brauchen die nur im laderaum zusein
aber bei den TS oder TP muß ich die übers waffenmenü aktivieren :)
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »


Raketenabwehr Moskito
(Version 3.3.07 - 21. Juli 2007)


-> Raketenabwehr Moskito (ZIP Version 3.3.07)
-> Raketenabwehr Moskito (SPK Version 3.3.07) (Vielen Dank für die SPK, Blacky_BPG)

Voraussetzung: X³ Reunion ab 1.4.03 !!

Wichtig: Diese Version der Raketenabwehr Moskito kann über die signierte Bonuspaketversion kopiert werden. Der Spielstand wird allerdings modifiziert und man bekommt ein so genanntes "Modified" ins Spielprofil, da der Script Editor aktiviert werden muss. !!


21.07.2007 (Version 3.3.07)
  • Die RAM funktioniert wieder im OOS-Betrieb. (OOS = OutOfSector)
  • Großschiffe fangen anfliegende Raketen in einer größeren Entfernung ab.
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Lucike wrote:Großschiffe fangen anfliegende Raketen in einer größeren Entfernung ab.
Danke dafür :thumb_up:
Link UpToDate :wink:
jlehtone
Posts: 22552
Joined: Sat, 23. Apr 05, 21:42
x4

Post by jlehtone »

Lucike wrote:21.07.2007 (Version 3.3.07)
  • Die RAM funktioniert wieder im OOS-Betrieb. (OOS = OutOfSector)
Du kannst eine OOS Rakete zielen? :?
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Hmm... würde mich auch mal interessieren (hab keine Lust, deinen Code jetzt deshalb zu durchforsten, ich frag mal direkt): Bekanntermaßen gibt es OOS keinen Raketeneinsatz... (zumindest haben das meine Tests ergeben) was bringt die RAM also OOS?
User avatar
-Dusty-
Posts: 2301
Joined: Fri, 30. Dec 05, 20:17
x3tc

Post by -Dusty- »

X-Freak Cartman wrote:Bekanntermaßen gibt es OOS keinen Raketeneinsatz... (zumindest haben das meine Tests ergeben)
Wenn man jlehtone's Tests glaubt (und das tu ich), gibt es durchaus OOS-Raketeneinsatz... :)
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

o.0

OK, ich glaub, ich muss an der KSW MK3 nochw as ändern... nachdem ich selbst einen kleinen Test durchgeführt hab ^^
jlehtone
Posts: 22552
Joined: Sat, 23. Apr 05, 21:42
x4

Post by jlehtone »

Point is, while missiles apparently do damage OOS, that does not imply the

Code: Select all

$EnemyMissile = [THIS] -> find nearest missile aiming to me
to work OOS.
Google Translate wrote:Punkt ist, während Raketen anscheinend OOS beschädigen, das nicht andeutet

Code: Select all

OOS bearbeiten.[/quote]
Goner Pancake Protector X
Insanity included at no extra charge.
There is no Box. I am the sand.
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Just as the lasers don't really fly through space OOS.

That's what makes MMD OOS that useless... But my FCS MK3 should fire missiles OOS as well as the Egosoft AI ^^
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

Na klar gibt es eine OOS-Raketenabschußmöglichkeit. Allerdings funktioniert der Befehl

Code: Select all

$EnemyMissile = [THIS] -> find nearest missile aiming to me
nicht immer.

CODEA arbeitet bereits mit dem OOS-Raketenfegefeuer. ;)

Gruß
Lucike
jlehtone
Posts: 22552
Joined: Sat, 23. Apr 05, 21:42
x4

Post by jlehtone »

"nicht immer"
Xenon Hammerhai ist tödlich. :|

:gruebel:
Standard-OOS Kampf bildet einen Angriff pro rundes. Ist 30 Sekunden rund.

Aber,

Code: Select all

$Targets = get array of enemy M5|M4
For each $Ship in $Targets
  [THIS] -> launch missile at $Ship, type=Aurora
End
Ein OOS rund? :roll:
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

One OOS round is exactly 15 seconds long, not 30.

What about the missile fire time difference? There's no time difference for lasers OOS, so it should work for missiles as well... But it'd be a cheat, because you could wipe out a whole fleet immediately.


<Edit>
Nochmal nachgesehen:
Theoretisch kann man Raketen OOS abfeuern... praktisch jedoch nicht. Der Befehl "fire missile <> on <>" funzt einfach nicht, er gibt den Wert null zurück und feuert keine Rakete. IS funzt er bekanntermaßen problemlos.

Hier mal der Ausschnitt aus meiner Logfile:

Missile: Hummel Strength: 24000 Victim: Xenon Mamba 0 retval: null
Missile: Hummel Strength: 24000 Victim: Xenon Mamba 0 retval: null
Missile: Hummel Strength: 24000 Victim: Xenon Mamba 0 retval: null

Insgesamt hab ich 18 solcher Einträge, also gab es 18 Versuche. Der Abstand zum Ziel betrug maximal 2600m. Mein Schiff hatte keine Laser, um zu gewährleisten, dass das Ergebnis nicht verfälscht wird. ach ja, "should missile be fired" ergab ebenfalls [TRUE], nur falls ihr fragt. Die Feuerwahrscheinlichkeit betrug 5% sowie 100% (2 Tests)

Also, wie habt ihr es hinbekommen, OOS Raketen zu starten?


<Edit2>
Der Test funktioniert wie geplant, was heißt, dass Raketen abgefeuert werden. Merkwürdigerweise funktioniert der Code, den ich auf dem anderen Script einfach nur herauskopiert habe, problemlos... obwohl nix geändert wurde.

Na gut, ich muss das nochmal genauer untersuchen... Letztens gab es schon einen IL wegen einem simplen Script Interrupt auf einem anderen Task, der jedoch keinen weiteren Interrupt mit sich zog... ein Kommando wollte strikt nicht funktionieren. Nachdem ich einfach auf dem Interrupt einen Task Start gemacht hab, ging es, jedoch liefen alle Scripte einfach so weiter.... irgendwo hat der SE halt doch ein oder zwei Fehlerchen. (Und jetzt sagt nicht, der Script sei fehlerhaft gewesen. Ich hab ihn ca. 4 Stunden lang untersucht und er funktionierte problemlos, außer bei dem Fall, dass 3 Scripts auf dem Stack von Task 53 liegen... welche Scripts das sind, war hier egal.)

Viel Spaß noch.


<Edit3> (jaja, so langsam reicht's)
-.-
Es liegt am Befehl "get best missile for target"...
Er gibt mir Raketen zurück, die gar nicht im Frachtraum vorhanden sind. IS funzt er, aber OOS hackt er total.
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

X-Freak Cartman wrote:<Edit3> (jaja, so langsam reicht's)
-.-
Es liegt am Befehl "get best missile for target"...
Er gibt mir Raketen zurück, die gar nicht im Frachtraum vorhanden sind. IS funzt er, aber OOS hackt er total.
Der Befehl überzeugt mich überhaupt nicht. Wie kann eine Moskito-Rakete besser gegen einen Falken sein als eine Donnerschlag-Rakete? Vielleicht wird ja gewürfelt.

Das Raketenabschußmodul aus CODEA. Unter Funktion IS und OOS.

Code: Select all

plugin.codea.missile.fire.xml

001   * --------------------------------------------------------------------------------
002   * Aktuelle Raketenkonfiguration ermitteln und ueberschreiben
003   * --------------------------------------------------------------------------------
004   
005   $MissileProbability = [THIS] -> get fire missile probability
006   $MissileTimeDifference = [THIS] -> get fire missile time difference in seconds
007   
008   [THIS] -> set fire missile probability to 0
009   [THIS] -> set fire missile time difference to 1 s
010   
011   * --------------------------------------------------------------------------------
012   * Feindliches Ziel ermitteln und Rakete abfeuern
013   * --------------------------------------------------------------------------------
014   
015   while [TRUE]
016 @  = wait 2000 ms
017    
018    if not [THIS] -> is script 'plugin.codea.ship.order' on stack of task=0
019     if not [THIS] -> is script 'plugin.codea.ship.order.wing' on stack of task=0
020      if not [THIS] -> is script 'plugin.codea.ship.order.collect' on stack of task=0
021       if not [THIS] -> is script '!ship.cmd.killenemies.std' on stack of task=0
022        skip if [THIS] -> is script '!ship.cmd.killenemiesland.std' on stack of task=0
023         break
024       end
025      end
026     end
027    end
028    
029    skip if not [THIS] -> is docked
030     continue
031    
032    $AttackTarget = [THIS] -> get attack target
033    $Leader = [THIS] -> get formation leader
034    skip if not $Leader
035     $AttackTarget = $Leader -> get attack target
036    skip if $AttackTarget -> exists
037     continue
038    skip if [THIS] -> is in same sector as $AttackTarget
039     continue
040    
041 @  $Missile = [THIS] -> call script 'plugin.codea.missile.check' :  ShipEnemy=$AttackTarget
042    skip if $Missile
043     continue
044    
045    $Distance = get distance between [THIS] and $AttackTarget
046    $MissileRange =  get missile range of $Missile
047    $MissileDamage =  get missile max damage of $Missile
048    $ShieldStrength = [THIS] -> get current shield strength
049    
050    if $Distance < $MissileRange AND $Distance < 20000
051     if $MissileDamage * 2 < $ShieldStrength
052      $MissileFire = [THIS] -> fire missile $Missile on $AttackTarget
053     else if $MissileDamage * 2 > $ShieldStrength
054      $MissileFire = [THIS] -> fire missile $Missile on $AttackTarget
055      [THIS] -> interrupt with script 'plugin.codea.missile.fire.stop' and prio 0: arg1=$AttackTarget arg2=null arg3=null arg4=null
056     end
057    end
058    
059 @  = wait 30000 ms
060   end
061   
062   * --------------------------------------------------------------------------------
063   * Alte Raketenkonfiguration wiederherstellen
064   * --------------------------------------------------------------------------------
065   
066   [THIS] -> set fire missile probability to $MissileProbability
067   [THIS] -> set fire missile time difference to $MissileTimeDifference s
068   
069   * --------------------------------------------------------------------------------
070   
071   return null

Code: Select all

plugin.codea.missile.check.xml

001   * --------------------------------------------------------------------------------
002   * Daten ueberpruefen
003   * --------------------------------------------------------------------------------
004   
005   skip if $ShipEnemy -> exists
006    return null
007   
008   * --------------------------------------------------------------------------------
009   * Rakete nach Ziel auswaehlen
010   * --------------------------------------------------------------------------------
011   
012   if $ShipEnemy -> is of class M5
013    skip if not [THIS] -> get amount of ware Nadel in cargo bay
014     $Missile = Nadel
015    skip if not [THIS] -> get amount of ware Wespe in cargo bay
016     $Missile = Wespe
017    skip if not [THIS] -> get amount of ware Hurrikan in cargo bay
018     $Missile = Hurrikan
019    skip if not [THIS] -> get amount of ware Disruptorrakete in cargo bay
020     $Missile = Disruptorrakete
021   else if $ShipEnemy -> is of class M4
022    skip if not [THIS] -> get amount of ware Nadel in cargo bay
023     $Missile = Nadel
024    skip if not [THIS] -> get amount of ware Hurrikan in cargo bay
025     $Missile = Hurrikan
026    skip if not [THIS] -> get amount of ware Disruptorrakete in cargo bay
027     $Missile = Disruptorrakete
028   else
029    skip if not [THIS] -> get amount of ware Dorn in cargo bay
030     $Missile = Dorn
031    skip if not [THIS] -> get amount of ware Hummel in cargo bay
032     $Missile = Hummel
033    skip if not [THIS] -> get amount of ware Hornisse in cargo bay
034     $Missile = Hornisse
035    skip if not [THIS] -> get amount of ware Donnerschlag in cargo bay
036     $Missile = Donnerschlag
037    skip if not [THIS] -> get amount of ware Gewittersturm in cargo bay
038     $Missile = Gewittersturm
039   end
040   
041   * --------------------------------------------------------------------------------
042   
043   return $Missile

Code: Select all

plugin.codea.missile.fire.stop.xml

001   * --------------------------------------------------------------------------------
002   * Laserfeuer einstellen
003   * --------------------------------------------------------------------------------
004   
005   skip if not [THIS] -> is docked
006    return null
007   
008 @ = [THIS] -> defensive move: type=null, intensity=100, timeout=1000ms, avoid object=$AttackTarget
009   
010   * --------------------------------------------------------------------------------
011   
012   return null
User avatar
X-Freak Cartman
Posts: 4017
Joined: Mon, 2. Oct 06, 15:08
x3

Post by X-Freak Cartman »

Hmm... persönlich geh ich hier nach der Stärke der Raketen, um sicher zu sein, dass meine Tools Mod-kompatibel sind... beispielsweise hat die XTM 0.6 die Raketenwerte etwas verändert (kA, ob es bei 0.7 auch noch so ist, ich nehms einfach mal an)

Außerdem misfällt es mir, immer nach den Schiffstyen zu gehen: Ein M3+, welches ebenfalls als M3 definiert ist, könnte von der Stärke locker als M6 durchgehen, der Split Jaguar Angreifer als M4... Man könnte die Liste so noch fortführen.

Bei der Auswahl der Raketen geh ich also nach der Stärke der Rakete sowie nach aktueller Schild- und Hüllenstärke des feindlichen Schiffes. Leider kann man die Geschwindigkeit eines Raketentyps nicht prüfen, sonst würde ich diese auch noch einfließen lassen... da aber sowieso die meisten Modder die Geschwindigkeiten an die Stärke koppeln, passt das Ganze wieder.

Ansonsten sieht mein Code von der Funktion ähnlich aus (abgesehen von dem Ausweichmanöver, welches OOS entfällt, da es nur IS wirklich greift)

btw: Es wird nicht gewürfelt, es wird scheinbar nur die maximale Hüllenstärke geprüft... Und OOS wird sogar darauf verzichtet, zu prüfen, welche Raketen wirklich installiert sind. Zu allem Überfluss wählen die Schiffe scheinbar niemals schwere Raketen wie beispielsweise Hammerhai oder Feuersturm aus...

Wie auch immer, der findige Scripter bastelt sich seine Routinen sowieso selbst ^^

<Edit> grml... Man kann nur eine Rakete pro OOS-Runde feuern, da der Abschussintervall hier greift... anders, als bei Lasern.
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

X-Freak Cartman wrote:Hmm... persönlich geh ich hier nach der Stärke der Raketen, um sicher zu sein, dass meine Tools Mod-kompatibel sind... beispielsweise hat die XTM 0.6 die Raketenwerte etwas verändert (kA, ob es bei 0.7 auch noch so ist, ich nehms einfach mal an)
Mods sind mir persönlich egal.
X-Freak Cartman wrote:Außerdem misfällt es mir, immer nach den Schiffstyen zu gehen: Ein M3+, welches ebenfalls als M3 definiert ist, könnte von der Stärke locker als M6 durchgehen, der Split Jaguar Angreifer als M4... Man könnte die Liste so noch fortführen.
Du hast nicht ganz unrecht, wenn man die Raketentypen Hammerhai und Feuersturm einbezieht. Besonders im Fall M6/M3+/M3. Aber wenn ein Scripter als stärkste Rakete die Gewittersturm oder Donnerschlag festgelegt hat, ist das eigentlich egal.

Die Klasse M4 bringt tatsächlich einige Schiffe hervor, wo meine Planung nicht ganz passt. Ach, so genau muss das gar nicht sein. ;)
X-Freak Cartman wrote:Ansonsten sieht mein Code von der Funktion ähnlich aus (abgesehen von dem Ausweichmanöver, welches OOS entfällt, da es nur IS wirklich greift)
Auch hier stimme ich dir zu. Das muss wirklich nicht sein, was das Ausweichen OOS betrifft.
X-Freak Cartman wrote:btw: Es wird nicht gewürfelt, es wird scheinbar nur die maximale Hüllenstärke geprüft... Und OOS wird sogar darauf verzichtet, zu prüfen, welche Raketen wirklich installiert sind. Zu allem Überfluss wählen die Schiffe scheinbar niemals schwere Raketen wie beispielsweise Hammerhai oder Feuersturm aus...
Das Gefühl habe ich aber, wenn eine Nova IS mit Moskitos auf einen Falken feuert, aber auch Donnerschlag geladen hat.
X-Freak Cartman wrote:Wie auch immer, der findige Scripter bastelt sich seine Routinen sowieso selbst ^^
Genau, aber man schaut auch gerne über den Tellerrand, oder? ;)

Gruß
Lucike

Return to “X³: Reunion - Scripts und Modding”