[SCR] [v1.7.3] [27.04.2012] MK3 Optimierung Reloaded

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

MichaRose
Posts: 328
Joined: Sat, 28. Feb 04, 19:25
x3

Post by MichaRose »

Referenz Objekt (?), also das Objekt, von dem aus die Suche gestartet werden soll und das ist der Händler selbst, also [THIS].

Das hat einen Einfluß auf die Flags [Find.Enemy] usw, denn ein Script an sich hat ja keine Feinde, oder Freunde.

Bei 'refpos' kannst Du noch ein Positionsarray des Objektes angeben, ist aber nur nötig, wenn 'refobj' nicht angegeben wurde und Rasse/freund/feind egal ist, also nur die Distanz von einer Sektor Position zum Ziel eine Rolle spielt.

Wer in einem Script Schiffe oder Stationen sucht, sollte mit den Einstellungen/Flags etwas experimentieren. Denn dadurch läßt sich eine Menge an Scriptcode einsparen!
Gruß,
Michael
User avatar
-Ford-
Posts: 2064
Joined: Wed, 18. Jan 06, 18:40
x4

Post by -Ford- »

Soeben auf 1.9 geupdated ... Viel Spaß damit !

Gruß
Ford
Ponyfabulous
gnasirator
Posts: 1114
Joined: Mon, 13. Dec 04, 16:15
x3tc

Post by gnasirator »

ah super danke für die info.

und danke fürs link updaten. damit wäre alles getan.

viel spaß mit dem script, ich geh jetz ins kino, danach spiel ich mal ne runde damit :)
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

gnasirator wrote:

Code: Select all

217   * Gnasirator-Edit
218   * Falls nicht in einer sicheren Station, fliege dorthin, anstelle hier zu warten.
219     $dockedClass = [DOCKEDAT] -> get object class
220     if ! [DOCKEDAT] OR ( $dockedClass != Trade Dock AND $dockedClass != Equipment Dock )
221      $fuel.onboard = [THIS] -> get true amount of ware Energiezellen in cargo bay
222      $fuel.range = ( $fuel.onboard - $fuel.reserve ) / $Fuelforonesektor
223      skip if $fuel.range >= 0
224       $fuel.range = 0
225      
226      $flags = [Find.Nearest] | [Find.Friend] | [Find.Neutral]
227      $safeStation =  find station in galaxy: startsector=[SECTOR] class or type=Trade Dock race=null flags=$flags refobj=[THIS] serial=null max.jumps=$fuel.range
228      
229      skip if $safeStation
230       $safeStation =  find station in galaxy: startsector=[SECTOR] class or type=Equipment Dock race=null flags=$flags refobj=[THIS] serial=null max.jumps=$fuel.range
231      
232      skip if $safeStation
233       goto label stay
234      
235      [THIS] -> set command: COMMAND_DOCKAT  target=$safeStation target2=null par1=null par2=null
236      [THIS] -> set destination to $safeStation
237      [THIS] -> set local variable: name='destination.lock' value=null
238 @    = [THIS] -> call script 'plugin.autotrade.jumptostation' :  Targetstation=$safeStation
239     end
240     
241   stay:
242     [THIS] -> set command: COMMAND_STAY  target=[DOCKEDAT] target2=null par1=null par2=null
243     [THIS] -> set destination to null
244     [THIS] -> set local variable: name='destination.lock' value=null
Das geht noch kürzer, aber Du wächst. ;)

Code: Select all

001   if not [ENVIRONMENT] -> is of class Dock
002    $Flags = [Find.Friend] | [Find.Neutral] | [Find.Nearest]
003    $Station =  find station: sector=[SECTOR] class or type=Dock race=null flags=$Flags refobj=[THIS] maxdist=null maxnum=null refpos=null
004    if $Station -> exists
005     [THIS] -> set command: COMMAND_DOCKAT  target=$Station target2=null par1=null par2=null
006     [THIS] -> set destination to $Station
007 @   = [THIS] -> call script '!move.movetostation' :  station=$Station
008    end
009   end
010   return null
Ich würde einen Zähler einbauen. Dieser Zähler geht nach oben, wenn der Händler warten musste. Ist der Zähler größer als ~5, dann fliegt der Händler zu einem Dock. Der Zähler wird bei jedem Handelsflug zurück gesetzt.

Gruß
Lucike
Image
MichaRose
Posts: 328
Joined: Sat, 28. Feb 04, 19:25
x3

Post by MichaRose »

Lucike wrote:Das geht noch kürzer, aber Du wächst. ;)
Allerdings würde, bei deiner kurzen Version, der Händler auch im aktuellen Sektor bleiben, wenn es in diesem Sektor kein Dock gibt (Handelsstation, Ausrüstungsdock und Schiffswerft). Das könnte den Sinn dieser Modifikation Sinnlos werden lassen.

Er sollte weningstens versuchen, auch in einem Nachbarsektor, einen sicheren Hafen zu finden.

Code: Select all

