AL Galaxy Trader (1.18.3 - 30.09)

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

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

Ltd.Cmdr.Data
Posts: 242
Joined: Wed, 12. Mar 03, 17:43
x3tc

Post by Ltd.Cmdr.Data »

Die 0815 wird schon von der Raumfliegenfab benutzt.
Frage wegen SKS und Station ?
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Kannst du überschreiben, ist im AL Galaxy Trader die neueste Version der XML.

Wie meinst du das mit der Frage Frage wegen SKS und Station ? ?


[edit]
@dPM_HeMan
Ehm...ja...hab ich wohl vergessen. Kommt noch :D
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Ich hab mal kurz reingekuckt... und interessant.

aber den Code könntest du auf die Hälfte der Scripts verteilen und fast alle globalen Variablen kann man über das plugin.ID array ersetzen...

Gruß ticaki

P.S. ich sammle AL-Scripts aber die müssen halt eine gewisse Struktur haben :)

[*g* disclaimer] irgendwie hab ich in letzter Zeit zuviele Fenster auf :D
Zur Zeit nicht aktiv
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Na das kann ja mal vorkommen :wink:

Wie schon gesagt, ich schau mir das nochmal an, bin ja eh noch nicht wirklich fertig damit also besteht ja vielleicht noch ne Chance das es in deine Sammlung aufgenommen wird :D

PS: Gab's nicht irgendwo mal ein Tutoril oder so für AL-Plugin? Hab mit der Suchfunktion nichts gefunden [ external image ]

[edit]Hat sich erledigt, ist doch von dir das Teil, hab's doch unter meinen Lesezeichen, och menno bin ich dusselig...
Ltd.Cmdr.Data
Posts: 242
Joined: Wed, 12. Mar 03, 17:43
x3tc

Post by Ltd.Cmdr.Data »

Ich hatte angefragt ob Deine in Arbeit befindliche SKS auch verwendet werden kann wenn eine Fabrik angegriffen wird.
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Nun, das so umzubauen bzw mit einzubauen das es auch auf Stationen funktioniert wäre sogar einfacher möglich als es bei einem Schiff ist, allerdings komme ich im Moment noch nicht weiter, hänge bei den Befehlen fest die die Wächter aus dem Squad hatten bevor sie jemandem zu hilfe geeilt sind. Sie springen zwar wieder zurück in ihren Ausgangssektor aber ich habe keine Ahnung warum sie dann ihre alten Befehle nicht wieder annehmen wollen, kam sogar mal vor das einer ständig hin und her gesprungen ist :?
Deshalb habe ich die SKS erstmal nach hinten gestellt bis mir was brauchbares eingefallen ist, der Rest funktioniert ja. Aber Eins nach dem Anderen... erstmal das hier :wink:
User avatar
dPM_HeMan
Posts: 820
Joined: Mon, 16. Feb 04, 13:08
x3

Post by dPM_HeMan »

