Plate help
#1

I am trying to make a plate system but the plates are just empty mabye you guys are able to help me out, thanks in advance!


PHP код:
stock Car_Spawn(carid)
{
    if (
carid != -1 && CarData[carid][carExists])
    {
        if (
IsValidVehicle(CarData[carid][carVehicle]))
            
DestroyVehicle(CarData[carid][carVehicle]);
        if (
CarData[carid][carColor1] == -1)
            
CarData[carid][carColor1] = random(127);
        if (
CarData[carid][carColor2] == -1)
            
CarData[carid][carColor2] = random(127);
        
CarData[carid][carVehicle] = CreateVehicle(CarData[carid][carModel], CarData[carid][carPos][0], CarData[carid][carPos][1], CarData[carid][carPos][2], CarData[carid][carPos][3], CarData[carid][carColor1], CarData[carid][carColor2], CoreVehicles[carid][vehFuel], (CarData[carid][carOwner] != 0) ? (-1) : (1200000));
           if(
strcmp(CarData[carid][carPlate], " ", true) == 0)
           {
            
strmid(CarData[carid][carPlate], "NONE", 0, strlen("NONE"), 255);
           }
           if(
strcmp(CarData[carid][carPlate], "NONE", true) == 0) SetVehicleNumberPlate(CarData[carid][carVehicle]," ");
           else 
SetVehicleNumberPlate(CarData[carid][carVehicle],CarData[carid][carPlate]);
        if (
CarData[carid][carVehicle] != INVALID_VEHICLE_ID)
        {
            if (
CarData[carid][carPaintjob] != -1)
            {
                
ChangeVehiclePaintjob(CarData[carid][carVehicle], CarData[carid][carPaintjob]);
            }
            if (
CarData[carid][carLocked])
            {
                new
                    
engine, lights, alarm, doors, bonnet, boot, objective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, 1, bonnet, boot, objective);
            }
            for (new 
i = 0; i < 14; i ++)
            {
                if (
CarData[carid][carMods][i]) AddVehicleComponent(CarData[carid][carVehicle], CarData[carid][carMods][i]);
            }
               
ResetVehicle(CarData[carid][carVehicle]);
               
CoreVehicles[carid][vehFuel] = 50;
            return 
1;
        }
    }
    return 