003      $Station =  find station in galaxy: startsector=[SECTOR] class or type=Dock race=null flags=$Flags refobj=[THIS] serial=null max.jumps=1
Gruß,
Michael
gnasirator
Posts: 1114
Joined: Mon, 13. Dec 04, 16:15
x3tc

Post by gnasirator »

die frage ist da doch, wie genau definiert sich die klasse "Dock" ?

sind das alle möglichkeiten, stationen, schiffe, an denen der händler andocken kann? dann wäre diese bedingung nämlich nicht korrekt.

er soll ja schließlich auch zu ner HS oder ner AS fliegen, wenn er z.b. in ner fabrik ist. eigentlich immer, wenn er nicht gerade schon da ist (auch im weltall!)

und ich dachte mir halt mal, dass ein universumhändler sich bei seiner suche nach einer sicheren station zum warten nicht von so lächerlichkeiten, wie einer reichweitenbegrenzung des programmierers ausbremsen lassen sollte ;)

daher gab ich ihm die freiheit in jeder beliebigen reichweite zu suchen, solange sein spritvorrat das mitmacht.

und wegen dem zähler:
der flug zum dock dauert ja grob geschätzt ca. so lange, wie eine warteperiode. insofern habe ich es als ersatz angesehen. warum warten, wenn er was sinnvolles tun kann?
sobald er dann in seinem sicheren hafen ist, kann der händler warten, soviel er will. und er sollte doch besser direkt in sicherheit fliegen und dann weiter warten. die paar Credits für den sprit wird man eh nicht merken. dafür arbeiten die jungs zu gut und verdienen zu viel :)

also so direkt fällt mir dann jetz nix ein, was ich verkürzen könnte. AUßER, die sache mit der Klasse "Dock" ist anders, als ich vermutet habe.

klärt mich auf!
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

@MichaRose

Der "Finde.Stations"-Befehl ist mir hierbei gar nicht wichtig gewesen, sondern eine weitere Zustammenstellung der Befehle. ;)

@gnasirator

Dock = Handelsstationen, Ausrüstungsdocks und Piratenstationen. Auch die Spezialstationen, wie z.B. das Kommunikationszentrum.

Der Zähler war nur eine spielerische Idee meinerseits. Ich dachte mir warum muss der Händler sofort nach seinem Handelsgeschäft ein Dock anlaufen? Warum nicht erst nach dem 5 Durchlauf ohne Handelsmöglichkeit. Nur eine Idee. Nicht mehr und nicht weniger. ;)

Gruß
Lucike
Image
MichaRose
Posts: 328
Joined: Sat, 28. Feb 04, 19:25
x3

Post by MichaRose »

gnasirator wrote:die frage ist da doch, wie genau definiert sich die klasse "Dock" ?

sind das alle möglichkeiten, stationen, schiffe, an denen der händler andocken kann? dann wäre diese bedingung nämlich nicht korrekt.
NeNe, Dock ist ein Oberbegriff für Schiffswerften, Ausrüstungsdocks und Handelsstationen. Deswegen habe ich das in meinem letzten Post extra nochmal in Klammern geschrieben. Es wird dann eines von den dreien ausgewählt. Mit Andockplätzen von Stationen oder Schiffen hat das nichts zu tun!
gnasirator wrote:er soll ja schließlich auch zu ner HS oder ner AS fliegen, wenn er z.b. in ner fabrik ist. eigentlich immer, wenn er nicht gerade schon da ist (auch im weltall!)
Wird er auch mit Lucike´s Dockversion machen!
Gruß,
Michael
MichaRose
Posts: 328
Joined: Sat, 28. Feb 04, 19:25
x3

Post by MichaRose »

@Lucike
Ich dachte mir schon, das Du eher im Sinn hattest zu zeigen, wie man mit nur halb soviel Code, das selbe (oder auch mehr) erreichen kann.

Ich wollte auch nur zu späteren Fragen, bezüglich der Stationsauswahl, vorbeugend mitwirken. :wink:

(und ein bischen Klugsch...) :D
Gruß,
Michael
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

MichaRose wrote:Ich wollte auch nur zu späteren Fragen, bezüglich der Stationsauswahl, vorbeugend mitwirken. :wink:

(und ein bischen Klugsch...) :D
Dem kann ich nicht widersprechen. :)

Gruß
Lucike
Image
gnasirator
Posts: 1114
Joined: Mon, 13. Dec 04, 16:15
x3tc

Post by gnasirator »

gut gut.

sprich ich kann das script auf Dock umbauen. kein problem :)
mir ist gestern abend vorm einschlafen eh noch ne idee gekommen. und zwar will ich die mitgeführte EZ-Tankkapazität an die laderaumgröße anpassen.

bisher fliegt ein händler nämlich immer mit reserven für bis zu 3 kompletten handelsflügen durch die gegend. das sind bei stufe 25 fast 1000 EZ. bei nem kleineren schiff ist das ne menge.

