Hi leute
ich hab mir das RüFa script von Heady (Blackfox's 930) in meinen Xerion eingebaut, und es klappt auch soweit, aber wenn ich den 930 und den Xerion drinne habe, schaltet sich nurnoch die Lenkung um, aber die Fahrtrichtung bleibt gleich.. kann mir da villt. wer helfen?
rufa .lua
[lua]---- Rufa---- M@D Author: Heady-- M@D date: 21.06.2011---- > Copyright (C) Heady - http://www.planet-ls.de < ----
Rufa = {};
function Rufa.prerequisitesPresent(specializations) return SpecializationUtil.hasSpecialization(AnimatedVehicle, specializations);end;
function Rufa:load(xmlFile) local rufa = {}; rufa.name = getXMLString(xmlFile, "vehicle.rufa#name"); rufa.openSpeedScale = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.rufa#upSpeedScale"), 1); rufa.closeSpeedScale = Utils.getNoNil(getXMLFloat(xmlFile, "vehicle.rufa#downSpeedScale"), -rufa.openSpeedScale); if rufa.name ~= nil then self.rufa = rufa; end; self.rufa.active = false; self.rufaActive = false; self.accDirection = 1; self.wheelsRotSpeedBackup = {}; for i=1, table.getn(self.wheels) do self.wheelsRotSpeedBackup[i] = self.wheels[i].rotSpeed; end; end;
function Rufa:delete()end;
function Rufa:mouseEvent(posX, posY, isDown, isUp, button)end;
function Rufa:keyEvent(unicode, sym, modifier, isDown)end;
function Rufa:readStream(streamId, connection) self.accDirection = streamReadFloat32(streamId); self.rufa.active = streamReadBool(streamId);end;
function Rufa:writeStream(streamId, connection) streamWriteFloat32(streamId, self.accDirection); streamWriteBool(streamId, self.rufa.active);end;
function Rufa:update(dt)
if self:getIsActiveForInput() then if InputBinding.hasEvent(InputBinding.RUFA) then self.rufa.active = not self.rufa.active; end;
end; end;
function Rufa:updateTick(dt)
if self.rufaActive ~= self.rufa.active then if self.rufa.active then self:playAnimation(self.rufa.name, self.rufa.openSpeedScale, self:getAnimationTime(self.rufa.name)); for i=1, table.getn(self.wheels) do self.wheels[i].rotSpeed = -self.wheelsRotSpeedBackup[i]; end; self.accDirection = -1; else self:playAnimation(self.rufa.name, self.rufa.closeSpeedScale, self:getAnimationTime(self.rufa.name)); for i=1, table.getn(self.wheels) do self.wheels[i].rotSpeed = self.wheelsRotSpeedBackup[i]; end; self.accDirection = 1; end; RufaMPEvent:updateSendEvent(self); end;
self.rufaActive = self.rufa.active;
end;
function Rufa:draw() end;
local wheelsUtilUpdateWheelsPhysics = WheelsUtil.updateWheelsPhysics;
function WheelsUtil.updateWheelsPhysics(self, dt, currentSpeed, acceleration, doHandbrake, requiredDriveMode)
if self.accDirection ~= nil then acceleration = acceleration*self.accDirection; end; wheelsUtilUpdateWheelsPhysics(self, dt, currentSpeed, acceleration, doHandbrake, requiredDriveMode);end;[/lua]
Rufa MP event .lua
[lua]---- Rufa Multiplayer Event Script---- M@D Author: Heady-- M@D date: 04.08.2011---- > Copyright (C) Heady - http://www.planet-ls.de < ----
RufaMPEvent = {};RufaMPEvent_mt = Class(RufaMPEvent, Event);
InitEventClass(RufaMPEvent, "RufaMPEvent");
function RufaMPEvent:emptyNew() local self = Event:new(RufaMPEvent_mt); self.className="RufaMPEvent"; return self;end;
function RufaMPEvent:new(object) local self = RufaMPEvent:emptyNew() self.object = object; return self;end;
function RufaMPEvent:readStream(streamId, connection) self.object = networkGetObject(streamReadInt32(streamId));
self.object.accDirection = streamReadFloat32(streamId); self.object.rufa.active = streamReadBool(streamId);
if not connection:getIsServer() then g_server:broadcastEvent(RufaMPEvent:new(self.object), nil, connection, self.object); end;
end;
function RufaMPEvent:writeStream(streamId, connection) streamWriteInt32(streamId, networkGetObjectId(self.object)); streamWriteFloat32(streamId, self.object.accDirection); streamWriteBool(streamId, self.object.rufa.active);end;
function RufaMPEvent:updateSendEvent(runSelf)
if g_server ~= nil then g_server:broadcastEvent(RufaMPEvent:new(runSelf)); else g_client:getServerConnection():sendEvent(RufaMPEvent:new(runSelf)); end;
end;[/lua]
ch hoffe mir kann wer helfen...