[DISKUSSION] Allgemeine S&M-Fragen II

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

Jedi Pitter
Posts: 260
Joined: Thu, 7. Oct 04, 23:36
x4

Post by Jedi Pitter »

ScRaT_GER schrieb
Bei großen Modellen wie den Terranerstationen und der #deca wird das Modell nicht geladen, d.h. das Programm ist irgendwie überfordert ("Keine Rückmeldung").
Gibt es da Wege diese Modelle trotzdem irgendwie zu laden?
also.. die max'chens reservieren einen anfänglichen Arbeitsspeicher, der sehr klein eingestellf ist.
Abhilfe: unter Anpassen/Einstellungen/MAXscript den anfängliche HEP-Zuordnung erhöhen (200mb reichten bei mir).
Allerdins kann man beim Laden grosser Dateien schon mal nen Kaffee gemütlich trinken gehen

MFG
Köcki
User avatar
Killjaeden
Posts: 5366
Joined: Sun, 3. Sep 06, 18:19
x3tc

Post by Killjaeden »

Allerdins kann man beim Laden grosser Dateien schon mal nen Kaffee gemütlich trinken gehen
Bei großen Stationen kanns auch schonmal nen besuch beim eiscafe nebenan sein :roll: besonders wenn man vergisst ein häkchen bei 'highest LOD only' zu machen wenn man sich das ding nurmal "schnell" anschauen will *omg*

Übrigens: Zu groß sollte der anfängliche Speicher nicht sein. mehr als 300mb ist mmn viel zu groß. Hatte mal 900mb mit dem resultat das 900mb sofort weg (in benutzung) waren und zusätzlich noch um einiges gestiegen ist sodass am ende nichtmal genug speicher übrig war um die textur beim rendern zu integrieren (von 3GB)... viel hilft also nicht viel.
[ external image ]
X-Tended TC Mod Team Veteran.
Modeller of X3AP Split Acinonyx, Split Drake, Argon Lotan, Teladi Tern. My current work:
Image
User avatar
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

Wie kann ich dem Kommando-Menü ein neues Kommando hinzufügen? Ich weiß zwar wie ich ein neues Kommando in den T-Files erstellen und ein Script mit dem Kommando verknüpfen kann. Nur halt nicht wie ich es der Kommandokonsole hinzufügen kann. :headbang:
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

ich würde mal darauf tippen, dass du noch eine Software-Erweiterung als vorraussetzung definieren musst bzw. wenn keine benötigt werden soll gib [TRUE] als nötige Erweiterung an ;) (der genaue Befehl dafür fällt mir grad ned ein..)
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
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

danke hab den Befehl gefunden und es funktioniert auch alles :)

hab noch ne kleine Frage:
Wenn mit einem "find ship ..." Befehl mehere Schiffe gefunden werden, werden dann auf allen gefunden Schiffen die folgenden Zeilen ausgeführt?
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Nein.

Damit mehrere Schiffe gefunden werden, musst du den Flag [Find.Multiple] verwenden.
Die Variable die durch den "Find ship...Flag=[Find.Multiple]" Befehl definiert wird ist immer ein Array, der alle gefundenen Schiffe enthält.
Damit die folgenden Zeilen auf jedem Schiff ausgeführt werden, musst du wie bei jedem anderen Array vorgehen.

MfG,
ScRaT
User avatar
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

Code: Select all