0;
} 
PHP код:
forward Car_Load();
public 
Car_Load()
{
    static
        
rows,
        
fields,
        
str[128],
        
Total_Vehicle_Created;
    
cache_get_data(rows, fields, g_iHandle);
    for (new 
i = 0; i < rows; i ++) if (i < MAX_DYNAMIC_CARS)
    {
        
CarData[i][carExists] = true;
        
CarData[i][carID] = cache_get_field_int(i, "carID");
        
CarData[i][carModel] = cache_get_field_int(i, "carModel");
        
CarData[i][carOwner] = cache_get_field_int(i, "carOwner");
        
CarData[i][carPos][0] = cache_get_field_float(i, "carPosX");
        
CarData[i][carPos][1] = cache_get_field_float(i, "carPosY");
        
CarData[i][carPos][2] = cache_get_field_float(i, "carPosZ");
        
CarData[i][carPos][3] = cache_get_field_float(i, "carPosR");
        
CarData[i][carColor1] = cache_get_field_int(i, "carColor1");
        
CarData[i][carColor2] = cache_get_field_int(i, "carColor2");
        
CarData[i][carPaintjob] = cache_get_field_int(i, "carPaintjob");
        
CarData[i][carLocked] = cache_get_field_int(i, "carLocked");
        
CarData[i][carImpounded] = cache_get_field_int(i, "carImpounded");
        
CarData[i][carImpoundPrice] = cache_get_field_int(i, "carImpoundPrice");
        
CarData[i][carFaction] = cache_get_field_int(i, "carFaction");
        
CoreVehicles[i][vehFuel] = cache_get_field_int(i, "carFuel");
        
CarData[i][carTrunk] = cache_get_field_int(i, "carTrunk");
        
CarData[i][carPlate] = cache_get_field_int(i, "carPlate");
        
Total_Vehicle_Created ++;
        for (new 
j = 0; j < 14; j ++)
        {
            if (
j < 5)
            {
                
format(str, sizeof(str), "carWeapon%d", j + 1);
                
CarData[i][carWeapons][j] = cache_get_field_int(i, str);
                
format(str, sizeof(str), "carAmmo%d", j + 1);
                
CarData[i][carAmmo][j] = cache_get_field_int(i, str);
            }
            
format(str, sizeof(str), "carMod%d", j + 1);
            
CarData[i][carMods][j] = cache_get_field_int(i, str);
        }
        
Car_Spawn(i);
    }
    for (new 
i = 0; i < MAX_DYNAMIC_CARS; i ++) if (CarData[i][carExists]) {
        
format(str, sizeof(str), "SELECT * FROM `carstorage` WHERE `ID` = '%d'", CarData[i][carID]);
        
mysql_tquery(g_iHandle, str, "OnLoadCarStorage", "d", i);
    }
    
printf("[MYSQL]: %d Vehicles have been successfully loaded from the database.", Total_Vehicle_Created);
    return 
1;
} 
PHP код:
Car_Create(ownerid, modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, type = 0)
{
    for (new 
i = 0; i != MAX_DYNAMIC_CARS; i ++)
    {
        if (!
CarData[i][carExists])
           {
               if (
color1 == -1)
                   
color1 = random(127);
            if (
color2 == -1)
                
color2 = random(127);
               
CarData[i][carExists] = true;
            
CarData[i][carModel] = modelid;
            
CarData[i][carOwner] = ownerid;
            
CarData[i][carPos][0] = x;
            
CarData[i][carPos][1] = y;
            
CarData[i][carPos][2] = z;
            
CarData[i][carPos][3] = angle;
            
CarData[i][carColor1] = color1;
            
CarData[i][carColor2] = color2;
            
CarData[i][carPaintjob] = -1;
            
CarData[i][carLocked] = false;
            
CarData[i][carImpounded] = -1;
            
CarData[i][carImpoundPrice] = 0;
            
CarData[i][carFaction] = type;
            
CarData[i][carTrunk] = 0;
            
strmid(CarData[i][carPlate], "NONE", 0, strlen("NONE"), 255);
            
SetVehicleNumberPlate(CarData[i][carVehicle],CarData[i][carPlate]);
            for (new 
j = 0; j < 14; j ++)
            {
                if (
j < 5)
                {
                    
CarData[i][carWeapons][j] = 0;
                    
CarData[i][carAmmo][j] = 0;
                }
                
CarData[i][carMods][j] = 0;
            }
            
CarData[i][carVehicle] = CreateVehicle(modelid, x, y, z, angle, color1, color2, -1);
            if (
CarData[i][carVehicle] != INVALID_VEHICLE_ID) {
                
ResetVehicle(CarData[i][carVehicle]);
            }
            
mysql_tquery(g_iHandle, "INSERT INTO `cars` (`carModel`) VALUES(0)", "OnCarCreated", "d", i);
            return 
i;
        }
    }
    return -
1;
} 
PHP код:
ormat(query, sizeof(query), "%s, `carImpounded` = '%d', `carImpoundPrice` = '%d', `carFaction` = '%d', `carWeapon1` = '%d', `carWeapon2` = '%d', `carWeapon3` = '%d', `carWeapon4` = '%d', `carWeapon5` = '%d', `carAmmo1` = '%d', `carAmmo2` = '%d', `carAmmo3` = '%d', `carAmmo4` = '%d', `carAmmo5` = '%d', `carFuel` = '%.4f', `carPlate` = '%s' WHERE `carID` = '%d'",//WHERE `entranceID` = '%d'",
        
query,
        
CarData[carid][carImpounded],
        
CarData[carid][carImpoundPrice],
        
CarData[carid][carFaction],
        
CarData[carid][carWeapons][0],
        
CarData[carid][carWeapons][1],
        
CarData[carid][carWeapons][2],
        
CarData[carid][carWeapons][3],
        
CarData[carid][carWeapons][4],
        
CarData[carid][carAmmo][0],
        
CarData[carid][carAmmo][1],
        
CarData[carid][carAmmo][2],
        
CarData[carid][carAmmo][3],
        
CarData[carid][carAmmo][4],
        
CoreVehicles[carid][vehFuel],
        
CarData[carid][carPlate],
        
CarData[carid][carID] 
Reply
#2

Код:
strmid(CarData[i][carPlate], "NONE", 0, strlen("NONE"), 255);
Код:
if(strcmp(CarData[carid][carPlate], "NONE", true) == 0) SetVehicleNumberPlate(CarData[carid][carVehicle]," ");
you're clearing the plate if it's NONE you've to write anything there, example: Not Owned, try this :
if I'm wrong please correct me sir .-.,

PHP код:
stock Car_Spawn(carid)
{
    if (
carid != -1 && CarData[carid][carExists])
    {
        if (
IsValidVehicle(CarData[carid][carVehicle]))
            
DestroyVehicle(CarData[carid][carVehicle]);
        if (
CarData[carid][carColor1] == -1)
            
CarData[carid][carColor1] = random(127);
        if (
CarData[carid][carColor2] == -1)
            
CarData[carid][carColor2] = random(127);
           
CarData[carid][carVehicle] = CreateVehicle(CarData[carid][carModel], CarData[carid][carPos][0], CarData[carid][carPos][1], CarData[carid][carPos][2], CarData[carid][carPos][3], CarData[carid][carColor1], CarData[carid][carColor2], CoreVehicles[carid][vehFuel], (CarData[carid][carOwner] != 0) ? (-1) : (1200000));
           if(
strcmp(CarData[carid][carPlate], " ", true) == 0)
           {
            
strmid(CarData[carid][carPlate], "NONE", 0, strlen("NONE"), 255);
           }
           if(
strcmp(CarData[carid][carPlate], "NONE", true) == 0) SetVehicleNumberPlate(CarData[carid][carVehicle],"No Text");
           else 
SetVehicleNumberPlate(CarData[carid][carVehicle],CarData[carid][carPlate]);
           if (
CarData[carid][carVehicle] != INVALID_VEHICLE_ID)
           {
            if (
CarData[carid][carPaintjob] != -1)
            {
                
ChangeVehiclePaintjob(CarData[carid][carVehicle], CarData[carid][carPaintjob]);
            }
            if (
CarData[carid][carLocked])
            {
                new
                    
engine, lights, alarm, doors, bonnet, boot, objective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, 1, bonnet, boot, objective);
            }
            for (new 
i = 0; i < 14; i ++)
            {
                if (
CarData[carid][carMods][i]) AddVehicleComponent(CarData[carid][carVehicle], CarData[carid][carMods][i]);
            }
               
ResetVehicle(CarData[carid][carVehicle]);
               
CoreVehicles[carid][vehFuel] = 50;
            return 
1;
        }
    }
    return 
0;
} 
Reply
#3

