Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
nicht-menschliche Spieler im Script bearbeiten
#1
Zitat:Original von Dwachs
Die Mauer sollte einem nicht-menschlichem Spieler gehoeren, sonst koennte man da eigene Schienen anschliessen.

Im Berlin Szenario (in Überarbeitung) ist die Mauer momentan noch vom alten Spiel und gehört dem Öffentlichen Spieler. Über sehr viel "forbid_way__tool_rules" - mehr als 250 - habe ich die wichtigsten Mauerteile geschützt (inkl. Untertunneln, erhöhte Wege und Brückenbau). Der tolle Nebeneffekt ist: Man kann keine eigenen Schienen mehr anschließen. Aber selbst wenn, bei einem Tempolimit von 1 für die Mauer macht das kaum Sinn und würde auch nicht zum erreichen des Szenario Ziels führen.

Wenn ich einen nicht-menschlichem Spieler Mauer und später auch die Fahrzeuge 'Grenztruppe' zuordne, habe ich beim Scripten das Problem wie ich diesen Spieler zügig (sofort) entferne. Setze ich diesen über book_cash() bankrott, so verschwindet der Spieler erst nach einiger Zeit und mit Ihm dann automatisch alle Fahrzeuge und Wege. Dann kann der Simutrans-Spieler selber nicht mehr die Mauer abreißen. Ursprungsziel war "tear down this wall" für den Spieler.

Wie entferne ich einen Spieler mit Script-Befehlen sofort?

Wege kann man bis jetzt nur als menschlicher Spieler mit einem Klick auf einem Feld öffentlich machen. Im Script wäre ein vergleichbarer Befehl hilfreich. Eventuell sogar die Option alle Wege die mir (Spieler_X) gehören.
Zitieren
#2
Also am einfachsten waere es, den entsprechenden Spieler komplett zu liquidieren. Also das zu machen, was passiert, wenn er Bankrott ist: alle Schienen & Fahrzeuge verkaufen.
Zitieren
#3
Zitat:komplett zu liquidieren
Wenn man dafür ein Befehl zur sofortigen Ausführung geben könnte, wäre es super.
Zitieren
#4
Habe eben einen Spieler für die "Grenztruppen" und einen für die "Graffiti" im Berlin Szenario ausprobiert. Erster Spieler hat monatliche Ausgaben für die fahrenden Fahrzeuge, letzterer keine Ausgaben, da die Graffiti Bilder als Signale auf öffentlichen Schienen sind. Beim liquidieren der Spieler, beide werden zeitgleich auf einen negativen net_wealth() gesetzt, gibt es einen neuen mir unbekannten Effekt.

Beide Spieler werden als bankrott angezeigt. Der Spieler mit den Grenzfahrzeugen wird nach einem weiteren Monaten liquidiert. Der Graffiti Spieler bleibt aber bestehen als ob nichts sei. Ich hatte eigentlich erwartet das es dort keinen Unterschied geben sollte. Kann es sein das die Liquidation weitere Voraussetzungen hat?

Lasse ich nun das Spiel ein halbes Jahr weiterlaufen wird der Spieler Graffiti ordnungsgemäß wegen Inaktivität und Zahlungsunfähigkeit entfernt.
Zitieren
#5
Kann vielleicht daran liegen, dass der Graffiti-Player nur Signale besitzt, und das dann intern irgendwelche Checks ueberflankt, die annehmen, dass ein Spieler wenigstens Fahrzeuge oder Wege gebaut hat.
Zitieren
#6
Nochmal wegen den Graffiti:

Ist ein Spieler Bankrott und hat Instandhaltungskosten oder Fahrzeuge, dann wird die komplette Karte abgescannt und alles liquidiert.

Ich vermute, dein Graffiti-Player hat nur Signale gesetzt, deswegen keine Instandhaltungskosten, also wird die Karte nicht abgeraeumt. Das gleiche passiert, wenn er nur Wege besitzt, die keinen Unterhalt kosten.
Zitieren
#7
Gut zu wissen. Habe dem Graffiti-Spieler nun ein Bahnhofshaus verpasst. Sollte also dann funktionieren.

Es wäre trotzdem toll, wenn man die Liquidation sofort aufrufen könnte.
Zitieren
#8
In r 6333 kann man mit world.remove_player einen Spieler killen.
Zitieren


Gehe zu:


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