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

    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.
    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

    1. source(Utils.getFilename("scripts/InteractiveComponentInterface.lua", self.baseDirectory));
    2. self.doActionOnObject = SpecializationUtil.callSpecializationsFunction("doActionOnObject");
    3. self.setPanelOverlay = SpecializationUtil.callSpecializationsFunction("setPanelOverlay");
    4. self.infoBar = {};
    5. self.infoBar.posX = 0.4;
    6. self.infoBar.posY = 0.9359;
    7. self.infoBar.width = 0.3156;
    8. self.infoBar.hud = Overlay:new("icInfobar", Utils.getFilename("interactiveControl_info.dds", self.baseDirectory), self.infoBar.posX, self.infoBar.posY, self.infoBar.width, 0.0526);
    9. self.interactiveObjects = {};
    10. self.indoorCamIndex = 2;
    11. self.outdoorCamIndex = 1;
    12. self.lastMouseXPos = 0;
    13. self.lastMouseYPos = 0;
    14. self.panelOverlay = nil;
    15. self.foundInteractiveObject = nil;
    16. self.isMouseActive = false;
    Alles anzeigen
    end;

    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

    1. self.lastMouseXPos = posX;
    2. self.lastMouseYPos = posY;
    3. if isDown then
    4. if Input.isMouseButtonPressed(Input.MOUSE_BUTTON_LEFT) and self.foundInteractiveObject ~= nil then
    5. self:doActionOnObject(self.foundInteractiveObject);
    6. end;
    7. local currentCam = self.cameras[self.camIndex];
    8. if currentCam.allowTranslation then
    9. if Input.isMouseButtonPressed(Input.MOUSE_BUTTON_WHEEL_UP) then
    10. currentCam:zoomSmoothly(-0.75);
    11. elseif Input.isMouseButtonPressed(Input.MOUSE_BUTTON_WHEEL_DOWN) then
    12. currentCam:zoomSmoothly(0.75);
    13. end;
    14. end;
    15. end;
    16. for _,v in pairs(self.interactiveObjects) do
    17. v:mouseEvent(posX, posY, isDown, isUp, button);
    18. end;
    19. if self.isMouseActive then
    20. self.mouseButton = MouseControlsVehicle.BUTTON_NONE;
    21. end;
    Alles anzeigen
    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

    1. if self.panelOverlay ~= nil then
    2. local overlay = self.panelOverlay.mainBackground;
    3. isOverlapped = self.lastMouseXPos >= overlay.x and self.lastMouseXPos <= overlay.x+overlay.width and self.lastMouseYPos >= overlay.y and self.lastMouseYPos <= overlay.y+overlay.height;
    4. end;
    5. if not isOverlapped then
    6. icObject = v;
    7. self.foundInteractiveObject = k;
    8. break;
    9. end;
    10. end;
    11. end;
    12. end;
    13. end;
    14. end;
    15. end;
    16. if icObject ~= nil then
    17. icObject:onEnter(dt);
    18. end;
    19. if self.isClient and self:getIsActiveForInput(false) and not self:hasInputConflictWithSelection() then
    20. if InputBinding.hasEvent(InputBinding.INTERACTIVE_CONTROL_SWITCH) then
    21. self.isMouseActive = not self.isMouseActive;
    22. g_mouseControlsHelp.active = not self.isMouseActive;
    23. if not self.isMouseActive then
    24. InputBinding.setShowMouseCursor(false);
    25. self.cameras[self.camIndex].isActivated = true;
    26. for _,v in pairs(self.interactiveObjects) do
    27. v:onExit(dt);
    28. end;
    29. end;
    30. for _,v in pairs(self.interactiveObjects) do
    31. v:setVisible(self.isMouseActive);
    32. end;
    33. end;
    34. if self.isMouseActive then
    35. local currentCam = self.cameras[self.camIndex];
    36. self.mouseDirectionY = 0;
    37. self.mouseDirectionX = 0;
    38. if Input.isMouseButtonPressed(Input.MOUSE_BUTTON_RIGHT) then
    39. InputBinding.wrapMousePositionEnabled = true;
    40. currentCam.rotX = currentCam.rotX + InputBinding.mouseMovementY;
    41. currentCam.rotY = currentCam.rotY - InputBinding.mouseMovementX;
    42. self.cameras[self.indoorCamIndex].isActivated = self.camIndex == self.indoorCamIndex;
    43. self.cameras[self.outdoorCamIndex].isActivated = self.camIndex == self.outdoorCamIndex;
    44. setShowMouseCursor(false);
    45. else
    46. self.cameras[self.indoorCamIndex].isActivated = self.camIndex ~= self.indoorCamIndex;
    47. self.cameras[self.outdoorCamIndex].isActivated = self.camIndex ~= self.outdoorCamIndex;
    48. InputBinding.setShowMouseCursor(true);
    49. end;
    50. else
    51. self.foundInteractiveObject = nil;
    52. end;
    53. else
    54. self.foundInteractiveObject = nil;
    55. end;
    56. end;
    Alles anzeigen
    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
    g
    currentMission: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 g
    gui.currentGui == nil then
    InputBinding.setShowMouseCursor(false);
    end;
    end;

    function InteractiveControl:setPanelOverlay(panel)

    Quellcode

    1. if self.panelOverlay ~= nil then
    2. if self.panelOverlay.setActive ~= nil then
    3. self.panelOverlay:setActive(false);
    4. end;
    5. end;
    6. self.panelOverlay = panel;
    7. if panel ~= nil then
    8. if panel.setActive ~= nil then
    9. panel:setActive(true);
    10. end;
    11. end;
    Alles anzeigen
    end;



    -- 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
    g
    server: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