[DISKUSSION] Allgemeine S&M-Fragen III

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

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

Post Reply
User avatar
ubuntufreakdragon
Posts: 5189
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Fri, 1. Jun 18, 17:41

der rohwert ist die ladezeit in milisekunden, also die zeit zwischen 2 schüssen.
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD » Fri, 1. Jun 18, 18:17

A = Schaden pro sekunde
B = Schaden pro Geschoss (steht in TBullets, sowohl Hüllen- als auch Schild-)
F = Feuerrate (Geschosse pro Minute, steht in TLasers)
F(s) = Feuerrate (Geschosse pro Sekunde)

F(s) = F / 60

logisch, ne minute hat 60sek

A = F(s) x B

oder:

A = F x B / 60

--------------------------------------

beim balancing setzt du A fest, und musst entsprechend F x B anpassen. mein rat ist, die feuerrate nicht mehr als 4 geschosse pro sek zu setzen, weil vanilla-scripts mehr / "schneller" nicht schießen können.

4 geschosse pro sek = 240 / min ... <-- idealer max. wert in TLasers

ansonsten geschmackssache. beim ändern der feuerrate änderst du gleichzeitig energieverbrauch, da dieser auch pro geschoss in TBullets definiert ist ... ergo diesen noch mit verrechnen
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

User avatar
Aldebaran_Prime
Posts: 1386
Joined: Sat, 20. Feb 10, 17:47
x4

Post by Aldebaran_Prime » Fri, 1. Jun 18, 19:16

Danke für die Rückmeldungen! Speziell, dass eben der Raw-Wert die Zeit in ms zwischen den Schüssen ist.

Ich plane eher, die Schussrate zu reduzieren, da ja bekanntermaßen viele Projektile zu Performance-Einbrüchen führen. Klar muss ich dann den Schaden/Schuss erhöhen - daher brauche ich ja meine Excel-Übersicht.
Zudem muss ich schauen, wie sich die in EMC allgemein verfügbaren Strahlenwaffen am Besten zwischen den Korvetten- und GKS Waffen einordnen.

Was mir noch Performace-Sorgen macht, sind die Flak und Clusterflak. Hier habe ich schon die Effekte reduziert/ausgetauscht, z.B. auf Basis CMOD4. Das hat zwar etwas gebracht, die FPS sinken bei diesen Waffen aber noch stärker als bei allen anderen. Interessanterweise ist die Starbust relativ performace-unkritisch, obwohl sie auch eine Flakwaffe ist.

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Fri, 1. Jun 18, 19:38

@Vorposter

ups, da hab ich mich irgendwo vertan :oops: lag wohl an der Uhrzeit, danek für die korrekturen
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD » Fri, 1. Jun 18, 20:46

is ne verwirrende sache !! :D hab mir selbst öfters den kopf drüber zerbrechen müssen, bevor ichs mir dann korrekt gemerkt hab, muss es zuerst auf papier bringen ... ^^

das mit dem x1000 war interessant bei der umrechnung:

feuerrate F(min) <--> verzugszeit zwischen 2 geschossen (in milisek, interessant fürs scripten, da nur int-werte funzen ...)


verzugszeit (s) = 1 / F(s)

oder:

verzugszeit (ms) = 1000 / F(s)

weil da 1s = 1000ms

oder:

verzugszeit (ms) = 60 x 1000 / F(min)

weil da 1min = 60s


@Aldebaran_Prime

weiß zwar nich was du mit "raw-wert" meinst, die "lifetime" der geschosse hat allerdings nix mit schaden zutun, die is nur (zusammen mit speed) interessant für die reichweite (speed x lifetime)

was clusterflak angeht:
wenn du diese waffe nützlich machen willst, reduzier die streuweiter der bruchteile auf 50m vielleicht (0.05km), indem du deren (speed x lifetime) entsprechend reduzierst. sonst streuen die zu weit und treffen gar nix mehr ... außerdem erhöhe die schadenswerte der bruchteile (erheblich).
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

DerW88
Posts: 1019
Joined: Fri, 28. Mar 14, 20:37
x4

