Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Szenarios fuer Simutrans
#51
Danke fuers Testen Smile

Kannst du mal das Savegame hochladen? Dann koennte man mal ueberlegen, wie man die Eingangslager der Fabriken einstellen koennte.

Hast du Interesse das Wilderland-Scenario zu skripten?

Hier ist so eine Art Online-Dokumentation der Skript-Geschichte:

http://dwachs.github.com/simutrans-sqapi-doc/index.html

(work in progress...)
Zitieren
#52
Selling cloth

Der Schlüssel ist die Stahl/Konserven Produktion.
Hier ergeben sich auf der Hauptstrecke interessante (und extrem schwer zu lösende) Probleme mit den Geschwindigkeiten der verschiedenen Züge (anders als in Wilderland war ich mir hier bis zum Schluss nicht sicher welches die besten Fahrzeugkombinationen sind).
Ein Verkleinern der Eingangslager allein wird wahrscheinlich auch nicht reichen, denn wie man erkennen kann, sammeln sich die Konserven am Coventry Wald Bahnhof. Ich hatte zuviele Schiffe losfahren lassen und konnte die Konserven nicht rechtzeitig abtransportieren, aber da weiter über diesen Punkt geliefert wird, ist das egal.
Alternativ könnte man eine Zwischenbedingung einbauen, dass man eine bestimmte Menge an Konserven nach London geliefert haben muss.
Dass man vorher aber deutlich mehr Stahl liefern kann, als benötigt wird, bekommt man dadurch nicht in den Griff.
Egal was man sich hier aber ausdenkt, das geschickte Legen der Schienen in den Bergen wird wahrscheinlich das wichtigste Spielelement bleiben.

Zitat:Hast du Interesse das Wilderland-Scenario zu skripten?

Wenn ich dafür Sqirrel lernen muss, nicht sehr realistisch.
Wenn ich dagegen die Zielbedingungen und Einschränkungen für einzelne Abschnitte festlegen und kreieren soll, könnte ich mir das gut vorstellen.

Die interessantest Frage ist dabei folgende:
So wie das Szenario im Moment festgelegt ist, gibt es so etwas wie einen optimalen Spielverlauf (und der Autor des Szenarios macht dabei einen Fehler bei seiner Lösung).
Soll man den Spieler durch die weiteren Bedingungen behindern (und so zum Beispiel zur Spielweise des Autors führen), oder ihm eher helfen, den richtigen Weg zu finden.
Im sell clothing Szenario wird einem eher geholfen, liegt vielleicht aber auch daran, dass es hier grundsätzlich weniger Optionen gab. Für den richtigen Weg in Wilderland hatte ich deutlich länger gebraucht.

Kann ich grundsätzlich alle Parameter für das Skript einsetzen, die im Spiel eine Rolle spielen, oder gibt es dabei Beschränkungen ?
Zitieren
#53
Zitat:Original von partyschreck
Selling cloth
Zitat:Hast du Interesse das Wilderland-Scenario zu skripten?

Wenn ich dafür Sqirrel lernen muss, nicht sehr realistisch.
Wenn ich dagegen die Zielbedingungen und Einschränkungen für einzelne Abschnitte festlegen und kreieren soll, könnte ich mir das gut vorstellen.
Kannst ja beim sell-cloting script abgucken Wink Dort wird eine Variable persistent.stage mitgefuehrt, die die aktuelle Etappe speichert. Squirrel ist auch nicht so schwer zu lesen. Guck dir auch mal die anderen Szenario-Skripte an (die pak64-er sind eigentlich einfach gestrickt).

Ich waere schon froh, wenn du Regeln und Story designen koenntest. Die Umsetzung als Skript kann ich dann begleitend machen.

Zitat:Die interessantest Frage ist dabei folgende:
[...]
Grundsaetzlich hast du alle Freiheiten, wie das Szenario gestaltet werden soll. Denk dir eine schoene Story aus. Der Orginalpost von Severous kann (muss aber nicht!) als Vorlage dienen. Du hast das ja durchgespielt und weisst, was schwierig/einfach war bzw was deine 'Loesung' ist.

Zitat:Kann ich grundsätzlich alle Parameter für das Skript einsetzen, die im Spiel eine Rolle spielen, oder gibt es dabei Beschränkungen ?

Welche Parameter willst du denn einsetzen/ abfragen/ veraendern?
Zitieren
#54
Zitat:Welche Parameter willst du denn einsetzen/ abfragen/ veraendern?

