SA-MP Forums Archive
Car ownership with db - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Car ownership with db (/showthread.php?tid=575313)



Car ownership with db - Tess - 25.05.2015

Hi, i would like to do a simple car ownership that allows you tu save a car with the command /savecar and load your saved car with /mycar but i have to do it with the database if possible any idea of how?


Re: Car ownership with db - PepsiCola23 - 25.05.2015

Yes you can,if you use ini you have to use some publics.
put forward savecar(); and loadcar(); on top of the script and you can use the function loadcar(); to load the cars and savecar(); to save them,you can get a help by taking a look on those publics:
PHP код:
public LoadCar()
{
    new 
arrCoords[30][64];
    new 
strFromFile2[256];
    new 
Filefile fopen("yourfile"io_read);
    if (
file)
    {
        new 
idx carsonserver;
        while (
idx sizeof(CarInfo))
        {
            
fread(filestrFromFile2);
            
split(strFromFile2arrCoords',');
            
CarInfo[idx][cModel] = strval(arrCoords[0]);
            
CarInfo[idx][cLocationx] = floatstr(arrCoords[1]);
            
CarInfo[idx][cLocationy] = floatstr(arrCoords[2]);
            
CarInfo[idx][cLocationz] = floatstr(arrCoords[3]);
            
CarInfo[idx][cAngle] = floatstr(arrCoords[4]);
            
CarInfo[idx][cColorOne] = strval(arrCoords[5]);
            
CarInfo[idx][cColorTwo] = strval(arrCoords[6]);
            
strmid(CarInfo[idx][cOwner], arrCoords[7], 0strlen(arrCoords[7]), 255);
            
strmid(CarInfo[idx][cDescription], arrCoords[8], 0strlen(arrCoords[8]), 255);
            
CarInfo[idx][cValue] = strval(arrCoords[9]);
            
CarInfo[idx][cOwned] = strval(arrCoords[10]);
            
CarInfo[idx][mod1] = strval(arrCoords[11]);
            
CarInfo[idx][mod2] = strval(arrCoords[12]);
            
CarInfo[idx][mod3] = strval(arrCoords[13]);
            
CarInfo[idx][mod4] = strval(arrCoords[14]);
            
CarInfo[idx][mod5] = strval(arrCoords[15]);
            
CarInfo[idx][mod6] = strval(arrCoords[16]);
            
CarInfo[idx][mod7] = strval(arrCoords[17]);
            
CarInfo[idx][mod8] = strval(arrCoords[18]);
            
CarInfo[idx][mod9] = strval(arrCoords[19]);
            
CarInfo[idx][mod10] = strval(arrCoords[20]);
            
CarInfo[idx][mod11] = strval(arrCoords[21]);
            
CarInfo[idx][mod12] = strval(arrCoords[22]);
            
CarInfo[idx][mod13] = strval(arrCoords[23]);
            
CarInfo[idx][mod14] = strval(arrCoords[24]);
            
CarInfo[idx][mod15] = strval(arrCoords[25]);
            
CarInfo[idx][mod16] = strval(arrCoords[26]);
            
CarInfo[idx][mod17] = strval(arrCoords[27]);
            
CarInfo[idx][paintjob] = strval(arrCoords[28]);
            
LoadComponents(idx);
            
idx++;
        }
    }
    return 
1;
}
public 
SaveCarCoords()
{
    new 
idx;
    new 
Filefile2;
    while (
idx sizeof(CarInfo))
    {
        new 
coordsstring[256];
        
format(coordsstringsizeof(coordsstring), "%d|%f|%f|%f|%f|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d\n",
        
CarInfo[idx][cModel],
        
CarInfo[idx][cLocationx],
        
CarInfo[idx][cLocationy],
        
CarInfo[idx][cLocationz],
        
CarInfo[idx][cAngle],
        
CarInfo[idx][cColorOne],
        
CarInfo[idx][cColorTwo],
        
CarInfo[idx][mod1],
        
CarInfo[idx][mod2],
        
CarInfo[idx][mod3],
        
CarInfo[idx][mod4],
        
CarInfo[idx][mod5],
        
CarInfo[idx][mod6],
        
CarInfo[idx][mod7],
        
CarInfo[idx][mod8],
        
CarInfo[idx][mod9],
        
CarInfo[idx][mod10],
        
CarInfo[idx][mod11],
        
CarInfo[idx][mod12],
        
CarInfo[idx][mod13],
        
CarInfo[idx][mod14],
        
CarInfo[idx][mod15],
        
CarInfo[idx][mod16],
        
CarInfo[idx][mod17],
        
CarInfo[idx][paintjob]);
        if(
idx == carsonserver)
        {
            
file2 fopen("yourfile.cfg"io_write);
        }
        else
        {
            
file2 fopen("yourfile"io_append);
        }
        
fwrite(file2coordsstring);
        
idx++;
        
fclose(file2);
    }
    return 
1;

With those publics,you can make CMD`s such as /makecar and /loadcar but be sure to put savecar(); at the /makecar cmd and loadcar(); at the /loadcar cmd.

If you want to do it dynamically,be careful to count the cars on your server and modify the carsonserver[it should be on the top of the script like
PHP код:
new carsonserver