Jump to content

Recommended Posts

Posted (edited)

Can some one explain GG's post below and Yoda's comments in the LEAVU LUA code?

 

export.lua can be added to the list of fingerprinted files, just like in Black Shark.

 

This will allow server owners to prevent any modification whatsoever to that file.

 

While in Lua Export/Config/Export/Export.lua it says:

-- Eagle Radar Improvements and LEAVU for LOP Beta. 
-- Author of ERI and LEAVU: Johan 'Yoda' Kjölhede

-- Currently requires global script exports (EnableExportScript = true in config.lua)
-- Correction : Apparently it doesnt.....LoGetObjectByID is not considered global in DCS :) !!!!

and in Lua Export/Config/Export/Config.lua it says:

-- enable export some cheatering functions  LoGetWorldObjects()  etc, other functions enabled by default
EnableExportScript = false	-- set true to enable Export.lua script, please 

--  LoGetWorldObjects()   always available in single player game and on the server

and finally in Lua Export/Config/Export/ERI_fcns.lua it says:

-- ===================================
-- Workaround since LOP LoGetObjectById doesnt want to work in MP....
-- Wrap and overload the function entirely and keep our own state of world objects,
-- based on what our radar has seen or not seen
-- ===================================

 

Maybe I am missing something here, but I just want to make it clear whether or not LEAVU can be controlled on multiplayer servers. Maybe some of the ED developers are reading this and can shed some light on the issue.

 

Keep this discussion specifically on how export works. -EtherealN

Edited by EtherealN
Split from other thread.
  • Like 1

There are only 10 types of people in the world: Those who understand binary, and those who don't.

Posted

Original DCS BS Config/Export/Config.lua file says:

 

Export.lua script is always local , but if EnableExportScript = false

you cannot access to cheat posible functions : LoGetWorldObjects and LoGetObjectByID

this functions always will return nil

 

The way I understand this is that local data is still exported even when "EnableExportScript = false" and my understanding is that LEAVU can still work like this which is why it was said initially LEAVU is indepentent and cannot be controled by the server. When "EnableExportScript = false" it should mean Export.lua is not even being used... is that correct?

 

And also exactly where can server specify what files are to be checked?

  • Like 1

No longer active in DCS...

Posted
Original DCS BS Config/Export/Config.lua file says:

 

The way I understand this is that local data is still exported even when "EnableExportScript = false" and my understanding is that LEAVU can still work like this which is why it was said initially LEAVU is indepentent and cannot be controled by the server. When "EnableExportScript = false" it should mean Export.lua is not even being used... is that correct?

 

And also exactly where can server specify what files are to be checked?

 

That seems to be similar to the situation Yoda and I tested a bit earlier during a separate test.

And which seems to indicate that the Export.lua doesn't need to be modified - LEAVU will still work.

So the server-checksum wont report anything wrong.

 

I *hope* I got it wrong though - we can still test this. :)

Let's get to work ;)

The mind is like a parachute. It only works when it's open | The important thing is not to stop questioning

Posted (edited)

At least I found in Readme for 1.0.1 where server can specify what files are checked:

 

CHANGES TO MULTIPLAYER

1. In order to minimuize the possibiliby of cheating in multiplayer, a system of file and folder checks on the client machine by the server has been implemented. If the contents of the checked files/folders on the client side do not match the contents of the server, the client will be unable to connect to the server. By default, the server is set to check the folder "\Config\Weapons". The specific files and folders to be checked can be set in the following configuration file: "\Config\network.cfg", using the "integrity_check" parameter.

 

Right now by default these integrity checkes I think seem to be performed on all the files in specific folders... default Config/Network.cfg has:

 

integrity_check = {"Config/Weapons"},

 

which sugests all files in Config/Weapons folder are being checked only... as per Readme... now if I was to add new folder for integrity check how do you add this in Network.cfg? would it look like this?

 

integrity_check = {"Config/Weapons"},

integrity_check = {"Config/World"},

integrity_check = {"Config/View"},

Edited by Kuky

No longer active in DCS...

Posted

Kuky it doesn't matter what files you check, IF I've understood Panzertard's post LEAVU works with a default or modified export.lua file, in Layman's terms as LO stands now it's looking like it's impossible to control LEAVU server side.

[sIGPIC][/sIGPIC]

Posted (edited)
Can some one explain GG's post below and Yoda's comments in the LEAVU LUA code?

 

 

 

While in Lua Export/Config/Export/Export.lua it says:

-- Eagle Radar Improvements and LEAVU for LOP Beta. 
-- Author of ERI and LEAVU: Johan 'Yoda' Kjölhede

-- Currently requires global script exports (EnableExportScript = true in config.lua)
-- Correction : Apparently it doesnt.....LoGetObjectByID is not considered global in DCS :) !!!!

