[DISKUSSION] Allgemeine S&M-Fragen

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

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

User avatar
Saetan
Posts: 3223
Joined: Wed, 1. Feb 06, 19:26
x4

Post by Saetan »

dFalcon wrote:Gibt es eine Liste, in der die maintypes der Waren(klasse) und die dazugehörigen subtypes (die eigentliche Ware) aufgelistet sind für X³ TC?
Ich konnte bisher nichts finden ...
Liste der Main- und Subtypen (Teil 1)
Liste der Main- und Subtypen (Teil 2)

... lässt sich für X³:TC weitgehend übertragen.
Icetrack
Posts: 170
Joined: Tue, 1. May 07, 12:32
x4

Post by Icetrack »

@ Saetan: Danke, du glaubst garnicht, wie hilfreich das ist! :)

@ all:

Gibt es die Möglichkeit, wenn ich verschiedene Sektoren in einen Array eingetragen habe, zu überprüfen ob ein beliebiger Sektor schon in dem Array drin ist, damit er dann nicht nochmal per "append to array" hinzugefügt wird.

Ich habs mit "find value in array" versucht, aber das hat nicht geklappt ... Das ganze passiert in einem Loop und die Sektoren werden per Zufall gewählt und in den Array geschrieben. Der Nachteil ist, dass sie sich dann eben manchmal wiederholen.

Ich habe leider keine Möglichkeit gefunden z.B. alle Argon Sektoren nicht zufällig sondern faktisch alle in den Array einzutragen ...


Edit:
So hab ichs versucht:

Code: Select all

111   $sector.array =  array alloc: size=0
112   
113   $count0 = 0
114   while $count0 < 10
115   |inc $count0 = 
116   repeat1:
117   |$random.sec1 =  find a random sector: startsector=Argon Prime, jumps=120, owner=Argonen, security level=0
118   |
119   |$rscheck =  find $random.sec1 in array: $sector.array
120   |$indexnum =  get index of $random.sec1 in array $sector.array offset=-1 + 1
121   |if $rscheck == [TRUE]
122   ||remove element from array $sector.array at index $indexnum
123   ||goto label repeat1
124   |end
125   |append $random.sec1 to array $sector.array
126   end
127   
128   
129   write to player logbook $sector.array
Last edited by Icetrack on Thu, 21. May 09, 16:22, edited 2 times in total.
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

wenn du alle Argonen-Sektoren willst würde ich es so machen:

$Sec.arr = array alloc: size = 0
$X = get max Sectors in X direction
while $X
| dec $X
| $Y = get max Sectors in Y direction
| while $Y
| | dec $Y
| | $Sec = get Sctor from universe index: x=$X y=$Y
| | $Sec.owner = $Sec -> get owner Race
| | if $Sec.owner == Argonen
| | | append $Sec into array $Sec.arr
| | end
| end
end


dein Versuch mit den zufälligen Sektoren kostet für deinen zweck, alle Sektoren einer Rasse als Array zu erhalten imo zu viel Leistung...


PS normalerweise gehört in meinem Code noch ein if $Sec -> exists-check rein, aber wenn man nicht gerade mit Unbekannten besitzern (bzw. null als Besitzer) arbeitet kann man die Prüfung iirc weg lassen, weil das bereits durch die Besitzerrasse des Sektors mit erledigt wird..
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 ;)
Icetrack
Posts: 170
Joined: Tue, 1. May 07, 12:32
x4

Post by Icetrack »

Um auf deinen Weg zu kommen, wie man die Sektoren bekommen kann, müsste ich mehr von der Materie verstehen. :oops: Ich habs mit ner Lösung auf Basis meiner Unwissenheit versucht. :P Ich habe heute auch zum ersten mal was mit arrays gemacht.

Danke für den Code, ich werde es dann damit machen! Was macht eigentlich das "dec" ist das das Gegenteil von "inc"?
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

dFalcon wrote:Danke für den Code, ich werde es dann damit machen! Was macht eigentlich das "dec" ist das das Gegenteil von "inc"?
Genau. Und das ist es, was die coolen Kids benutzen.
Hat Vorteile, abgesehen von der offensichtlichen Einsparung 1 Zeile.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
User avatar
Saetan
Posts: 3223
Joined: Wed, 1. Feb 06, 19:26
x4

