beamng mod frage?

1 Antwort

Mit dem folgenden Lua-Code kannst du das erreichen. Den musst du in ein Level einfügen, damit es funktioniert. Für jedes Level/Map müsstest du den einzeln einfügen. Mehr dazu weiter unten.

Hier der Code:

-- extension, loaded by game engine
local M = {}


-- last vehicle
local lastVeh = be:getPlayerVehicle(0)
local isOutside = 0
local isInside = 1


-- called by game engine every GFX update
local function onUpdate()
	
	-- get player vehicle
	local veh = be:getPlayerVehicle(0)
	
	if core_vehicle_manager.getPlayerVehicleData().mainPartName == "unicycle" then
		-- if player is in unicycle, disable siren of last vehicle
		if isInside == 1 then
			lastVeh:queueLuaCommand('electrics.set_lightbar_signal(1)')
			log("I","LightbarChanger","Siren disabled")
			isOutside = 1
			isInside = 0
		end
	else
	-- if player is not in unicycle, enable siren of last vehicle (if player was outside) and save new vehicle
		if isOutside == 1 then
			lastVeh:queueLuaCommand('electrics.set_lightbar_signal(2)')
			log("I","LightbarChanger","Siren enabled")
			isOutside = 0
			isInside = 1
		end
		lastVeh = veh
	end
	
end


-- define public interface
M.onUpdate = onUpdate

return M

Wenn du aus einem Fahrzeug aussteigst, wird die Sirene ohne Ton eingeschaltet (nur Licht). Wenn du wieder in das Fahrzeug einsteigst, wird die Sirene mit Ton eingeschaltet. Es ist also nicht ganz perfekt, weil sich die Sirene anschaltet, obwohl sie vor dem Aussteigen aus war. Wenn du den zweiten queueLuaCommand() mit -- davor auskommentierst, wird der Ton nicht mehr automatisch eingeschaltet.

Um diese Funktion einer Map hinzuzufügen, musst du zuerst in den BeamNG-Benutzerordner (wo der mods-Ordner liegt). Dort erstellst du einen levels-Ordner, falls noch nicht vorhanden. In diesen Ordner machst du einen Ordner für das jeweilige Level, zb "italy" für Italien oder "west_coast_usa" für West Coast. Dort erstellst du eine neue lua-Datei mit dem Namen "mainLevel.lua". Die wird beim Betreten der Map automatisch vom Spiel geladen. In diese Datei kopierst du den Code.

Dabei ist zu beachten, dass manche Maps schon ein mainLevel.lua besitzen. Das wird dadurch überschrieben. Von den Vanilla Maps hat aber nur Small Island ein mainLevel.lua. Da müsstest du die bestehende Datei kopieren und den Code einfügen.

Bei Fragen dazu gerne melden.

Ich hoffe, ich konnte helfen :)

Woher ich das weiß:Hobby – >800 Spielstunden, lorefriendly Mods, Mapmaking 🧡

Frage81828228 
Beitragsersteller
 02.02.2025, 12:47

wie macht man eine lua datei

Maggiapfel3000  02.02.2025, 12:50
@Frage81828228

Auf Windows eine Textdatei erstellen. Die endet dann auf .txt, aber das kannst du einfach auf .lua ändern. Die Warnmeldung die kommt, kannst du ignorieren, weil die Datei sowieso noch nichts enthält. Dann kopierst du den Code da rein.

Wie es auf anderen Betriebssystemen geht, weiß ich nicht genau. Aber wahrscheinlich ähnlich.