Rudis Scriptfragen

Hier können Diskussionen rund ums scripten und modden zu X3 Terran Conflict und Albion Prelude geführt werden.

Moderator: Moderatoren

Benutzeravatar
boreas
Angehender Ausbilder
Beiträge: 596
Registriert: Di 02 Aug, 2011 10:51 am
Lieblings X-Titel:
Wohnort: irgendwo im WWW

Beitrag von boreas »

Das Signal von einer gebauten Station gibt es meines Wissens nach durchaus. STO ist das beste Beispiel dafür. Wenn du die HS im Sektor baust und alle Vorraussetzungen erfüllt sind, geht der Sektor in deinen Besitz über und ist dann dein Eigentum (um es mal juristisch korregt zu bezeichnen :) ).
Allerdings hab ich keine Ahnung davon, weshalb ich mich auch durchaus irren kann, aber es scheint mir plausibel. So nach dem Motto Hs gebaut Signal-set Sector owner to... .

mfg
MatzeR
Moderator
Beiträge: 3810
Registriert: So 04 Jan, 2009 12:29 pm
Lieblings X-Titel:
Wohnort: Leitstern

Beitrag von MatzeR »

Und wenn es das Signal nicht gibt, so kann man immerhin ihre Existenz abfragen. Macht man das häufig genug, so ist das genauso gut verwendbar.
Einen Krieger erkennt man nicht an seinen Waffen, sondern an den Augen seiner Gegner!
Benutzeravatar
Marvelous
Ausbilder
Beiträge: 725
Registriert: So 02 Jan, 2011 2:51 pm
Lieblings X-Titel:

Beitrag von Marvelous »

rudi1095 hat geschrieben:Danke schonmal.
Das letzte interesiert mich besonders.Es müsste ja auch ein Signal geben wenn irgendwas in den besitz einer Rasse oder des Spielers übergeht.

Kannst du mir vielleicht auch zeigen wie so ein Befehl ungefähr aussehen müsste?

Natürlich versuch ich auch mir das selber beizubringen,allerdings habe ich momentan recht wenig Zeit und sobald die Ferien zu ende sind noch weniger.
Hier mal ne Liste der Signals die im Spiel vorkommen (sollten, ist aus dem Exscripter entnommen, einem Programm mit dem man auserhalb des Spiels Scripts schreiben kann)

Code: Alles auswählen

{SIGNAL_COLLISIONWARN}
{SIGNAL_BUYWARE}
{SIGNAL_SCANNED}
{SIGNAL_REQUESTUNDOCK}
{SIGNAL_UNLOADWARE}
{SIGNAL_FORMATIONLEADERCHANGED}
{SIGNAL_ATTACKED}
{SIGNAL_WINGREMOVE}
{SIGNAL_CAPTURED}
{SIGNAL_DOCKED}
{SIGNAL_CHANGESECTOR}
{SIGNAL_LEADERNEEDSHELP}
{SIGNAL_FOLLOWERNEEDSHELP}
{SIGNAL_DAMAGED}
{SIGNAL_ABORTED}
{SIGNAL_SELWARE}
{SIGNAL_KILLED}
{SIGNAL_LOADWARE}
{SIGNAL_RESPONDTOHELPREQUEST}
Ein Signal für ne gebaute Station ist leider nicht dabei vielleicht gehts aber auch mit dem SIGNAL_CHANGESECTOR. Musst du halt mal testen.
(Ich bin auch nicht so trittsicher damit, aber das was ich damit anstellen wollte funktioniert ;) )

Hier findet sich ne Erklärung zu den Signals. Einfach mal durchlesen und weitere Fragen stellen wenn was unklar ist.

Allerdings würde ich andere Befehle nutzen als in dem Topic beschrieben, da dieser Befehl andere Signals überschreibt. Nimm besser
"<RefObj> add secondary signal: signal=<Object Signal>, script=<Script Name>, prio=<Var/Number>, name=<Var/String>" (gilt für ein bestimmtes Objekt)
oder "global secondary signal map: add signal=<Object Signal> race=<Var/Race> class=<Var/Class> script=<Script Name> prio=<Var/Number> name=<Var/String>" (wird auf allen Objekten gestartet die das Signal senden und der gewählten Rasse und der Klasse angehören).



