Autor Wątek: Użyteczne programy/mody do DCS  (Przeczytany 57528 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #105 dnia: Listopada 22, 2016, 21:11:45 »
Bardzo fajny programik na Androida, można export-ować  CDU na ekran tebleciku. Po drobnej poprawce pliku Export.lua udało mi się go uruchomić razem z DCS-Bios.
https://www.digitalcombatsimulator.com/en/files/2132690/?sphrase_id=5010560
W pliku Export.lua  linijkę os.setlocale("ISO-8559-1", "numeric") trzeba poprawić na --os.setlocale("ISO-8559-1", "numeric"), dokładnie chodzi o te dwa "--" na początku linijki. Teraz na tableciku jest piękny CDU, wszystko działa i co najważniejsze nie obciąża tak procesora jak "Virtual Cockpit Server for DCS World". 
Jeśli chcesz by działał też DCS-Bios, trzeba dać jego wpis o exporcie na końcu pliku a nie na początku. U mnie to wygląda tak:

Cytuj
--CDU START--
gExportInterval = 0.067

--os.setlocale("ISO-8559-1", "numeric")

function LuaExportStart()
--   default_output_file = io.open(require('lfs').writedir().."Temp\\export.log", "w")
--   default_output_file:write("server start\n")

   -- Works once just before mission start.
    -- 2) Setup udp sockets to talk to helios
    package.path  = package.path..";.\\LuaSocket\\?.lua"
    package.cpath = package.cpath..";.\\LuaSocket\\?.dll"

    socket = require("socket")
   
    c = socket.udp()
   c:setsockname("*", 0)
   c:setoption('broadcast', true)
    c:settimeout(.001) -- set the timeout for reading the socket
end

function LuaExportBeforeNextFrame()
   ProcessInput()
end

function LuaExportAfterNextFrame()   
end

function LuaExportStop()
   c:close()
--   if default_output_file then
--      default_output_file:close()
--      default_output_file = nil
--   end
end

function ProcessInput()
    local lInput = c:receive()
    local lCommand, lCommandArgs, lDevice, lArgument, lLastValue

    if lInput then
--       default_output_file:write(lInput..'\n')
        lCommand = string.sub(lInput,1,1)
       
      if lCommand == "R" then
         ResetChangeValues()
      end
   
      if (lCommand == "C") then
         lCommandArgs = StrSplit(string.sub(lInput,2),",")
         lDevice = GetDevice(lCommandArgs[1])
         if type(lDevice) == "table" then
            lDevice:performClickableAction(lCommandArgs[2],lCommandArgs[3])   
         end
      end
    end
end

function LuaExportActivityNextEvent(t)
   t = t + gExportInterval
   sendCDUData()
   return t
end

-- Helper Functions
function StrSplit(str, delim, maxNb)
    -- Eliminate bad cases...
    if string.find(str, delim) == nil then
        return { str }
    end
    if maxNb == nil or maxNb < 1 then
        maxNb = 0    -- No limit
    end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    -- Handle the last field
    if nb ~= maxNb then
        result[nb + 1] = string.sub(str, lastPos)
    end
    return result
end



--dofile(require('lfs').writedir().."Scripts\\libCDU.lua")



--////// CDU APP CONFIG //////

function checkPlayerAircraft()
   local PlayerPlaneInfo = LoGetObjectById(LoGetPlayerPlaneId());
   local playerAircraft
   if ( PlayerPlaneInfo ) then
--      default_output_file:write("info1 : "..playerAircraft..'\n')
      if PlayerPlaneInfo.Name == "A-10C" then
--      if playerAircraft then
--         default_output_file:write("info2 : "..playerAircraft..'\n')
--      end
         return 0
      end
   end
--   if playerAircraft then
--        default_output_file:write("info2 : "..playerAircraft..'\n')
--      end
   return 1
end

function sendCDUData()

   if checkPlayerAircraft() == 1 then
--         default_output_file:write("this plane is not a-10\n")
      return
   end
--         default_output_file:write("this plane is a-10\n")
   getIndicatorData(3)
   sendAAP()
   sendCDUEcho()
   sendCDUMasterCaution()
end

nextCDUEchoTime = 0
function sendCDUEcho()
   local curTime = LoGetModelTime()
   if curTime >= nextCDUEchoTime then
      nextCDUEchoTime = curTime + 10
      sendCduData("DCSECHO", cduAppHost, cduAppPort)
