Ankündigung

Einklappen
Keine Ankündigung bisher.

SetCameraToEntity - Zoom einstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SetCameraToEntity - Zoom einstellen

    Dafür benutze ich diesen Code:
    Code:
    function SetCameraToEntity(_entity)
      local posX, posY = Logic.GetEntityPosition(Logic.GetEntityIDByName(_entity));
      local rotation = -45
      local zoomFactor = 10
      local zoomAngle = 20
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetLookAtPosition("'..posX..'", "'..posY..'")');
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetRotationAngle("'..rotation..'")');
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetZoomFactor("'..zoomFactor..'")');
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetZoomAngle("'..zoomAngle..'")');
    end
    Ich weiß aber nicht mehr ob der aktuell ist, das ScriptWiki ist ja leider nicht mehr vorhanden.
    Wie kann ich da den Zoom einstellen? Ändern der Zahlenwerte zoomFactor und zoomAngle hat leider nichts gebracht.
    Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

  • #2
    AW: SetCameraToEntity - Zoom einstellen

    aus meinen "Gesammelte Werke"
    ------------------------------
    Code:
    -----------------KAMERAPOSITION----------------------
    --Code:
    function SokratesCameraRestore(_enabled)  --in local LUA
     if _enabled == 1 then
      SokratesCamera = { Camera.RTS_GetLookAtPosition() }
     else
      if SokratesCamera then
       Camera.RTS_SetLookAtPosition(unpack(SokratesCamera))
      end
     end
    end
    -----------------------------------------------------------------
    function SokratesCameraRestore()   -- in Global LUA
     Logic.ExecuteInLuaLocalState('SokratesCameraRestore(0)') 
    end
    function SetCameraToPosition(_posX, _posY, _zoomFactor, _rotation, _zoomAngle)
     Logic.ExecuteInLuaLocalState('SokratesCameraRestore(1)') -- Werte sichern
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetLookAtPosition("'.._posX..'","'.._posY..'")')
     if _zoomFactor then
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetZoomFactor("'.._zoomFactor..'")')  -- 0.05 - 1.0
     end
     if _rotation then
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetRotationAngle("'.._rotation..'")')    -- -180 bis 180
     end
     if _zoomAngle then
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetZoomAngle("'.._zoomAngle..'")')    -- 10 - 40
     end
    end
    --Mit der Funktion SokratesCameraRestore() kannst du auf die Startposition zurückgehen.
    --Vielleicht kannst du das ja gebrauchen...
    - - - Aktualisiert - - -

    Ansonsten hab ich noch 2 Txt-Dateien

    freieCamera_global.txt
    ---------------------
    Code:
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_InitPlayers()
            
    end
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_SetStartingMonth()
    
        Logic.SetMonthOffset(3)
    
    end
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_InitMerchants()
        
    end
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_FirstMapAction()
    
        -- init players in singleplayer games only
        if Framework.IsNetworkGame() ~= true then
    
            Startup_Player()
            Startup_StartGoods()
            Startup_Diplomacy()
            
        end        
    
        -- create quests
        do
            local MapName = Framework.GetCurrentMapName()
            local ScriptName = "Maps\\ExternalMap\\"..MapName.."\\QuestSystemBehavior.lua"
            Script.Load(ScriptName)
    
            CreateQuests()
        end
        
        JIP_FMA()
    
    end
    
    ------------------------------------------------------------------
    --JIP.CAMS
    ------------------------------------------------------------------
    
    function JIP_Controler() -- true bedeutet die entsprechende Cam soll in der Map benutzt werden (beide sind möglich und miteinander kompatibel)
        -- FreeCam (dieselbe wie im Spiel/aus dem Cheatmode)
        JIP_JFC = true
        -- FreeCamPlus (meine eigene/viel besser...)
        JIP_JFCP = true
        -- Wichtig: dies sollte jeder Map angepasst werden !!! Dies ist die Höhe, die die Cam an Anfang haben wird .
        startminHeigh = 2100 --Je nach Terrain einzustellen (sollte so gemacht sein, dass die Cam nirgens unterirdisch beginnt ! höhe kann im Edi ermittelt werden)
    end
    function JIP_Starter()
        if JIP_JFC then
            JIP_JFC_FreeCameraAtGameStart()
        end
        if JIP_JFCP then
            JIP_JFCP_FreeCameraPlusAtGameStart()
        end
    end
    function JIP_FMA()
        do
            JIP_Controler()
            JIP_Starter()
        end
    end
    function JIP_OnSaveGameLoaded()
        if JIP_JFC then
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.F , "KeyBindings_JIP_Local_JFC()", 2)')
        end
        if JIP_JFCP then
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.C , "KeyBindings_JIP_Local_JFCP_StartFreeCameraPlus(1)", 2)')
            JIP_JFCP_StartFreeCameraPlus(2)
        end
    end
    
    --FreeCamera ( Cheatmode )
    
    function JIP_JFC_FreeCameraAtGameStart()
        Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.F , "KeyBindings_JIP_Local_JFC()", 2)')
        FreeCameraIsActive = false
    end
    function JIP_JFC_StartFreeCamera()
        if FreeCameraIsActive then
            Logic.ExecuteInLuaLocalState('Camera.SwitchCameraBehaviour(0)')
            FreeCameraIsActive = false
            Message("FreeCameraMode end")
        else
            Logic.ExecuteInLuaLocalState('Camera.SwitchCameraBehaviour(2)')
            FreeCameraIsActive = true
            Message("FreeCameraMode active")
        end
    end
    
    --FreeCameraPlus ( meine ! )
    
    function JIP_JFCP_FreeCameraPlusAtGameStart() -- In FMA aufrufen (wird gemacht über JIP_FMA)
        Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.C , "KeyBindings_JIP_Local_JFCP_StartFreeCameraPlus(1)", 2)')
        FreeCameraPlusIsActive = false
        BildschirmHideIsActive = false
    end
    function JIP_JFCP_StartFreeCameraPlus(_wann) -- 1 oder 2
        local wann = _wann
        if wann == 2 and FreeCameraPlusIsActive == true then
            FreeCameraPlusIsActive = false
        elseif wann == 2 and FreeCameraPlusIsActive == false then
            FreeCameraPlusIsActive = true
        end 
        if FreeCameraPlusIsActive then
            FreeCameraPlusIsActive = false
            EndJob("JIP_JFCP_Umsetzer_Cam")
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.F , "KeyBindings_JIP_Local_JFC()", 2)')
            Logic.ExecuteInLuaLocalState('Camera.SwitchCameraBehaviour(0)')
            Logic.ExecuteInLuaLocalState('local posrit1, posrit2 = Logic.GetEntityPosition(Logic.GetKnightID(1))')
            if wann == 1 then
                Logic.ExecuteInLuaLocalState('Camera.RTS_SetLookAtPosition(posrit1, posrit2)')
                Message("FreeCameraPlusMode end")
            end-- Hier werden alle Pfeiltasten abgeschaltet
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Up , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Down , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Left , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Right , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Up , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Down , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Left , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Right , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Up , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Down , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Left , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Right , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.T , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Left +  Keys.Up , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Right +  Keys.Up , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Left +  Keys.Down , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Right +  Keys.Down , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Left +  Keys.Up , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Right +  Keys.Up , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Left +  Keys.Down , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Right +  Keys.Down , "KeyBindings_EnableDebugMode(0)", 2)')
            Logic.ExecuteInLuaLocalState('XGUIEng.ShowWidget("/InGame/Root/Normal/AlignBottomRight/MapFrame/Minimap/MinimapOverlay", 1)')
            if BildschirmHideIsActive then
                Logic.ExecuteInLuaLocalState('XGUIEng.ShowWidget("/InGame/Root/Normal", 1)')
                BildschirmHideIsActive = false
            end
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.B , "KeyBindings_EnableDebugMode(0)", 2)')
        else
            FreeCameraPlusIsActive = true
            if JIP_JFC then
                Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.F , "KeyBindings_EnableDebugMode(0)", 2)')
            end
            Logic.ExecuteInLuaLocalState('Display.SetUserOptionOcclusionEffect(0)')
            Logic.ExecuteInLuaLocalState('Display.SetRenderSky(1)')
            Logic.ExecuteInLuaLocalState('Game.GameTimeSetFactor(GUI.GetPlayerID(), 1)')
            Logic.ExecuteInLuaLocalState('Camera.SwitchCameraBehaviour(5)')
            Message("FreeCameraPlusMode active") -- Hier werden alle Pfeiltasten angeschaltet
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Up , "KeyBindings_JIP_Local_JFCP_Local(1)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Down , "KeyBindings_JIP_Local_JFCP_Local(2)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Left , "KeyBindings_JIP_Local_JFCP_Local(3)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.Right , "KeyBindings_JIP_Local_JFCP_Local(4)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Up , "KeyBindings_JIP_Local_JFCP_Local(5)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Down , "KeyBindings_JIP_Local_JFCP_Local(6)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Left , "KeyBindings_JIP_Local_JFCP_Local(3)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Right , "KeyBindings_JIP_Local_JFCP_Local(4)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Up , "KeyBindings_JIP_Local_JFCP_Local(7)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Down , "KeyBindings_JIP_Local_JFCP_Local(8)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Left , "KeyBindings_JIP_Local_JFCP_Local(9)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierAlt + Keys.Right , "KeyBindings_JIP_Local_JFCP_Local(10)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Left +  Keys.Up , "KeyBindings_JIP_Local_JFCP_Local(13)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Right +  Keys.Up , "KeyBindings_JIP_Local_JFCP_Local(14)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Left +  Keys.Down , "KeyBindings_JIP_Local_JFCP_Local(23)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl + Keys.Right +  Keys.Down , "KeyBindings_JIP_Local_JFCP_Local(24)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Left +  Keys.Up , "KeyBindings_JIP_Local_JFCP_Local(53)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Right +  Keys.Up , "KeyBindings_JIP_Local_JFCP_Local(54)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Left +  Keys.Down , "KeyBindings_JIP_Local_JFCP_Local(63)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierShift + Keys.Right +  Keys.Down , "KeyBindings_JIP_Local_JFCP_Local(64)", 2)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.ModifierControl +  Keys.T , "KeyBindings_JIP_Local_JFCP_Local(250)", 2)')
            Logic.ExecuteInLuaLocalState('XGUIEng.ShowWidget("/InGame/Root/Normal/AlignBottomRight/MapFrame/Minimap/MinimapOverlay", 0)')
            Logic.ExecuteInLuaLocalState('Input.KeyBindDown( Keys.B , "KeyBindings_Bildschirm()", 2)')
            if wann == 1 then
                JIP_JFCP_StartPosition()
            end
            StartSimpleHiResJob("JIP_JFCP_Umsetzer_Cam")
        end
    end
    function JIP_JFCP_BildschirmHide()
        if BildschirmHideIsActive then
            Logic.ExecuteInLuaLocalState('XGUIEng.ShowWidget("/InGame/Root/Normal", 1)')
            BildschirmHideIsActive = false
        else
            Logic.ExecuteInLuaLocalState('XGUIEng.ShowWidget("/InGame/Root/Normal", 0)')
            BildschirmHideIsActive = true
        end
    end
    function JIP_JFCP_Umsetzer(_befehl)
        local befehl = _befehl
        minHeigh = 0
        GeschwindichkeitFaktor = 30 --Sollte nicht zu groß sein
        if befehl == 1 then --Vor
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( kamAng ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 2 then --Zurück
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( kamAng ) )
            kamlookX = kamlookX - movX
            kamlookY = kamlookY - movY
            kamlookZ = kamlookZ - movZ
            kamposX = kamposX - movX
            kamposY = kamposY - movY
            kamposZ = kamposZ - movZ
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 3 then --Links
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot + 90 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot + 90 ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 4 then --Rechts
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot - 90 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot - 90 ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 5 then --Hoch
            kamlookZ = kamlookZ + GeschwindichkeitFaktor
            kamposZ = kamposZ + GeschwindichkeitFaktor
        elseif befehl == 6 then --Runter
            kamlookZ = kamlookZ - GeschwindichkeitFaktor
            kamposZ = kamposZ - GeschwindichkeitFaktor
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 7 then --Ang Hoch
            kamAng = kamAng - 1
            if kamAng <= 0 then
                kamAng = 0
            end
            movX = 1000 * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot ) )
            movY = 1000 * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot ) )
            movZ = 1000 * math.cos( math.rad( kamAng ) )
            kamlookX = kamposX + movX
            kamlookY = kamposY + movY
            kamlookZ = kamposZ + movZ
        elseif befehl == 8 then --Ang Runter
            kamAng = kamAng + 1
            if kamAng >= 180 then
                kamAng = 180
            end
            movX = 1000 * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot ) )
            movY = 1000 * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot ) )
            movZ = 1000 * math.cos( math.rad( kamAng ) )
            kamlookX = kamposX + movX
            kamlookY = kamposY + movY
            kamlookZ = kamposZ + movZ
        elseif befehl == 9 then --Rot Links
            kamRot = kamRot + 1
            if kamRot >= 360 then
                kamRot = 0
            end
            movX = 1000 * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot ) )
            movY = 1000 * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot ) )
            movZ = 1000 * math.cos( math.rad( kamAng ) )
            kamlookX = kamposX + movX
            kamlookY = kamposY + movY
            kamlookZ = kamposZ + movZ
        elseif befehl == 10 then --Rot Rechts
            kamRot = kamRot - 1
            if kamRot <= 0 then
                kamRot = 360
            end
            movX = 1000 * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot ) )
            movY = 1000 * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot ) )
            movZ = 1000 * math.cos( math.rad( kamAng ) )
            kamlookX = kamposX + movX
            kamlookY = kamposY + movY
            kamlookZ = kamposZ + movZ
        elseif befehl == 250 then --Vor Turbo
            Message("Turbo used")
            movX = 5000 * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot ) )
            movY = 5000 * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot ) )
            kamlookX = kamposX + movX
            kamlookY = kamposY + movY
            kamposX = kamposX + movX
            kamposY = kamposY + movY
        elseif befehl == 13 then --Vor Links
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot + 45 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot + 45 ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( kamAng ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 14 then --Vor Rechts
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot - 45 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot - 45 ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( kamAng ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 23 then --Zurück Links
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot + 135 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot + 135 ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( kamAng ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 24 then --Zurück Rechts
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot - 135 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot - 135 ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( kamAng ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 53 then
            movX = GeschwindichkeitFaktor * math.sin( math.rad( 45 ) ) * math.cos( math.rad( kamRot + 90 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( 45 ) ) * math.sin( math.rad( kamRot + 90 ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( 45 ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
        elseif befehl == 54 then
            movX = GeschwindichkeitFaktor * math.sin( math.rad( 45 ) ) * math.cos( math.rad( kamRot - 90 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( 45 ) ) * math.sin( math.rad( kamRot - 90 ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( 45 ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
        elseif befehl == 63 then
            movX = GeschwindichkeitFaktor * math.sin( math.rad( 135 ) ) * math.cos( math.rad( kamRot + 90 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( 135 ) ) * math.sin( math.rad( kamRot + 90 ) )
            movZ = GeschwindichkeitFaktor * math.cos( math.rad( 135 ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamlookZ = kamlookZ + movZ
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            kamposZ = kamposZ + movZ
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        elseif befehl == 64 then
            movX = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.cos( math.rad( kamRot - 90 ) )
            movY = GeschwindichkeitFaktor * math.sin( math.rad( kamAng ) ) * math.sin( math.rad( kamRot - 90 ) )
            kamlookX = kamlookX + movX
            kamlookY = kamlookY + movY
            kamposX = kamposX + movX
            kamposY = kamposY + movY
            if kamposZ <= minHeigh then
                kamposZ = minHeigh
                kamlookZ = minHeigh + 1000 * math.cos( math.rad( kamAng ) )
            end
        end
    end
    function JIP_JFCP_StartPosition()
        local Held = Logic.GetKnightID(1)
        local posx, posy = Logic.GetEntityPosition(Held)
        kamlookX = posx
        kamlookY = posy
        kamlookZ = startminHeigh
        kamposX = kamlookX - 1000
        kamposY = kamlookY
        kamposZ = kamlookZ
        kamRot = 0
        kamAng = 90
    end
    function JIP_JFCP_Umsetzer_Cam()
        Logic.ExecuteInLuaLocalState('Camera.ThroneRoom_SetLookAt('..kamlookX..', '..kamlookY..', '..kamlookZ..')')
        Logic.ExecuteInLuaLocalState('Camera.ThroneRoom_SetPosition('..kamposX..', '..kamposY..', '..kamposZ..')')
    end
    
    
    function Mission_OnSaveGameLoaded()
        JIP_OnSaveGameLoaded()
    end
    freieCamera_lokal.txt
    --------------------
    Code:
    function Mission_LocalOnMapStart()
    
      function KeyBindings_JIP_Local_JFC() --StartFreeCamera
        GUI.SendScriptCommand("JIP_JFC_StartFreeCamera()", true)
        Sound.FXPlay2DSound("ui\\siege_erect")
      end
      function KeyBindings_JIP_Local_JFCP_StartFreeCameraPlus(_wann) --StartFreeCameraPlus
        local wann = _wann
        GUI.SendScriptCommand("JIP_JFCP_StartFreeCameraPlus(" .. wann .. ")", true)
        Sound.FXPlay2DSound("ui\\siege_erect")
      end
      function KeyBindings_JIP_Local_JFCP_Local(_Befehl) --StartFreeCameraPlus
        local befehl = _Befehl
        GUI.SendScriptCommand("JIP_JFCP_Umsetzer(" .. befehl .. ")", true)
      end
      function KeyBindings_Bildschirm()
        GUI.SendScriptCommand("JIP_JFCP_BildschirmHide()", true)
      end
      
    end
    
    function Mission_LocalVictory()
    
    end
    - - - Aktualisiert - - -

    evtl findest Du ja noch was
    http://www.p-trabandt.de/S6/WIKI.rar
    trabbi
    Was ist Theorie, - Wenns klappen soll und es klappt nie
    Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum

    Kommentar


    • #3
      AW: SetCameraToEntity - Zoom einstellen

      Versuchs mal mit dieser hier:

      function SetCameraToPosition(_entity, _rotation, _zoomFactor, _zoomAngle )---Orig: _entity, -45, 10, 40
      local posX1, posY1 = Logic.GetEntityPosition(Logic.GetEntityIDByName(_e ntity));
      local rotation1 = _rotation
      local zoomFactor1 = _zoomFactor
      local zoomAngle1 = _zoomAngle
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetLookAt Position("'..posX1..'", "'..posY1..'")');
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetRotati onAngle("'..rotation1..'")');
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetZoomFa ctor("'..zoomFactor1..'")');
      Logic.ExecuteInLuaLocalState('Camera.RTS_SetZoomAn gle("'..zoomAngle1..'")');
      end
      Ist praktischer, weil man den Zoomfactor beim Aufruf direkt mitgeben kann. Allerdings gehts mit SetCameraToEntity auch, nur dass du hier den Zoomfactor fest im Code einstellen musst. Das ist unflexibel. Ich benutze immer diese Funktion oben.

      Aufruf ist dann für eine Nahaufnahme zB SetCameraToPosition("EntityX", -45, 0, 0) also Zoomfactor = 0, wenn du ganz nah ran willst.
      Alle meine Maps auf Siedelwood

      Kommentar


      • #4
        AW: SetCameraToEntity - Zoom einstellen

        Puuh, endlich konnte ich es testen.
        Also wenn ich bei Zoomfactor 0 drinhabe bin ich ganz dicht dran, bei allen anderen Werten (1-10) bin ich immer ganz rausgezoomt, versteh ich nicht.
        Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

        Kommentar


        • #5
          AW: SetCameraToEntity - Zoom einstellen

          Ich kenn ja von dem Geraffel hier nichts, aber wenn ich mir den Kommentar in dieser Zeile so anschaue:
          Code:
          Logic.ExecuteInLuaLocalState('Camera.RTS_SetZoomFactor("'.._zoomFactor..'")')  -- 0.05 - 1.0
          könnte es vielleicht daran liegen, dass der Wertebereich scheinbar von 0 bis 1 geht.

          Kommentar


          • #6
            AW: SetCameraToEntity - Zoom einstellen

            Gerade getestet, daran liegts leider nicht..
            ZoomAngle hat bei mir auch keine Auswirkung, ich weiß nicht wieso.
            Die 5 leeren Stellen oben im Script von Barbara habe ich natürlich korrigiert...
            Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

            Kommentar


            • #7
              AW: SetCameraToEntity - Zoom einstellen

              Hast Du mal meine Map TR_Urwald angesehen ??
              trabbi
              Was ist Theorie, - Wenns klappen soll und es klappt nie
              Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum

              Kommentar


              • #8
                AW: SetCameraToEntity - Zoom einstellen

                Hab ich als kleiner Bub bestimmt mal gespielt.
                Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

                Kommentar


                • #9
                  AW: SetCameraToEntity - Zoom einstellen

                  zumindest sind da einige Cameraeinstellungen drin
                  trabbi
                  Was ist Theorie, - Wenns klappen soll und es klappt nie
                  Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum

                  Kommentar


                  • #10
                    AW: SetCameraToEntity - Zoom einstellen

                    Joo, werd ich mal reinschnuppern.
                    Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

                    Kommentar


                    • #11
                      AW: SetCameraToEntity - Zoom einstellen

                      Zitat von Annosiedler Beitrag anzeigen
                      Also wenn ich bei Zoomfactor 0 drinhabe bin ich ganz dicht dran, bei allen anderen Werten (1-10) bin ich immer ganz rausgezoomt, versteh ich nicht.
                      Finde ich seltsam, ich habe das schon mit verschiedensten Einstellungen benutzt (zoomfactor bis zu 50 zB bei der Einstellung aufs Teefeld im Buddhazahn), klappt immer. Habs auch schon mit negativem Zoomfactor gesehen, aber selbst noch nicht ausprobiert. Probier das vielleicht mal...
                      Alle meine Maps auf Siedelwood

                      Kommentar


                      • #12
                        AW: SetCameraToEntity - Zoom einstellen

                        Zitat von barbara27h Beitrag anzeigen
                        Finde ich seltsam, ich habe das schon mit verschiedensten Einstellungen benutzt (zoomfactor bis zu 50 zB bei der Einstellung aufs Teefeld im Buddhazahn), klappt immer. Habs auch schon mit negativem Zoomfactor gesehen, aber selbst noch nicht ausprobiert. Probier das vielleicht mal...
                        War das nicht so, das die zahl ZWISCHEN 0 und 1 liegen muss?
                        MfG totalwarANGEL

                        Kommentar


                        • #13
                          AW: SetCameraToEntity - Zoom einstellen

                          ...also ist wohl doch von 0 bis 1 also die zwischenschritte 0.1 bis so 0.9 und bla...
                          aber löässt sich insgesammt nicht so wirklich exakt einstellen wie ich mir das vorgestellt hatte.
                          Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

                          Kommentar


                          • #14
                            AW: SetCameraToEntity - Zoom einstellen

                            Wenn das die Spielkamera bzw. RTS-Kamera ist: die hat Zoomwerte von 0.05 bis 0.5.

                            Kommentar


                            • #15
                              AW: SetCameraToEntity - Zoom einstellen

                              okay, danke, das erklärt warum der zoom sehr komisch ist.
                              Meine Maps für "Die Siedler - Aufstieg eines Königreichs", nur auf Siedelwood und Siedler-Maps.

                              Kommentar

                              Lädt...
                              X