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 != -&& 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"0strlen("NONE"), 255);
           }
           if(
strcmp(CarData[carid][carPlate], "NONE"true) == 0SetVehicleNumberPlate(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
                    
enginelightsalarmdoorsbonnetbootobjective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarmdoorsbonnetbootobjective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarm1bonnetbootobjective);
            }
            for (new 
014++)
            {
                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(rowsfieldsg_iHandle);
    for (new 
0rows++) if (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 
014++)
        {
            if (
5)
            {
                
format(strsizeof(str), "carWeapon%d"1);
                
CarData[i][carWeapons][j] = cache_get_field_int(istr);
                
format(strsizeof(str), "carAmmo%d"1);
                
CarData[i][carAmmo][j] = cache_get_field_int(istr);
            }
            
format(strsizeof(str), "carMod%d"1);
            
CarData[i][carMods][j] = cache_get_field_int(istr);
        }
        
Car_Spawn(i);
    }
    for (new 
0MAX_DYNAMIC_CARS++) if (CarData[i][carExists]) {
        
format(strsizeof(str), "SELECT * FROM `carstorage` WHERE `ID` = '%d'"CarData[i][carID]);
        
mysql_tquery(g_iHandlestr"OnLoadCarStorage""d"i);
    }
    
printf("[MYSQL]: %d Vehicles have been successfully loaded from the database."Total_Vehicle_Created);
    return 
1;

PHP код:
Car_Create(owneridmodelidFloat:xFloat:yFloat:zFloat:anglecolor1color2type 0)
{
    for (new 
0!= MAX_DYNAMIC_CARS++)
    {
        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"0strlen("NONE"), 255);
            
SetVehicleNumberPlate(CarData[i][carVehicle],CarData[i][carPlate]);
            for (new 
014++)
            {
                if (
5)
                {
                    
CarData[i][carWeapons][j] = 0;
                    
CarData[i][carAmmo][j] = 0;
                }
                
CarData[i][carMods][j] = 0;
            }
            
CarData[i][carVehicle] = CreateVehicle(modelidxyzanglecolor1color2, -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(querysizeof(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 != -&& 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"0strlen("NONE"), 255);
           }
           if(
strcmp(CarData[carid][carPlate], "NONE"true) == 0SetVehicleNumberPlate(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
                    
enginelightsalarmdoorsbonnetbootobjective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarmdoorsbonnetbootobjective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarm1bonnetbootobjective);
            }
            for (new 
014++)
            {
                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 != -&& 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"0strlen("NONE"), 255);
           }
           if(
strcmp(CarData[carid][carPlate], "NONE"true) == 0SetVehicleNumberPlate(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
                    
enginelightsalarmdoorsbonnetbootobjective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarmdoorsbonnetbootobjective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarm1bonnetbootobjective);
            }
            for (new 
014++)
            {
                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(playeridparams[])
{
    new 
plate[50],string[128];
    if(
GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playeridCOLOR_WHITE"You must be in a vehicle to use this !");
    if(
sscanf(params"s[50]"plate)) SendClientMessage(playeridCOLOR_GREY"USAGE: /carplate [PLATE NAME]");
    else
    {
        if(
PlayerData[playerid][pAdmin] >= 6)
         {
            new 
GetPlayerVehicleID(playerid);
            
strmid(CarData[h][carPlate], plate0strlen(plate), 255);
            
format(stringsizeof(string), "Edited CarID: %d's Plate to %s."hplate);
            
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 != -&& 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"0strlen("NONE"), 255);
          }
           if(
strcmp(CarData[carid][carPlate], "NONE"true) == 0SetVehicleNumberPlate(CarData[caridhere[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
                   
enginelightsalarmdoorsbonnetbootobjective;
                
GetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarmdoorsbonnetbootobjective);
                
SetVehicleParamsEx(CarData[carid][carVehicle], enginelightsalarm1bonnetbootobjective);
               }
             for (new 
014++)
              {
                   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 (
<= 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: