[Script] (SVP) Stationsverwalter/Stationspreisregelung V 1.1

Hier ist der ideale Ort um über Scripts und Mods für X³: Reunion zu diskutieren.

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

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

[Script] (SVP) Stationsverwalter/Stationspreisregelung V 1.1

Post by triple81 » Sun, 12. Feb 06, 15:45

^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
Stationsverwalter/Stationspreisregelung
^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^^v^v^^v^v^v^v^v^v^v^v^^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^

Version : 1.1 13/02/06
Autor : triple81@freenet.de
Getestet: mit Version 1.3


Download Version 1.1 hier (inklusive Scriptinstaller File)

Download Version 1.0 hier

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Funktion

Stationsverwalter (Standard):

Der Stationsverwalter regelt die Preise der Ressourcen und Produkte je nach Vorratslage auf der Station. Bei einem maximalen Lagerfüllstand ist der Preis der niedrigste, bei einem Lagerfüllstand < 2 der Maximalpreis. Es wird alle 10 Sekunden geprüft ob sich der Lagerbestand geändert hat und der Preis entsprechend angepasst. Kosten: Um einen Stationsverwalter einstellen zu können fallen Kosten in Höhe von 175000 Credits an. Diese müssen auf dem Konto der Station vorhanden sein. Desweiteren verlangt der Stationsverwalter einen stündliches Gehalt von 450 Credits pro Ware. Dieses Gehalt wird also mit der Anzahl der Ressourcen, Zwischenprodukte, Produkte auf der Station multipliziert und bestimmt das tatsächliche Gehalt pro Stazura des Verwalters. (Bsp.: 5 Waren = 5 x 450 Cr = 2250 Cr/Stunde). Kann das Gehalt mangels Deckung des Stationskonto´s nicht abgebucht werden, stellt der Verwalter seinen Dienst ein und wartet solange bis Credits vorhanden sind. Die Wartezeit wird aus solidarischen Gründen nicht berechnet aber gearbeitet wird natürlich nicht.Um den Verwalter zu entlassen, einfach das Kommando noch einmal ausführen (Stationskommando Menü). ACHTUNG: bei einer erneuten Einstellung des Verwalters werden wieder 175.000 Cr fällig.


Stationsverwalter (Extra):

Der Stationsverwalter (Extra) regelt die Preise der Ressourcen und Produkte nach der aktuellen Marktlage in der Region. Mit Hilfe der eingestellten Sprungreichweite (der Station), sucht er Abnehmer der eigenen Produkte, die den höchsten Preis zahlen und stellt den Preis entsprechend ein. Bei Ressourcen sucht er den aktuell niedrigsten Preis der Region und stellt diesen ein. Das stündliche Gehalt des Stationsverwalters wird wie folgt berechnet und wegen der ziemlich hohen Kosten, empfiehlt es sich, ihn nur auf grossen Stationskomplexen mit hohen Einnahmen einzusetzen.

Eingestellte Sprungweite * Anzahl Ressourcen/Produkte * 575

Bsp.:

Sprungreichweite = 15
Ressourcen/Produkte = 7

.............................................................
15 * 7 = 105
105 * 575 = 60.375 Cr/Stazura (Stunde)

Die Einstellungskosten des Stationsverwalters (Extra) betragen 2.755.000 Cr und werden bei jeder Einstellung fällig !!!


Info:

Aus Performancegründen beträgt der Preisänderungsintervall vom Stationsverwalter (Standard) auf 10 Sekunden erhöht. Änderbar. Siehe Script "plugin.tx.stationspreisverwalter.xml" in Zeile 120.

119 * Warte 10 Sekunde/wiederhole Script
120 @ = wait 10000 ms

Der Intervall des Extra Verwalters ist 5 Sekunden. Ebenfalls änderbar. Siehe Script "plugin.tx.stationspreisverwalter2.xml" in Zeile 139.

138 * Warte 5 Sekunde/wiederhole Script
139 @ = wait 5000 ms

-------------------------------------------------------------------------------------------------------------------------------------------------------------
Installationsanleitung