Post by Saetan »

inc == increase == Zunahme
dec == decrease == Abnahme

... also ja, "dec" ist das Gegenteil von "inc"
Icetrack
Posts: 170
Joined: Tue, 1. May 07, 12:32
x4

Post by Icetrack »

Dann danke ich erneut und werde mich weiter ins Script stürzen ... ich glaube ich werde jetzt auch bei U.D.D.S. noch einiges zu optimieren haben. ;)
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

An die Modding Experten unter euch:

Ist es erstmal generell möglich, eine Waffe ins Spiel einzufügen, deren Projektil sich kugelformig vom Spielerschiff ausgehend ausbreitet.
Wenn ja, wie?

Meine Vorstellung wäre folgende:

Wenn man sich z.B. den Body der SWG anschaut, könnte ich mir vorstellen, dass es analog auch mit einer Kugel funktionieren könnte.

Jetzt stellen sich aber einige Fragen.
Wie würde man z.B. dei Ausbreitung hinbekommen oder welche Einträge in den jeweiligen T-Files muss man vornehmen?


Wäre für eine kleine Hilfe sehr dankbar.
MfG,
ScRaT
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

es hat nix mit dem Body zu tun, wie sich eine Waffe ausbreitet... die eigenschaft des SWG zu streuen ist vielmehr ein Flag in der TBullets (das man übrigens auch anderen Lasern wie dem KE geben kann -> Augenkrebs :shock: )

sag mal, was genau dein Ziel ist denn ich hab das gefühl dass man das per Script besser realisieren kann..
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
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Es soll eine Art EMP-Schockwelle werden, die vom Spielerschiff abgegeben wird und nur die Schilde der umliegenden Schiffe erheblich senkt.
Man könnte es auch Disruptor-Bombe nennen.

Mit einem Skript ginge das sicherlich, nur wäre ein richtiger Effekt, bei dem man die Schockwelle wirklich sieht, eben schöner.

Ist da was zu machen?

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

Post by UniTrader »

Ich würde für sowas einfach ein zusätzliches Spezialobjekt ins Spiel einfügen (eine expandierende Kugel mit dem EMP-effekt), welche beim start des Scripts erstellt wird (auf der Position des Schiffes) und bei Scriptende wieder zerstört wird.. und die ganze geschichte mit dem verursachen des Schildschadens usw.. dem Script überlassen..

Das Script stelle ich mir vom Aufbau so ungefähr vor:

»nötige Prüfungen, ob EMP überhaupt verwendet werden kann
EMP-Objekt erstellen
Alle Schiffe im Umkreis von 100m finden und 100MJ Schildschaden an diesen machen
100 ms warten
Alle Schiffe im Umkreis von 200m finden und 100MJ Schildschaden an diesen machen
100 ms warten
Alle Schiffe im Umkreis von 300m finden und 100MJ Schildschaden an diesen machen
100 ms warten
Alle Schiffe im Umkreis von 400m finden und 100MJ Schildschaden an diesen machen
100 ms warten
Alle Schiffe im Umkreis von 500m finden und 100MJ Schildschaden an diesen machen
usw..
und zum schluss das emp-Objekt zerstören


mit dieser Methode sind auch keine seperaten Schadenswerte für jede Entfernung nötig, da der Schaden für Schiffe, die sich näher am auslösenden Schiff befinden, mehrmals dazugerechnet wird.. (nach obigem Beispiel hätte ein Schiff, dass sich im Umkreis von 100 m befindet insgesamt 500MJ schaden erlitten), aber man kann sie noch dazu nehmen wenn man das ganze extremer wirken lassen will ^^
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
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Ah, okay.
mit dieser Methode sind auch keine seperaten Schadenswerte für jede Entfernung nötig, da der Schaden für Schiffe, die sich näher am auslösenden Schiff befinden, mehrmals dazugerechnet wird..
Hatte ich gar nicht vor. Ich wollte eher, dass jedes Schiff nur einmal getroffen wird, da es sich ja um eine einzige Welle handelt und nicht um eine Abfolge.

Aber wenn ich es über ein Spezialobjekt lösen würde, welchen Flag müsste ich da verändern? Ich habe mit dem TXT Editor von doubleshadow bei den Spezialobjekten so etwas nicht gefunden.
Gehe ich denn richtig in der Annahme, dass bei den TBullets der Bullet Flag 8 den gewünschten Effekt liefert?

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