Quote:
Originally Posted by jlalt
Посмотреть сообщение
Код:
strmid(CarData[i][carPlate], "NONE", 0, strlen("NONE"), 255);
Код:
if(strcmp(CarData[carid][carPlate], "NONE", true) == 0) SetVehicleNumberPlate(CarData[carid][carVehicle]," ");
you're clearing the plate if it's NONE you've to write anything there, example: Not Owned, try this :
if I'm wrong please correct me sir .-.,

PHP код:
stock Car_Spawn(carid)
{
    if (
carid != -1 && CarData[carid][carExists])
    {
        if (
IsValidVehicle(CarData[carid][carVehicle]))
            
DestroyVehicle(CarData[carid][carVehicle]);
        if (
CarData[carid][carColor1] == -1)
            
CarData[carid][carColor1] = random(127);
        if (
CarData[carid][carColor2] == -1)
            
CarData[carid][carColor2] = random(127);
           
CarData[carid][carVehicle] = CreateVehicle(CarData[carid][carModel], CarData[carid][carPos][0], CarData[carid][carPos][1], CarData[carid][carPos][2], CarData[carid][carPos][3], CarData[carid][carColor1], CarData[carid][carColor2], CoreVehicles[carid][vehFuel], (CarData[carid][carOwner] != 0) ? (-1) : (1200000));
           if(
strcmp(CarData[carid][carPlate], " ", true) == 0)
           {
            
strmid(CarData[carid][carPlate], "NONE", 0, strlen("NONE"), 255);
           }
           if(
strcmp(CarData[carid][carPlate], "NONE", true) == 0) SetVehicleNumberPlate(CarData[carid][carVehicle],"No Text");
           else 
SetVehicleNumberPlate(CarData[carid][carVehicle],CarData[carid][carPlate]);
           if (
CarData[carid][carVehicle] != INVALID_VEHICLE_ID)
           {
            if (
CarData[carid][carPaintjob] != -1)
            {
                
ChangeVehiclePaintjob(CarData[carid][carVehicle], CarData[carid][carPaintjob]);
            }
            if (
CarData[carid][carLocked])
            {
                new
                    
engine, lights, alarm, doors, bonnet, boot, objective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, 1, bonnet, boot, objective);
            }
            for (new 
i = 0; i < 14; i ++)
            {
                if (
CarData[carid][carMods][i]) AddVehicleComponent(CarData[carid][carVehicle], CarData[carid][carMods][i]);
            }
               
ResetVehicle(CarData[carid][carVehicle]);
               
CoreVehicles[carid][vehFuel] = 50;
            return 
1;
        }
    }
    return 