erklär das mit den Logfiles nochmal bitte, in dem Script steht: " write to log file #8151 " , wo find ich die Datei ?
hab mich bis jetzt noch nicht mit Logs auseinandergesetzt :(
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Im Rootverzeichnis von X² die heißt logXXXX.txt. XXXX sind die Ziffern.

Gruß ticaki
Zur Zeit nicht aktiv
Ltd.Cmdr.Data
Posts: 242
Joined: Wed, 12. Mar 03, 17:43
x3tc

Post by Ltd.Cmdr.Data »

Warum sollen die Wächter zurückspringen, die Wächter können doch warten bis sie das nächstemal gerufen werden und in der Zwischenzeit den EZ-Vorrat auffüllen, damit genügend für den nächsten Sprung vorhanden sind.
User avatar
dPM_HeMan
Posts: 820
Joined: Mon, 16. Feb 04, 13:08
x3

Post by dPM_HeMan »

@ticaki: gibt es nicht bei mir :( , muss ich vorher speichern ?
@Ltd.Cmdr.Data: falscher Thread ?
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

@dPM_HeMan
Ne, du mußt einfach die Logfiles a.trader.logfile1 und a.trader.logfile2 ausführen, im Scripteditor. Die 1 ist für die normalen Galaxie Trader und die 2 für die Piraten Galaxy Trader. Sie werden nicht eigenständig geschrieben, mußt eben selbst ausführen. Ist auch nur dafür da um die Trader anzuzeigen, in den LogFiles, nicht deren aktivitäten.

@Ltd.Cmdr.Data
Ne, ich habe ja was anderes vor. Aber das ist nicht der richtige Thread dafür, wenn es soweit ist dann mach ich einen auf, extra dafür :D



@TOPIC
UPDATE
Neue Version im ersten Post!
Hab jetzt die Piraten ausgelagert, falls einer die nicht haben will, oder falls einer die anderen nicht haben will, wie auch immer.
Die Versionsüberprüfung habe ich geändert, ist aufgrund der radikalen Änderung nicht kompatibel zu den Versionen vor 1.11 bzw 1.3.1.

Ansonten ist es aber besser geworden :roll:


@ticaki
Die Trader und die Waren haben weiterhin ne eigenständige Variable, außerdem eine die von den GTdV und von den GTdP zusammen genutzt wird (auch wenn nur eines installiert ist funzt das). Macht 3 pro GT-Plugin bzw 5 für beide. Ach so, und eine Datei ist weg :wink:
PS: Wenn du noch andere bzw bessere Tips dazu hast wäre ich über ne PM von dir hoch erfreut. :o Nicht das es da nichts zu verbessern gäbe...
magicdevil0703
Posts: 458
Joined: Wed, 5. May 04, 20:55
x2

Post by magicdevil0703 »

Der Pirate Galaxy Trader 1.3.1 downloadlink funzt bei mir nicht! :(

Edit: Funktioniert ! :)
Last edited by magicdevil0703 on Tue, 21. Sep 04, 19:27, edited 1 time in total.
www.pics-up.net - Your free image uploader, up to 5MB images
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Sorry, mein Fehler, ist gefixt!
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

UPDATE
Version 1.12 bzw. 1.5 ist im ersten Post verlinkt!
Und diesmal funktionierts gleich :wink:

Auch die beiligende "Beschreibung.txt" lesen (ich find ReadMe oder LiesMich einfach blöd), es können nämlich noch jeweils 2 Dateien gelöscht werden! Also wenn man beide nutzt 4!

@ticaki
Schon wieder 2, bzw. 4 bei beiden, Dateien weniger. Außerdem eine GlobalVar weniger je AL-Plugin! Macht insgesamt 3 GlobalVars, bzw jeweils 2 (wenn man nur einen nutzt).
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

OK, dieser Post geht eigentlich [fast] nur an ticaki:

Du suchst signierfähige AL-Scripte! Fein fein...
Dann dürfte dich an der aktuellen version am AL-GalaxyTrader/PirateTrader folgendes stören, wenn ich falsch liege darfst du mich gern berichtigen:
-Unterstützung des X-ImprovementMod's von dPM_HeMan (betrifft nur AL-PirateTrader)
-eventuell die Ausstattung der Transporter (??? Menge der Upgrades/Software ???)
-das die VölkerTrader overtunt sind (doppelte der Triebwerks/Rudertunings)
-das sie NOCH nicht in Stationen "auftauchen" sondern einfach so im Sektor(beim starten des AL-Plugins, das baue ich sobald wie möglich eh ein)
-... jetzt kommst du !

Bin immer daran interessiert Verbesserungen zu erfahren und werde mich natürlich bemühen diese auch einzuarbeiten!
Hab zwar nicht auf eine Signierung hin gearbeitet, aber wenn es für alle zuträglich ist dann tue ich das gern :D

Hätte auch noch ne Idee um Stationen mit Fabrikarbeitern zu versorgen, so ähnlich wie es jetzt das AL-TP Plugin macht. Nur eben nicht einfach von HS zu HS sondern von HS zu Fabriken!
Aber Eins nach dem Anderen!!!
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Kannst du mir sagen wieso du nicht das timing event der AL-Engine benutzt? Ich meine damit das das AL-Script in bestimmten abständen aufgerufen wird?

Der "normale" Weg um ein AL-Script zu schreiben ist eigentlich ein Überwachungs/Erstellungs/Befehlserteilungsscript zu schreiben, das nicht mehr macht als die Schiffe zu erstellen ihnen Befehle zu geben und ab und an mal nach dem Rechten zu sehen.

Gruß ticaki
Zur Zeit nicht aktiv
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Ah, ich glaub ich verstehe was du meinst: al.trade.checker
Ja, das könnte ich wohl so einbinden, ins timer Event.

Gleich noch ne Frage dazu:
Das TIMER Event wird nicht aufgerufen wenn das Plugin im Menü ausgeschaltet wird, richtig? (ich gehe mal davon aus sont wäre es ja unsinnig)
Dann brauche ich trotzdem noch ein Script welches die Schiffe dann zerstört wenn das Plugin aus ist.

Ok, und wie siehts mit den anderen Sachen aus die ich aufgezählt habe? Oder heißt dein nichtvorhandene Kommentar dazu das ich Recht habe?

[edit]
So'n Quatsch, das kann ich ja über die plugin-GlobalVar machen und im eigentlichen Mainscript auswerten, also den Satz vergessen :roll: ich meine das extra-zerstör-script
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Öhm nö du liegst noch immer falsch.

Code: Select all

001   $plugin.data = get global variable: name=$plugin.ID
002   $ticaki.pirat.ship.race = get global variable: name='ticaki.pirat.ship.race'
003   skip if not $plugin.data
004    $size =  size of array $plugin.data
005   if not $size == 8
006    $plugin.data =  array alloc: size=8
007    set global variable: name=$plugin.ID value=$plugin.data
008    $plugin.data[0] = 0
009    $plugin.data[1] = [TRUE]
010    $plugin.data[2] = 0
011    $plugin.data[3] = 0
012    $plugin.data[4] = 0
013    $plugin.data[5] = 0
014    $plugin.data[6] = 0
015   end
016   if not $ticaki.pirat.ship.race
017    $ticaki.pirat.ship.race =  array alloc: size=3
018    set global variable: name='ticaki.pirat.ship.race' value=$ticaki.pirat.ship.race
019    $ticaki.pirat.ship.race[0] = 0
020    $ticaki.pirat.ship.race[1] = 0
021    $ticaki.pirat.ship.race[2] = 0
022   end
023   
024   if $plugin.event == 'init' OR $plugin.event == 'reinit'
025    $decr = sprintf: pageid=944 textid=$textid, null, null, null, null, null
026    al engine: set plugin $plugin.ID description to $decr
027    $interval = random value from 180 to 240 - 1
028    al engine: set plugin $plugin.ID timer interval to $interval s
029    return null
030   else if $plugin.event == 'start'
031    $plugin.data[1] = [TRUE]
032   else if $plugin.event == 'stop'
033    $plugin.data[1] = [FALSE]
034   else if $plugin.event == 'isenabled'
035    $on = $plugin.data[1]
036    return $on
037   else if $plugin.event == 'timer'
038 @  = [THIS] -> call script 'al.pirat.fill' :  plugin data=$plugin.data  stations type=$Stationtype
039   end
040   return $on
Zeile 028 setzt den Timer heißt dieses script wird bei der initialisierung aufgerufen und jedesmal wenn das timer zuschlägt... Es ist wurscht ob das in den Optionen auf Ja oder Nein steht.
z38 rufe ich das unterscript auf, und wie du siehst übergebe ich direkt das Array ohne das ich in dem unterscript nochmal einen get global var bentzen würde.
gucken wir mal weiter in meinem Piraten script

Code: Select all

001   $plugin.enabled = $plugin.data[1]
002   $ups = $plugin.data[2]
003   $station = $plugin.data[3]
004   $shiplist = $plugin.data[4]
005   $action = $plugin.data[5]
006   $StartSector = $plugin.data[6]
007   $nexttime = $plugin.data[7]
008   $race = Piraten
009   
010   
011   skip if not $shiplist
012    $shiplist.size =  size of array $shiplist
013   while $shiplist.size
014    dec $shiplist.size = 
015    $delete = null
016    $ship = $shiplist[$shiplist.size]
017    if $ship -> exists
018     $tmp.race = $ship -> get owner race
019     skip if $tmp.race == $race
020      $delete = [TRUE]
021    else
022     $delete = [TRUE]
023    end
024    if $delete
025     remove element from array $shiplist at index $shiplist.size
026     continue
027    end
028    skip if not $ship -> exists
029     $race = $ship -> get owner race
030   end
031   skip if $plugin.enabled OR $action
032    return null
033   
034   skip if [PLAYERSHIP] -> exists
035    return null
036   
037   $playtime = playing time
038   if $action AND ( ! $station OR ! $ups OR $nexttime < $playtime )
039    $action = 5
040   end
[unwichtig]
108    $action = 1
109   else if $action == 1
[unwichtig]
117   else if $action == 3
[unwichtig]
121    $action = 4
122   else if $action == 4
123 @  START [THIS] -> call script 'al.pirat.fill.tl.destroy' :  TL=$ups
124    $action = 5
125   else if $action == 5
126    if $shiplist
127     $shiplist.size =  size of array $shiplist
128     while $shiplist.size
129      dec $shiplist.size = 
130      $ship = $shiplist[$shiplist.size]
131      skip if $ship
132       continue
133      skip if $ship -> exists
134       continue
135      skip if not $ship -> get homebase
136       continue
137      $ship -> destruct: show no explosion=[FALSE]
138     end
139    end
140    skip if not $ups -> exists
141     $ups -> destruct: show no explosion=[TRUE]
142    $ups = null
143    $station = null
144    $shiplist = null
145    $action = null
146   end
147   
148   $plugin.data[2] = $ups
149   $plugin.data[3] = $station
150   $plugin.data[4] = $shiplist
151   $plugin.data[5] = $action
152   $plugin.data[6] = $StartSector
153   $plugin.data[7] = $nexttime
154   return null
Also ich übergebe das erstellte array an dieses Script und schreibe es zu erst in einfache Variablen. Am Ende schreibe ich es wieder zurück und obwohl ich das array nicht an das vorherige Script zurückgebe bleiben die neuen Werte trotzdem erhalten.

Wie du weiterhin siehst wird in Zeile 031 geprüft ob das al.plugin auf Ja gesetzt ist und die action variable auf 0 ist ist beides false wird das script an dieser Stelle verlassen. Ist z.B. die action == 1 läuft das script normal durch als wenn es auf Ja stehen würde.
Dieses Script hier läuft alle ca 3 Minuten einmal durch und guckt ob noch alles in Butter ist bzw. der TL neue Befehle benötigt. Die genaue Steuerung ist in dem jeweiligen Unterscript enthalten und wird mit START von diesem Task entkoppelt.

In deinem Script ist es nun so das es nur einmal gestartet wird das ist nicht gut... schreib ein Schiffserstellungsscript/Befehlsverteilungsscript was aussieht wie die AL-Taskforce scripts.

Gruß ticaki
Zur Zeit nicht aktiv
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

Ja, das der Timer jedesmal gestartet wird ist mir gerade aufgefallen, beim testen :evil:
Aber die Umstellung ist einfach.

Was den Rest betrifft, da habe ich mich wohl unverständlich ausgedrückt.
Denn genau so ist es jetzt, das Script wird immer wenn der Timer zuschlägt ausgeführt und prüft alle Trader (Welche aber weiterhin in einer GlobalVar stehen! Diesmal aber auch die Piratentrader in dieser einen!), ist alles noch ok: Schluß ; ist einer von denen hinüber: neuen erstellen ; gibts noch gar keine weil es noch nicht gestartet wurde: komplett neu erstellen.
Zuvor werden jedesmal die Sektoren nach Schiffswerften bzw. Piratendocks (je nach dem was gestartet wurde) durchsucht und zu einem internen Array (keine GlobalVar) hinzugefügt um zu prüfen ob es auch noch 2 Trader pro Werft-Sektor gibt! Und das alles beim Timer Event welches bei mir genau alle 3 Minuten ausgeführt wird.


Wie gesagt, dass das Timer-Event IMMER aufgerufen wird wußte ich noch nicht, baue ich dann aber dementsprechend um, kein Problem.
Tja, dann werde ich das jetzt mal machen und wenn ich fertig bin gehts wieder online und ich werde mir deine Mängelliste wieder ansehen um zu verbessern.
User avatar
Blacky_BPG
Posts: 2030
Joined: Mon, 23. Feb 04, 23:42
x4

Post by Blacky_BPG »

@ticaki
So, habe es jetzt soweit umgestellt. Und mit deiner ersten Aussage hattest du recht, soviele Scripte brauch man wirklich nicht, aber ich mach es mir gerne kompliziert :P

Link gelöscht
Link gelöscht
beide zusammen -> 10 Scripte

Sind doch schon bedeutend weniger gell :wink:

EINE einzige GlobaVar gibt es noch, also eine eigene, nämlich die Traderdatennank, wenn man das so nennen will. Da sind alle Trader, auch die der Piraten drin!
Hab's jetzt die ganze Nacht ausprobiert, nach ner Stunde wieder eins aus, nach ner halben Stunde nächstes aus, dann wieder eins an, dann das nächste an usw usw usw ..... Funktionieren tut es gut.
Tja, dann werde ich das jetzt mal machen und wenn ich fertig bin gehts wieder online und ich werde mir deine Mängelliste wieder ansehen um zu verbessern.
In diesem Sinne... ich bleib online!
Last edited by Blacky_BPG on Mon, 27. Sep 04, 16:49, edited 1 time in total.

Return to “X²: Die Bedrohung - Scripts und Modding”