Post by UniTrader »

Da hast du mich falsch verstanden: mein voschlag was das ganze NICHT als Waffe zu realisieren sondern allein per Script - und für den visuellen Effekt wird halt ein Spezialobjekt erstellt ;)
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
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Weder das Abfeuern eines Lasers noch ein Bullet läßt sich akkurat erfassen.
Gut geraten zählt nicht.

Eine bullet kann doch eine Animation sein, richtig?
Diese MAM drehen sich im Flug also bewegt sich da irgendwas.

Animation kann aber alles sein, was sich der Modder vorstellen kann, also auch eine sich ausdehnende Blase.
Oder ein Geschoß, daß irrsinnig schnell auf einem Spiralkurs nach außen flitzt.
Oder etwas, das aussieht wie ein Frosch in einem Mixer mit offenem Deckel.
(natürlich kein richtiger Frosch - wir sind hier alle kinderfeundliche Crack- oder Alkoholdealer und Waffenschieber)
Oder SWG, die sich drehen. 360° pure Feindseligkeit.

Mit einem Script ist die Wirkung natürlich kinderleicht hinzukriegen.
Der Effekt ist schwer. Vielleicht kann man mit Sonnen arbeiten. Viele Sonnen. Wenns realistisch sein soll wird auch das Spielerschiff gleich mit gegrillt.
Have a nice death!
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Ich habe mich unklar ausgedrückt.

Dieses Spezialobjekt muss sich ja auch irgendwie ausdehnen. Über welchen Flag kann ich das machen (bei der TBullets ist das vermutlich der Bullet Flag = 8 )?

MfG,
ScRaT
Icetrack
Posts: 170
Joined: Tue, 1. May 07, 12:32
x4

Post by Icetrack »

Ich glaube Gazz wollte darauf hinaus, dass du in einem 3D Programm eine Animation erstellts, in der sich eine Kugel soweit ausdehnt, wie du willst, dass die Welle reicht, wobei die Welle dann eine sich ausdehnende, komplette Kugel wäre. Dabei musst du genau Texturen machen, sonst wirds unscharf, wäre aber auch der Fall, wenn es tatsächlich so ein Flag gibt, das für die Vergößerung des Projektils zuständig ist.
Die letzten Bullets die ich gemacht habe, waren stink normale ... das ist sehrviel einfacher ...

Wenn ich das vorhätte, würde ich mir mal ansehen, wie die Entwickler die Wellen gemacht haben, die man sieht, wenn ein großes Schiff zerstört wird. Zum einen kannst du dann schauen, wie sie das gemacht haben, dass die Welle zum Ende hin transparenter wird und zum anderen kannst du Schlüsse daraus ziehen, wie du die Animation und die Textur insgesamt umsetzen kannst.

Danach könnte man es ja wie von UniTrader vorgeschalgen an ein Script anbinden, oder du findest einen Weg es als Bullet einzubauen, dann muss es aber ne Bullet sein, die ne reine Animation ist, denn die Bullets, die z.B. von Projektilkanone abgefeuert werden, bewegen sich tatsächlich fort, sie bestehen aus wenigen faces, sieht ein bischen aus wie ein seltsam zusammengefaltetes Blatt Papier mit ein bis zwei horizontal eingeschobenen Scheiben. ;)

Wenn du es nicht schaffst, dass sich deine Kugel-ausdehn-Animation nicht vom Fleck bewegt, hast du ne sich ausdehnende Kugel, die richtung Ziel fliegt, was bestimmt lustig aussieht, aber nicht ganz das sein wird, was du möchtest. :D


Edit:

Das ist ein von mir geschriebenes (recht altes) Tuto zum erstellen von ganz normalen Bullets für X³ R. In der Hoffnung das sich nichts geändert hat, solltest du darin ein paar Grundzüge erklärt finden können, wie gesagt, es geht darin aber nur um ganz normale Bullets.
Vielleicht hilft es dir dennoch.
  • Ein Projektil besteht idr. aus zwei Teilen, einer Textur und einem Modell.

    Im Gegensatz zu den Raumschiffsmodellen trägt ein Projektil nur "eine Textur", welche eine als dds oder tga gespeicherte transparente Fläche ist (kann man z.B. mit Gimp machen, wenigsten mach ich meine Texturen, usw. damit) auf der ein paar Farben aufgebracht sind.
    Kann man nicht so gut beschreiben, besser ist selbst anschauen. Wenn man die X³ R dat's und cat's alle entpackt hat findet man die Projektiltextur im Ordner „dds“, sie heist „fx_bullets_diff.dds“.

    Wenn man diese mit gimp öffnet erkennt man, dass der Hintergrund transparent ist, zu erkennen an dem Schachbrettmuster. Sieht man sich die Farben an erkennt man, dass dieses Schachbrettmuster auch durch die Farbe "durchscheint", d.h. das auch die Farbe hier bis zu einem gewissen Grad transparent ist, das ist wichtig.

    Indem man mit gimp über „Farben“ (oben in der Menüleiste) und „einfärben“ die Farbe ändert oder anpasst kann man jetzt die Projektilfarbe variieren.
    Will man ganz neue Projektile machen, empfehle ich ein Auswahlfenster zu ziehen und darin das neue Projektil zu zeichnen, damit man den schönen graden Abschluss unten sofort hat, den man bei der original-egosoft Textur sehen kann. Natürlich sollte man das Auswahlfenster so groß machen, dass man ungehindert arbeiten kann, es kommt hier nur auf die grade Kante entlang einer Längsseite des Projektils an.

    Den transparenten Hintergund kriegt man mit gimp, indem man ein neues Bild anfängt und bei den Voreinstellungen (das kommt bei Auswahl von neues Bild von alleine) unter „Erweiterte Einstellungen“ die Hintergundfarbe auf „Transpanrenz“ setzt, das ist der einfachste und schnellste Weg, wenn man eh neu anfängt.

    Danach würde man dann mit oben beschriebener Methode das Projektil zeichnen.
    Um die Transparenz zu erhalten benutze ich die Sprühpistole und variiere die Einstellungen bezüglich Deckkraft und Druck nach Gefühl und Bedarf, das sind Erfahrungswerte, Glück und Probiererei. ;)

    Der zweite Bestandteil, aus dem ein Projektil besteht ist das Modell, ähnich wie bei einem Schiff eben.
    Auch das schaut man sich am besten in einem Modellierprogramm mal an. Die Projektil-Modell-Körper sind in folgendem Ordner zu finden, sobald man die X³ R cat's und dat's entpackt hat:

    objects\effects\weapons

    Hier kann man z.B. die „bullet_LS_alpha.bob“ nehmen und sie in das bevorzugte Modellierprogramm laden (ich glaub das ist das Impulsstrahlenemitter-bullet). Man sieht dann, dass das Modell eines Projektils aus einer länglichen Sternförmigen Figur besteht, auf deren langen Flächen z.B. mit einem Unwrap-Modifier die Textur aufgetragen wird. Außerdem sieht man wahlweise ein oder zwei Runde Scheiben, die am Anfang und Ende der Sternform angebracht wurden. Auf die kommt das, was man in der Original X³ Textur unten am Rand sehen konnte, was farbig und rund war. Das ist dazu gedacht eine Runde Form zu simmuliern, wenn das Geschoss von einem wegfliegt, oder dirket auf einen zukommt.

    Die Textur wird im Prinzip im Spiel ähnlich wie die Lightmaps gehandelt, bloß das die Bullet-Textur als diffuse-map (diff) eingetragen wird.
    Soweit ich weiß ist es wichtig, dass das Modell des Projektils bei der Benennung mit „bullet_“ beginnt und die Textur mit „fx_bullets_“.

    Hat man ein ganz neues Projektil erstellt muss dieses dann noch in der "TBullets" im Ordner "types" eingetragen werden. Dazu öffnet man die "TBullets" mit dem TXT Editor des X³ Editors. Hier kann man einen neuen Eintrag erstellen, oder vorhandene verändern, ich vermute mal, dass die Anzahl an neuen Projektilen, die man hinzufügen kann begrenzt ist, zwangsläufig wird man also das eine oder andere original-bullet "umbauen" müssen. Das Modell wird samt Pfad unter "Body File" eingetragen, die anderen Menüpunkte erklären sich halbwegs selbst, denk ich.

    Man kann auch den Effekt verändern, den eine Waffe erzeugt, wenn man sie abfeuert, d.h. wenn das Projektil den Lauf der Waffe verlässt, ich nenn das mal den "launch-Effekt". Allerdings weiß ich nicht auswendig, wo sich die entsprechenden Dateien befinden, hab das auch noch nicht verändert, wir aber vermutlich ähnlich ablaufen.

