Erweiterte Geldbalancing Software
Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
Erweiterte Geldbalancing Software
Hallo,
ich habe ein Script geschrieben (ok zugegeben es ist eigentlich eine Erweiterung), das das Stationsscript zum automatischen Geldtransfer zum Spielerkonto ersetzt.
Die neue Funktion ist, dass es ein unteres Limit gibt. Wenn die Station zu wenig Geld hat wird automatisch aus dem Spielerkonto Geld an die Station überwiesen.
Wenn nicht genügend Geld auf dem Spielerkonto ist passiert nichts.
Ein Problem gibt es aber noch:
Bei mir ist es bisher so, das in dem Menü dann immernoch der Name des alten Kommandos dasteht. Wenn man es auswählt dann kann man das Untere Limit auch einstellen. Danach steht bei der im Kommandomenü "Unknown Command"
Funktionieren tut es trotzdem. Kann mir jemand ein Tipp geben wie ich das fixen kann?
ich habe ein Script geschrieben (ok zugegeben es ist eigentlich eine Erweiterung), das das Stationsscript zum automatischen Geldtransfer zum Spielerkonto ersetzt.
Die neue Funktion ist, dass es ein unteres Limit gibt. Wenn die Station zu wenig Geld hat wird automatisch aus dem Spielerkonto Geld an die Station überwiesen.
Wenn nicht genügend Geld auf dem Spielerkonto ist passiert nichts.
Ein Problem gibt es aber noch:
Bei mir ist es bisher so, das in dem Menü dann immernoch der Name des alten Kommandos dasteht. Wenn man es auswählt dann kann man das Untere Limit auch einstellen. Danach steht bei der im Kommandomenü "Unknown Command"
Funktionieren tut es trotzdem. Kann mir jemand ein Tipp geben wie ich das fixen kann?
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
Also, ihr könnt das Script mal unter:
http://www.wellisolutions.de/Ext.Moneybalance.zip runterladen
Einfach in den Scriptordner entpacken, und dann in einer Station in der Kommandokonsole den Automatischen Geldtransfer auswählen und Oberes und Unteres Limit eingeben.
Wenn das Untere Limit erreicht wird füllt das Script wieder bis zum Oberen Limit auf.
http://www.wellisolutions.de/Ext.Moneybalance.zip runterladen
Einfach in den Scriptordner entpacken, und dann in einer Station in der Kommandokonsole den Automatischen Geldtransfer auswählen und Oberes und Unteres Limit eingeben.
Wenn das Untere Limit erreicht wird füllt das Script wieder bis zum Oberen Limit auf.
-
- Posts: 5293
- Joined: Wed, 6. Nov 02, 20:31
Soll das denn nicht anders herum sein?
Also soll denn nicht eigentlich wenn das obere Limit erreicht wurde das Geld zum unteren Limit abgezogen werden? Denn anders herum macht es doch überhaupt keinen Sinn.. denn dann würdest du ja potenziellen Verlust machen.
Also soll denn nicht eigentlich wenn das obere Limit erreicht wurde das Geld zum unteren Limit abgezogen werden? Denn anders herum macht es doch überhaupt keinen Sinn.. denn dann würdest du ja potenziellen Verlust machen.
Wer nicht vergessen kann, der wird vergessen.
06.11.2002 - 27.05.2011
06.11.2002 - 27.05.2011
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
Also,
momentan funktioniert das so:
Angenommen du hast eine Erzmine, die braucht Energiezellen, Einkaufspreis sind 9 Cr. Also setzt man das Obere Limit auf 45.000 und das Untere auf beispielsweise 15.000 Cr.
Wenn jetzt die Erzmine viele Energiezellen kauft, hat sie irgendwann noch 15.000 Cr, dann werden vom Spielerkonto 30.000 Cr zu der Station transferiert.
Wenn die Erzmine dann aber Erz verkauft hat sie 60.000 Cr und es wird das überschüssige Geld an den Spieler überwiesen. Also 15.000 Cr
Man macht damit keinen Verlust, sondern sorgt dafür, dass die Fabrik immer genügend Geld hat und immer Ressourcen kaufen kann.
Ich finde das auch besonders wichtig bei Fabriken die für den Spieler als Endverbraucher produzieren. Beispielsweise eine 25MW Schildfabrik oder eine Munitionsfabrik, weil diese ja nie etwas verkaufen werden.
(und mit denen macht man ja bewusst Verlust)
momentan funktioniert das so:
Angenommen du hast eine Erzmine, die braucht Energiezellen, Einkaufspreis sind 9 Cr. Also setzt man das Obere Limit auf 45.000 und das Untere auf beispielsweise 15.000 Cr.
Wenn jetzt die Erzmine viele Energiezellen kauft, hat sie irgendwann noch 15.000 Cr, dann werden vom Spielerkonto 30.000 Cr zu der Station transferiert.
Wenn die Erzmine dann aber Erz verkauft hat sie 60.000 Cr und es wird das überschüssige Geld an den Spieler überwiesen. Also 15.000 Cr
Man macht damit keinen Verlust, sondern sorgt dafür, dass die Fabrik immer genügend Geld hat und immer Ressourcen kaufen kann.
Ich finde das auch besonders wichtig bei Fabriken die für den Spieler als Endverbraucher produzieren. Beispielsweise eine 25MW Schildfabrik oder eine Munitionsfabrik, weil diese ja nie etwas verkaufen werden.
(und mit denen macht man ja bewusst Verlust)
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
Hat das eigentlich mal jemand ausprobiert? Funktionierts wenigstens so wie ich gesagt hab? So ganz ohne Feedback (ok, einer hat ja schonmal was gesagt) ist das ein bissl blöd.... Und ja es gibt schon viele Geldbalancing Scripts und so. Nur baut meins eben mal nicht auf dem Schiffscomputer sondern auf der Kommandokonsole der Stationen auf...
-
- Posts: 479
- Joined: Wed, 4. Feb 04, 17:45
Soweit ich das sehen kann, funktioniert das Script so wie es soll 
Natürlich gibt es viele solcher Scripts und mit 1.4 kommt eines mit (das allerdings nur abbuchen kann...). Aber du hättest nun die Chance, dein Script deutlich von den Standartscript abzuheben.
Ein Beispiel:
Du schreibst in eine lokale Variable additiv den transferwert.
$station.gain beispielsweise ($loc.station.gain).
Kommt was rein, subtrahierst du es von $station.gain, gibt die Fabrik Geld auf das Spielerkonto ab, addierst du es zu $station.gain.
Nun kannst du einen Spezialbefehl erstellen. Wenn man den aufruft, muss man eine Spielerfabrik angeben. Der Befehl macht nichts anderes, als von DIESER Fabrik die lokale Variable $station.gain abzurufen - und schon hast du eine Gewinnübersicht.
Ein weiteres Beispiel:
Zusätzlich schreibst du die Gamezeit zum Scriptstart in eine lokale Variable namens station.tos (time of start). Nun kannst du zusätzlich noch die Information liefern, über welchen Zeitraum $station.gain erwirtschaftet wurde.
Das gibt wiederum Futter für einen weiteren Befehl - der tut nichts anderes, als bei der ausgewählten Station station.tos und station.gain zu löschen und somit die Statistik zu reinitialisieren.
...