$Brutschiff =  find ship: sector=$sector class or type=Brutschiff race=Player flags=[Find.Multiple] refobj=null maxdist=null maxnum=null refpos=null
Also das $Brutschiff wird dann zum Array? Dummerweise ist das einzige was ich mir unter Arrays vorstellen kann die Custom Menus die man im SE erstellen kann. Könnt ihr mir mal ein Tutorial verlinken, die in den Stickys sind ja nicht grad viele und die [url=http://forum.egosoft.com/search.php][b]Su[/b]ch[b]Fu[/b]nktion[/url] hat auch nichts ergeben.
Danke schonmal und sry für die Umstände
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Naja, so schwer sind Arrays nicht zu verstehen -- vor allem in X nicht.
Sie haben zwar einige Tücken, doch im Grunde ist es einfach.

Ein Array ist im Allgemeinen eine Aneinanderreihung von verschiedenen Daten gleichen Typs -- zumindest in den meisten Programmiersprachen.

Im MSCI ist das anders. Hier kann ein Array alle möglichen Datentypen beinhalten.

Um ein einfaches Beispiel eines Arrays zu geben:

$array(Schiff 1, Schiff 2, Schiff 3, ... , Schiff n)

Dieser Array beinhaltet die Objekte Schiff 1, Schiff 2, etc. bis Schiff n.
Dabei hat Schiff 1 den Index 0, Schiff 2 den Index 1 und Schiff n den Index (n-1).

Um auf die Objekte eines Arrays zuzugreifen brauchst du nur den Array, sowie den Index. D.h. $schiff = $array[1] weist der Variable $schiff den Wert Schiff 2 zu.

Oftmals möchte man bestimmte Operationen an allen Objekten eines Arrays durchführen. Dazu ist es sinnvoll eine Schleife zu verwenden, die für jedes Objekt den Anweisungsblock wiederholt.
In deinem Fall könnte das so aussehen:

Code: Select all

*Finde alle Brutschiffe und speichere sie in einem Array
$Brutschiff =  find ship: sector=$sector ... flags=[Find.Multiple] 

*Hier folgt die Standardvariante für das Auslesen von Arrays
$size = get size of array $Brutschiff
while $size
 dec $size = 
 $Schiff = $Brutschiff[$size]
 
* Hier folgen die Kommandos

* Der folgende Befehl ist wichtig, damit das Spiel bei längeren Schleifen nicht einfriert
 = wait 1 ms 

* Ende der Schleife
end
Damit solltest du eigentlich erstmal auskommen.

MfG,
ScRaT
User avatar
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

Ah das is ja wirklich nicht schwer werd mich direkt dran setzen. Vielen Dank für deine schnelle Hilfe :)

EDIT: mh doch nich so einfach. Hab's mal versucht.

Code: Select all

001   if not get global variable: name='AddCommand'
002   |$sector = [PLAYERSHIP] -> get sector
003   |$Brutschiff =  find ship: sector=$sector class or type=Brutschiff race=Player flags=[Find.Multiple] refobj=null maxdist=null maxnum=null refpos=null
004   |$size =  size of array $Brutschiff
005   |while $size
006   ||dec $size = 
007   ||$Schiff = $Brutschiff[$size]
008   ||$Schiff -> start task 1000 with script 'plugin.add.command' and prio 1: arg1=null arg2=null arg3=null arg4=null arg5=null
009 @ ||= wait 1 ms
010   |end
011   |set global variable: name='AddCommand' value=$Brutschiff
012   end
013   return null
allerdings wird "plugin.add.command" nicht ausgeführt. Ich habe es auch einzeln ausgeführt dort klappt es auch. Irgendwas muss ich also übersehen haben. :headbang:
tut mir leid das ich euch soviel anstrengung mache.
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

lass mal die Variable $Brutschiff ins Logbuch schreiben, ob überhaupt was gefunden wurde..
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
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

Im Startmenü vom SE bei Script Debugging: Brutschiff auf "log" umstellen? Also dort kommt keine Meldung aber eigentlich habe ich an den Suchparametern nichts geändert und als es noch kein Array war wurde das plugin auch ausgeführt.
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

nö, ich meinte was anderes...


