Bemsprobeberechtigter
Beiträge von tsilaicosneknurd
Willkommen in der Transport Fever Community
Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.
Die Registrierung und Nutzung ist selbstverständlich kostenlos.
Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.
Das Team der Transport-Fever Community
-
-
Ja, das feuture habe ich genutzt. Aber scheint wohl vielerseits nicht implementiert zu sein.
Habe nun das erste mal versucht zu starten und das Spiel bleibt im Ladebildschirm hängen bei 2%.
Was könnten übliche Verdächtige sein?ein trace ergab nur, dass der Thread ab und zu mit steam kommuniziert, dateizeigeroperationen finden keine mehr statt.
Commonapi sagt "Thread did not respond to ping. Possible hang detected!"
Auch versucht die Modauswahl .lua-Datei um einige hundert mods zu kürzen, aber es reicht wohl nicht die lange liste zu kürzen oder es sind mehrere einträge pro mod in unterschiedlichen bereichen? jedenfalls scheitert das starten direkt an "terminate called after throwing an instance of 'std::out_of_range'"
es scheint jeder mod tatsächlich 2 mal aufgeführt. ich schreibe mir mal morgen ein skript, dass mir das filtert... :-/ -
Sandwichscheibe
-
Hallo,
nach drei Jahren Pause kehre ich zu TPF2 zurück. Mein Gedächtnis ist nicht mehr das beste und habe bei kurzer Suche keinen passenden Thread gefunden.
Gibt es eine empfohlene Reihenfolge, in der Mods geladen werden sollten? (Abgesehen von in der Beschreibung angegbener Abhängigkeiten, wie Mod von Mod)
Bin gerade am erstellen meiner Modliste, dabei bislang die einzige Idee, zuerst Fahrzeuge/Strecken/Assets und dann Script-Mods (Industrie, Gameplay, etc.)? Oder ist umgekehrt sinnvoller?
Danke und Grüsse -
Affärenende
-
Ich bin gespannt

vor allem auf die Weichen
-
Hemdkragen
-
Zeichenkette
-
nämlich alle die den deutschen Zeichensatz nicht installiert haben, also so ungefähr 95% der Weltbevölkerung
unterstützt Windoof (bzw dessen Dateisysteme) immernoch kein Unicode?
Das Problem (mit falsch benannten Dateien) scheint bei TPF2 weg zu sein. Hat hier der Hersteller nachgebessert, oder sind jetzt alle Modder so diszipüliniert?
-
laufende Signale?