Entpacke dieses Archiv einfach direkt in Dein X3 Hauptverzeichnis oder entpacke die enthaltenen Dateien einzeln in die richtigen Ordner. Aktiviere den Scripteditor mit Thereshallbewings als Spielername.


Info, Update Version 1.0 auf 1.1

Den Stationsverwalter 1.0 über das Stationskommando beenden. Spiel speichern und beenden. Update durchführen und vorhandene Scriptdateien des Plugins überschreiben. Spiel starten und laden. Das Update sollte jetzt komplett und die neiuen Funktionen auswählbar sein.

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Archiv Inhalt

[stationsverwalterV1.1.RAR]
+[scripts]
setup.tx.stationspreisverwalter.xml
plugin.tx.stationspreisverwalter.xml
plugin.tx.stationspreisverwalter2.xml

+[t]
498814.xml

+[Script Installer File]
stationsverwalterV1.1.spk

+[readme]
Liesmich.txt

-------------------------------------------------------------------------------------------------------------------------------------------------------------

Hinweis für Scripter

verwendete Command ID:
  • COMMAND_TYPE_STATION_40
  • COMMAND_TYPE_STATION_41
verwendetes t-file :
  • 8814
-------------------------------------------------------------------------------------------------------------------------------------------------------------

Rechtliches

Ich übernehme keine Haftung für eventuelle Beschädigungen an euren
Savegames, an euren Rechnern, am Spiel selbst,oder an anderen Dingen,
die durch diese Script beschädigt wurden, ect.Die Benutzung der
Scripte besteht auf eigene Gefahr und eigenes Risiko!


^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
Viel Spaß mit diesem Script! 8)
^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^


^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
Weitere Scripts von mir...

Sparkonto/Sparbuch hier
Last edited by triple81 on Sun, 16. Apr 06, 02:30, edited 5 times in total.

Deleted User

Post by Deleted User » Sun, 12. Feb 06, 16:13

Klasse script !
aber sind 2 Sekunden nicht ein bisschen zu wenig ?
Also das geht dann schon ein bisschen auf die performance...
15 Sekunden sollten erichen.

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Sun, 12. Feb 06, 16:18

Das konnte ich mit meinem PC :lol: (P-4, 3,4 Ghz, 2Gb DDR-2 RAM) leider nicht ausführlich testen. Habe keine Einbrüche der Performance spüren können. Aber das liesse sich auf jeden Fall ändern. Gruss triple81

NightlinerSGS
Posts: 116
Joined: Tue, 30. Aug 05, 23:07
x4

Post by NightlinerSGS » Sun, 12. Feb 06, 16:43

Sieht auf jeden Fall mal gut aus...

Frage: Kann man auch bestimmte Waren aus der Automatischen Berechnung ausschliessen (z.B. wenn ich mein Endprodukt immer zu nem bestimmten Preis verkaufen will) oder kann man einen Preis einstellen unter den der Verwalter nicht geht (z.B der niedrigste Preis an dem man bei maximalem Ressourcen-einkaufspreis immernoch gewinn erzielt)???

MfG
NightlinerSGS

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Sun, 12. Feb 06, 17:22

In der version gibt es keine Einstellmöglichkeiten. Wenn Lager gut gefüllt sind, hast du entweder eine Überproduktion die den Bedarf allemale deckt oder deine Preise sind zu hoch und deshalb kauft niemand. Dann ist eine Preissenkung erforderlich. Sind die Lager leer, produzierst du zuwenig oder der Preis ist zu gering, sodas dir alles auf einmal weg gekauft wird. Beides kann dir mit dem Verwalter nicht passieren da er ja die Preise anpasst. Was Ressourcen angeht. Ein Lager das leer wird, erfordert eine Preiserhöhung damit schneller Nachschub erfolgen kann. Sonst steht die Produktion still. Gewinn wird dabei trotzdem erwirtschaftet. Gruss triple81


PS: In der nächsten Version werden die Preise nicht an den Lagerbestand angepasst
sondern richten sich nach den Preisen in der Region (Sprungreichweite der Station)

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Mon, 13. Feb 06, 17:25