0;
} 
That's correct but , i have made a command but when i use it won't change the plate in-game or on the database.

PHP код:
CMD:carplate(playerid, params[])
{
    new 
plate[50],string[128];
    if(
GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_WHITE, "You must be in a vehicle to use this !");
    if(
sscanf(params, "s[50]", plate)) SendClientMessage(playerid, COLOR_GREY, "USAGE: /carplate [PLATE NAME]");
    else
    {
        if(
PlayerData[playerid][pAdmin] >= 6)
         {
            new 
h = GetPlayerVehicleID(playerid);
            
strmid(CarData[h][carPlate], plate, 0, strlen(plate), 255);
            
format(string, sizeof(string), "Edited CarID: %d's Plate to %s.", h, plate);
            
SendClientMessage(playerid,COLOR_GREY,string);
        }
        else 
SendErrorMessage(playerid, "You don't have permission to use this command.");
    }
    return 
1;
} 
Reply
#4

You don't even use SetVehicleNumberPlate in your command.

Sample:
pawn Код:
CMD:carplate(playerid, params[])
{
    new plate[50],string[128];
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_WHITE, "You must be in a vehicle to use this !");
    if(sscanf(params, "s[50]", plate)) SendClientMessage(playerid, COLOR_GREY, "USAGE: /carplate [PLATE NAME]");
    else
    {
        if(PlayerData[playerid][pAdmin] >= 6)
         {
            new h = GetPlayerVehicleID(playerid);
            strmid(CarData[h][carPlate], plate, 0, strlen(plate), 255);
            format(string, sizeof(string), "Edited CarID: %d's Plate to %s.", h, plate);
            SendClientMessage(playerid,COLOR_GREY,string);

            SetVehicleNumberPlate(h, plate);
        }
        else SendErrorMessage(playerid, "You don't have permission to use this command.");
    }
    return 1;
}
And i wonder why is strmid being used for just storing a string simply. What's wrong with strcat.
(Note: strmid is used to extract a part of string, if you are extracting the whole of it, just simply use strcat)
Reply
#5

32 length string on plate... Any higher will result in it not being shown at all. You also do need to set the vehicle to respawn to show the plate.
Reply
#6

Quote:
Originally Posted by Sew_Sumi
Посмотреть сообщение
32 length string on plate... Any higher will result in it not being shown at all. You also do need to set the vehicle to respawn to show the plate.
Yeah i already changed to 32, but i have