Zunächst hatte ich an die Warenmengen gedacht, die die Betriebe erhalten, z.B.:
Sorge dafür, dass der Lebensmittelmarkt 1000 Paletten Lebensmittel im Monat erhält.
Aber wenn ich mir hier weitere Gedanken mache, weiß ich nicht, was mir noch einfällt.
Wichtig scheint es mir oft, dass man bestimmte Dinge tun muss, um andere Dinge erledigen zu können (wie die Brücke in selling cloth, auch wenn mir die unbedeutend schien).
Zitieren
#55
Zitat:Original von partyschreck
Zunächst hatte ich an die Warenmengen gedacht, die die Betriebe erhalten, z.B.:
Sorge dafür, dass der Lebensmittelmarkt 1000 Paletten Lebensmittel im Monat erhält.
Das ist relativ einfach:
Code:
if (factory_x(12,34).input.food.received[0] <= 1000)  {
   // zu wenig
}
Fuer (12,34) muss die Position der Fabrik eingesetzt werden. Das 'food' muss noch durch den internen Objekt-Namen der entsprechenden Ware ersetzt werden.
Zitieren
#56
Zitat:Das ist relativ einfach:

code:

1:
2:
3:
4:

if (factory_x(12,34).input.food.received[0] <= 1000) {
// zu wenig
}


Schwieriger ist für mich da auf jeden Fall die Einordnung in die Programmstruktur zu verstehen.


Zitat:Squirrel ist auch nicht so schwer zu lesen.

Ja, das Lesen geht schon, aber einen fertigen Code zu formulieren ist etwas völlig anderes, vor allem wenn man keine Erfahrungen mit Programmiersprachen hat.
Ich werde versuchen, alles soweit fertig zu machen wie möglich und auch alle Zuordnungen schon überdenken, aber die letzte Übersetzung würde ich gerne dir überlassen.
Das Grundgerüst meines Skripts ist übrigens schon fertig (alle Werte schon festgelegt).
Ich werde noch alle Texte für die entsprechenden Etappen ausformulieren.
Warum sind hier eigentlich manche in Ordnern gespeichert und andere tauchen direkt im Programmcode auf ?

Mit folgenden Bedingungen werde ich arbeiten: (funktioniert das alles ?)
- U-Bahnen in Wolverhamton sind im ganzen Spiel verboten.
- von einem Betrieb müssen in jedem Monat eine bestimmte Anzahl von Passagieren abfahren (geschieht das nicht, nimmt der Baumarkt im darauffolgenden Monat keine Waren an.)
- in jedem Monat muss eine bestimmte Menge an Lebensmitteln geliefert werden (Konsequenzen wie vorher). Der Wert ändert sich an einer Stelle im Szenario.
- in einigen Fällen ist die Gesamtmenge einer Warenart, die angeliefert wurde, entscheidend (monatsübergreifend) für das Vorankommen. Diese landen aber nicht im Lager, sondern werden direkt verbraucht.
- die Stahlmühle und die drei entfernten Sägemühlen liefern erst ab bestimmten Etappen.
- Am Schluss gilt es, wie im "Originalskript" die Warenmengen (Stahl+Lebensmittel+Bretter) zu addieren. Es muss eine bestimmte Menge in einem Monat geliefert werden, und alle Mühlen müssen geliefert haben (nicht unbedingt alle in einem Monat).

Die Spieldauer kann ich noch nicht so gut einschätzen, denn es wird etwas schwieriger werden als das Originalszenario. Wahrscheinlich sind auch hier 10 Jahre ein ganz guter Wert, den auch jeder schaffen kann.
Ich mache die Texte fertig und versuche das ganze so gut zu ordnen wie es geht.
Zitieren
#57
Zitat:Original von partyschreck
Ich werde noch alle Texte für die entsprechenden Etappen ausformulieren.
Warum sind hier eigentlich manche in Ordnern gespeichert und andere tauchen direkt im Programmcode auf ?
Im Code tauchen nur die kurzen Texte auf (Fehlermeldungen, oder "Nicht erlaubt"), fuer die groesseren Texte, die im Infofenster angezeigt werden, koennen extra Dateien erstellt werden.
Zitat:Original von partyschreck
Mit folgenden Bedingungen werde ich arbeiten: (funktioniert das alles ?)
- U-Bahnen in Wolverhamton sind im ganzen Spiel verboten.
- von einem Betrieb müssen in jedem Monat eine bestimmte Anzahl von Passagieren abfahren (geschieht das nicht, nimmt der Baumarkt im darauffolgenden Monat keine Waren an.)
- in jedem Monat muss eine bestimmte Menge an Lebensmitteln geliefert werden (Konsequenzen wie vorher). Der Wert ändert sich an einer Stelle im Szenario.
- in einigen Fällen ist die Gesamtmenge einer Warenart, die angeliefert wurde, entscheidend (monatsübergreifend) für das Vorankommen. Diese landen aber nicht im Lager, sondern werden direkt verbraucht.
- die Stahlmühle und die drei entfernten Sägemühlen liefern erst ab bestimmten Etappen.
- Am Schluss gilt es, wie im "Originalskript" die Warenmengen (Stahl+Lebensmittel+Bretter) zu addieren. Es muss eine bestimmte Menge in einem Monat geliefert werden, und alle Mühlen müssen geliefert haben (nicht unbedingt alle in einem Monat).
Klingt doch gut Smile