Natürlich gibt es viele solcher Scripts und mit 1.4 kommt eines mit (das allerdings nur abbuchen kann...). Aber du hättest nun die Chance, dein Script deutlich von den Standartscript abzuheben.
Ein Beispiel:
Du schreibst in eine lokale Variable additiv den transferwert.
$station.gain beispielsweise ($loc.station.gain).
Kommt was rein, subtrahierst du es von $station.gain, gibt die Fabrik Geld auf das Spielerkonto ab, addierst du es zu $station.gain.
Nun kannst du einen Spezialbefehl erstellen. Wenn man den aufruft, muss man eine Spielerfabrik angeben. Der Befehl macht nichts anderes, als von DIESER Fabrik die lokale Variable $station.gain abzurufen - und schon hast du eine Gewinnübersicht.
Ein weiteres Beispiel:
Zusätzlich schreibst du die Gamezeit zum Scriptstart in eine lokale Variable namens station.tos (time of start). Nun kannst du zusätzlich noch die Information liefern, über welchen Zeitraum $station.gain erwirtschaftet wurde.
Das gibt wiederum Futter für einen weiteren Befehl - der tut nichts anderes, als bei der ausgewählten Station station.tos und station.gain zu löschen und somit die Statistik zu reinitialisieren.
...
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
Äh, das geht über meine Scriptkenntnisse hinaus. Ich finde mein Script halt insofern toll, dass kein Befehlsplatz weggeht oder sowas, es braucht ja auch keine Textdatei oder so. (bisher zumindest nicht, aber bisher wird auch Unknown Command angezeigt, was aber bisher wohl noch keiner ändern kann (oder es ist ein Egoist, der uns an seiner Weisheit nicht teilhaben lässt))
-
- Posts: 479
- Joined: Wed, 4. Feb 04, 17:45
Musst nur fragen ^^.Arsenal wrote:Äh, das geht über meine Scriptkenntnisse hinaus. Ich finde mein Script halt insofern toll, dass kein Befehlsplatz weggeht oder sowas, es braucht ja auch keine Textdatei oder so. (bisher zumindest nicht, aber bisher wird auch Unknown Command angezeigt, was aber bisher wohl noch keiner ändern kann (oder es ist ein Egoist, der uns an seiner Weisheit nicht teilhaben lässt))
Das mit der Textpage ist keine Hexerei. Eine Anleitung findest du hier:
http://www.egosoft.com/x2/forum/viewtopic.php?t=27419
2. Posting, unterhalb von BurnIts Scripteditoraktivierungsprozedur (ich liebe solche deutschen Wörter ^^ )
Allgemein findest du Anleitungen in diesem Thread:
http://www.egosoft.com/x2/forum/viewtopic.php?t=38047
Der ist übrigens oben angepinnt.
Welche Nummern schon belegt sind, kannst du hier nachschlagen:
http://www.egosoft.com/x2/forum/viewtopic.php?t=33680
Am besten reservierst du dir danach gleich eine.
Wenn du danach noch Fragen hast, werden wir dir gerne weiterhelfen

