[Ajuda] Ajuda Sistema de Habilitaзгo
#1

Oi Pessoal , mais uma vez eu aqui encomodando vocкs mais quando venho й por que ja tentei e nгo conseguir.

eu fiz um sistema de habilitaзгo por categorias A,B,C,D,E

Sу que й o seguinte Quem tem Categoria B dirige so os carros que eu determinei no GM ai fica salvo lб na conta do Player: HabCategoria = B

Mais quando o cara tirar a C, ou a D eles podem dirigir os carros da B. minha duvida й como faзo pra ele checar na conta do player se o Player tem algumas dessas letras na conta dele "B","C", "D" ele liberar fora isso ele nao libera
Reply
#2

PHP код:
#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;

Й mais ou menos nesse naipe ai.
Lembrando: vocк precisa especificar o tipo do carro (a categoria de CNH) e depois fazer a verificaзгo da CNH do jogador.
Reply
#3

Nгo й isso nгo , acho que nгo entendeu nгo... o sistema ta pronto jб
Reply
#4

Posta o source!
Reply
#5

PHP код:
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;

A gente sabe que a todos condutores que tem a categoria D pode dirigir a C e D e todos que tiver so C so pode dirigir a C entгo

PHP код:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    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(playeridD_InfoDIALOG_STYLE_MSGBOX"CARTEIRA"Dialog"DIRIGIR""SAIR");
        }
    }
    return 
1;

Se nao tiver a "C" ou a "D" Aparece o Aviso , mais se tiver a "C" so vai aparecer o aviso se dirigirem os carros cadastrado na "C" agora se tiver a "D" Nao aparece aviso pois pode dirigir C e D
Reply
#6

Код:
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;
}
Reply
#7

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Код:
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;
}
-->> atribua a letra que representa a habilitaзгo do jogador , acho que nгo entendi essa parte mais ficaria assim ? new hab[4] = "B","C","D","E";

Dessa vez fiquei todo confuso
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 ?
Reply
#8

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;
}
Quote:
Originally Posted by kevinho.007
Посмотреть сообщение
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 ?
Sim, por exemplo se possuir a C e vocк entrar em um veнculo D ou E darб erro, porйm nos veнculos A, B e C nгo.
Reply
#9

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
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;
}
Sim, por exemplo se possuir a C e vocк entrar em um veнculo D ou E darб erro, porйm nos veнculos A, B e C nгo.
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 ?

Eu pus seu cod todo aqui mais eu coloco na conta do player "B" ou "D" ou C etc... ele da como se nao tivesse hab
Reply
#10

Quote:
Originally Posted by kevinho.007
Посмотреть сообщение
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 ?
Na hora de entrar no veнculo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)