nicht-menschliche Spieler im Script bearbeiten - Druckversion +- Deutsches Simutransforum (https://simutrans-forum.de/mybb) +-- Forum: Simutrans (https://simutrans-forum.de/mybb/forumdisplay.php?fid=3) +--- Forum: Wie spiele ich Simutrans? (https://simutrans-forum.de/mybb/forumdisplay.php?fid=6) +---- Forum: Szenarien (https://simutrans-forum.de/mybb/forumdisplay.php?fid=7) +---- Thema: nicht-menschliche Spieler im Script bearbeiten (/showthread.php?tid=7147) |
nicht-menschliche Spieler im Script bearbeiten - ny911 - 02-02-2013 Zitat:Original von Dwachs 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. RE: nicht-menschliche Spieler im Script bearbeiten - Dwachs - 02-02-2013 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. - ny911 - 02-02-2013 Zitat:komplett zu liquidierenWenn man dafür ein Befehl zur sofortigen Ausführung geben könnte, wäre es super. - ny911 - 05-02-2013 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. - Dwachs - 05-02-2013 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. - Dwachs - 07-02-2013 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. - ny911 - 07-02-2013 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. - Dwachs - 17-02-2013 In r 6333 kann man mit world.remove_player einen Spieler killen. |