Update 1.1 nun verfügbar. Viel Spass und Erfolg im X-Universe damit... 8)

JM2003
Posts: 58
Joined: Sat, 13. Mar 04, 11:01
x3

Post by JM2003 » Mon, 13. Feb 06, 22:22

Hallo
Klasse Script
Habe es getestet und es läuft echt gut.
und die performance also die ist gleichgeblieben.
Gruß : JM2003 :roll:

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Thu, 16. Feb 06, 03:17

Hat es noch jemand getestet?? Feedback, Feedback.... Ich muss wissen ob´s Fehlerfrei läuft. Danke

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Fri, 17. Feb 06, 22:06

Habe dem Downloadarchiv der Version 1.2 ein File für den Scriptinstaller beigefügt..............

Alter Ego
Posts: 163
Joined: Thu, 26. Feb 04, 19:38
x3

Ich bin bankrott!!!

Post by Alter Ego » Sat, 4. Mar 06, 17:53

Ein Skript wie ich es schon lange suche. Aber, da ich die Sprungweite auf 50 :oops: eingestellt habe, wollen die jetzt auf einmal alle bis zu 70 Mio. Gehalt haben. Diese Manager sind mir zu real - die schmeiss ich raus. :evil:

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Sun, 5. Mar 06, 01:12

Der Fehler ist mir leider neu... Wieviel Ressourcen/Produkte hat der Komplex??? Ich habe es auch mit Sprungreichweite 50 getestet und die Preise waren normal. Kann mir auch garnicht vorstellen wie so ein Fehler entstehen soll. Da lediglich die Anzahl der Ressourcen/Produkte mit der Sprungreichweite und mit 575 multipliziert wird. Selbst wenn 100 Waren auf der Station sind und die Sprungreichweite 50 ist, kommt als Gehalt nur 2.875.000 Cr raus. Schick mir bitte dein Save und den Script/t-Ordner per E-Mail. Gruss triple81

triple81@freenet.de

Alter Ego
Posts: 163
Joined: Thu, 26. Feb 04, 19:38
x3

Post by Alter Ego » Sun, 5. Mar 06, 15:54

Sry für die Verspätung. :oops:

Im Skript steht (stand)
(Gesamtsprungweite/720) * Schleifenende * 575

Ich hab aus der 720 mal eine 72.000 gemacht und das Einstellungsgehalt von 2,7 Mio auf 275.000 runtergesetzt (ich musste die alle entlassen). Ich seh mal nach, ob ich ein sinnvolles Save habe.
Inzwischen hat er mit auch in drei Komplexen die Zwischenprodukte verscherbelt. Die Einkaufspreise sind so niedrig, dass sich (scheinbar) meine Uni-Händler schamlos bedienen. Ich hab mal den Zwischenprodukthandel von Kauf auf Kauf&Verkauf geändert.

Meine Saves sind ca. 11 MB. Ich glaub, die kann man nicht mehr packen. Da krieg ich die nicht auf einen Ruck rüber. Was tun? Splitten?

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Tue, 7. Mar 06, 02:23

hab mich auch verspätet... schick das save in einzelteilen... gruss triple81

User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike » Wed, 8. Mar 06, 17:30

while 5 + 5 == 10

Der ist gut. :D

Wenn ich so in meinen Geldbeutel schaue, so kann ich mir das noch nicht leisten. Gibt's auch eine Light-Version? *winkewinkezaunfahl*

Anmerkung: Sehr, sehr sauberer Code.

Gruß
Lucike
Last edited by Lucike on Thu, 9. Mar 06, 00:41, edited 1 time in total.
Image

Raumfliegenjäger
Posts: 2865
Joined: Sat, 4. Jun 05, 14:41
x3tc

Post by Raumfliegenjäger » Wed, 8. Mar 06, 19:14

Lucike wrote:...
Anmerkung: Sehr, sehr sauberer Code.

Gruß
Lucike
Was ist damit eigentlich gemeint?
Sind damit Kommentare zu jeder Funktion im Script gemeint ? (Damit mein ich jetzt das ein kleinerer Block aus befehlen kommentiert wird. :wink: )