--      socket.try(c:sendto("DCSECHO", cduAppHost, cduAppPort))
   end
end


nextCDUMCTime = 0
nextCDUMVwarn = 0
function sendCDUMasterCaution()
   local curTime = LoGetModelTime()
   if curTime >= nextCDUMCTime then
      nextCDUMCTime = curTime + 1

      local mwarn = GetDevice(0):get_argument_value(404)
      if nextCDUMVwarn > mwarn or nextCDUMVwarn < mwarn then
         nextCDUMVwarn = mwarn
         sendCduData("404:"..nextCDUMVwarn, cduAppHost, cduAppPort)
--         socket.try(c:sendto("404:"..nextCDUMVwarn, cduAppHost, cduAppPort))
      end
   end
end


nextAAPTime = 0
function sendAAP()
   local curTime = LoGetModelTime()
   if curTime >= nextAAPTime then
      nextAAPTime = curTime + .15
      local mstpt = string.format("%d", string.format("%0.1f", GetDevice(0):get_argument_value(473))*10)
      sendCduData("473:"..mstpt, cduAppHost, cduAppPort)
      local mpage = string.format("%d", string.format("%0.1f", GetDevice(0):get_argument_value(475))*10)
      sendCduData("475:"..mpage, cduAppHost, cduAppPort)
      local cdupw = string.format("%d", GetDevice(0):get_argument_value(476))
      sendCduData("476:"..cdupw, cduAppHost, cduAppPort)
      local egipw = string.format("%d", GetDevice(0):get_argument_value(477))
      sendCduData("477:"..egipw, cduAppHost, cduAppPort)
   end
end

nextCDUIndicatorTime = 0
function getIndicatorData(indicator_number)
   local pairData = ""
   local curTime = LoGetModelTime()
   if curTime >= nextCDUIndicatorTime then
      nextCDUIndicatorTime = curTime + .15
      local indicator = list_indication(indicator_number)
      if indicator ~= "" then
         for brace in indicator:gmatch("%b{}") do
            local lines = string.gsub(string.gsub(brace,"[{}]",""),"---+","")
            for data in lines:gmatch("[%w_]+\n[^\n]+") do
               pairData = pairData..string.gsub(data, "\n", "<==>")..'\n'
            end
         end
         sendCduData(pairData, cduAppHost, cduAppPort)
      end
   end
end

function sendCduData( message, appIpList, appPort )
   if message and appIpList and appPort then
      for appIp in string.gmatch(appIpList, "([0-9]+.[0-9]+.[0-9]+.[0-9]+)") do
         socket.try(c:sendto(message, appIp, appPort))
--          default_output_file:write(appIp..":"..appPort..'\n')
      end
   end
end;
--////// ANDROID NETWORK CONFIG //////
--multi ip enable example : 192.168.1.128 192.168.1.129 192.168.1.130
cduAppHost = "192.168.0.100"
cduAppPort = 9089

--////// CDU APP CONFIG //////

dofile(lfs.writedir()..[[Scripts\DCS-BIOS\BIOS.lua]])
dofile(".\\A10VCServer\\Main.lua") --A10VCHook

Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #106 dnia: Grudnia 10, 2016, 15:09:22 »
Witam.
Czy ktoś wie co to za mod?
https://www.youtube.com/watch?v=M5smjWww81Q
https://www.youtube.com/watch?v=P4VHCLILggI
Jakaś nazwa? Gdzie? Cokolwiek.

Online Marcin_B

  • *
  • MABO
Odp: Użyteczne programy/mody do DCS
« Odpowiedź #107 dnia: Grudnia 10, 2016, 15:49:45 »
Tutaj jest info - ale pod DCS 1.5 / 2.0 działa chyba tylko F/A-18C
https://forums.eagle.ru/showthread.php?t=143621&page=52