mein tipp, sofern dir das Skripten nicht komplettes neuland sind: schau dir mal die .mdl Dateien von anderen Lichtsignalen in TPF2 an und vergleiche das mal, vielleicht ist es nicht sooo kompliziert.
ich würde mich auf den Bereich "events" fokussieren, sowie auf verwiesene Abschnitte in den .msh Dateien.
-
Nachweiserbringung
(seit 18:27 MEZ ;-))
-
es stürzt zumindest (vorm Laden) nicht mehr ab.
-
Nein nur mit dieser Mod bislang. gibt es bei den Settings unterschiede?
was mir auffällt, in allen anderen Mods (ausser deiner wr200 noch, die den gleichen fehler verursacht (hab nur vergessen das hier zu posten) wird die modutil-klasse wie folgt definiert:
local modutils = global.modutils
bei den bei mir nicht funktionierenden:
local modUtils = require "eatglobal_v2_26"
Zitat~/.local/share/Transport Fever 2/mods> grep -ri --include "mod.lua" modutils ../ | grep require
../dupmods/maikc_wr200_v20_270_2/mod.lua:local modUtils = require "eatglobal_v2_26"
../unused/maikc_et89_2/mod.lua:local modUtils = require "eatglobal_v2_26"
ich versuch bei mir mal es so zu ändern: local modUtils = global.modutils
die steam-variante von wr200 funktioniert allerdings, und hier ist modutils wie folgt definiert:
local global = require "eatglobal_v2_26"
local modutils = global.modutils
mit der Änderung läufts:
Diff
Alles anzeigen--- maikc_et89_2/mod.lua 2020-01-23 21:19:18.000000000 +0100 +++ maikc_et89_2/mod.lua.bak 2020-02-04 18:53:27.180685329 +0100 @@ -1,4 +1,5 @@ -local modUtils = require "eatglobal_v2_26" +local global = require "eatglobal_v2_26" +local modutils = global.modutils local modId = "mc_et89_rep" local modData = { @@ -77,9 +78,9 @@ tags = {"vehicle", "train", "railcar", }, visible = true, }, - settings = modUtils.userSettings.getDefaultSettings(modData), + settings = modutils.userSettings.getDefaultSettings(modData), runFn = function(settings) - modUtils.userSettings.create(modId, modData) + modutils.userSettings.create(modId, modData) end } -end \ No newline at end of file +end -
Erhöhungsfähigkeit
(Erhöhrungsfähigkeit klänge auch lustig)
-
bei DR ET89
Absturz nach Klick auf "load game":
ZitatAlles anzeigeneatglobal: init [/home/pane/.local/share/Transport Fever 2/mods/maikc_baureihe_156_2/res/scripts/eatglobal_v2_26.lua] (Version 2.26)
eatglobal: can not load module 'eatglobal.userSettings'. Message: cannot open /home/pane/.local/share/Transport Fever 2/mods/maikc_baureihe_156_2/res/scripts/eatglobal/userSettings.lua: No such file or directory
error: error: ....local/share/Transport Fever 2/mods/maikc_et89_2/mod.lua:80: attempt to index field 'userSettings' (a nil value)
stack traceback:
[C](-1): __index
....local/share/Transport Fever 2/mods/maikc_et89_2/mod.lua(80): ?
Nach dem Entfernen der genannten Mod stürzt es nicht mehr (an dieser Stelle) ab.
Rückgabewert: 0
Standardfehlerausgabe:
ZitatAlles anzeigenTPF2 Build 27767
CommonAPI2Native: InitDone
GUIBridge_setRenderFn 0x3b88ff0
LUA_SetEventCallback 0x3b88ff0
GUIBridge_setRenderFn 0x4033960
LUA_SetEventCallback 0x4033960
GUIBridge_setModListCallbackFn 0x4033960
TPFLUA_NewLuaState: lua_State* 0x3f01110
GUIBridge_setRenderFn 0x3f01110
LUA_SetEventCallback 0x3f01110
TPFLUA_GC: old lua_State* 0x3b88ff0
TPFLUA_NewLuaState: lua_State* 0x3e2d0c0
GUIBridge_setRenderFn 0x3e2d0c0
LUA_SetEventCallback 0x3e2d0c0
TPFLUA_GC: old lua_State* 0x3f01110
TPFLUA_GC: old lua_State* 0x3e2d0c0
Linux_Detach called
Standardausgabe:
ZitatAlles anzeigenlocale name: * (en_US.utf8)
========================================
Startup at Tue Feb 4 17:56:49 2020
========================================
seed: 1580835409
double buffering: 1
sample buffers: 0
samples: 0 (0)
swap interval: 1
video memory: 6144 MB
============================================================
OpenGL version: 3.2.0 NVIDIA 390.132
Renderer (vendor): Quadro 6000/PCIe/SSE2 (NVIDIA Corporation)
Shading language version: 1.50 NVIDIA via Cg compiler
============================================================
opened device OpenAL Soft
sampling rate: 44100 Hz
commonapi2.init 20200125
CommonAPI2Native: stdout.txt logging enabled
MemoryTool::getCodeSections
TPF2 Build 27767
CommonAPI2Native: InitDone
commonapi2.init: loadTranslationSystem en
GUIBridge_setRenderFn 0x3b88ff0
LUA_SetEventCallback 0x3b88ff0
commonapi2.init 20200125
commonapi2.init: loadTranslationSystem en
GUIBridge_setRenderFn 0x4033960
LUA_SetEventCallback 0x4033960
GUIBridge_setModListCallbackFn 0x4033960
commonapi2.init 20200125
TPFLUA_NewLuaState: lua_State* 0x3f01110
commonapi2.init: loadTranslationSystem en
GUIBridge_setRenderFn 0x3f01110
LUA_SetEventCallback 0x3f01110
TPFLUA_GC: old lua_State* 0x3b88ff0
commonapi2.init 20200125
TPFLUA_NewLuaState: lua_State* 0x3e2d0c0
commonapi2.init: loadTranslationSystem en
GUIBridge_setRenderFn 0x3e2d0c0
LUA_SetEventCallback 0x3e2d0c0
TPFLUA_GC: old lua_State* 0x3f01110
eatglobal: init [/home/pane/.local/share/Transport Fever 2/mods/maikc_baureihe_156_2/res/scripts/eatglobal_v2_26.lua] (Version 2.26)
eatglobal: can not load module 'eatglobal.userSettings'. Message: cannot open /home/pane/.local/share/Transport Fever 2/mods/maikc_baureihe_156_2/res/scripts/eatglobal/userSettings.lua: No such file or directory
error: error: ....local/share/Transport Fever 2/mods/maikc_et89_2/mod.lua:80: attempt to index field 'userSettings' (a nil value)
stack traceback:
[C](-1): __index
....local/share/Transport Fever 2/mods/maikc_et89_2/mod.lua(80): ?
TPFLUA_GC: old lua_State* 0x3e2d0c0
-
English thx Claude for sharing.
eis_os :
would it be possible to make the terminal externally available? I mean, creating a (tcp or unix) socket where the console would be available?
would be a great interface and making data accessible by external tools, or ... I can imagine lots of use cases.
In the first place I am asking about technical feasibility.
In TPF1 the spreadsheet-fever (or so) mod had e.g. socket-threads.. but that mod didn't work for me..
Deutsch
danke Claude fürs teilen.Wäre es möglich, das Terminal extern verfügbar zu machen? Ich meine, durch einen (TCP oder UNIX) Socket, womit die Konsole zugänglich wäre?
wäre eine großartige Schnittstelle, um Daten mit externen Tools zugänglich zu machen oder ... ich kann mir viele Anwendungsfälle vorstellen.
Zunächst frage ich nach der technischen Machbarkeit.
In TPF1 hatte der Spreadsheet-Fever (oder so) Mod z.B. Socket-Threads .. aber dieser Mod hat bei mir nicht funktioniert ..Þ
-
nein und das Problem besteht weiterhin
-
hmm.
hab das mal zu anfang angefangen zu basteln, und die ganzen elemente aus 100x100, longer, commonapi und co zusammengetragen...
da es entsprechend urheberrechtlich geschützte teile davon enthält kann ichs so ohne Weiteres nicht veröffentlichen.
habe mir schon überlegt einen Mod daraus zu basteln, der strings ausliesst und entsprechend gewünshte bahnhöfe enthält.. aber es gibt kein textfeld :-D.
wobei es ja bei TPF1 ein tool gab, dass den "gebäudenamen" ausgelesen hat.. vielleicht könnte ichs damit lösen.
aber die Änderungen an der modular_station.con halten sich in Grenzen. Hier mein Vorgehen, das ich gerne unter CC-BY-NC-ND - Lizenz bereitstelle.
im Kopfbereich, wo die verschiedenen lokalen variablen definiert werden (im Original ab Zeile eingefügt 40):
Code
Alles anzeigenlocal tmpCount = 0 local function count(incr,reset) incr = incr or 1 if reset ~= nil then tmpCount=0 end local oldCount = tmpCount tmpCount = tmpCount + incr return oldCount end local specialVariants = { _("None"), _("11P+4T+8C+2T+1P"), _("11P+4T+8C+4T+1P"), _("1P+2T+8C+4T+11P"), _("1P+4T+8C+4T+11P"), _("6C+4T"), _("8C+4T"), _("3C+2T+6C+2T+6C+2T+3C"), _("4P+4C"), _("4C+4P") }dann in dem Bereich, wo die Parameter definiert werden (makeBaseParams() im Original?, Zeile 71) muss natürlich "mein" Parameter mit rein:
Code{ key = "specialv", name = _("special variant"), values = specialVariants, defaultIndex = 0, },dann habe ich noch die Funktion addTrack ersetzt, um meine bevorzugten Gleismodule zu benutzen:
Code
Alles anzeigenlocal function AddTrack(i, s, e, trackVariant) if trackVariant == nil then trackVariant = 0 end if not _com_modularstation_settings.autoConnectUnderground or trackVariant ~= -1 then print ("AddTrack: "..i.." variant "..trackVariant.." "..params.catenary.." "..params.trackType); for j = s,e do local id = GetId(trackTag, nil, i, j) if params.catenary == 1 and params.trackType == 0 and trackVariant == -1 then result[id] = "station/rail/modular_station/platform_track_catenary_160.module" elseif params.catenary == 1 and params.trackType == 0 and trackVariant == 80 then result[id] = "station/rail/modular_station/platform_track_catenary_80.module" elseif params.catenary == 1 and params.trackType == 0 and trackVariant == 40 then result[id] = "station/rail/modular_station/platform_track_catenary_40.module" elseif params.catenary == 0 and params.trackType == 0 and trackVariant == -1 then result[id] = "station/rail/modular_station/platform_track_160.module" elseif params.catenary == 0 and params.trackType == 0 and trackVariant == 80 then result[id] = "station/rail/modular_station/platform_track_80.module" elseif params.catenary == 0 and params.trackType == 0 and trackVariant == 40 then result[id] = "station/rail/modular_station/platform_track_40.module" elseif params.catenary == 1 and params.trackType == 1 and trackVariant == -1 then result[id] = "station/rail/modular_station/platform_high_speed_track_catenary_600.module" elseif params.catenary == 1 and params.trackType == 1 and trackVariant == 80 then result[id] = "station/rail/modular_station/platform_high_speed_track_catenary_80.module" elseif params.catenary == 1 and params.trackType == 1 and trackVariant == 40 then result[id] = "station/rail/modular_station/platform_high_speed_track_catenary_40.module" elseif params.catenary == 0 and params.trackType == 1 and trackVariant == -1 then result[id] = "station/rail/modular_station/platform_high_speed_track_600.module" elseif params.catenary == 0 and params.trackType == 1 and trackVariant == 80 then result[id] = "station/rail/modular_station/platform_high_speed_track_80.module" elseif params.catenary == 0 and params.trackType == 1 and trackVariant == 40 then result[id] = "station/rail/modular_station/platform_high_speed_track_40.module" elseif params.catenary == 0 and params.trackType == 0 then result[id] = "station/rail/modular_station/platform_track.module" elseif params.catenary == 0 and params.trackType == 1 then result[id] = "station/rail/modular_station/platform_high_speed_track.module" elseif params.catenary == 1 and params.trackType == 0 then result[id] = "station/rail/modular_station/platform_track_catenary.module" elseif params.catenary == 1 and params.trackType == 1 then result[id] = "station/rail/modular_station/platform_high_speed_track_catenary.module" else result[id] = "station/rail/modular_station/platform_eis_os_750mm_track.module" end end else print ("AddTrack: "..i.." variant "..trackVariant.." "..params.catenary.." "..params.trackType.." - skipping due to autoConnectUnderground"); end endwird beim optionalen dritten Parameter "-1" übergeben, wird kein Gleis gebaut (um Durchgangsgleise manuell zu bauen mit dem Gleis-Tool) - funktioniert aber nur mit CommonAPI und aktivem Underground-Connector..
dann noch (ab Zeile 355) habe ich von "if not cargo then" bis "return result" in der createTemplateFn alles ersetzt durch meinen Code, wo auch die eigenen Bahnhofsstrukturen implementiert sind:
hier habe ich auch den Vanillateil etwas vereinfacht.
und eigene varianten hinzuzufügen ist dann relativ simpel. Es muss einmal in der tabelle oben eingefügt werden
und im letzten teil dann der bau, wie z.B.
--Variante \/
elseif variantText == _("6C+4T") then
--erste Reihe ist eine Cargo-Platform (count(2,true): es wird 2 reihen gezählt und der zähler zuvor zurückgesetzt)
--das Pandon für eine Personenplatform wäre AddPassenger(count(1,true), s, e) dabei wird nur eins weiter gezählt, da der Bahnsteig nicht doppel-Breit ist
AddCargo(count(2,true), s, e)
--ein 80 km/h Gleis und 1 Reihe gezählt
AddTrack(count(), s, e, 80)
--dito...
AddTrack(count(), s, e, 80)
--wieder eine Cargoplattform, es wird 2 weitergezählt
AddCargo(count(2), s, e)
--wieder ein 80km/h gleis
AddTrack(count(), s, e, 80)
-es folgen 4 Durchgangsgleise
AddTrack(count(), s, e, -1)
AddTrack(count(), s, e, -1)
AddTrack(count(), s, e, -1)
AddTrack(count(), s, e, -1)
--und wieder ein bahnsteiggleis, 80 km/h
AddTrack(count(), s, e, 80)
--[...]
AddCargo(count(2), s, e)
AddTrack(count(), s, e, 80)
AddTrack(count(), s, e, 80)
AddCargo(count(2), s, e)
-- elseif nächster fall
statt eben fester Definitionen wollte ich eigentlich einen Mod basteln, der Texteingaben liest..
z.B.
CbbCbttaPaaP
C = Cargo Platform
P = Personenblattform
a = Gleis 40km/h
b = Gleis 80km/h
t = Durchgangsgleis
Das einzige Problem, ich weiss (noch nicht) woher ich einen Parameter als String erhalte...
hab doch noch ne angepasste modular_station.con erstellt (vanilla + obige changes) - nur den syntax habe ich geprüft, nicht die funktion..
-
Man kann nur hoffen, das UG hier noch deutlich nachbessert.
Aktiv unternehmen kann man da wohl derzeit nicht viel, außer Plattformen so selten wie möglich umzubauen.nicht trivial einfach.
Aber ich habe meine Standardbahnhöfe ins Script modular_station.con eingebaut. So baue ich auch meinen 20 gleisigen 560m-bahnhof in 5 sekunden statt einer Stunde
-
In Apache lässt sich für sowas ganz leicht eine RewriteRule festlegen, dass */index.php\/* umgeschrieben wird */in index.php\?* . dann gingen alle alten Links... und ich denke da gibt es eine Unzahl auch ausserhalb von transportfever.net..
Details für die Umsetzung kann ich gerne liefern, aber es gibt auch ausreichend Doku im Netz.wäre leicht zu lösen: schonmal vorgeschlagen. allerdings weiss ich nicht, welcher webserver hier verwendet wird.