Post by DerW88 » Fri, 1. Jun 18, 21:48

Ich hatte vor einiger Zeit ja mal eine TBullets/TLaser für emc gemacht, wo ich mit den Waffenwerten rumprobiert habe. Unter anderem halt auch die Verringerung der Projektile.
Aldebaran_Prime wrote: Ich plane eher, die Schussrate zu reduzieren, da ja bekanntermaßen viele Projektile zu Performance-Einbrüchen führen. Klar muss ich dann den Schaden/Schuss erhöhen - daher brauche ich ja meine Excel-Übersicht.
Zudem muss ich schauen, wie sich die in EMC allgemein verfügbaren Strahlenwaffen am Besten zwischen den Korvetten- und GKS Waffen einordnen.
Den Schaden/Schuss an zu passen wird bei weitem nicht reichen. Grundlegend gilt dabei allerdings, Halbierte Feuerrate benötigt doppelten Schaden/Schuss. Daran wirst du ja garantiert gedacht haben.
Problematisch wird es bei Waffen mit Effekten.

Strahlenwaffen richten ihren angegebenen Schaden über die Wirkdauer an. Sprich hat die Bullet eine Lifetime von 3 Sec, dann wird der gesamte DMG auch über die 3 sec ausgeteilt. Wenn sich die Lifetime mit der Feuerrate überschreibt, sprich du einen durchgehenden Strahl erhälst, dann wird der DMG gestackt. Deswegen richten auch die Khaak Waffen in Spielerhand weit mehr DMG an als wenn NPC diese benutzen.

DoT (Damage over Time) Waffen richten ihren eigentlichen Schaden und einen DoT an. Der DoT wird dabei aber nicht gestackt. Sprich hast du einen DoT, der 2 sec hält und triffst das Ziel aber 4 mal in den 2 sec, dann richtet die Waffe dennoch nur 1 mal den DoT an. Also 4 mal Grund DMG + 4 sec DoT (2 sec für die Schussdauer + 2 sec Nachlauf)

Flächenwaffen sind richtig böse. Die richten Schaden nach dem getroffenen Volumen des Zieles an. Sprich ein voll getroffenes M3 bekommt bei weitem weniger DMG als ein halb getroffenes M2, da das getroffene Volumen ungleich größer ist. Von welchen Faktoren jetzt aber der Festgelegte und der tatsächliche DMG abhängt weis ich leider auch nicht. Ich könnte mir aber vorstellen, das das entweder mit dem eingestellten Impact Effect oder dem gewählten Model zusammen hängt.

Bei als Flak deklarierten Waffen explodieren die Projektile, wenn sich ein Objekt im Radius Bereich des eingestellten Impact Effektes befindet. Sprich hat der Impact einen Durchmesser von 100m, dann kann das Projektil 50m neben dem Ziel explodieren und richtet vollen Schaden an.
Was mir noch Performace-Sorgen macht, sind die Flak und Clusterflak. Hier habe ich schon die Effekte reduziert/ausgetauscht, z.B. auf Basis CMOD4. Das hat zwar etwas gebracht, die FPS sinken bei diesen Waffen aber noch stärker als bei allen anderen. Interessanterweise ist die Starbust relativ performace-unkritisch, obwohl sie auch eine Flakwaffe ist.
Ich weis grade nicht, wie die CMOD4 Impacts aussehen. Allerdings kann ich mir vorstellen, das die Starburst ähnlich wie in Vanilla eine relativ einfach gehaltene Impact Explosion hat, währenddessen FA und CFA wohl ehr aufwändigere Flammenartigere Explosions Impacts haben. Gegeben falls brennen sie ja vlt auch noch nach, was dann ebenfalls wieder Performence frisst. Ich kann mir gut vorstellen, das das eventuell noch ein Problem sein könnte.
JSDD wrote: weiß zwar nich was du mit "raw-wert" meinst, die "lifetime" der geschosse hat allerdings nix mit schaden zutun, die is nur (zusammen mit speed) interessant für die reichweite (speed x lifetime)
Das stimmt so nicht ganz. Die Lifetime beeinflusst den DPS (Damage per second) der Strahlenwaffen erheblich.

Ich hoffe ich konnte vlt irgendwie weiterhelfen oder den ein oder anderen Gedanken Gang ankurbeln.
Heil dem mächtigen EGOSOFT. ...ääääh Rhonkar.

User avatar
Aldebaran_Prime
Posts: 1386
Joined: Sat, 20. Feb 10, 17:47
x4

Post by Aldebaran_Prime » Fri, 1. Jun 18, 22:15

JSDD wrote:...

@Aldebaran_Prime

weiß zwar nich was du mit "raw-wert" meinst, die "lifetime" der geschosse hat allerdings nix mit schaden zutun,
Das war das Thema meines Post, der hier die aktuelle Diskussion angesstoßen hat. Wenn du im X3Editor2 die TLaser editierst, wird in der Benutzeroberfläche zunächst eine Schussrate in rds/min angegeben. Wenn du da draufklickst kannst Du "show raw value" anklicken -der Wert der dann angezeigt wird, steht auch im Text der TLaser.txt und kann dann in einer Excel-Formel verwendet werden.

- nur um diese Frage ging es mir zunächst.

Dass in TBullet Lifetime, speed, und range zusammenhängen, ist klar, dass Schussrate und Schaden/Treffer zusammenhängen auch.

Die Clusterflak ist in der Tat noch performancelastiger als die normale Flak - eben wegen der Splittergeschosse. Es gibt auch die Möglichkeit die rapid-box -with und -high zu vergrößern und dafür auf die Splittergeschosse ganz zu verzichten - das ist im CMOD4 so gelöst. Ich bin aber noch nicht überzeugt, ob ich so weit gehen möchte.

@W88: Danke für die Zusatzinfos und ja, lass und Deine Waffenmod für EMC4AP gerne auch noch mal im EMC4AP Thema diskutieren, bevor wir hier Ärger bekommen. Ich bereite jetzt erst einmal die Übersicht aller Waffen mit den aktuellen Einstellungen in Excel vor und stelle sie bei uns zur Verfügung.
Für die Schiffsübersicht verwende ich ja die Excel-Liste von Litcube - die kann man leicht um die Laserwerte erweitern, so dass man deine MOD mit den aktuellen Einstellungen vergleichen kann.

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD » Sat, 2. Jun 18, 16:45

yepp, stimmt natürlich, hatte die spezielwaffen vergessen ...

die fragmentzahl der clusterflaks ist auf afaik 5 eingestellt (kannste in TBullets ändern), und die fragmente selbst fragmentieren wieder in 5 sub-fragmente, raus kommen also 5 x 5 = 25 bullets pro schuss. bei nem 8er turret sind das 200 bullets pro schuss. ist ne ziemliche menge! also sie fragmentierung der fragmente selbst ist overkill, kannste rausnehmen via häkchen bei "fragmentation" wegnehmen (bei den fragment-bullets SS_BULLET_FLAK_CLUSTER_FRAG). damit entstehen nur noch 5 fragmente pro schuss (besser wären nur noch 3). wofür die rapid-box steht, weiß ich ehrlich gesagt nicht ... (collider?)
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

User avatar
Aldebaran_Prime
Posts: 1386
Joined: Sat, 20. Feb 10, 17:47
x4

Post by Aldebaran_Prime » Sat, 2. Jun 18, 22:26

So, das meiste habe ich geschafft. Ich habe Litcubes Excel-TShip-Editor um die TBullets, ein paar Zeilen VBA, einige Excel Formeln und eine Pivot-Tabelle erweitert. Basis war das hier: https://forum.egosoft.com/viewtopic.php?t=297773

Die Tship und Laser-Übersicht sieht jetzt so aus und ist prinzipiell für alle Modding-Kollegen geeignet, um eine Übersicht aller Waffen automatisch erzeugen zu lassen:
Image

Dazu die Excel-Datei in den jeweiigen /types/ Ordner legen, sicherstellen, dass alle T....txt Dateien dort auch ungepackt vorliegen und auf der Control Panel Seite den "Import" Knopf drücken.