Die Sache mit den lokalen Variablen ist eigentlich ganz simpel - das sind Variablen, die nicht im Script sind, sondern an das Objekt gebunden werden.
Das hat den entschiedenen Vorteil, dass du sie von einem anderen Script aus abfragen kannst - fast wie globale Variablen, aber du musst das Objekt angeben.
(Syntax nur aus'm Kopf...)
Wenn auf einem Schiff 2 Scripte laufen, dann kann das erste Script eine Variabel setzen: [THIS] -> set local var: $loc.var = "HUHU zweites Script"
Die Variabel '$loc.var' wird dadurch an [THIS] genagelt - also an das Objekt, welches das Script ausführt.
Dann kann das zweite Script diese Variable auch genau so leicht lesen $wassagtdenndaserstescript = [THIS] -> get local var: $loc.var
$wassagtdenndaserstescript beinhaltet danach die String "HUHU zweites Script".
Wenn du in deinem Cashflowscript also eine lokale Variabel setzt, dann kann ein zweites Script, diese abrufen, sofern es entweder auf dem Objekt ausgeführt wird (mit [THIS]) oder über das Objekt als Variable verfügt (Ziel wurde vom User beim Scriptstart angegeben ...so wie er nun bei deinem Script den Min/Max Wert angibt (Var/Station owned by Player)).
So können Scripte, oder gleich Objekte miteinander 'reden'. Schiff1 setzt auf Schiff2 die lokale Variabel $loc.action="he du ...machmal!". Das 2. Schiff liest ab und zu diese Variabel ein und schreibt dann in die loc.action der 1. Schiffes: "mach doch selber, du Niete!". Das erste Schiff liest ebenfalls ab und zu seine loc.action und schreibt danach zurück: "ich geb dir gleich du..."
Hoffe, ich habe damit komplette Konfusion geschaffen ^^.
-
- Posts: 12969
- Joined: Sun, 9. May 04, 21:26
@Arsenal
Du kannst dir als Anschauungsmaterial mal die alte (im Zitat) Verwaltungssoftware MK1 anschauen. Sie transferiert auch Geld aufs Spielerkonto, allerdings nur in eine Richtung, da ich damals noch auf eine Signatur aus war. Mittlerweile ist mir das egal, da ich schon seit einiger Zeit ein "Modified"-Spiel spiele. Sie wird sich also noch ändern. Das Anmelden der Stationen geschieht auch über die Stationsslots.
Das ganze ist natürlich ein schönes Übungsprojekt und ich lasse dir erst mal den Vortritt.
Gruß
Lucike
Du kannst dir als Anschauungsmaterial mal die alte (im Zitat) Verwaltungssoftware MK1 anschauen. Sie transferiert auch Geld aufs Spielerkonto, allerdings nur in eine Richtung, da ich damals noch auf eine Signatur aus war. Mittlerweile ist mir das egal, da ich schon seit einiger Zeit ein "Modified"-Spiel spiele. Sie wird sich also noch ändern. Das Anmelden der Stationen geschieht auch über die Stationsslots.
Das ganze ist natürlich ein schönes Übungsprojekt und ich lasse dir erst mal den Vortritt.

Gruß
Lucike

-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
-
- Posts: 12969
- Joined: Sun, 9. May 04, 21:26
Arsenal wrote:Da ist schon das erste Problem: Wenn ich mein Script nicht auf den Befehl von der Alten Credittransfer software lege dann ist mein Script schonmal gar nicht in der Liste zur Auswahl verfügbar. Jemand ne Idee woran das liegt?
Die Frage hast Du eigentlich schon selbst beantwortet.Arsenal wrote:Ich finde mein Script halt insofern toll, dass kein Befehlsplatz weggeht oder sowas, es braucht ja auch keine Textdatei oder so.

Gruß
Lucike

-
- Posts: 662
- Joined: Sat, 21. Feb 04, 04:21
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
-
- Posts: 12969
- Joined: Sun, 9. May 04, 21:26
-
- Posts: 148
- Joined: Tue, 3. Feb 04, 23:28
-
- Posts: 12969
- Joined: Sun, 9. May 04, 21:26
Doch. Dort steht ohne Sprachdatei allerdings "ReadText..." (o.ä.) im Slot-Kanal.Arsenal wrote:Fakt ist aber wenn ich einen anderen Kommandoslot belegen will wird der Befehl nicht in der Kommandokonsole angezeigt.
Hast Du dieses schon beachtet?

http://www.egosoft.com/x2/forum/viewtopic.php?t=60105
Gruß
Lucike
