SA-MP Forums Archive
Parked vehicles dosen't respawn. - 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: Parked vehicles dosen't respawn. (/showthread.php?tid=356359)



Parked vehicles dosen't respawn. - Karl[NDZ] - 03.07.2012

Here is the code I got from my last topic:

pawn Код:
#include <a_samp>
#include <mxINI05>
// Car Parking by O.K.Style™
#define COLOR_BODY 0xFDE39DFF
enum vInfo {
    vModel,
    Float:vCoordX,
    Float:vCoordY,
    Float:vCoordZ,
    Float:vCoordA,
    vPaintJob,
    vColor1,
    vColor2,
    vModSlot0,
    vModSlot1,
    vModSlot2,
    vModSlot3,
    vModSlot4,
    vModSlot5,
    vModSlot6,
    vModSlot7,
    vModSlot8,
    vModSlot9,
    vModSlot10,
    vModSlot11,
    vModSlot12,
    vModSlot13
};
new VehicleInfo[MAX_VEHICLES][vInfo];

public OnVehicleSpawn(vehicleid)
{
    new string[64];
    format(string, sizeof(string), "parking_%d.ini", vehicleid);
    if(!fexist(string)) return 1;
    new vFile = ini_openFile(string);
    ini_getInteger(vFile, "vModel", VehicleInfo[vehicleid][vModel]);
    ini_getFloat(vFile, "vCoordX", VehicleInfo[vehicleid][vCoordX]);
    ini_getFloat(vFile, "vCoordY", VehicleInfo[vehicleid][vCoordY]);
    ini_getFloat(vFile, "vCoordZ", VehicleInfo[vehicleid][vCoordZ]);
    ini_getFloat(vFile, "vCoordA", VehicleInfo[vehicleid][vCoordA]);
    ini_getInteger(vFile, "vPaintJob", VehicleInfo[vehicleid][vPaintJob]);
    ini_getInteger(vFile, "vColor1", VehicleInfo[vehicleid][vColor1]);
    ini_getInteger(vFile, "vColor2", VehicleInfo[vehicleid][vColor2]);
    ini_getInteger(vFile, "vModSlot0", VehicleInfo[vehicleid][vModSlot0]);
    ini_getInteger(vFile, "vModSlot1", VehicleInfo[vehicleid][vModSlot1]);
    ini_getInteger(vFile, "vModSlot2", VehicleInfo[vehicleid][vModSlot2]);
    ini_getInteger(vFile, "vModSlot3", VehicleInfo[vehicleid][vModSlot3]);
    ini_getInteger(vFile, "vModSlot4", VehicleInfo[vehicleid][vModSlot4]);
    ini_getInteger(vFile, "vModSlot5", VehicleInfo[vehicleid][vModSlot5]);
    ini_getInteger(vFile, "vModSlot6", VehicleInfo[vehicleid][vModSlot6]);
    ini_getInteger(vFile, "vModSlot7", VehicleInfo[vehicleid][vModSlot7]);
    ini_getInteger(vFile, "vModSlot8", VehicleInfo[vehicleid][vModSlot8]);
    ini_getInteger(vFile, "vModSlot9", VehicleInfo[vehicleid][vModSlot9]);
    ini_getInteger(vFile, "vModSlot10", VehicleInfo[vehicleid][vModSlot10]);
    ini_getInteger(vFile, "vModSlot11", VehicleInfo[vehicleid][vModSlot11]);
    ini_getInteger(vFile, "vModSlot12", VehicleInfo[vehicleid][vModSlot12]);
    ini_getInteger(vFile, "vModSlot13", VehicleInfo[vehicleid][vModSlot13]);
    ini_closeFile(vFile);
    SetVehiclePos(vehicleid, VehicleInfo[vehicleid][vCoordX], VehicleInfo[vehicleid][vCoordY], VehicleInfo[vehicleid][vCoordZ]);
    SetVehicleZAngle(vehicleid, VehicleInfo[vehicleid][vCoordA]);
    ChangeVehiclePaintjob(vehicleid, VehicleInfo[vehicleid][vPaintJob]);
    if(VehicleInfo[vehicleid][vColor1] == 0) VehicleInfo[vehicleid][vColor1] = -1;
    if(VehicleInfo[vehicleid][vColor2] == 0) VehicleInfo[vehicleid][vColor2] = -1;
    ChangeVehicleColor(vehicleid, VehicleInfo[vehicleid][vColor1], VehicleInfo[vehicleid][vColor2]);
    if(VehicleInfo[vehicleid][vModSlot0] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot0]);
    if(VehicleInfo[vehicleid][vModSlot1] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot1]);
    if(VehicleInfo[vehicleid][vModSlot2] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot2]);
    if(VehicleInfo[vehicleid][vModSlot3] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot3]);
    if(VehicleInfo[vehicleid][vModSlot4] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot4]);
    if(VehicleInfo[vehicleid][vModSlot5] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot5]);
    if(VehicleInfo[vehicleid][vModSlot6] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot6]);
    if(VehicleInfo[vehicleid][vModSlot7] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot7]);
    if(VehicleInfo[vehicleid][vModSlot8] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot8]);
    if(VehicleInfo[vehicleid][vModSlot9] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot9]);
    if(VehicleInfo[vehicleid][vModSlot10] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot10]);
    if(VehicleInfo[vehicleid][vModSlot11] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot11]);
    if(VehicleInfo[vehicleid][vModSlot12] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot12]);
    if(VehicleInfo[vehicleid][vModSlot13] != 0) AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vModSlot13]);
    return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    VehicleInfo[vehicleid][vColor1] = color1;
    VehicleInfo[vehicleid][vColor2] = color2;
    return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    VehicleInfo[vehicleid][vPaintJob] = paintjobid;
    return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/park", true) == 0)
    {
        if(!IsPlayerInRangeOfPoint(playerid, 25.0, 1082.1635, -1755.7603, 13.5)) return SendClientMessage(playerid, COLOR_BODY, "You are not on the parking.");
        new vehicleid = GetPlayerVehicleID(playerid);
        if(GetVehicleModel(vehicleid) == 0) return SendClientMessage(playerid, COLOR_BODY, "You must be in the vehicle.");
        if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_BODY, "You are not a driver.");
        VehicleInfo[vehicleid][vModel] = GetVehicleModel(vehicleid);
        GetVehiclePos(vehicleid, VehicleInfo[vehicleid][vCoordX], VehicleInfo[vehicleid][vCoordY], VehicleInfo[vehicleid][vCoordZ]);
        GetVehicleZAngle(vehicleid, VehicleInfo[vehicleid][vCoordA]);
        VehicleInfo[vehicleid][vModSlot0] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_SPOILER);
        VehicleInfo[vehicleid][vModSlot1] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_HOOD);
        VehicleInfo[vehicleid][vModSlot2] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_ROOF);
        VehicleInfo[vehicleid][vModSlot3] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_SIDESKIRT);
        VehicleInfo[vehicleid][vModSlot4] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_LAMPS);
        VehicleInfo[vehicleid][vModSlot5] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_NITRO);
        VehicleInfo[vehicleid][vModSlot6] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_EXHAUST);
        VehicleInfo[vehicleid][vModSlot7] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_WHEELS);
        VehicleInfo[vehicleid][vModSlot8] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_STEREO);
        VehicleInfo[vehicleid][vModSlot9] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_HYDRAULICS);
        VehicleInfo[vehicleid][vModSlot10] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_FRONT_BUMPER);
        VehicleInfo[vehicleid][vModSlot11] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_REAR_BUMPER);
        VehicleInfo[vehicleid][vModSlot12] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_VENT_RIGHT);
        VehicleInfo[vehicleid][vModSlot13] = GetVehicleComponentInSlot(vehicleid, CARMODTYPE_VENT_LEFT);
        new string[64];
        format(string, sizeof(string), "parking_%d.ini", vehicleid);
        new vFile = ini_createFile(string);
        if(vFile < 0) vFile = ini_openFile(string);
        if(vFile >= 0)
        {
            ini_setInteger(vFile, "vModel", VehicleInfo[vehicleid][vModel]);
            ini_setFloat(vFile, "vCoordX", VehicleInfo[vehicleid][vCoordX]);
            ini_setFloat(vFile, "vCoordY", VehicleInfo[vehicleid][vCoordY]);
            ini_setFloat(vFile, "vCoordZ", VehicleInfo[vehicleid][vCoordZ]);
            ini_setFloat(vFile, "vCoordA", VehicleInfo[vehicleid][vCoordA]);
            ini_setInteger(vFile, "vPaintJob", VehicleInfo[vehicleid][vPaintJob]);
            ini_setInteger(vFile, "vColor1", VehicleInfo[vehicleid][vColor1]);
            ini_setInteger(vFile, "vColor2", VehicleInfo[vehicleid][vColor2]);
            ini_setInteger(vFile, "vModSlot0", VehicleInfo[vehicleid][vModSlot0]);
            ini_setInteger(vFile, "vModSlot1", VehicleInfo[vehicleid][vModSlot1]);
            ini_setInteger(vFile, "vModSlot2", VehicleInfo[vehicleid][vModSlot2]);
            ini_setInteger(vFile, "vModSlot3", VehicleInfo[vehicleid][vModSlot3]);
            ini_setInteger(vFile, "vModSlot4", VehicleInfo[vehicleid][vModSlot4]);
            ini_setInteger(vFile, "vModSlot5", VehicleInfo[vehicleid][vModSlot5]);
            ini_setInteger(vFile, "vModSlot6", VehicleInfo[vehicleid][vModSlot6]);
            ini_setInteger(vFile, "vModSlot7", VehicleInfo[vehicleid][vModSlot7]);
            ini_setInteger(vFile, "vModSlot8", VehicleInfo[vehicleid][vModSlot8]);
            ini_setInteger(vFile, "vModSlot9", VehicleInfo[vehicleid][vModSlot9]);
            ini_setInteger(vFile, "vModSlot10", VehicleInfo[vehicleid][vModSlot10]);
            ini_setInteger(vFile, "vModSlot11", VehicleInfo[vehicleid][vModSlot11]);
            ini_setInteger(vFile, "vModSlot12", VehicleInfo[vehicleid][vModSlot12]);
            ini_setInteger(vFile, "vModSlot13", VehicleInfo[vehicleid][vModSlot13]);
            ini_closeFile(vFile);
            SendClientMessage(playerid, COLOR_BODY, "You are parked your vehicle.");
            SetVehicleToRespawn(vehicleid);
        }
        else print("Can't open ini-file.");
        return 1;
    }
    return 0;
}
The problem is that the cars don't respawn when I restart the server.


Re: Parked vehicles dosen't respawn. - TheLazySloth - 05.07.2012

You need code telling the server to spawn cars in the OnGameModeInit() callback.

Stop bumping your threads, you have to wait 48 hours before you could bump.


Re: Parked vehicles dosen't respawn. - Karl[NDZ] - 05.07.2012

Quote:
Originally Posted by TheLazySloth
Посмотреть сообщение
You need code telling the server to spawn cars in the OnGameModeInit() callback.

Stop bumping your threads, you have to wait 48 hours before you could bump.
Sorry, thought it was 24 hours..