Random Plate bugs help -
Stefand - 09.12.2012
pawn Код:
stock getRandomLetter() {
return 65 + random(52); // ASCII Code of capital A is 65 + 2 * 26 for all other chars in alphabet.
}
stock GetFreeVehiclePlate()
{
for(new v = 0; v < MAX_VEHICLES; v ++)
{
new VPlate[255];
new randnumb = 1 + random(9);
format(VPlate, 255, "%c%c%c - %d%d%d", getRandomLetter(), getRandomLetter(), getRandomLetter(), randnumb,randnumb,randnumb);
if(strcmp(Vehicles[v][Plate], VPlate, true)) return v;
}
return -1;
}
Its supposed to do for example AAA - 111 or BAS - 234 just random the first 3 a-z and last 3 0-9.
but it made this: яFCliams
which isnt correct...
Can someone help me out
Re: Random Plate bugs help -
Vince - 09.12.2012
Lower case letters don't follow the upper case letters directly in the ASCII code.
pawn Код:
const charset[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
new VPlate[8]; // don't waste resources
format(VPlate, sizeof(VPlate), "%c%c%c-%03d", charset[random(sizeof(charset))], charset[random(sizeof(charset))], charset[random(sizeof(charset))], (100 + random(900)));
Re: Random Plate bugs help -
Stefand - 09.12.2012
Quote:
Originally Posted by Vince
Lower case letters don't follow the upper case letters directly in the ASCII code.
pawn Код:
const charset[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
new VPlate[8]; // don't waste resources format(VPlate, sizeof(VPlate), "%c%c%c-%03d", charset[random(sizeof(charset))], charset[random(sizeof(charset))], charset[random(sizeof(charset))], (100 + random(900)));
|
C:\Users\Stefan Dorst\Desktop\Scratch RolePlay\gamemodes\RP.pwn(8662) : error 001: expected token: "=", but found "["
C:\Users\Stefan Dorst\Desktop\Scratch RolePlay\gamemodes\RP.pwn(8662) : error 029: invalid expression, assumed zero
C:\Users\Stefan Dorst\Desktop\Scratch RolePlay\gamemodes\RP.pwn(8662) : warning 215: expression has no effect
C:\Users\Stefan Dorst\Desktop\Scratch RolePlay\gamemodes\RP.pwn(8664) : error 028: invalid subscript (not an array or too many subscripts): "charset"
C:\Users\Stefan Dorst\Desktop\Scratch RolePlay\gamemodes\RP.pwn(8664) : error 039: constant symbol has no size
C:\Users\Stefan Dorst\Desktop\Scratch RolePlay\gamemodes\RP.pwn(8664) : error 029: invalid expression, assumed zero
C:\Users\Stefan Dorst\Desktop\Scratch RolePlay\gamemodes\RP.pwn(8664) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
6 Errors.
Re: Random Plate bugs help -
Vince - 09.12.2012
Sorry, use
new const instead of just
const. I have that charset variable as a stock in one of my includes, that's why I didn't notice at first.
Re: Random Plate bugs help -
Stefand - 09.12.2012
pawn Код:
stock GetFreeVehiclePlate()
{
for(new v = 0; v < MAX_VEHICLES; v ++)
{
new const charset[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
new VPlate[8]; // don't waste resources
format(VPlate, sizeof(VPlate), "%c%c%c - %03d", charset[random(sizeof(charset))], charset[random(sizeof(charset))], charset[random(sizeof(charset))], (100 + random(900)));
if(strcmp(Vehicles[v][Plate], VPlate, true)) return v;
}
return -1;
}
shows a stupid thing like яFCliams aganin..
Re: Random Plate bugs help -
deb014 - 09.12.2012
Ty this...
pawn Код:
stock GetFreeVehiclePlate()
{
new VPlate[10];
for(new v = 0; v < MAX_VEHICLES; v ++)
{
format(VPlate, sizeof(VPlate), "%c%c%c - %d", random(25)+65, random(25)+65, random(25)+65, (100 + random(900)));
if(strcmp(Vehicles[v][Plate], VPlate, true)) return v;
}
return -1;
}
Re: Random Plate bugs help -
Stefand - 09.12.2012
Let me check
Re: Random Plate bugs help -
Stefand - 09.12.2012
Nope still doesn't work...
Re: Random Plate bugs help -
deb014 - 09.12.2012
Quote:
Originally Posted by Stefand
Nope still doesn't work...
|
pawn Код:
format(VPlate, sizeof(VPlate), "%c%c%c - %d", random(25)+65, random(25)+65, random(25)+65, (100 + random(900)));
this code gives you a string of the type AAA -123
pawn Код:
if(strcmp(Vehicles[v][Plate], VPlate, true)) return v;
this code probably is the problematic code.
how are you calling the function?
Re: Random Plate bugs help -
Stefand - 09.12.2012
it is to check if the plate that is been created isn't already in use.