Topic:
Langsam kommt X2 zu X3...(das Topic hab ich erst jetzt endeckt... :oops: )
Ich weiss was, nämlich das ich nichts weiss, also weiss ich doch was, nämlich das ich nichts weiss! :goner:

...während sie gerade den Anfang der Schlacht beobachten, kenne ich bereits den Schlussakt. [Kane]

User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike » Wed, 8. Mar 06, 22:44

Raumfliegenjäger wrote:Was ist damit eigentlich gemeint?
Sind damit Kommentare zu jeder Funktion im Script gemeint ? (Damit mein ich jetzt das ein kleinerer Block aus befehlen kommentiert wird. :wink: )
Das Gegenteil. :|

Code: Select all

022   $TotalNumClients = 0
023 @ $AllBigShips = [THIS] -> call script 'lib.rv.get.race.ships.stations' :  Race=null  Class or Type=Big Ship  Add to array=null
024 @ = wait 200 ms
025   $ShipIndex =  size of array $AllBigShips
026   skip if not $al.State[$AL.STATE.DEBUG]
027    write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Iterating through all universe capital ships...', null, null, null, null, null
028   while $ShipIndex
029    dec $ShipIndex = 
030    $Ship = $AllBigShips[$ShipIndex]
031    skip if $Ship -> exists
032     continue
033    $Ship.Class = $Ship -> get object class
034    if $Ship.Class != Large Transport TL AND $Ship.Class != Cruiser M6
035     $Ship.Sector = $Ship -> get sector
036     $Ship.Owner = $Ship -> get owner race
037     $Ship.Homeyard =  find station in galaxy: startsector=$Ship.Sector class or type=Big Shipyard race=$Ship.Owner flags=[Find.Nearest] refobj=$Ship serial=null max.jumps=10
038     if $Ship.Owner != Xenon AND $Ship.Owner != Khaak AND $Ship.Owner != Player AND $Ship.Homeyard
039      inc $TotalNumClients = 
040      skip if not $al.State[$AL.STATE.DEBUG]
041       write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Servicing %s in sector %s from shipyard %s', $Ship, $Ship.Sector, $Ship.Homeyard, null, null
042      $Homeyard.Templist = $Ship.Homeyard -> get local variable: name=$SHIPYARD.TENDER.TEMPLIST.VARID
043      if not $Homeyard.Templist
044       $Homeyard.Templist =  array alloc: size=0
045       $Ship.Homeyard -> set local variable: name=$SHIPYARD.TENDER.TEMPLIST.VARID value=$Homeyard.Templist
046      end
047      append $Ship to array $Homeyard.Templist
048      $PoofMunitions = [FALSE]
049     else if $Ship.Owner == Xenon OR $Ship.Owner == Khaak
050   *           Poof
051      $PoofMunitions = [TRUE]
052      skip if not $al.State[$AL.STATE.DEBUG]
053       write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Not servicing %s in %s with tender', $Ship, $Ship.Sector, null, null, null
054     else
055      continue
056     end
057     $WeaponsAdded = $Ship -> get local variable: name=$SHIP.WEAPONS.ADDED.VARID
058     if not $WeaponsAdded
059      skip if not $al.State[$AL.STATE.DEBUG]
060       write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Adding default weapons to %s', $Ship, null, null, null, null
061 @    = [THIS] -> call script 'al.tenders.lib.add.weapons' :  ship=$Ship  Add Munitions=$PoofMunitions
062      $Ship -> set local variable: name=$SHIP.WEAPONS.ADDED.VARID value=[TRUE]
063     end
064    end
065   end
066 @ = wait 200 ms
067   
068   skip if not $al.State[$AL.STATE.DEBUG]
069    write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Iterating through all universe large shipyards', null, null, null, null, null
070 @ $AllShipyards = [THIS] -> call script 'lib.rv.get.race.ships.stations' :  Race=null  Class or Type=Big Shipyard  Add to array=null
071 @ = wait 200 ms
072   $TenderList =  array alloc: size=0
073   $ShipyardIndex =  size of array $AllShipyards
074   while $ShipyardIndex
075    dec $ShipyardIndex = 
076    $Shipyard = $AllShipyards[$ShipyardIndex]
077    skip if $Shipyard -> exists
078     continue
079    $Shipyard.ClientList = $Shipyard -> get local variable: name=$SHIPYARD.TENDER.TEMPLIST.VARID
080    if $Shipyard.ClientList
081     skip if not $al.State[$AL.STATE.DEBUG]
082      write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Shipyard %s has %s clients', $Shipyard, $NumClients, null, null, null
083     $NumClients =  size of array $Shipyard.ClientList
084     $Shipyard.OldClientList = $Shipyard -> get local variable: name=$SHIPYARD.TENDER.CLIENTLIST.VARID
085     if $Shipyard.OldClientList
086      resize array $Shipyard.OldClientList to $NumClients
087      dec $NumClients = 
088      copy array $Shipyard.ClientList index 0 ... $NumClients into array $Shipyard.OldClientList at index 0
089     else
090      $Shipyard -> set local variable: name=$SHIPYARD.TENDER.CLIENTLIST.VARID value=$Shipyard.ClientList
091     end
092     $Shipyard -> set local variable: name=$SHIPYARD.TENDER.TEMPLIST.VARID value=null
093     $Shipyard.Tender = $Shipyard -> get local variable: name=$SHIPYARD.TENDER.VARID
094     $Tender.Exists = $Shipyard.Tender -> exists
095     if $Tender.Exists
096      $Tender.Owner = $Shipyard.Tender -> get owner race
097      $Tender.OriginalOwner = $Shipyard.Tender -> get local variable: name='OriginalOwner'
098     end
099     if $Tender.Exists AND $Tender.Owner == $Tender.OriginalOwner
100      append $Shipyard.Tender to array $TenderList
101     else
102      $Shipyard.Owner = $Shipyard -> get owner race
103      if $Shipyard.Owner == Argonen
104       $Shipyard.Tender =  create ship: type=Argon Merkur owner=Argonen addto=$Shipyard x=null y=null z=null
105      else if $Shipyard.Owner == Boronen
106       $Shipyard.Tender =  create ship: type=Boron Delphin owner=Boronen addto=$Shipyard x=null y=null z=null
107      else if $Shipyard.Owner == Split
108       $Shipyard.Tender =  create ship: type=Split Kaiman owner=Split addto=$Shipyard x=null y=null z=null
109      else if $Shipyard.Owner == Paraniden
110       $Shipyard.Tender =  create ship: type=Paranid Demeter owner=Paraniden addto=$Shipyard x=null y=null z=null
111      else if $Shipyard.Owner == Teladi
112       $Shipyard.Tender =  create ship: type=Teladi Geier owner=Teladi addto=$Shipyard x=null y=null z=null
113      end
114      if $Shipyard.Tender
115       $Shipyard -> set local variable: name=$SHIPYARD.TENDER.VARID value=$Shipyard.Tender
116       $Shipyard.Tender -> set local variable: name='OriginalOwner' value=$Shipyard.Owner
117       append $Shipyard.Tender to array $TenderList
118       $Shipyard.Tender -> set race logic control enabled to [FALSE]
119       $Shipyard.Tender -> set StartAction enabled to [FALSE]
120       $Shipyard.Tender -> add default items to ship
121       $Shipyard.Tender -> set local variable: name='Tender.Home' value=$Shipyard
122   *$Shipyard.Tender -> set homebase to $Shipyard
123       $Shipyard.Tender -> connect ship command/signal SIGNAL_CAPTURED to script 'al.tenders.lib.signal.killed' with prio 300
124       $Shipyard.Tender -> connect ship command/signal SIGNAL_KILLED to script 'al.tenders.lib.signal.killed' with prio 10000
125       $MaxSpeedUpgrades = $Shipyard.Tender -> get max upgrades for upgrade Triebwerkstuning
126       $Tmp.Amount = $Shipyard.Tender -> get amount of ware Triebwerkstuning in cargo bay
127       $MaxSpeedUpgrades = $MaxSpeedUpgrades - $Tmp.Amount
128       = $Shipyard.Tender -> install $MaxSpeedUpgrades units of Triebwerkstuning
129       = $Shipyard.Tender -> install 1 units of Transporter
130       $Shipyard.Sector = $Shipyard -> get sector
131       $Shipyard.X = $Shipyard.Sector -> get universe x index
132       $Shipyard.Y = $Shipyard.Sector -> get universe y index
133       $ShipName = sprintf: pageid=$PageID textid=1201, $Shipyard.Owner, $Shipyard.X, $Shipyard.Y, null, null
134       $Shipyard.Tender -> set name to $ShipName
135 @     START $Shipyard.Tender -> call script 'al.tenders.dotend' :  Plugin ID=$al.PluginID  AL state data=$al.State
136       skip if not $al.State[$AL.STATE.DEBUG]
137        write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Created %s at %s', $Shipyard.Tender, $Shipyard, null, null, null
138 @     = wait 30 ms
139      else
140       skip if not $al.State[$AL.STATE.DEBUG]
141        write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- !!ERROR!! Tried and failed to create a tender at %s', $Shipyard, null, null, null, null
142      end
143     end
144    end
145   end
146   $NumTenders =  size of array $TenderList
147   $TenderStateArray = $al.State[$AL.STATE.TENDERARRAY]
148   skip if  size of array $TenderStateArray
149    append null to array $TenderStateArray
150   resize array $TenderStateArray to $NumTenders
151   dec $NumTenders = 
152   copy array $TenderList index 0 ... $NumTenders into array $TenderStateArray at index 0
153   skip if not $al.State[$AL.STATE.DEBUG]
154    write to log file #$PageID  append=[TRUE]  printf: fmt='TEND- Timer event complete - servicing %s clients with %s tenders', $TotalNumClients, $NumTenders, null, null, null
155   return null
Image

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Wed, 8. Mar 06, 23:06

