Jump to content

Maggi

Members
  • Posts

    40
  • Joined

  • Last visited

Everything posted by Maggi

  1. As I understood, Due to MTA architecture all serverside object data is streamed with all clients... This means that if I standing in the unique dimension (for ex: all players except me in 0 dim, but i am in 777 dim) then server will send me "unused" data? (data: vehicle states over whole map, player states,etc... in a few words not streamed in object data will be send to my client and this is not good for bandwidth) also as I understood, MTA uses GTA's core object streamer to stream objects.. it is ideal for static objects, pickups, etc.. Is it possible to create serverside streamer to avoid updating clients (dynamic objects), that is not in stream range. P.S: sorry for my bad english)
  2. Maggi

    setElementData

    Syntax var getElementData ( element theElement, string key [, inherit = true] ) Required Arguments * theElement: This is the element with data you want to retrieve. * key: The name of the element data entry you want to retrieve. (Maximum 31 characters.) Optional Arguments * inherit: - toggles whether or not the function should go up the hierarchy to find the requested key in case the specified element doesn't have it. After brainfucking tests I found that I can retrieve tables from elements using getElementData...but, seems to be that this function copies result table instead of returning pointer (handle) to table...so all manipulations with table didn't being saved until I call setElementData... this means that setElementData copies whole table to element data ???
  3. Maggi

    setElementData

    I have question about setElementData function - why I can't save tables in element? It is very useful to allocate some data with player (RGP table of stats) of vehicle (RPG vehicle data: fuel, numberplate, engine number, etc) so, my code was: players.lua ... function playerOnJoin () local pdata = {} pdata.Money = 1100 setElementData ( source, "rpgdata", pdata, false ) -- DO NOT SYNC end ... another module.lua ... function someFunction ( player ) local pdata = getElementData ( player, "rpgdata", false ) pdata.Money = pdata.Money + 1000 -- doesn't work outside this function end ... testing pdata == nil -> returns true, why?
  4. Maggi

    Security in MTA

    But I'm talked about this already) about speed on certain channels (x, y, z) In my SA:MP speedhack anticheat implementation we have these type of checks: SPEED_PL_XY, SPEED_PL_Z_UP, SPEED_PL_Z_DOWN, SPEED_VEH_XY, SPEED_VEH_Z_UP, SPEED_VEH_Z_DOWN - this is more effecient than calculating distance and comparing it with MAX_DISTANCE per second.
  5. Maggi

    Security in MTA

    Of course, "core" phisics on server side means tons of calculations, aslo it sets a few more conditions on resources... therefore: what means phisics? it is luxury.. of course main phisics must be at client side. As of server: he is only do approximated simple tasks (speed check, shooting check - test for godmode)... Ex: if player A speed.channel X > player A pedtype.maxspeed_channel X then -> speedhack on X channel or in general: if object A speed.channel X > object A objtype.maxspeed_channel X then -> speedhack on X channel for object A of course this simple model of phisics is more faster.. but still has disadvantages: 1) server can''t detect drift cheats. (or something like). They may be detected if some player spectates cheater. 2) speedhacks still be possible but with low speed 3) player can jump and freeze himself this disadvantages still may be removed with way of adding new params to server's phisics model: derivatives (from math=)) they can detect fast acceleration/deceleration... (x, y, z, dx, dy, dz, d2x, d2y, d2z) I think that approximated tasks model is the best for our current mta model.
  6. Maggi

    Security in MTA

    I'm tired of creating anticheats in samp...))...anyway, anticheats takes a lot of time for doing checks... speedhack anticheat must test prev and curr positions of element every second.. also elements must be stored in the table (this takes additional memory) I already thought about cheats and I want to write here my ideas.. current model: network abstraction layer of GTA is MTA (layer 1)... game world of player is running at client side and is being synced with other streamed clients by MTA .. what it means? it means that client can easily change his memory (layer NULL) and hack it... ideal model: client give us possibility to make "basic" atomic actions - aiming, shooting, jumping, driving... but this is only requests - client sends requests to server (packets) like this ACTION_AIMING + aiming data, etc... and server gets this packets from all players, make calculations, and then send back to all clients. This model means that server will take all calculations in his core...yes) this also includes phisics...
  7. bool setElementVelocity ( element theElement, float speedX, float speedY, float speedZ ) setElementVelocity already has 3 channels (x, y ,z)... you need to create angular velocity abstraction than returns it in x,y,z then apply it to element
  8. Hi community. I'm going to write anticheat system for my server but I have some questions about security (anticheats): 1) Is it possible for MTA clients to rewrite their scripts? 2) What will happend if I shoot to cheater wich has GodMode? (who can explain in-depth what will be in this case) 3) (the same question about speedhacks) 4) if client changes his element data (health, money,...) will server believe him?
  9. Maggi

    MTA Limits

    Thanks for your replies ... There is next questions: 1) How to Disable scoreboard? (for ex: scoreboard in samp send a lot of unused info to player and makes sync go down on large RPG servers with a lot of people...) 2) MTA server sends to client various types of packets. The problem is how to disable "unused" synchronizations - vehicle door damages, traffic lights, etc... 3) Is it possible to write modes in c++ rather than lua (and how to do this) ? - reason - large RPG logic core needs a lot of calculations... There is a method in samp already that allows to write gamemodes in c++ - it is named "wrapper plugin"...
  10. Maggi

    MTA Limits

    What is about network packets? what is average upload speed to player from server? conditions: player_count = 220 object count = not so much, as in normal race (with roads going to sky )) ) I can't find so much people to make limit tests. May be we can do such tests and proof all others that MTA is much better than samp?)) will be edited (making calculations)...
  11. Maggi

    MTA Limits

    Here is the main questions that disturb not only me but also a lot of scripters that can't decide: stay in SAMP or go to MTA: 1) MAX_PLAYERS = 2) MAX_VEHICLES = 3) MAX_3DOBJECT_COUNT (MAX_PICKUPS, ...) = 4) How often are packets sent to player and how many? (I'm afraid that packet count is more than in SAMP, because of MTA's improved sync) Notes: MAX_PLAYERS means how many players can server handle (network aspect)
  12. But game engine will still draw grass but with transparent texture...Game engine doesn't know about texture pixels... The purpose of disabling grass is to increase fps... for ex: the grass (or grass effect) is already disabled in samp...
  13. I am going to create gamemode like SA:MP's GodFather mod. So, starting to prepare...First of all I want to disable client's "core" scripts like grass, stone on hills etc. I've already searched MTA wiki but don't found any function that can disable grass.
×
×
  • Create New...