randomChar() {
static c[2];
format(c, 2, "%c", random(26) + 'A');
return c;
}
new string[9];
format(string, sizeof string, "%s%s%s-%04d", randomChar(), randomChar(), randomChar(), random(10000));
SendClientMessage(playerid, -1, string);
// Resultado possнvel: JIN-0929
new string[32];
tryagain:
format(string, sizeof string, "veiculos/%s.ini", generateUniquePlaque());
if(!DOF2_FileExists(string)) {
// Salvar dados;
} else goto tryagain;
generateUniquePlaque() {
static str[10];
format(str, sizeof str, "%s%s%s-%04d", randomChar(), randomChar(), randomChar(), random(10000));
return str;
}
randomChar() {
static c[2];
format(c, 2, "%c", random(26) + 'A');
return c;
}
CMD:teste(playerid)
{
GerarPlaca();
return 1;
}
stock GerarPlaca()
{
new str[128];
format(str, sizeof(str), "Veiculos/%s%s%s-%04d.ini", randomChar(), randomChar(), randomChar(), random(10000));
if(!DOF2_FileExists(str))
{
DOF2_CreateFile(str);
}
return 1;
}
stock GerarPlaca()
{
new str[128];
tentar_novamente:
format(str, sizeof(str), "Veiculos/%s%s%s-%04d.ini", randomChar(), randomChar(), randomChar(), random(10000));
if(!DOF2_FileExists(str)) //Se o arquivo nгo existir, faзa isso
{
DOF2_CreateFile(str);
}
else // Se houver um arquivo com o mesmo nome, faзa isso
{
goto tentar_novamente; // "goto" quer dizer "vб para", que faz com que o fluxo do programa vб ali pra cima, realizando o cуdigo novamente. Isto acontecerб atй uma placa com um nome ъnico ser gerada.
}
return 1;
}
CMD:teste(playerid)
{
new veiculo;
vehInfo[veiculo][vehModel] = 560;
GerarPlaca(veiculo);
return 1;
}
stock GerarPlaca(idx)
{
new str[128];
tentar_novamente:
for(new i = 0; i < MAX_VEHICLE; i++)
{
format(str, sizeof(str), "Veiculos/%s%s%s-%04d.ini", randomChar(), randomChar(), randomChar(), random(10000));
if(!DOF2_FileExists(str)) //Se o arquivo nгo existir, faзa isso
{
DOF2_CreateFile(str);
DOF2_SetInt(str, "Modelo", vehInfo[idx][vehModel]);
DOF2_SaveFile();
}
else // Se houver um arquivo com o mesmo nome, faзa isso
{
goto tentar_novamente; // "goto" quer dizer "vб para", que faz com que o fluxo do programa vб ali pra cima, realizando o cуdigo novamente. Isto acontecerб atй uma placa com um nome ъnico ser gerada.
}
}
return 1;
}
stock GerarPlaca(idx)
{
new str[128];
tentar_novamente:
for(new i = 0; i < MAX_VEHICLE; i++)
{
format(str, sizeof(str), "Veiculos/%s%s%s-%04d.ini", randomChar(), randomChar(), randomChar(), random(10000));
if(!DOF2_FileExists(str)) //Se o arquivo nгo existir, faзa isso
{
DOF2_CreateFile(str);
DOF2_SetInt(str, "Modelo", vehInfo[idx][vehModel]);
DOF2_SaveFile();
return 1; // ou break;
}
else // Se houver um arquivo com o mesmo nome, faзa isso
{
goto tentar_novamente; // "goto" quer dizer "vб para", que faz com que o fluxo do programa vб ali pra cima, realizando o cуdigo novamente. Isto acontecerб atй uma placa com um nome ъnico ser gerada.
}
}
return 1;
}
#define MAX_VEHICLE 500
Nгo entendi pq colocou um loop(for), jб que nгo й usado o 'i', retire o loop(for).
|
Nгo tem como "deixar sem limite", veja os limites aqui.
|
#define MAX_PLACAS 500 new string[32]; tryagain: format(string, sizeof string, "carros/carro %s.ini", generateUniquePlaque(MAX_PLACAS)); if(!DOF2_FileExists(string)) { // Salvar dados; } else goto tryagain; generateUniquePlaque(MAX_PLACAS) { static str[10]; format(str, sizeof str, "%s%s%s-%04d", randomChar(), randomChar(), randomChar(), random(10000)); MAX_PLACAS ++; return str; } randomChar() { static c[2]; format(c, 2, "%c", random(26) + 'A'); return c; }
Code:
#define MAX_PLACAS 500 new string[32]; tryagain: format(string, sizeof string, "carros/carro %s.ini", generateUniquePlaque(MAX_PLACAS)); if(!DOF2_FileExists(string)) { // Salvar dados; } else goto tryagain; generateUniquePlaque(MAX_PLACAS) { static str[10]; format(str, sizeof str, "%s%s%s-%04d", randomChar(), randomChar(), randomChar(), random(10000)); MAX_PLACAS ++; return str; } randomChar() { static c[2]; format(c, 2, "%c", random(26) + 'A'); return c; } |
randomChar(MAX_PLACAS) // esqueci aqui rs { static c[2]; format(c, 2, "%c", random(26) + 'A'); return c; }
#define MAX_PLACAS 500
MAX_PLACAS ++;