AL Galaxy Trader (1.18.3 - 30.09)
Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators
-
- Posts: 242
- Joined: Wed, 12. Mar 03, 17:43
-
- Posts: 4861
- Joined: Wed, 6. Nov 02, 20:31
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
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

Zur Zeit nicht aktiv
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
Na das kann ja mal vorkommen
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
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...

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

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...
-
- Posts: 242
- Joined: Wed, 12. Mar 03, 17:43
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
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

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

-
- Posts: 4861
- Joined: Wed, 6. Nov 02, 20:31
-
- Posts: 242
- Joined: Wed, 12. Mar 03, 17:43
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
@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
@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
@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
PS: Wenn du noch andere bzw bessere Tips dazu hast wäre ich über ne PM von dir hoch erfreut.
Nicht das es da nichts zu verbessern gäbe...
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

@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

@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

PS: Wenn du noch andere bzw bessere Tips dazu hast wäre ich über ne PM von dir hoch erfreut.

-
- Posts: 458
- Joined: Wed, 5. May 04, 20:55
Der Pirate Galaxy Trader 1.3.1 downloadlink funzt bei mir nicht! 
Edit: Funktioniert !

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
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
UPDATE
Version 1.12 bzw. 1.5 ist im ersten Post verlinkt!
Und diesmal funktionierts gleich
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).
Version 1.12 bzw. 1.5 ist im ersten Post verlinkt!
Und diesmal funktionierts gleich

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).
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
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
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!!!
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

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!!!
-
- Posts: 4861
- Joined: Wed, 6. Nov 02, 20:31
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
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
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
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
ich meine das extra-zerstör-script
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

-
- Posts: 4861
- Joined: Wed, 6. Nov 02, 20:31
Öhm nö du liegst noch immer falsch.
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
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
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
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
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
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
Ja, das der Timer jedesmal gestartet wird ist mir gerade aufgefallen, beim testen
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.

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.
-
- Posts: 2030
- Joined: Mon, 23. Feb 04, 23:42
@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
Link gelöscht
Link gelöscht
beide zusammen -> 10 Scripte
Sind doch schon bedeutend weniger gell
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.
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

Link gelöscht
Link gelöscht
beide zusammen -> 10 Scripte
Sind doch schon bedeutend weniger gell

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.
In diesem Sinne... ich bleib online!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.
Last edited by Blacky_BPG on Mon, 27. Sep 04, 16:49, edited 1 time in total.