and in Lua Export/Config/Export/Config.lua it says:

-- enable export some cheatering functions  LoGetWorldObjects()  etc, other functions enabled by default
EnableExportScript = false	-- set true to enable Export.lua script, please 

--  LoGetWorldObjects()   always available in single player game and on the server

and finally in Lua Export/Config/Export/ERI_fcns.lua it says:

-- ===================================
-- Workaround since LOP LoGetObjectById doesnt want to work in MP....
-- Wrap and overload the function entirely and keep our own state of world objects,
-- based on what our radar has seen or not seen
-- ===================================

 

Maybe I am missing something here, but I just want to make it clear whether or not LEAVU can be controlled on multiplayer servers. Maybe some of the ED developers are reading this and can shed some light on the issue.

 

Keep this discussion specifically on how export works. -EtherealN

 

Case that is an old comment which is no longer valid, since both global functions

LoGetWorldObjects() and LogetObjectById() are not used by leavu/ERI.

I have however written my own LoGetObjectById which gathers data from an internal

state which I populate using the LUA radar export.

 

please tell me where in the code this comment is so I can remove it

What is current and valid is posted in the LEAVU thread

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted

Yes I am aware of that now... looks like who ever said few hours ago that this issue has been sorted was very wrong... anyway this is not lookin' good

No longer active in DCS...

Posted
Kuky it doesn't matter what files you check, IF I've understood Panzertard's post LEAVU works with a default or modified export.lua file, in Layman's terms as LO stands now it's looking like it's impossible to control LEAVU server side.

 

LEAVU does not run with default export.lua.

LEAVU needs a specific export.lua

Add export.lua to integrity checks on server and no lua mods can run on clients

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted
LEAVU does not run with default export.lua.

LEAVU needs a specific export.lua

Add export.lua to integrity checks on server and no lua mods can run on clients

 

By enabling integrity check of Export.lua no export lua scripts can be run on client, since there is nothing in export.lua you are using for LEAVU this is not helpfull and does not stop LEAVU. You are using client data export which cannot be disabled... correct?

No longer active in DCS...

Posted (edited)

LEAVU uses custom export.lua.

if it doesnt have the modded export.lua then LEAVU does not work

 

LEAVU export.lua looks like this

 



function LuaExportStart()
end

function LuaExportBeforeNextFrame()

end

function LuaExportAfterNextFrame()
end

function LuaExportStop()
end

function LuaExportActivityNextEvent(t)
local tNext = t

return tNext
end

-- We need som basic math functions
dofile("./Config/export/math_fcns.lua")

-- Include the Eagle radar improvements
dofile("./Config/export/ERI_fcns.lua")

-- Include the LEAVU functions
dofile("./Config/export/LEAVU_fcns.lua")


 

All code is available for public viewing here : http://kenai.com/projects/leavu2/sources/subversion/show/LEAVU?rev=171

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted (edited)
which seems to indicate that the Export.lua doesn't need to be modified - LEAVU will still work.

 

LEAVU does not run with default export.lua.

LEAVU needs a specific export.lua

Add export.lua to integrity checks on server and no lua mods can run on clients

 

OK Yoda that's a relief to know. I thought Panzertard was saying that LEAVU could possibly work without export.lua being modified.

Edited by Vault

[sIGPIC][/sIGPIC]

Posted
OK Yoda that's a releif to know. I thought Panzertard was saying that LEAVU could possibly work without export.lua being modified.

 

thougth so too, didn't Panzertard say he's done test with Yoda and said you don't need to modify Export.lua?

 

That seems to be similar to the situation Yoda and I tested a bit earlier during a separate test.

And which seems to indicate that the Export.lua doesn't need to be modified - LEAVU will still work.

No longer active in DCS...

Posted (edited)
Are you saying that for LEAVU to run you need custom scripts in Export.lua?

 

yes. As I've always said

LEAVU needs Local lua export. (LoGetMySpeed...etc)

LEAVU does not need Global lua export (LoGetWorldObjects and LoGetObjectById)

 

You can also see this in the source code of LEAVU in the links ive provided.

 

The comments about global export that Case found in a file were old and

are not valid since about 2-3 weeks back. In LOFC and FC1.12 the previous

LEAVU required global exports by using the global function LoGetObjectById,

this was due to an issue in FC 1.12 with exporting local radar data of F-15.

This now a non-issue. ( The issue was it was only working for Ru birds )

 

If you write 5000 lines of code in a short time, then yuo will likely forget an

old comment here and there. Thank you for telling me I have updated the source

and removed these wrong comments.

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted (edited)
yes. As I've always said

LEAVU needs Local lua export. (LoGetMySpeed...etc)

LEAVU does not need Global lua export (LoGetWorldObjects and LoGetObjectById)

 