Wer sich mit Excel etwas auskennt, weiß, dass man in der Pivot-Tabelle nach eigenem Bedarf Sortieren und Filtern kann.

Die aktuelle Version der Excel-Datei könnt Ihr hier downloaden:
https://1drv.ms/x/s%21AleWkrAhnZL_ge86q6XoNaaCZNcUYQ

Was mir jedoch noch fehlt, ist die Umrechung des Raw-Wertes der Bullet-Geschwindigkeit. Z.B. ist die angezeigte Geschwindigkeit beim Impulsstraheln-Emitter 1162 m/s, in der TBullets steht jedoch der Raw-Wert 581000.

Nein, 600000/581000 ergibt leider nicht 1162... 581000/500 ergibt aber 1162, dass scheint auch für die anderen Bullets zu funktionieren - aber warum 500?

Hat jemand eine Idee?

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD » Sun, 3. Jun 18, 00:00

500 "gameunits" = 1 meter

deswegen, weil die engine nur mit integer zahlen umgehen kann und präzision < 1m benötigt wird
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

FritzHugo3
Posts: 4655
Joined: Mon, 6. Sep 04, 17:24
x4

Post by FritzHugo3 » Sat, 8. Sep 18, 23:06

Mal ne gaaanz doofe Frage. Ich weis ja, bei den Vanilla Befehlen wird Nvidium alles andere als bevorzugt behandelt.

Was ich aber nicht ganz verstehe ist

Code: Select all

...$flags = [Find.Nearest] | [Find.Multiple] | 32768
$range = [THIS]-> get scanner range
$warearray = find debris: sector=[SECTOR] resource=null min yield=null flags=$flags refobj=[THIS] num=5 maxdist=$range refpos=null...
Das steht so im orginal Script drinnen. wenn ich jetzt einen Frachter neben Nvidium debris stehen habe, fliegt er von den Debris weg zum Ar**h des Sektors und lässt sich lieber bei den Erz Debris nieder.

Verstehe ich die Zeile denn falsch?

Code: Select all

$warearray = find debris: sector=[SECTOR] resource=null min yield=null flags=$flags refobj=[THIS] num=5 maxdist=$range refpos=null
Ich lese das ganze so, Variablename finde die am nächstgelegendsten Kleinstasteroiden im Sektor xy, ohne spezielle Sorte (also alle Erze, Silizium, Eis und Nividium gleichermaßen ohne etwas zu bevorzugen), ..., ..., Referenz Entfernung zu diesem Schiff, 5 Debris auf einmal, und in Scannerreichweite

Warum aber werden schon jetzt die Nividium Debris ignoriert?
(Also ohne das ein Auschschluss von Nividium definiert wurde) ist das im Hardcode hinterlegt oder wo?
Und warum fliegen die Schiffe irgendwann zu einem entfernteren Debrifeld, obwohl noch in dem gleichen Bereich Debris mit Erzen vorhanden sind (also keine wertlose leere Felsen). Er sucht doch laut Befehlszeile die am naheliegendsten.


(Der gesammte Code ist hier zu finden !ship.cmd.collectrocks.std und !move.collectrocks und nirgends wird Nvidium erwähnt)

Ausserdem ist mir aufgefallen, das die Frachter die Debris in X3 gar nicht mehr berühren zum einsammeln. Mir war so, als hätten die das in X2 noch getan oder täusche ich mich da?