Edit 2:

Nach dem erneuten Lesen meines alten Tutos, sehe ich da eventuell die Möglichkeit diese Ausdehn-Kugel-Animation als Launcheffekt einzubauen, der bleibt nämlich an der Waffenmündung fixiert, das Projektil würde ich mit einer komplett transparenten Textur machen, dann sieht mans nicht und vielleicht gibt es dann eine Möglichkeit das an ein Script zu koppeln, das den Schaden berechnet.
Oder du stellst es in der Tbullets so ein, dass das Projektil nach wenigen Milisekunden Flugzeit explodiert und in dem und dem Radius Schaden verursacht, dann sollte aber der Aussdehneffekt der Animation schnell sein.
Ob das am Ende klappt, weiß ich nicht, bevor du also viel Zeit verschendest, suche dir noch anderen Rat, das wäre nur etwas, was ich versuchen würde. ;)
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Wow, danke für das ausführliche Tutorial!
Ich glaube Gazz wollte darauf hinaus, dass du in einem 3D Programm eine Animation erstellts, in der sich eine Kugel soweit ausdehnt, wie du willst, dass die Welle reicht, wobei die Welle dann eine sich ausdehnende, komplette Kugel wäre. Dabei musst du genau Texturen machen, sonst wirds unscharf, wäre aber auch der Fall, wenn es tatsächlich so ein Flag gibt, das für die Vergößerung des Projektils zuständig ist.
Ich glaube irgendwie nicht, dass die Bullets irgendwie animiert sind. Wenn man mal das Modell der SWG in 3ds Max importiert, ist dort auch keine Animation gespeichert.

Ich werde jetzt mal versuchen, einen Body (Kugel) zu erstellen und diesen wie in deinem Tutorial beschrieben ins Spiel zu integrieren.
Mal sehen, was dann passiert, wenn ich der neuen Bullet die gleichen Flags zuweise wie der SWG.

Wenn das nicht klappt, dann versuche ich es mit dem Launcheffekt.



Wenn irgendjemand noch eine Idee hat, kann er diese gerne hier posten. =)

MfG,
ScRaT
Icetrack
Posts: 170
Joined: Tue, 1. May 07, 12:32
x4

Post by Icetrack »

Ob das mit der Animation klappt, weiß ich leider auch nicht, die stink-normalen Bullets haben keine, das heist aber auch nicht, dass es unmöglich ist ... Mit Animationen hab ich bis jetzt nicht viel gemacht, da kann ich dir keine Tipps geben.

Evtl. musst du nochwas machen, dass die Ani abgespielt wird, aber ich weiß nimmer genau, wie das war ...
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

So, erstmal: Es hat geklappt! :D

Ich habe das Modell der SWG verändert (und die restlichen Werte nicht verändert) und schon schieße ich mit Blubberblasen. =)

Das war's eigentlich erstmal. Jetzt muss ich nur noch die Werte entsprechend anpassen und dafür sorgen, dass es etwas schöner aussieht.

Danke nochmal für die Hilfe, falls es weitere Probleme gibt, melde ich mich hier.

MfG,
ScRaT
User avatar
mindaway
Posts: 173
Joined: Thu, 3. Nov 05, 09:30
x3tc

Post by mindaway »

@ ScRaT_GER
danke dir vielmals,
das erste mal, dass mir wirklich jemand geholfen hat,
oder überhaupt einfach mal auf meien fragen geantwortet!

ihr scripter wisst garnicht wie sehr ich euch beneide,
wenn ich mit dem editor so umgehn könnte wie mit java oder
c, dann könnt ich mich alleine irgendwie durchschlagen, aber das ganze is für mich alles etwas undurchsichtig,

aber vllt ist es garnicht so schlecht,
ich glaube wenn cih wirklich gut scripten würde, würd ich mich zu sehr darin vertiefen, und die welt vergessen in der ich eingentlich tatsächlich lebe

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