#define CATEGORIA_A 1
#define CATEGORIA_B 2
//passou no teste da categoria A
HabCategoria[playerid] = CATEGORIA_A;
//passou no teste da categoria B
HabCategoria[playerid] = CATEGORIA_B;
//entrou no carro categoria B com a CNH A
if(HabCategoria[playerid] == CATEGORIA_A)
{
SendClientMessage(playerid, -1, "Vocк nгo tem a CNH categoria B.");
return 1;
}
//entrou no carro categoria B com a CNH B
if(HabCategoria[playerid] == CATEGORIA_B)
{
SendClientMessage(playerid, -1, "Vocк tem a CNH categoria B.");
return 1;
}
CarteiraTipo(newcar)
{
static _st[50];
if(Categoria_A(newcar)) _st = "Categoria A";
if(Categoria_B(newcar)) _st = "Categoria B";
if(Categoria_C(newcar)) _st = "Categoria C";
if(Categoria_D(newcar)) _st = "Categoria D";
if(Categoria_E(newcar)) _st = "Categoria E";
return _st;
}
Categoria_D(carid)//ONIBUS E PASSAGEIROS
{
new oo = GetVehicleModel(carid);
if(oo == 407 || oo == 408 || oo == 486 || oo == 508 || oo == 544 || oo == 525 || oo == 524 || oo == 573 || oo == 578 || oo == 609 || oo == 455) return 1;
return 0;
}
Categoria_E(carid)//CARRETAS
{
new oo = GetVehicleModel(carid);
if(oo == 403 || oo == 406 || oo == 443 || oo == 514 || oo == 515 || oo == 431 || oo == 437) return 1;
return 0;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new newcar = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
if(!strcmp(PlayerInfo[playerid][pHabCat], "C", true) || strcmp(PlayerInfo[playerid][pHabCat], "D", true))//Se nao tiver a C ou D aparece o Aviso
{
new Dialog[1500];
format(var, 128, "{FFFFFF}Vocк nгo possui uma carteira de habilitaзгo terrestre {F81414}%s{FFFFFF}!\n",CarteiraTipo(GetPlayerVehicleID(playerid))); strcat(Dialog,var);
format(var, 128, "{FFFFFF}Vocк poderб optar por dirigir sem carteira de habilitaзгo\n"); strcat(Dialog,var);
format(var, 128, "{FFFFFF}Porйm ganharб um nivel de procurado.Oque deseja fazer?\n"); strcat(Dialog,var);
ShowPlayerDialog(playerid, D_Info, DIALOG_STYLE_MSGBOX, "CARTEIRA", Dialog, "DIRIGIR", "SAIR");
}
}
return 1;
}
new hab[3] = "B"; //atribua a letra que representa a habilitaзгo do jogador //para checar ao entrar no veнculo new cnh = CarteiraTipo(GetPlayerVehicleID(playerid)); if(hab[0] < cnh) { new str[128]; format(str, sizeof(str), "ERRO: Vocк nгo possui habilitaзгo %c ou superior", cnh); SendClientMessage(playerid, -1, str); return 1; } CarteiraTipo(newcar) { new cchar; if(Categoria_A(newcar)) cchar = 'A'; if(Categoria_B(newcar)) cchar = 'B'; if(Categoria_C(newcar)) cchar = 'C'; if(Categoria_D(newcar)) cchar = 'D'; if(Categoria_E(newcar)) cchar = 'E'; return cchar; }
Код:
new hab[3] = "B"; //atribua a letra que representa a habilitaзгo do jogador //para checar ao entrar no veнculo new cnh = CarteiraTipo(GetPlayerVehicleID(playerid)); if(hab[0] < cnh) { new str[128]; format(str, sizeof(str), "ERRO: Vocк nгo possui habilitaзгo %c ou superior", cnh); SendClientMessage(playerid, -1, str); return 1; } CarteiraTipo(newcar) { new cchar; if(Categoria_A(newcar)) cchar = 'A'; if(Categoria_B(newcar)) cchar = 'B'; if(Categoria_C(newcar)) cchar = 'C'; if(Categoria_D(newcar)) cchar = 'D'; if(Categoria_E(newcar)) cchar = 'E'; return cchar; } |
new hab[3]; format(hab, sizeof(hab), "%s", PlayerInfo[playerid][pHabCat]); //para checar ao entrar no veнculo new cnh = CarteiraTipo(GetPlayerVehicleID(playerid)); if(hab[0] < cnh) { new str[128]; format(str, sizeof(str), "ERRO: Vocк nгo possui habilitaзгo %c ou superior", cnh); SendClientMessage(playerid, -1, str); return 1; } CarteiraTipo(newcar) { new cchar; if(Categoria_A(newcar)) cchar = 'A'; if(Categoria_B(newcar)) cchar = 'B'; if(Categoria_C(newcar)) cchar = 'C'; if(Categoria_D(newcar)) cchar = 'D'; if(Categoria_E(newcar)) cchar = 'E'; return cchar; }
por que tipo se o player sу tiver a "D" na pasta dele e entrar no carro com "E" eele vai negar apresentar a mensagem mais se ele entrar em carros da categoria " B " ou " C " ou atй " D " ele deixa dirigir... й isso ?
|
Pelo que eu entendi "pHabCat" seria uma string, entгo ficaria assim:
Код:
new hab[3]; format(hab, sizeof(hab), "%s", PlayerInfo[playerid][pHabCat]); //para checar ao entrar no veнculo new cnh = CarteiraTipo(GetPlayerVehicleID(playerid)); if(hab[0] < cnh) { new str[128]; format(str, sizeof(str), "ERRO: Vocк nгo possui habilitaзгo %c ou superior", cnh); SendClientMessage(playerid, -1, str); return 1; } CarteiraTipo(newcar) { new cchar; if(Categoria_A(newcar)) cchar = 'A'; if(Categoria_B(newcar)) cchar = 'B'; if(Categoria_C(newcar)) cchar = 'C'; if(Categoria_D(newcar)) cchar = 'D'; if(Categoria_E(newcar)) cchar = 'E'; return cchar; } |
format(hab, sizeof(hab), "%s", PlayerInfo[playerid][pHabCat]);
eu coloco na hora de carregar os dados do player ou quando vai entrar no veiculo tambem ? |