Wenn ich oben statt nach 5, wie das orginalscript nach num=1 bzw. NULL suche und mir das per Logbuch ausgebe, bekomme ich wie gewünscht ein Erz/Silizium... zurück. Aber, wenn ich dann dieses $warearray (mit $warearray) sprengen lasse (destruct), dann verschwinden gleich mehrere Kleinstasteroiden (teilweise auch die nächst größeren, wo drei der ganz kleinen raus kommen). Kann mir das einer Erklären?
Wie bekomme ich nur den einen kleinsten einsammelbaren Asteroiden zur Auswahl in die Suche? (gibt ja die Abfrage, ob das Steinchen einsammelbar ist aber das nützt ja auch nichts, wenn bei destruct gleich ein kleineres Feld abgerissen wird, sattt nur ein einzelnes.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD » Fri, 14. Sep 18, 14:05

die 32768 dort oben sehen zwar komisch aus, aber werden hoffentlich ihren sinn haben (Find.Known ?)

die 5 bedeuten, dass bis zu 5 trümmer gefunden werden ... gib 999999999 ein, und es werden alle trümmer im sektor gefunden (auf die die $flags zutreffen!)

zum einsammeln reicht ein nahes ranfliegen afaik aus

ich seh auch kein code, der explizit nividium ausschließt

deine auffassung des scripts ist soweit richtig

---------------------------------------------------------

sind die nahegelegenen trümmer denn einsammelbar ? (d.h. klein genug)

hardcode sollte da nix sein ...

wenn du es testen willst, dann lass alle trümmer finden (5 ersetzen durch 9999) im separaten script (!!!) und setz bei resource = nividium ein (unter ware -> minerals -> ... suchen, denn es gibt afaik verwirrenderweise 2 verschiedene sorten im game)

dann machst du:

$X = size of array $warearray
write to logbook $X
write to logbook " nividium truemmer gefunden"

guck nach wieviele das game findet ... bei 0 stimmt etwas nicht, falls es tatsächlich nividium gibt ...


nochwas: [SECTOR] ist der sektor des objekts, auf welchem das script läuft, d.h. z.b. das schiff mit dem kommando "sammle astros ein ...". lässt du das script via "R --> enter --> enter" laufen, dann wähl nach "R ..." nicht "null" aus (via enter), sondern DEIN spielerschiff, so sollte es klappen ...
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

FritzHugo3
Posts: 4655
Joined: Mon, 6. Sep 04, 17:24
x4

Post by FritzHugo3 » Fri, 14. Sep 18, 15:29

Danke dir JSDD für dein Antworten, habe vergessen die Frage zu entfernen, meine Scripterweiterung ist bereits veröffentlicht. Scheinbar ist es nicht möglich einen einzelnen Kleinstasteroiden zu erfassen und diesen mit destruct zu sprengen. Es wird immer das ganze Yield mit entfernt, egal ob man nach 1 oder 5 sucht. Rechnerisch macht es im Durchschnitt zwar keinen großen Unterschied mehr, aber dennoch unschön. Was solls, ist, wies ist und funzt so grins.
( https://forum.egosoft.com/viewtopic.php?t=400081 )
Last edited by FritzHugo3 on Sun, 16. Sep 18, 00:12, edited 1 time in total.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD » Sat, 15. Sep 18, 09:04

weiß nicht, was du vor hast, aber destruct nutzt man nicht fürs einsammeln ...

mit:

Code: Select all

if $truemmer -> has collectible rocks
... checkt man, ob die trümmer sammelbar sind
wenn nicht, dann könnt man vesuchen, via:

Code: Select all

$truemmer -> destruct: show no explosion= [FALSE]
... die trümmer zu zerkleinern, sollte das auch nicht gehen, dann halt via MBS laser abfeuern
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

FritzHugo3
Posts: 4655
Joined: Mon, 6. Sep 04, 17:24
x4

Post by FritzHugo3 » Sat, 15. Sep 18, 12:09

Transporter + Debris = keine Kaputten Schiffe mehr. Da das Schiff die nun nicht mehr persönlich einsammelt, sondern direkt in den Frachtraum "gebeamt" werden, müssen die Debris mit destruct zerstört werden. Und das geht, wie gesagt wohl scheinbar leider nicht einzeln, nur per yield.

([TRUE], sonst ist es bissle laut ;-) ).

Aber wie gesagt, das Script ist bereits veröffentlicht und ich bin lediglich noch am Balancen der Wartezeit zwischen den einzelnen "Beamvorgängen", das soll ja kein Cheat werden. Kannst du aber auf der Seite nachlesen, wenn du magst.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Post by JSDD » Sat, 15. Sep 18, 15:50

TRUE = objekt wird rückstandslos vernichtet
FALSE = objekt wird nur kaputt gemacht

FritzHugo3 wrote:Transporter + Debris = keine Kaputten Schiffe mehr. Da das Schiff die nun nicht mehr persönlich einsammelt, sondern direkt in den Frachtraum "gebeamt" werden, müssen die Debris mit destruct zerstört werden.
warum? geht der befehl nicht:

Code: Select all

$gesammelte.menge = [THIS] -> catch ware object $truemmer
IS wirds vanilla wie oben gemacht, OOS wird nur die yield-zahl des trümmers in den frachtraum transferiert, originaler trümmer bleibt unbeführt ...


das vanilla-script sieht so aus:

Code: Select all

Script !move.collectrocks
Version: 1
for Script Engine Version: 43
Description
Let ship collect debris flying around in an active sector
Arguments

    1: wareobj , Value , 'GALOBJ of debris'

Source Text

001 @ = wait randomly from 100 to 200 ms
002   skip if $wareobj -> exists
003   |return null
004   skip if $wareobj -> is of class Debris
005   |return null
006   
007   * check if debris mineral typ is loadable
008   
009   $ware = $wareobj -> get resource waretype of asteroid
010   
011   skip if [THIS] -> can transport ware $ware
012   |return null
013   $free = [THIS] -> get free amount of ware $ware in cargo bay
014   skip if $free
015   |return null
016   
017   * mining hack to speed up the process
018   if not [THIS] -> is in active sector
019   |$mineral.yield = $wareobj -> get asteroid yield
020   |$unit.amount = $wareobj -> get debris count
021   |skip if $unit.amount
022   ||inc $unit.amount = 
023   |$sector = $wareobj -> get sector
024   |$x = $wareobj -> get x position
025   |$y = $wareobj -> get y position
026   |$z = $wareobj -> get z position
027 @ |= [THIS] -> call script '!move.movetoposition' :  sector=$sector  position x=$x  position y=$y  position z=$z  precision=2500
028   |if not [THIS] -> is in active sector
029   ||while $mineral.yield > 0
030   |||dec $mineral.yield = 
031   |||$ret =  = random value from 25000 to 35000 - 1
032 @ |||= [THIS] -> move around $ret ms
033 @ |||= [THIS] -> move to position: x=$x y=$y z=$z with precision 1500 m
034 @ |||= wait 130 ms
035   |||skip if [THIS] -> get free amount of ware $ware in cargo bay
036   ||||break
037   |||skip if not [THIS] -> is in active sector
038   ||||break
039   |||= [THIS] -> add $unit.amount units of $ware
040   ||end
041   |end
042   |return null
043   end
044   
045   * normal collecting routine
046   while 1
047   |skip if $wareobj -> exists
048   ||return null
049   |
050   |skip if $wareobj -> has collectible rocks
051   ||return null
052   |
053   |$sector = $wareobj -> get sector
054   |if $sector != [ENVIRONMENT]
055 @ ||= [THIS] -> call script '!move.movetosector' :  sector=$sector
056 @ ||= wait randomly from 250 to 500 ms
057   ||continue
058   |end
059   |if $ret == FLRET_FIREFREE
060   ||if $wareobj -> has collectible rocks
061   |||$catchedamount = [THIS] -> catch ware object $wareobj
062   |||return $catchedamount
063   ||end
064   ||$ret = FLRET_TIMEOUT
065 @ ||= wait randomly from 100 to 200 ms
066   ||continue
067   |end
068   |
069 @ |$ret = [THIS] -> move to ware object $wareobj for collecting: timeout=60000 ms
070   |if $ret != FLRET_FIREFREE
071   ||skip if $ret == FLRET_INTERRUPTED OR $ret == FLRET_TIMEOUT
072   |||return null
073 @ ||= wait randomly from 100 to 200 ms
074   |end
075   end
076   return null
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

FritzHugo3
Posts: 4655
Joined: Mon, 6. Sep 04, 17:24
x4

Post by FritzHugo3 » Sun, 16. Sep 18, 00:08

Wer sagt denn das der Befehl

Code: Select all

$gesammelte.menge = [THIS] -> catch ware object $truemmer
nicht geht?
Das Schiff muss dazu aber heran fliegen und das ist genau, was ich mit einem installierten Transporter nicht möchte, weil die Schiffe dann gegen die Asteroiden fliegen und zerstört werden.

Und das funktioniert auch wunderbar, wie ich es jetzt habe. wie gesagt, das Thema ist schon erledigt.

Im übrigen habe ich lediglich die vanilla Orginaldatei erweitert. Steht alles auf der Seite, wenn du meinem Link folgst. Es gibt kein Problem mehr (die auf einfachem Wege lösbar wären), das Script funktioniert.
(Wie ich es im meinem zweiten Post bereits geschrieben hatte)

So spare ich mir eine Textdatei, es braucht kein neues Comand, kein Menü oder sonst was. Was ganz schlichtes, was funktioniert. Wer das erweitern möchte, falls ihm was fehlt, darf das gerne machen.

Trotzdem danke für deine Bemühung.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

Bigeagle
Posts: 288
Joined: Mon, 15. Jan 07, 21:20
xr

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by Bigeagle » Mon, 1. Oct 18, 18:15

Ich bin etwas unsicher was die kompatibilität von TC scripts in AP angeht.

1. Wird der TC scriptordner in AP überhaupt genutzt?
2. Wenn ich TC scripts in den addon\scripts ordner schiebe stimmt doch die versionsnummer nicht. muss ich die ändern, oder akzeptiert AP auch TC scripts?
3. wie sieht die ladereihenfolge bei mods aus? TC 01-xx.cat/dat und danach addon\01-xx.cat/dat?
4. gibt es noch was wichtiges dazu?
^^_^^

FritzHugo3
Posts: 4655
Joined: Mon, 6. Sep 04, 17:24
x4

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by FritzHugo3 » Mon, 1. Oct 18, 18:44

Zu 1 und 2
Soweit ich weis, kannst du die Scripte von X2, X3, X3:TC in den Ordner X3:AP-Addon (Scripte, t) kopieren.
(es wurden nur einige wenige Befehlszeilen verändert, die in AP etwas anders heißen)
(Umgekehrt ist aber nicht alles Abwärtskompatiebel, Scripte für AP werden größtenteils nicht in X2 funktionieren)

Savegameordner Sichern, vanilla Scriptordner sichern und dann einfach ausprobieren oder im einzelnen Thread der Erweiterung nachfragen, wenn du ganz sicher gehen möchtest.

Zu 3, habe ich nie benutzt diese Variante der Modifikation.
Bei ganzen Modpacks, würde ich einfach nachfragen, wenn nichts in den Installationsanweisungen steht.

4. Mit Backups kann dir ja nicht viel passieren
(Bei Steam vielleicht die Savegamecloud aus machen, damit da nichts durcheinander kommen kann. Hab ich bei mir grundsätzlich aus bei allen Spielen, da ich mit nur einem PC keinen Mehrnutzen sehe).

Schönen Tag dir.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

Gamefreak
Posts: 360
Joined: Sat, 7. Nov 09, 12:19

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by Gamefreak » Sun, 28. Oct 18, 13:08

Seit sehr langer Zeit spiele ich mal wieder X3TC. Liegt auch daran, dass ich mir per GOG (mag kein Steam) X3TC+AP geholt habe.

Ich will mir ein Skript zusammen bauen, dass einer Schiffswerft alle Stationen einer Rasse hinzufügt. Bei den Schiffen habe ich eine entsprechende Vorlage gefunden die funktioniert, bei den Stationen allerdings nicht und die Schiffsvorlage für die Stationen zu modifizeren hat auch nichts gebracht :evil: . Um ehrlich zu sein, bin auch nicht gut darin zu scripten :roll: .

Ist es überhaupt möglich? Gibt es vielleicht schon ein Skript, dass genau dies macht?

Post Reply

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”