//edit: mit diesen zwei Befehlen kann man die Bindung an die Signals wieder entfernen:
"<RefObj> remove secondary signal: signal=<Object Signal>, name=<Var/String> "

"global secondary signal map: remove signal=<Object Signal> race=<Var/Race> class=<Var/Class> name=<Var/String> "

//edit 2:
MatzeR hat geschrieben:Und wenn es das Signal nicht gibt, so kann man immerhin ihre Existenz abfragen. Macht man das häufig genug, so ist das genauso gut verwendbar.
Natürlich kann man in regelmäßigen Abständen einen Sektor nach dem anderen auf neue Stationen überprüfen....
Ich habe beim rumspielen mit dem SE mal ähnliche Scripts getestet die das gesamte Universum Sektor für Sektor durchlaufen.
Wenn man so ein Script nicht "richtig" macht, dann kann es durchaus ein paar Minuten dauern bis das Script beim letzten Sektor angekomen ist. (Oder aber man musst ein paar Sekunden Pause machen weil sich das Spiel kurz aufhängt.)
rudi1095
Schütze
Beiträge: 192
Registriert: So 08 Apr, 2012 6:43 am
Lieblings X-Titel:

Beitrag von rudi1095 »

Komme grad von dem Wochenendausflug zurück und habe mir nochmal diese Irre liste angesehen die ich auf der vorherigen seite geschrieben habe.
Dazu möchte ich sagen:Als ich die geschrieben hab muss ich komplet größenwahnsinnig gewesen sein.

Die Schiffswerft funktioniert nun,auch wenn sie nicht produziert und wegen dem bezahlproblem nicht dem Spieler gehört.

Bei dem "Moralsystem" habe ich vor die Verstärkung jetzt einfach auswürfeln zu lassen.


Aber ich habe noch eine Frage ,so banal sie auch klingen mag:

Wie installiere ich STO?

Ich habe schon mehrere Scripts installiert und alle haben funktioniert,aber hier verstehe ich es einfach nicht.
http://forum.egosoft.com/viewtopic.php? ... sc&start=0

Ven der Seite habe ich es mir gedownloadet,im X3TC Ordner entpackt,manuel in die entsprechenden ordner kopiert,extra ordner erstellt und das ganze mit allen versionen die ich gefunden habe,aber nichts hat geholfen.

Weder bekomme ich beim laden eines Spielstandes eine Nachricht,noch kann ich einen Hotkey zuweisen.Ich verstehs einfach nicht.

Und danke für die ganzen Antworten.
MatzeR
Moderator
Beiträge: 3810
Registriert: So 04 Jan, 2009 12:29 pm
Lieblings X-Titel:
Wohnort: Leitstern

Beitrag von MatzeR »

Da du ja AP spielst, gehört das Script in den Addon-Ordner.
Einen Krieger erkennt man nicht an seinen Waffen, sondern an den Augen seiner Gegner!
rudi1095
Schütze
Beiträge: 192
Registriert: So 08 Apr, 2012 6:43 am
Lieblings X-Titel:

Beitrag von rudi1095 »

Ach wir reden die ganze Zeit von AP!
Das ist ja interresant. Hab jedoch nur TC :oops:

Ist es übrigens normal das es zwei X3TC Ordner gibt?
Einer über Boot - Programme - Egosoft
und einer wenn ich bei der suche Egosoft eingebe.

Beide sehen unterschiedlich aus.


EDIT:Mit dem ersten ordner funktionierts jetzt auch,obwohl ich die ganze Zeit den zweiten benutze.
Benutzeravatar
IRaven
Rekrut
Beiträge: 84
Registriert: Mi 29 Feb, 2012 6:08 pm
Lieblings X-Titel:

Beitrag von IRaven »

der zweite ist wohl in deinen eigenen Dateien und beinhalted deine spielstände :)
rudi1095
Schütze
Beiträge: 192
Registriert: So 08 Apr, 2012 6:43 am
Lieblings X-Titel:

Beitrag von rudi1095 »

Und noch eine Frage :-D

Nachdem mit den Signalen so gut wie nichts funktioniert hat,wollte ich mich an einem einfachen Signal-script versuchen.

global secondary signal map: add signal=SIGNAL_KILLED race= null class= TS script= a.test prio= 9000 name= a.test

Ich weiß zwar nicht genau wofür "name" gut ist,aber eigentlich sollte doch jetzt jedes mal wenn ein TS irgendeiner Rasse zerstört wird der Script "a.test" starten.

Dieser a.test-script besteht nur aus"write to player lookbook "test erfolgreich""


Ich habe auch ganz oben,wo bei Command name "Signal getötet" eigefügt,in der Hoffnung das es irgendwie hilft: Leider nein :(



Weiß jemand was ich falsch mache?
Benutzeravatar
Marvelous
Ausbilder
Beiträge: 725
Registriert: So 02 Jan, 2011 2:51 pm
Lieblings X-Titel:

Beitrag von Marvelous »

Signals sind ein wenig tricky. Einige Infos findest du hier.
rudi1095 hat geschrieben: global secondary signal map: add signal=SIGNAL_KILLED race= null class= TS script= a.test prio= 9000 name= a.test

Ich weiß zwar nicht genau wofür "name" gut ist,aber eigentlich sollte doch jetzt jedes mal wenn ein TS irgendeiner Rasse zerstört wird der Script "a.test" starten.
Der Name ist ein String mit dem du die Verknüpfung mit dem Signal später wieder finden und entfernen kannst. Ähnlich wie mit einer globalen Variable.
Sollte natürlich einzigartig sein!
rudi1095 hat geschrieben: Dieser a.test-script besteht nur aus"write to player lookbook "test erfolgreich""


Ich habe auch ganz oben,wo bei Command name "Signal getötet" eigefügt,in der Hoffnung das es irgendwie hilft: Leider nein :(



Weiß jemand was ich falsch mache?
Hast du das Script mit dem Befehl "global secondary signal map..." auch vorher ausgeführt ? Das geht nämlich nicht automatisch.
rudi1095
Schütze
Beiträge: 192
Registriert: So 08 Apr, 2012 6:43 am
Lieblings X-Titel:

Beitrag von rudi1095 »

Es funktioniert! :-D
Hast du das Script mit dem Befehl "global secondary signal map..." auch vorher ausgeführt ? Das geht nämlich nicht automatisch.
Daran lags. Ganz erlich,ich währe nie auf die Idee gekommen den auszuführen.Ich dacht sobald er im SE liegt würde es funktionieren.

PS:Ich find es einfach klasse wie schnell hier geantwortet wird!
Bei einigen Foren in denen ich angemeldet war konnte man eine Woche auf seine Antwort warten.
Großes Lob an die ganze Community!
rudi1095
Schütze
Beiträge: 192
Registriert: So 08 Apr, 2012 6:43 am
Lieblings X-Titel:

Beitrag von rudi1095 »

Erstmal soory für den doppelpost aber ich werde nicht müde hier fragen zu stellen.

1.Wie kann ich Schiffe ins Tor scipten?
Ich habe letztens mal versucht Schiffe so zu erstellen das sie aus einem Tor kommen. Weil ich dafür jedoch keinen Befehl gefunden habe, lies ich die Schiffe weit weg von der Sektormitte spawnen,mit dem Kommando zum Tor zu sprigen.Bei einem Schiff funktioniert es auch,bei mehreren jedoch geht der script erst weiter wenn das letzte schiff gesprungen ist. Das führt dazu das die Schiffe im Minutentakt ankommen,wenn überhaupt
(liegt warscheinlich daran das ich das ganze als Schleife gebaut habe).

Giebt es als die Möglichkeit das alle gleichzeitig "im" Tor spawnen?

2.Ich finde das Kommando nicht

Die oben gennanten Schiffe sollten danach primär die Stationen im Sektor angreifen. Jedoch hören die auf keinen Befehl den ich ihnen in ihren virtuellen Schädel einscripten will ! Ich habe auch versucht per script die nächste Station zu ermitteln (funktioniert) und sie ihnen als target mit dem Kommando DESTROY_THIS oder ATTACK zu geben.

Ergebniss:Sie ignorieren mich.


Kann mir bitte einer das Brett vom Kopf wegnehmen :?

PS:Und villeicht auch mal den Theardnamen ändern?
Benutzeravatar
Marvelous
Ausbilder
Beiträge: 725
Registriert: So 02 Jan, 2011 2:51 pm
Lieblings X-Titel:

Beitrag von Marvelous »

rudi1095 hat geschrieben: 2.Ich finde das Kommando nicht

Die oben gennanten Schiffe sollten danach primär die Stationen im Sektor angreifen. Jedoch hören die auf keinen Befehl den ich ihnen in ihren virtuellen Schädel einscripten will ! Ich habe auch versucht per script die nächste Station zu ermitteln (funktioniert) und sie ihnen als target mit dem Kommando DESTROY_THIS oder ATTACK zu geben.

Ergebniss:Sie ignorieren mich.


Kann mir bitte einer das Brett vom Kopf wegnehmen :?
Gehören die Schiffe zu einer anderen Rasse, d.h. nicht dem Spieler ???
In dem Fall musst du erstmal mit "<RefObj> set race logic control enabled to <Var/Number> " die "Race logic" abschalten. Dann kriegen sie vom Spiel keine Befehle mehr und du kannst sie nach deiner Pfeife tanzen lassen.
rudi1095
Schütze
Beiträge: 192
Registriert: So 08 Apr, 2012 6:43 am
Lieblings X-Titel:

Beitrag von rudi1095 »

Ich werds mal ausprobieren.
War nur verunsichert weil ich irgendwo mal gelesen hätte das das nicht/nicht richtig funktioniert.
Benutzeravatar
Micky Maus
Moderator
Beiträge: 881
Registriert: Sa 18 Dez, 2010 2:38 pm
Lieblings X-Titel:
Wohnort: Im Herzen Europas

Beitrag von Micky Maus »

rudi1095 hat geschrieben: PS:Und villeicht auch mal den Theardnamen ändern?
Bitte.


MFG

Micky Maus
Asteroidentabelle X3TC in Excel / Open Office
Hier der Thread dazu.
rudi1095
Schütze
Beiträge: 192
Registriert: So 08 Apr, 2012 6:43 am
Lieblings X-Titel:

Beitrag von rudi1095 »

Diese Frage weicht jetzt ein bisschen vom Scripten ab.
Und zwar wollte ich wir eine Art Split`sche Hyperion schaffen. Hat auch super geklappt, mit der 13.Cat gabs keine Probleme.

Nun sollte das Schiff jedoch noch einen eigenen Namen erhalten.
Also hab ich in der gleichen Cat die deutsche t-file geöffnet und gesucht.Irgendwann bin ich bei Bordcomputer Objects (page id 17) fündig geworden. Dort habe ich auch zwei Zeilen mit Name/beschreibung angehängt.

Als sich im Editor nichts tat hab ich weitergesucht und noch eine Bordcomputer Objects gefunden (page id 30017). Dort das gleiche, allerdings immer noch keine Veränderung.
Nun hab ich von den, von mir eingefügten sachen, die text id verändert und da endlich ist mir eingefallen das der X Editor 2 ja nur die englischen t-files liest.

Na dann, X angeworfen und nachgeschaut; Super, mein Schiff trägt den Namen Gepard!
Blöd nur das der name so toll war das andere ihn auch haben wollten.So traf ich zum Beispiel auf einen Argonischen Minotaurus Gepard, auf einige Eklipse Gepard und auch die Boronen waren mit einer Schweren-Hydra-Gepard-Patrouille dabei.

Das tritt bei ca. ein dutzend Schiffstypen auf,alle anderen Funktionieren. Ich hab keine Ahnung wie ich das rückgängig machen kann, zumal ich so dumm war und vergessen hab eine Kopie der t-file zu machen. :lool:

Weiß jemand auf Anhieb rat?
Antworten