Tunnel / U-Bahnen koennen verboten werden.

Anstelle dieser Produktionseinschraenkungen koennte man ja dem Spieler Strafe aufbrummen und Geld abknoepfen (als Vertragsstrafe)

Waren landen nicht im Lager sondern werden direkt verbraucht: Ist nicht implementiert sollte aber gehen mit wenig Aufwand.

Fabriken liefern erst ab bestimmten Etappen: Hier koennte man die Verknuepfungen loeschen und erst ab erreichen einer bestimmten Bedingung diese Fabriken wieder vertraglich verknuepfen.
Zitieren
#58
Ich habe noch eine Frage zu den Inputwerten.
Was wird denn da gezählt ?
In den Statistiken tauchen Monatswerte auf, daher vermute ich, dass man mit diesen Werten problemlos arbeiten kann.
Ist das Programm in der Lage die Gesamtmenge einer oder mehrere Warenarten zu berechnen, die ein Betrieb erhalten hat ?

Zitat:Anstelle dieser Produktionseinschraenkungen koennte man ja dem Spieler Strafe aufbrummen und Geld abknoepfen (als Vertragsstrafe)

Ja, mache ich so, lässt sich auch in der Story besser verkaufen und erhöht die Pleitegefahr (ist schließlich die einzige Verlsumöglichkeit in meinem Konzept).

Zitat:Waren landen nicht im Lager sondern werden direkt verbraucht: Ist nicht implementiert sollte aber gehen mit wenig Aufwand.

Ist nicht nötig, es ging um Waren, die direkt verbraucht werden und ich wollte nur wissen, ob die gezählt werden können.
Die Frage war aber überflüssig, denn ich finde diese Werte ja sogar in den Statistiken.

Zitat:Fabriken liefern erst ab bestimmten Etappen: Hier koennte man die Verknuepfungen loeschen und erst ab erreichen einer bestimmten Bedingung diese Fabriken wieder vertraglich verknuepfen.

Ich dachte daran, dass man die Lager dieser Betriebe für diesen Zeitraum als überfüllt definiert, habe meine Story jetzt aber der Vertragslösung angepasst.
In diesem Fall müssen allerdings zusätzlich die Lager der Sägewerke begrenzt werden. Langholz : 5000 und Bretter : 3000 sollten reichen.
(oder man streicht auch die Veträge zwischen den entfernten Sägewerken und den Wäldern).
Zitieren
#59
Zitat:Original von partyschreck
Ich habe noch eine Frage zu den Inputwerten.
Was wird denn da gezählt ?
Es sind die Zahlen, die man auch in dem Fabrikfenster sieht.
Siehe Dokumentation hier: http://dwachs.github.com/simutrans-sqapi-doc

Zitat:Ist das Programm in der Lage die Gesamtmenge einer oder mehrere Warenarten zu berechnen, die ein Betrieb erhalten hat ?
Ja. In etwa so
Code:
local summe =0
foreach(slot in input) { // Schleife ueber alle Eingangs-Gueter
summe+=  slot.received[0] // summe ueber aktuellen Monat
ODER
summe+= slot.received.reduce(sum) // summer ueber alle (12) Monate
}
Zitieren
#60
Hier sind meine Unterlagen, die aber keine Codeform haben.
Kannst mir gerne sagen, ob ich das Ganze neu ordnen soll oder mich anleiten das in Code umzuformen, was aber vermutlich für uns beide mehr Arbeit wird, ich weiß nicht, ob sich das lohnt.
Ich finde die Idee besser, dass ich mir den fertigen Code zu diesem Szenario dann noch einmal in Ruhe angucken werde.


Habe übrigens tramadness gespielt und mich würde sehr interessíeren, mit welch unterschiedlichen Strategien man hier ans Werk gehen konnte.
Hat es jemand gespielt ?


Angehängte Dateien
.txt   regeln.txt (Größe: 2,27 KB / Downloads: 419)
.txt   texte.txt (Größe: 2,94 KB / Downloads: 449)
.txt   infotext.txt (Größe: 1,01 KB / Downloads: 432)
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste