Da die "IC Steuerung" und die "driveControl 3.51 " die gleiche Tastenbelegung haben möchte ich die "IC Steuerungstaste" umändern oder die ganze IC Steuerung deaktivieren oder entfernen. Leider sind meine Versuche kläglich daran gescheitert. Wäre schön wenn jemand es einen "idiotensicher" erklären kann.
IC Steuerung - Belegung der "Space Taste" ändern
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
-
geht leider nicht, habe es versucht. diese "IC Steuerung" (was ich widerlich finde) hat die gleiche Taste zum ein und ausschalten wie die "driveControl" zum Fahrtrichtungswechsel und zwar die "Leertaste". Ich kann zwar die Fahrtrichtung umschalten, aber mit der Maus mich nicht mehr bewegen! Habe leider keine Ahnung es umzuprogrammieren.
-
hab gerade bei mir selber geschaut,
es gibt 2 mal den Eintrag IC Steuerung (bei mir hab ich es auf STRG-rechts und einmal auf ENDE Taste)
die LEER-Taste alleine nur für Fahrrichtrungswechsel....
das wird der Fehler bei Dir sein, da Du das eine Ausschaltest mit der Taste X aber dadurch das andere Einschaltest mit der gleichen Taste X ....... denn bei Activer IC kann ich mit der Maus gewisse Sachen im Bild benutzen und so nicht mich mit der Maus Umschauen -
-
Hallo
entpacke deinen Mod,
öffne die Moddesc mit dem Editor und suche unter inputBinding folgenden Beispiel Eintrag
input name="INTERACTIVECONTROLSWITCH" category="VEHICLE" key1="KEY_space" key2="" button="" device="0" mouse="" /
hier kannst du die Tastenbelegung ändern: key1="KEY_space"
gruß
Birgitt
P.S.
eigentlich müßte es dann in der dort angegebenen LUA auch noch geändert werden... -
-
-
-
Wollte den <de>Fendt 1050 Vario SCR</de> umändern
die "modDesc.xml" habe ich auf key1="KEY_end" umgeändert.
es gibt noch die:
InteractiveButtons.lua
InteractiveComponentInterface.lua
InteractiveControl.lua
InteractiveWindows.lua
hebe aber nichts gefunden. Die "InteractiveControl"sieht so aus:
-- InteractiveControl v2.0
-- Specialization for an interactive control
-- SFM-Modding
-- @author: Manuel Leithner
-- @date: 17/10/10
-- @version: v2.0
-- @history: v1.0 - initial implementation
-- v2.0 - convert to LS2011 and some bugfixes
-- free for noncommerical-usage
InteractiveControl = {};
function InteractiveControl.prerequisitesPresent(specializations)
return SpecializationUtil.hasSpecialization(Steerable, specializations);
end;
function InteractiveControl:load(xmlFile)
Quellcode
- source(Utils.getFilename("scripts/InteractiveComponentInterface.lua", self.baseDirectory));
- self.doActionOnObject = SpecializationUtil.callSpecializationsFunction("doActionOnObject");
- self.setPanelOverlay = SpecializationUtil.callSpecializationsFunction("setPanelOverlay");
- self.infoBar = {};
- self.infoBar.posX = 0.4;
- self.infoBar.posY = 0.9359;
- self.infoBar.width = 0.3156;
- self.infoBar.hud = Overlay:new("icInfobar", Utils.getFilename("interactiveControl_info.dds", self.baseDirectory), self.infoBar.posX, self.infoBar.posY, self.infoBar.width, 0.0526);
- self.interactiveObjects = {};
- self.indoorCamIndex = 2;
- self.outdoorCamIndex = 1;
- self.lastMouseXPos = 0;
- self.lastMouseYPos = 0;
- self.panelOverlay = nil;
- self.foundInteractiveObject = nil;
- self.isMouseActive = false;
function InteractiveControl:delete()
for _,v in pairs(self.interactiveObjects) do
v:delete();
end;
if self.infoBar ~= nil then
self.infoBar.hud:delete();
self.infoBar = nil;
end;
end;
function InteractiveControl:readStream(streamId, connection)
local icCount = streamReadInt8(streamId);
for i=1, icCount do
local isOpen = streamReadBool(streamId);
if self.interactiveObjects ~= nil then
if self.interactiveObjects[i].synch then
self.interactiveObjects[i]:doAction(true, isOpen);
end;
end;
end;
end;
function InteractiveControl:writeStream(streamId, connection)
streamWriteInt8(streamId, table.getn(self.interactiveObjects));
for k,v in pairs(self.interactiveObjects) do
streamWriteBool(streamId, v.isOpen);
end;
end;
function InteractiveControl:mouseEvent(posX, posY, isDown, isUp, button)
Quellcode
- self.lastMouseXPos = posX;
- self.lastMouseYPos = posY;
- if isDown then
- if Input.isMouseButtonPressed(Input.MOUSE_BUTTON_LEFT) and self.foundInteractiveObject ~= nil then
- self:doActionOnObject(self.foundInteractiveObject);
- end;
- local currentCam = self.cameras[self.camIndex];
- if currentCam.allowTranslation then
- if Input.isMouseButtonPressed(Input.MOUSE_BUTTON_WHEEL_UP) then
- currentCam:zoomSmoothly(-0.75);
- elseif Input.isMouseButtonPressed(Input.MOUSE_BUTTON_WHEEL_DOWN) then
- currentCam:zoomSmoothly(0.75);
- end;
- end;
- end;
- for _,v in pairs(self.interactiveObjects) do
- v:mouseEvent(posX, posY, isDown, isUp, button);
- end;
- if self.isMouseActive then
- self.mouseButton = MouseControlsVehicle.BUTTON_NONE;
- end;
function InteractiveControl:keyEvent(unicode, sym, modifier, isDown)
for _,v in pairs(self.interactiveObjects) do
v:keyEvent(unicode, sym, modifier, isDown);
end;
end;
function InteractiveControl:update(dt)
if self:getIsActive() then
self.foundInteractiveObject = nil;
local icObject = nil;
for k,v in pairs(self.interactiveObjects) do
v:update(dt);
if self.isMouseActive then
v:onExit(dt);
if icObject == nil and self.camIndex == self.indoorCamIndex then
local worldX,worldY,worldZ = getWorldTranslation(v.mark);
local x,y,z = project(worldX,worldY,worldZ);
if z <= 1 then
if self.lastMouseXPos > (x-v.size/2) and self.lastMouseXPos < (x+v.size/2) then
if self.lastMouseYPos > (y-v.size/2) and self.lastMouseYPos < (y+v.size/2) then
local isOverlapped = false;
Quellcode
- if self.panelOverlay ~= nil then
- local overlay = self.panelOverlay.mainBackground;
- isOverlapped = self.lastMouseXPos >= overlay.x and self.lastMouseXPos <= overlay.x+overlay.width and self.lastMouseYPos >= overlay.y and self.lastMouseYPos <= overlay.y+overlay.height;
- end;
- if not isOverlapped then
- icObject = v;
- self.foundInteractiveObject = k;
- break;
- end;
- end;
- end;
- end;
- end;
- end;
- end;
- if icObject ~= nil then
- icObject:onEnter(dt);
- end;
- if self.isClient and self:getIsActiveForInput(false) and not self:hasInputConflictWithSelection() then
- if InputBinding.hasEvent(InputBinding.INTERACTIVE_CONTROL_SWITCH) then
- self.isMouseActive = not self.isMouseActive;
- g_mouseControlsHelp.active = not self.isMouseActive;
- if not self.isMouseActive then
- InputBinding.setShowMouseCursor(false);
- self.cameras[self.camIndex].isActivated = true;
- for _,v in pairs(self.interactiveObjects) do
- v:onExit(dt);
- end;
- end;
- for _,v in pairs(self.interactiveObjects) do
- v:setVisible(self.isMouseActive);
- end;
- end;
- if self.isMouseActive then
- local currentCam = self.cameras[self.camIndex];
- self.mouseDirectionY = 0;
- self.mouseDirectionX = 0;
- if Input.isMouseButtonPressed(Input.MOUSE_BUTTON_RIGHT) then
- InputBinding.wrapMousePositionEnabled = true;
- currentCam.rotX = currentCam.rotX + InputBinding.mouseMovementY;
- currentCam.rotY = currentCam.rotY - InputBinding.mouseMovementX;
- self.cameras[self.indoorCamIndex].isActivated = self.camIndex == self.indoorCamIndex;
- self.cameras[self.outdoorCamIndex].isActivated = self.camIndex == self.outdoorCamIndex;
- setShowMouseCursor(false);
- else
- self.cameras[self.indoorCamIndex].isActivated = self.camIndex ~= self.indoorCamIndex;
- self.cameras[self.outdoorCamIndex].isActivated = self.camIndex ~= self.outdoorCamIndex;
- InputBinding.setShowMouseCursor(true);
- end;
- else
- self.foundInteractiveObject = nil;
- end;
- else
- self.foundInteractiveObject = nil;
- end;
- end;
function InteractiveControl:updateTick(dt)
end;
function InteractiveControl:doActionOnObject(id, noEventSend)
if self.interactiveObjects[id].isLocalOnly == nil or not self.interactiveObjects[id].isLocalOnly then
InteractiveControlEvent.sendEvent(self, id, noEventSend);
end;
self.interactiveObjects[id]:doAction(noEventSend);
end;
function InteractiveControl:draw()
for [i],v in pairs(self.interactiveObjects) do
v:draw();
end;
if self.isMouseActive then
gcurrentMission:addHelpButtonText(gi18n:getText("InteractiveControlOff"), InputBinding.INTERACTIVECONTROLSWITCH);
else
gcurrentMission:addHelpButtonText(gi18n:getText("InteractiveControlOn"), InputBinding.INTERACTIVECONTROL_SWITCH);
end;
end;
function InteractiveControl:onLeave()
self.cameras[self.indoorCamIndex].isActivated = true;
gmouseControlsHelp.active = true;
if ggui.currentGui == nil then
InputBinding.setShowMouseCursor(false);
end;
end;
function InteractiveControl:setPanelOverlay(panel)
Quellcode
-- InteractiveControlEvent
-- Specialization for an interactive control
-- SFM-Modding
-- @author: Manuel Leithner
-- @date: 14/12/11
-- @version: v2.0
-- @history: v1.0 - initial implementation
-- v2.0 - convert to LS2011 and some bugfixes
InteractiveControlEvent = {};
InteractiveControlEvent_mt = Class(InteractiveControlEvent, Event);
InitEventClass(InteractiveControlEvent, "InteractiveControlEvent");
function InteractiveControlEvent:emptyNew()
local self = Event:new(InteractiveControlEvent_mt);
return self;
end;
function InteractiveControlEvent:new(vehicle, interactiveControlID)
local self = InteractiveControlEvent:emptyNew()
self.vehicle = vehicle;
self.interactiveControlID = interactiveControlID;
return self;
end;
function InteractiveControlEvent:readStream(streamId, connection)
local id = streamReadInt32(streamId);
self.interactiveControlID = streamReadInt8(streamId);
self.vehicle = networkGetObject(id);
self:run(connection);
end;
function InteractiveControlEvent:writeStream(streamId, connection)
streamWriteInt32(streamId, networkGetObjectId(self.vehicle));
streamWriteInt8(streamId, self.interactiveControlID);
end;
function InteractiveControlEvent:run(connection)
self.vehicle:doActionOnObject(self.interactiveControlID, true);
if not connection:getIsServer() then
g_server:broadcastEvent(InteractiveControlEvent:new(self.vehicle, self.interactiveControlID), nil, connection, self.vehicle);
end;
end;
function InteractiveControlEvent.sendEvent(vehicle, icObject, noEventSend)
if noEventSend == nil or noEventSend == false then
if gserver ~= nil then
gserver:broadcastEvent(InteractiveControlEvent:new(vehicle, icObject), nil, nil, vehicle);
else
g_client:getServerConnection():sendEvent(InteractiveControlEvent:new(vehicle, icObject));
end;
end;
end;
Ich weiß nicht ob Du damit was anfangen kannst, ich leider nicht.
Das andere umändern wäre schlecht wegen den Wendegetriebe umschalten, dazu ist die Leertaste ideal schon wegen seiner Größe. Wäre schön wenn es klappen würde.
Mit freundlichen Grüßen
Ehre -
-
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0
-
Benutzer online 4
4 Besucher