Strona ISVA - podobno grupa się rozpadła:(
http://isva.clan.su/load/mod_korabli/1-1-0-11

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #108 dnia: Grudnia 10, 2016, 19:12:10 »
Dziękuje za pomoc.
Przykro, myślałem, że może ...

Online YoYo

  • Administrator
  • *****
  • Wieczny symulant
    • YoYosims
Odp: Użyteczne programy/mody do DCS
« Odpowiedź #109 dnia: Grudnia 11, 2016, 10:06:12 »
Ciekawa sprawa: https://youtu.be/vj8g2dxJosw?t=5m1s . Zobaczcie w 5:05, szybki zoom.
Nie znam takiej opcji w DCS, zawsze ten zoom jest płynny. Przypomina mi to opcję w WT i jest to dobra sprawa do dogfight albo wypatrywania celów na glebie.
Ktoś ma na to pomysł? Normalnie lecimy / i * z NumKey, coś podobnego daje efekt RShift+ / NumKey ale trzeba się już oddalić płynnie.
webmaster,   YoYosims - jeśli lubisz symulatory lotnicze

www.yoyosims.pl

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #110 dnia: Grudnia 11, 2016, 12:26:25 »
W ustawieniach można ustawić "zoom in" i "zoom normal" tak to działa jak na filmie.
« Ostatnia zmiana: Grudnia 11, 2016, 12:32:53 wysłana przez YoYo »

Online YoYo

  • Administrator
  • *****
  • Wieczny symulant
    • YoYosims
Odp: Użyteczne programy/mody do DCS
« Odpowiedź #111 dnia: Grudnia 11, 2016, 12:34:30 »
W ustawieniach można ustawić "zoom in" i "zoom normal" tak to działa jak na filmie.

Jak pisałem zoom normal to cofnięcie się do standardowego widoku, natomiast zoom in to "*" ale to nie daje efektu od razu skoku tylko płynne przybliżenie (tak długo jak się wciska to będzie się obraz stopniowo przybliżał).

Ok, mam. Gościu olał standardową kombinację i po prostu zrobił to:

Zoom mu daje RShift+* Num (zoom in: View Cockpit)
Oddalenie podpiął pod Normal, czyli NumEnter (normal zoom: View).
webmaster,   YoYosims - jeśli lubisz symulatory lotnicze

www.yoyosims.pl

Online YoYo

  • Administrator
  • *****
  • Wieczny symulant
    • YoYosims
Odp: Użyteczne programy/mody do DCS
« Odpowiedź #112 dnia: Grudnia 13, 2016, 22:02:45 »
webmaster,   YoYosims - jeśli lubisz symulatory lotnicze

www.yoyosims.pl

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #113 dnia: Grudnia 14, 2016, 09:16:18 »
Tak też można, ale można to zrobić inaczej. Jak wejdziesz w Config w folderze DCS'a tam w options.lua czy jakoś tak też można ustawić max fps i w sumie nie trzeba używać v-sync czy inne synki co tam macie :P.

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #114 dnia: Grudnia 14, 2016, 21:01:30 »
Tak też można, ale można to zrobić inaczej. Jak wejdziesz w Config w folderze DCS'a tam w options.lua czy jakoś tak też można ustawić max fps i w sumie nie trzeba używać v-sync czy inne synki co tam macie :P.

Nie mogę znaleźć tego folderu?
« Ostatnia zmiana: Grudnia 14, 2016, 22:10:32 wysłana przez KosiMazaki »

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #115 dnia: Grudnia 14, 2016, 22:18:32 »
U mnie ścieżka dostępu wygląda tak: D:\Eagle Dynamics\DCS World OpenBeta\Config i w folderze "Config" jest plik nazywający się dokładnie graphics.lua. Otwierasz jakimś notatnikiem (chociaż bezpieczniej Notepad++) i zmieniasz wartość maxfps=*.

*Liczba fps którą chcemy mieć jako maksymalną, domyślnie 180.

P.S. Przepraszam za błąd w poprzednim poście, pisałem z pamięci.

Offline =OPS=lipas

  • *
  • Very, very hakiem w plery.
Odp: Użyteczne programy/mody do DCS
« Odpowiedź #116 dnia: Grudnia 22, 2016, 10:51:17 »
Witam.
Znalazłem coś takiego, mod poprawiający widoczność.
https://forums.eagle.ru/showthread.php?t=160634
Może warto przetestować.

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #117 dnia: Grudnia 22, 2016, 11:01:57 »
Może warto, dziś można sprawdzić, ciekawe jak z Integrity Check ?
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline =OPS=lipas

  • *
  • Very, very hakiem w plery.
Odp: Użyteczne programy/mody do DCS
« Odpowiedź #118 dnia: Grudnia 22, 2016, 11:23:37 »
Nie przechodzi. Dlatego proponuję przez JSGME.

Odp: Użyteczne programy/mody do DCS
« Odpowiedź #119 dnia: Grudnia 22, 2016, 11:25:30 »
No to muszę go znowu zainstalować, ale i takmiałem Bartkowe teksturki przetestować :) .
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)