-> schiffe bis zu einer gesamt-laderaumgröße von 3500 Einheiten werden künftig nur noch reserven für einen kompletten flug mitführen (da sie ja eh quasi nie geschäfte auf maximalreichweite ausführen, reicht das ebenfalls noch dicke).

-> schiffe bis 7000 Einheiten werden 2 Runden Reserve haben (das sollte so bis max ~600 EZ gehen)

-> Schiffe darüber werden wie jetzt auch 3 Runden Reserve haben.
Irgendwo muss man ja protzen, wenn man sich schon so ein dickes schiff kauft :D

da ich gleich aber arbeiten muss, werde ich das erst heute nachmittag umsetzen.
genauso wie den eröffnungs-thread auf seite 1, welchen ich dann mal aufräumen werde.
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

gnasirator wrote:da ich gleich aber arbeiten muss, werde ich das erst heute nachmittag umsetzen.
genauso wie den eröffnungs-thread auf seite 1, welchen ich dann mal aufräumen werde.
Die Idee ist gut, allerdings bitte nicht mehr so viele Änderungen. Wir liegen eng im Zeitplan. Jede Änderung muss ausgiebig getestet werden. Wollen wir erst mal eine "Deadline" festlegen? Wir würd' sagen der jetzige Stand ist Stand der Dinge. Nach dem Bonuspaket werden noch viele kleinere Updates und Upgrades folgen. Darunter natürlich auch noch deine Optimierungen.

Gruß
Lucike
Image
gnasirator
Posts: 1114
Joined: Mon, 13. Dec 04, 16:15
x3tc

Post by gnasirator »

gut, der jetzige Stand der Dinge -> 1.1 :D

habe doch noch mal eben das alles umgesetzt. war weniger arbeit als gedacht :D


-> ab jetzt bin ich zufrieden und mache keine updates mehr, außer bei groben fehlern.

so jetz muss ich aber wirklich los :D
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

Mensch, was ein fleißiges Bienchen. :D

Was wir jetzt noch brauchen ist eine klare Änderungsliste. Wie etwa:

- Sprungenergiehaushalt optimiert
- Längeres Warten ohne Handelsmöglichkeit jetzt in Docks (AD, HS, PS und SW)
- Kommandoanzeige überarbeitet
- usw...

Jetzt aber erst mal "hophop" zur Arbeit. :D

Gruß
Lucike
Image
User avatar
-Ford-
Posts: 2064
Joined: Wed, 18. Jan 06, 18:40
x4

Post by -Ford- »

Mein Link ist jetzt auf Version 1.10

Gruß
Ford
Ponyfabulous
gnasirator
Posts: 1114
Joined: Mon, 13. Dec 04, 16:15
x3tc

Post by gnasirator »

jepjep ich weiß.

mein seite 1 post ist "etwas" unübersichtlich geworden ;)

sobald ich - evtl. heute abend noch - die lust dazu finde, werde ich den mal aufräumen!

das problem ist: über die zeit hab ich eh einiges vergessen, was ich da so an details verändert habe.

habe zwar noch meine markierungen drin, die sind aber auch nachträglich erst eingefügt worden. hoffentlich überseh ich kein feature :D

edit: so das wars. den seite 1 post werde ich auch als readme dazu packen. dann ist alles komplett.
@lt. ford: könntest du deinen link noch einmal mit der jetzigen version 1.1 updaten? habe jetzt eine gescheite readme in die rar mit reingepackt.

außerdem kannst du als text jetzt meinen aktualisierten nehmen. damit sollte dann alles geklärt sein.
User avatar
ThorOfTerra
Posts: 83
Joined: Fri, 18. Aug 06, 21:36
x4

Post by ThorOfTerra »

Hi,

ich habe mal die Änderung wie beschrieben installiert. Danach hatten meine Uni-Händler keine Punkte für Sektor/Uni-Handel mehr in der Handel Konsole, so als ob keine Handelssoftware 3 installiert währe. Nachdem die org. Dateien wieder installiert wurden, geht es wieder.

Gruß
Thor
gnasirator
Posts: 1114
Joined: Mon, 13. Dec 04, 16:15
x3tc

Post by gnasirator »

huch, das verwundert mich jetzt doch.

an den befehlszuordnungen an sich hab ich nämlich garnichts geändert.

haste das auch schon mal bei nem neuen spiel probiert? und/oder deine händler vorher auf befehle -> kein gestellt?
MichaRose
Posts: 328
Joined: Sat, 28. Feb 04, 19:25
x3

Post by MichaRose »

@ThorOfTerra
Hast Du den Script Editor aktiviert? Denn bei den modifizierten Script handelt es sich nicht um ein signiertes. Noch nicht!
Gruß,
Michael
gnasirator
Posts: 1114
Joined: Mon, 13. Dec 04, 16:15
x3tc

Post by gnasirator »

ooh ja, daran wirds liegen, sitmmt :)

gib mal als deinen pilotennamen "Thereshallbewings" ein <- Großschreibung beachten.

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