Danke für das Lob Lucike... Ich find es übersichtlicher und ausserdem hab ich es ein bisschen mit dem Gedächtniss :roll: . Wenn ich mir mein Script in einer Woche ansehe, möchte ich auch sofort verstehen was es treibt. Ausserdem siehts viel besser aus. Ich werde den Stationsverwalter in ein paar Tagen noch mal ändern (Preis und paar kleine Fehler)... Gruss triple81

Naffarin
Posts: 481
Joined: Sat, 3. Dec 05, 09:49
x3

Post by Naffarin » Wed, 8. Mar 06, 23:14

*hüstel* ich find den Code absolut unleserlich, ehrlich gesagt, und ich denke, daß Lucike das eher sarkastisch gemeint hat, wenn ich mal seinen Code mit obigem Skript vergleiche.

Würdest du bitte mal ausprobieren, den Code eine Woche lang überhaupt nicht anzusehen, möglichst ein anderes Skript zu programmieren, und dann nochmal in den Code dieses Skripts reinschaust...ich möchte mal wissen, ob du dann noch verstehst, was du dort geschrieben hast :)

User avatar
triple81
Posts: 438
Joined: Thu, 17. Nov 05, 20:13
x3

Post by triple81 » Wed, 8. Mar 06, 23:25

@Naffarin