PHP код:
stock Car_Spawn(carid)
{
    if (
carid != -1 && CarData[carid][carExists])
    {
        if (
IsValidVehicle(CarData[carid][carVehicle]))
            
DestroyVehicle(CarData[carid][carVehicle]);
        if (
CarData[carid][carColor1] == -1)
            
CarData[carid][carColor1] = random(127);
        if (
CarData[carid][carColor2] == -1)
            
CarData[carid][carColor2] = random(127);
        
CarData[carid][carVehicle] = CreateVehicle(CarData[carid][carModel], CarData[carid][carPos][0], CarData[carid][carPos][1], CarData[carid][carPos][2], CarData[carid][carPos][3], CarData[carid][carColor1], CarData[carid][carColor2], CoreVehicles[carid][vehFuel], (CarData[carid][carOwner] != 0) ? (-1) : (1200000));
          if(
strcmp(CarData[carid][carPlate], " ", true) == 0)
        {
            
strmid(CarData[carid][carPlate], "NONE", 0, strlen("NONE"), 255);
          }
           if(
strcmp(CarData[carid][carPlate], "NONE", true) == 0) SetVehicleNumberPlate(CarData[carid] here[carVehicle],CarData[carid][carPlate]); here
        
else SetVehicleNumberPlate(CarData[carid][carVehicle],CarData[carid][carPlate]); here
        
if (CarData[carid][carVehicle] != INVALID_VEHICLE_ID)
        {
            if (
CarData[carid][carPaintjob] != -1)
             {
                  
ChangeVehiclePaintjob(CarData[carid][carVehicle], CarData[carid][carPaintjob]);
            }
            if (
CarData[carid][carLocked])
            {
                new
                   
engine, lights, alarm, doors, bonnet, boot, objective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], engine, lights, alarm, 1, bonnet, boot, objective);
               }
             for (new 
i = 0; i < 14; i ++)
              {
                   if (
CarData[carid][carMods][i]) AddVehicleComponent(CarData[carid][carVehicle], CarData[carid][carMods][i]);
               }
               
ResetVehicle(CarData[carid][carVehicle]);
               
CoreVehicles[carid][vehFuel] = 50;
            return 
1;
        }
    }
    return 
0;
} 
Reply
#7

Show this resetvehicle, is that what makes it respawn?
Reply
#8

Quote:
Originally Posted by Sew_Sumi
Посмотреть сообщение
Show this resetvehicle, is that what makes it respawn?
Yes, here.

PHP код:
}
stock ResetVehicle(vehicleid)
{
    if (
1 <= vehicleid <= MAX_VEHICLES)
    {
        if (
CoreVehicles[vehicleid][vehSirenOn] && IsValidDynamicObject(CoreVehicles[vehicleid][vehSirenObject]))
            
DestroyDynamicObject(CoreVehicles[vehicleid][vehSirenObject]);
        
CoreVehicles[vehicleid][vehFuel] = 100;
        
CoreVehicles[vehicleid][vehWindowsDown] = false;
        
CoreVehicles[vehicleid][vehTemporary] = 0;
          
CoreVehicles[vehicleid][vehLoads] = 0;
        
CoreVehicles[vehicleid][vehLoadType] = 0;
        
CoreVehicles[vehicleid][vehCrate] = INVALID_OBJECT_ID;
        
CoreVehicles[vehicleid][vehTrash] = 0;
        
CoreVehicles[vehicleid][vehRepairing] = 0;
        
CoreVehicles[vehicleid][vehSirenOn] = 0;
        
CoreVehicles[vehicleid][vehRadio] = 0;
        
CoreVehicles[vehicleid][vehLights] = 0;
    }
    return 
1;
} 
EDIT: the problem is that it won't load the plates from the database.
Reply
#9

I'm pretty sure it is, but you need to
Код:
SetVehicleToRespawn
after using SetVehicleNumberPlate to show the actual plate.
Reply
#10

Quote:
Originally Posted by Sew_Sumi
Посмотреть сообщение
I'm pretty sure it is, but you need to
Код:
SetVehicleToRespawn
after using SetVehiclePlate to show the actual plate.
PHP код:
stock RespawnVehicle(vehicleid)
{
    new 
id = Car_GetID(vehicleid);
    if (
id != -1)
        
Car_Spawn(id);
    else 
SetVehicleToRespawn(vehicleid);
    
ResetVehicle(vehicleid);
    return 
1;
} 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)