001 if not get global variable: name='AddCommand'
002 |$sector = [PLAYERSHIP] -> get sector
003 |$Brutschiff = find ship: sector=$sector class or type=Brutschiff race=Player flags=[Find.Multiple] refobj=null maxdist=null maxnum=null refpos=null
000 |write to player logbook $Brutschiff
004 |$size = size of array $Brutschiff
005 |while $size
006 ||dec $size =
007 ||$Schiff = $Brutschiff[$size]
008 ||$Schiff -> start task 1000 with script 'plugin.add.command' and prio 1: arg1=null arg2=null arg3=null arg4=null arg5=null
009 @ ||= wait 1 ms
010 |end
011 |set global variable: name='AddCommand' value=$Brutschiff
012 end
013 return null


und dann wird der Inhalt dieser Var ins Spielerlogbuch geschrieben.. wenn da sowas wie ARRAY ( ) (also dass nix zwischen den Klammern steht) oder null raus kommt dann wird mit dem Befehl nix gefunden.. überprüfe dann man die Parameter ;) (so gehe ich immer vor, wenn irgendwas nicht funktioniert: einfach alle Werte, an denen es scheitern könnte an den jeweiligen Stellen ins Spielerlogbuch schreiben lassen ;) )

PS und kommentiere mal Zeile 1 aus, wenn du mal nen erfolglosen Testlauf hattest wird das Script nicht mehr ausgeführt, denn selbst nen leeres Array ist nen Variableninhalt ;)
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
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

Ok danke die ist tatsächlich "null". Ich habs noch mal ohne Array ausprobiert also einfach "find ship ... flags=null" und dort reichen die Parameter aus um das entsprechende Schiff zu finden. Allerdings weiß ich nich was ich in den anderen Parametern einstellen kann, um es zu finden. :headbang:
Das Problem ist das ich eigentlich alle Brutschiff im Universum finden möchte, aber dann müsste ich ja $sector auch noch raus nehemn und er findet erst recht nix.
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

nimm mal für maxnum eine beliebige, möglichst grosse Zahl ;) was anderes fällt mir atm nicht ein..
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 »

Oh, ganz vergessen zu sagen.

[Find.Mulitple] setzt einen Eintrag bei maxnum vorraus (einfach einen sehr großen nehmen, wenn die Anzahl nach oben hin offen ist).
Damit sollte es dann klappen.

MfG,
ScRaT
User avatar
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

Ok danke jetzt funktioniert alles :)
nur zum verstädniss maxnum sagt also wie viele Schiffe maximal gefunden werden dürfen?
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

Schaf123 wrote:Ok danke jetzt funktioniert alles :)
nur zum verstädniss maxnum sagt also wie viele Schiffe maximal gefunden werden dürfen?
korrekt ;)
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
Ponder
Posts: 1585
Joined: Wed, 19. Nov 08, 15:58
x3tc

Post by Ponder »

Sehr gut danke nochmal :)
Aluren
Posts: 89
Joined: Wed, 10. Dec 08, 23:27

Post by Aluren »

vorsicht ne dumme anfängerfrage :D ev ist die antwort einfach aber ich bin knapp vor dem hirntod so das ich im moment nicht drauf komme.

hab mich mal hingesetzt und wollte mein eigenes schiff erstellen, weil ich keine ahnung von der materie habe quälte ich mich einige zeit(tage,wochen..? ne kam mir nur so lange vor :wink: ) durch diverse tutorials.
Jetzt bin ich in der lage mit gmax ein häuschen oder flugzeug zu erstellen, ist doch super ... :roll:
aber leider hab ich keine ahnung wie ich ein x3 schiffsbody mit gmax öffnen kann. versucht hab ich es mit dieser anleitung http://forum.egosoft.com/viewtopic.php?t=125519

fazit, ich bin zu blöd um eine bod datei in gmax zu importieren :oops: falls jemand mich erleuchten könnte wäre ich im sehr dankbar
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Schaf123 wrote:Ok danke jetzt funktioniert alles :)
nur zum verstädniss maxnum sagt also wie viele Schiffe maximal gefunden werden dürfen?
Bei kleinen Werten von maxnum ist es oft sinnvoll, es mit find.nearest zu verbinden.
Kommt halt darauf an...
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.

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