But by this as already said, the comment in Export.lua says that this client lua export (LoGetMySpeed...etc) is still working even if export.lua is disabled which suggests that you do not need to specify any scripts etc in export.lua file... if EnableExportLua = false that should mean you don't need Export.lua to have anything as it's not being used... so if server disables this it doesn't matter what you have in Export.lua and you are saying that you don't even need this because you only need client data export which is always on? I'm a bit confused here now...

Edited by Kuky

No longer active in DCS...

Posted
But by this as already said, the comment in Export.lua says that this client lua export (LoGetMySpeed...etc) is still working even if export.lua is disabled which suggests that you do not need to specify any scripts etc in export.lua file...

 

No it works like this :

 

Export.lua can contain lua export functions.

These can be global ( access data on all players ) or local ( access only self data )

in config.lua you can turn off global functions only. Config lua does not turn off export.lua

 

Where it says

EnableExportScript = false	-- set true to enable Export.lua script, please

is wrong. "EnableExportScript = false" only disables Global export. Local exports in export.lua

are still possible. For that you need to do integrity checks on export.lua so that client uses a blank file

 

With integrity checks you can turn off both.

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted (edited)

hm... alright, so if I have my Export.lua as it is default (when you have fresh game install) and then set export.lua (or more exact the folder in which it's in) for integrity check... anyone that connects to my machine will need to have same default Export.lua file and no one would be able to get any data exported, not even his own client side (speet.etc)?

Edited by Kuky

No longer active in DCS...

Posted

Thanks for the clarification Yoda, that was what I was looking for. ;)

When we did the test previously server-export was off - but as Yoda now states it needs to be modified locally on the client.

 

Which means "client Export.lua" != "server Export.lua"

And can be detected by the checksum test.

 

There are possible workarounds for this as well - if you copy & paste the code you need into other essential LUA files within the game - then you may ... *may* .. be able to get an addon to load without touching the original files.

This is something we need to test in a different scenario - this is somewhat more related to "anti-cheat" ;)

The mind is like a parachute. It only works when it's open | The important thing is not to stop questioning

Posted
hm... alright, so if I have my Export.lua as it is default (when you have fresh game install) and then set export.lua (or more exact the folder in which it's in) for integrity check... anyone that connects to my machine will need to have same default Export.lua file and no one would be able to get any data exported, not even his own client side (speet.etc)?

 

Correct

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted
OK Yoda that's a relief to know. I thought Panzertard was saying that LEAVU could possibly work without export.lua being modified.

Yes, unfortunately I wasnt aware that Yoda had modified his files ;)

Good to get the clarification we needed :)

The mind is like a parachute. It only works when it's open | The important thing is not to stop questioning

Posted
Thanks for the clarification Yoda, that was what I was looking for. ;)

When we did the test previously server-export was off - but as Yoda now states it needs to be modified locally on the client.

 

Which means "client Export.lua" != "server Export.lua"

And can be detected by the checksum test.

 

There are possible workarounds for this as well - if you copy & paste the code you need into other essential LUA files within the game - then you may ... *may* .. be able to get an addon to load without touching the original files.

This is something we need to test in a different scenario - this is somewhat more related to "anti-cheat" ;)

 

I have tested this.It does not work for me as the "LoGet" functions and "LoSet" functions

are only accessible from within files triggered by export.lua.

If you put them in other lua files they did absolutely nothing for me.

 

Only from export.lua can you retrieve this data when I tested it.

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted
I have tested this.It does not work for me as the "LoGet" functions and "LoSet" functions

are only accessible from within files triggered by export.lua.

If you put them in other lua files they did absolutely nothing for me.

 

I would assume if you put the "require" and references in the "right places" one could find some file where integrite doesn't check - and load external code by reference.

But as I said, I think this is more in the direction of a "anti-cheat" thing we may test - not something that is related to LEAVU for that sake. :)

The mind is like a parachute. It only works when it's open | The important thing is not to stop questioning

Posted (edited)
I would assume if you put the "require" and references in the "right places" one could find some file where integrite doesn't check - and load external code by reference.

But as I said, I think this is more in the direction of a "anti-cheat" thing we may test - not something that is related to LEAVU for that sake. :)

 

But how would you access the luaExprotFunctions

 

Likely LO does something like

 

function LoGetMySpeed....[definition] -- make functions visible
dofile(export.lua)
LoGetMySpeed = nil ; -- functions no longer acceessible

If you write your code in other export files it has not effect, because the

functions are just nil.

This is at least what i experienced when testing it

Edited by =RvE=Yoda

S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse'

Posted

I think what LEAVU is realy great thing cause it can add new functions what is simulate datalink. Its will be good if LEAVU server can simulate real radio data transmition. Anyway thanks for hard work Yoda.

If you need assistance with translation or data about russian aircrafts i'm at ur service

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...