Das ist nicht mein Code !!!



Das ist meiner...


Arguments
Source Text

001 * Werte setzen
002 $ScriptTestVerwalter = [THIS] -> get local variable: name=$IsOnStackVerwalter0
003 $ScriptTestVerwalter1 = [THIS] -> get local variable: name=$IsOnStackVerwalter1
004 $LohnAbrechnungsZeit = playing time
005 load text: id=8814
006 $PageID = 997
007 $Startgebuehr = 2755000
008 $NachrichtSenden = 0
009 $StationID = [THIS] -> get ID code
010
011 * Pruefen ob Script schon auf Station laeuft/beenden
012 if $ScriptTestVerwalter == $StationID
013 [THIS] -> set local variable: name=$IsOnStackVerwalter0 value=null
014 [THIS] -> interrupt with script 'plugin.tx.stationspreisverwalter' and prio 0: arg1=null arg2=null arg3=null arg4=null
015 goto label Exit
016 end
017
018 if $ScriptTestVerwalter1 == $StationID
019 [THIS] -> set local variable: name=$IsOnStackVerwalter1 value=null
020 [THIS] -> interrupt with script 'plugin.tx.stationspreisverwalter2' and prio 0: arg1=null arg2=null arg3=null arg4=null
021 goto label Exit
022 end
023
024 * Startgebuehr von Station einziehen
025 $StationsKontoStand = [THIS] -> get money
026
027 if $StationsKontoStand < $Startgebuehr
028 $StationName = [THIS] -> get name
029 $NachrichtenText = sprintf: pageid=$PageID textid=502, $StationName, $Startgebuehr, null, null, null
030 send incoming message $NachrichtenText to player: display it=[TRUE]
031 goto label Exit
032 end
033
034 $Startgebuehr = $Startgebuehr - $Startgebuehr - $Startgebuehr
035 [THIS] -> add money: $Startgebuehr
036
037 * Local
038 [THIS] -> set local variable: name=$IsOnStackVerwalter1 value=$StationID
039
040 * Nachricht an Spieler senden
041 $StationName = [THIS] -> get name
042 $NachrichtenText = sprintf: pageid=$PageID textid=503, $StationName, $StationName, null, null, null
043 send incoming message $NachrichtenText to player: display it=[TRUE]
044
045 * Daten vorbereiten
046 while 5 + 5 == 10
047 $ArrayHandelbareWare = [THIS] -> get tradeable ware array from station
048 $Sprungreichweite = [THIS] -> get max trade jumps
049 $SchleifenZaehler = 0
050 $SchleifenEnde = size of array $ArrayHandelbareWare
051
052 * Verarbeite alle Waren der Station
053 while $SchleifenZaehler < $SchleifenEnde
054
055 * Werte setzen
056 $AktuelleWare = $ArrayHandelbareWare[$SchleifenZaehler]
057 $WarePreisAlt = [THIS] -> get price of ware $AktuelleWare
058 $Sektor = [THIS] -> get sector
059 $MinPreis = get min price of ware $AktuelleWare
060 $MaxPreis = get max price of ware $AktuelleWare
061
062 * Feststellen ob Ware Ressource/Produkt ist
063 $WareIstProdukt = [THIS] -> uses ware $AktuelleWare as product
064 $WareIstRessource = [THIS] -> uses ware $WareIstRessource as primary resource
065
066 * Finde Station mit bestem Einkaufspreis (abhaengig von Sprungreichweite)
067 if $WareIstProdukt == 1
068 $StationMitBestemPreis = find station: resource $AktuelleWare with best price: min.price=$MinPreis, amount=1, max.jumps=$Sprungreichweite, startsector=$Sektor, trader=[THIS]
069 goto label Weiter
070 end
071
072 * Finde Station mit bestem Verkaufspreis (abhaengig von Sprungreichweite)
073 if $WareIstRessource == 1
074 $StationMitBestemPreis = [THIS] -> find station: product $AktuelleWare with best price: max.price=$MinPreis, amount=10, max.jumps=$Sprungreichweite, startsector=$Sektor, trader=[THIS]
075 end
...
...
...
...

Gruss tripe81

User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike » Thu, 9. Mar 06, 00:38

triple81 wrote:@Naffarin

Das ist nicht mein Code !!!
Stimmt, war nur ein Vergleich zu triple's Code. Jetzt habe ich den Verfasser des interessanten Codes bestimmt auf die Füsse getreten. :|

Frau: "Wie war das Essen, Schatz?"
Mann: "Interessant"

:D

Triple, bleib dran. Denke auch an die, die gerade ihre erste Mine aufgebaut haben und nicht so flüssig sind. ;)

Gruß
Lucike
Image

Post Reply

Return to “X³: Reunion - Scripts und Modding”