Vice City: Multiplayer

VC:MP Discussion => Support => Tutorials => Topic started by: NicusorN5 on Mar 27, 2018, 06:17 PM

Title: [TUTORIAL]INI Databases...
Post by: NicusorN5 on Mar 27, 2018, 06:17 PM
    We all know that INI databases are the easiest to use. (And the laggiest ofc)

    When reading some values in a for() statement in a large file( ~2000+ values or more) , it freezes the server, then the players will experience an INSANE delay.

    Some people will still continue using INIParser plugin, because SQL languages are so confusing for them.

    There are some short,obvious tips for using the INI plugin:
       A example:
Bad example:
WriteIniInteger("cars.ini",player.Vehicle.ID+"","model",player.Vehicle.Model);
WriteIniNumber("cars.ini",player.Vehicle.ID+"","x",player.Vehicle,Pos.x);
WriteIniNumber("cars.ini",player.Vehicle.ID+"","y",player.Vehicle.Pos.y);
WriteIniNumber("cars.ini",player.Vehicle.ID+"","z",player.Vehicle.Pos.z);
WriteIniNumber("cars.ini",player.Vehicle.ID+"","rx",player.Vehicle.Rotation.x);
WriteIniNumber("cars.ini",player.Vehicle.ID+"","ry",player.Vehicle.Rotation.y);
WriteIniNumber("cars.ini",player.Vehicle.ID+"","rz",player.Vehicle.Rotation.z);
WriteIniNumber("cars.ini",player.Vehicle.ID+"","rw",player.Vehicle.Rotation.w);
WriteIniInteger("cars.ini",player.Vehicle.ID+"","c1",player.Vehicle.Colour1);
WriteIniInteger("cars.ini",player.Vehicle.ID+"","c2",player.Vehicle.Colour2);

Good example:
local data = player.Vehicle.Model+" "+player.Vehicle.Pos.x+" "+player.Vehicle.Pos.y+" "+player.Vehicle.Pos.z+" "+player.Vehicle.Rotation.x+" "+player.Vehicle.Rotation.y+" "+player.Vehicle.Rotation.z+" "+player.Vehicle.Rotation.w+" "+player.Vehicle.Colour1+" "+player.Vehicle.Colour2+"";
WriteIniString("cars.ini","vehicles",player.Vehicle.ID+"",data);


Why? Because this method of writing (one string value per item(car/pickup/object/player/etc)) reduces the size of saved data. So hopefully the lag will be more rare and smaller ^_^ .
       
Thanks for reading. Hope you will use these tips if you use IniParser in your server. (ofc this tutorial is made for newbs)