[FilterScript] Sistema de Habilitaзгo
#1

Descriзгo:
Ola galera, O FilterScripts foi feito por Josma_CMD e eu pedi a autorizaзгo dele para acrescentar um teste teorico no caso o jogador antes de fazer o teste pratico ele tem que responder algumas perguntas como num teste.

Sobre os testes:
Teste Teorico: Apenas fiz teste teorico de Motos e Carros nгo sabia oque perguntas sobre aviхes no teste de carro sгo 6 perguntas vocк precisa acertar pelomenos 3 e no de Moto sгo 7 vocк precisa acertar 4, Loga apos o teste teorico comeca o pratico
Carros: 3 testes, 1° percurso, 2° rota por checkpoints, 3° teste de habilidade no estacionamento, todos com limite de tempo.
Motos: 3 testes, 1° um mini stunt onde o player deverб subir na laje com a moto e passar pro telhado ao lado, 2° uma rota com checkpoints atй pular em um mini stunt do morro pra uma laje abaixo, 3° um percurso atй uma mini fazenda а norte de Los Santos.
Aeronaves: 2 testes, 1° percurso, vocк deve decolar o beagle e pousar no aeroporto abandonado, entгo deverб estaciona-lo no maior hangar disponнvel. 2° percurso, vocк deverб levar o helicoptero RainDance do heliporto de Los Santos atй o heliporto da delegacia de Las Venturas.

[ame]http://www.youtube.com/watch?v=8rWkUiIbEZE&feature=feedu[/ame]

Click aqui para ver mais imagens:
SS 1
SS 2

Creditos: Josma_CMD pela criaзгo do FS e a Gustavo_xP por editar e criar o teste teorico

pawn Код:
#include <a_samp>

#define PickupCor 0xF09C00AA
#define DMenuAutoEscola          200
#define DInstrucaoAutoEscola     201
#define DRepetirCarros1          202
#define DRepetirCarros2          203
#define DRepetirCarros3          204
#define DRepetirMoto1            205
#define DRepetirMoto2            206
#define DRepetirMoto3            207
#define DRepetirAero1            208
#define DRepetirAero2            209
#define DPerguntas               210
#define DPergunta1               211
#define DPergunta2               212
#define DPergunta3               213
#define DPergunta4               214
#define DPergunta5               215
#define DPergunta6               216
#define DProxPergunta2           217
#define DProxPergunta3           218
#define DProxPergunta4           219
#define DProxPergunta5           220
#define DProxPergunta6           221
#define DFimdoTeste              222
#define DNaoPasso                223
#define DMPerguntas              224
#define DMPergunta1              225
#define DMPergunta2              226
#define DMPergunta3              227
#define DMPergunta4              228
#define DMPergunta5              229
#define DMPergunta6              230
#define DMPergunta7              231
#define DMProxPergunta2          232
#define DMProxPergunta3          233
#define DMProxPergunta4          234
#define DMProxPergunta5          235
#define DMProxPergunta6          236
#define DMProxPergunta7          237
#define DMFimdoTeste             238
#define DMNaoPasso               239
#define MAXPLAYERS                40
#define sim true
#define nao false
//=============================[† Forward †]====================================
forward VerificarConclusao(playerid);
//============================[† Variбveis †]===================================
new Acertou[MAXPLAYERS];
new VAutoEscolaTeste[MAXPLAYERS];        //Veiculo do teste
new TesteEtapa[MAXPLAYERS];              //Etapa do teste
new FazendoTeste[MAXPLAYERS];            //Fazendo teste
new Verificar[MAXPLAYERS];               //Tempo para chegada
new Float: TesteCoords[21][3] =          //Coordenadas dos Checkpoints
{
    {-1641.479980, 1300.554687, 6.861728},       //Chegada 1° teste carros
    {-1838.397460, -2455.462890, 27.546628},     //1° Ponto 2° teste carros
    {-1649.979736, -2619.526611, 45.465484},     //2° Ponto 2° teste carros
    {-1180.888061, -2639.533447, 11.539744},     //3° Ponto 2° teste carros
    {-780.500183, -2684.883544, 83.137527},      //4° Ponto 2° teste carros
    {-364.759643, -2255.772216, 43.043220},      //5° Ponto 2° teste carros
    {-160.736419, -2425.323242, 35.856044},      //6° Ponto 2° teste carros
    {-184.029815, -2819.222167, 42.097366},      //7° Ponto 2° teste carros
    {-1342.344726, -2875.889160, 54.987930},     //8° Ponto 2° teste carros
    {-1970.295898, -2434.038574, 30.194002},     //Chegada 2° teste carros
    {2305.241455, 1962.293823, 9.433162},        //1° Ponto 3° teste carros
    {2236.203613, 1974.228759, 31.350551},       //Saнda 3° teste carros
    {2305.241455, 1962.293823, 9.433162},        //Chegada 3° teste carros
    {305.941436, -1760.017211, 7.244368},        //1° Ponto 1° teste motos
    {294.514434, -1758.280761, 8.047305},        //Chegada 1° teste motos
    {2775.379394, -1044.423217, 38.830417},      //1° Ponto 2° teste motos
    {2697.045410, -1050.630004, 67.454254},      //2° Ponto 2° teste motos
    {2660.527099, -1071.078979, 68.900634},      //3° Ponto 2° teste motos
    {2742.664794, -1177.842651, 68.896690},      //4° Ponto 2° teste motos
    {2815.201416, -1170.591308, 32.239631},      //Chegada 2° teste motos
    {-577.292663, -189.324462, 78.249137}        //Chegada 3° teste motos
};

main()
{
    print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                            Progressгo Pawn\n              Envolvendo jogadores, revolucionando servidores!\n                             Josma_CMD\n\n\n\n\n\n\n\n\n");
}//MAIN By: Gill Penner

public OnFilterScriptInit()
{
    CreatePickup(1239, 1, 1494.325195,1304.942871,1093.289062, 0);   //Pickup autoescola entrada
    CreatePickup(1239, 1, 1081.219726, -1696.847534, 13.546875, 0);  //Pickup autoescola saнda
    CreatePickup(2894, 1, 1490.509765, 1305.782958, 1093.296386, 0); //Pickup menu auto escola
    Create3DTextLabel("Auto escola\nPressione ENTER para entrar.", PickupCor, 356.8607,186.0784,1009.1264, 40, 0, 0);
    Create3DTextLabel("Auto escola\nPressione ENTER para sair.", PickupCor, 1494.325195,1304.942871,1093.289062, 40, 0, 0);
    Create3DTextLabel("Menu Auto escola\nPressione ENTER para ver as opзхes.", PickupCor, 1490.509765, 1305.782958, 1093.296386, 40, 0, 0);
    return sim;
}

public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, 0x1E90FF99, "Este servidor usa um sistema de teste de habilitaзгo do{FFFFFF} Progressгo Pawn - Josma_CMD");
    SendClientMessage(playerid, 0x1E90FF99, "e tambem a {FFFFFF}Gustavo_xP{1E90FF} pela criaзгo do sistema de teste teoricos.");
    return sim;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_DRIVER)
    {
        if(TesteEtapa[playerid] == 14 && FazendoTeste[playerid] == 1 || TesteEtapa[playerid] == 13 && FazendoTeste[playerid] == 1)
        {
            ShowPlayerDialog(playerid, DRepetirMoto1, DIALOG_STYLE_MSGBOX, "Vocк caiu", "Vocк caiu da moto, deseja repetir o teste?", "Sim", "Nгo");
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            DisablePlayerRaceCheckpoint(playerid);
            return sim;
        }
        return sim;
    }
    return sim;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    new Float: lataria, Float: P[3];                       //Cria as variбveis que serгo usadas abaixo
    GetVehicleHealth(VAutoEscolaTeste[playerid], lataria); //Getarб o health do veiculo, para ver se o player danificou ele no teste
    GetPlayerPos(playerid, P[0], P[1], P[2]);          //Pegarб a coordenada de onde serб aplicado o som
    PlayerPlaySound(playerid, 1053, P[0], P[1], P[2]); //Aplicarб som ao entrar no Race Checkpoint
    if(TesteEtapa[playerid] == 1 && FazendoTeste[playerid] == 1)
    {
        if(lataria < 1000)
        {
            ShowPlayerDialog(playerid, DRepetirCarros1, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк danificou seu veнculo, deseja repetir o teste?", "Sim", "Nгo");
            KillTimer(Verificar[playerid]);
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            DisablePlayerRaceCheckpoint(playerid);
            return 1;
        }
        else if(lataria == 1000)
        {
            ShowPlayerDialog(playerid, DRepetirCarros2, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк deseja passar para a prуxima etapa do teste de habilitaзгo?", "Sim", "Nгo");
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            KillTimer(Verificar[playerid]);
            DisablePlayerRaceCheckpoint(playerid);
            return 1;
        }
        return 1;
    }
    if(TesteEtapa[playerid] == 2 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[2][0], TesteCoords[2][1], TesteCoords[2][2], TesteCoords[3][0], TesteCoords[3][1], TesteCoords[3][2], 5.0);
        TesteEtapa[playerid] = 3;
        return 1;
    }
    if(TesteEtapa[playerid] == 3 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[3][0], TesteCoords[3][1], TesteCoords[3][2], TesteCoords[4][0], TesteCoords[4][1], TesteCoords[4][2], 5.0);
        TesteEtapa[playerid] = 4;
        return 1;
    }
    if(TesteEtapa[playerid] == 4 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[4][0], TesteCoords[4][1], TesteCoords[4][2], TesteCoords[5][0], TesteCoords[5][1], TesteCoords[5][2], 5.0);
        TesteEtapa[playerid] = 5;
        return 1;
    }
    if(TesteEtapa[playerid] == 5 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[5][0], TesteCoords[5][1], TesteCoords[5][2], TesteCoords[6][0], TesteCoords[6][1], TesteCoords[6][2], 5.0);
        TesteEtapa[playerid] = 6;
        return 1;
    }
    if(TesteEtapa[playerid] == 6 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[6][0], TesteCoords[6][1], TesteCoords[6][2], TesteCoords[7][0], TesteCoords[7][1], TesteCoords[7][2], 5.0);
        TesteEtapa[playerid] = 7;
        return 1;
    }
    if(TesteEtapa[playerid] == 7 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[7][0], TesteCoords[7][1], TesteCoords[7][2], TesteCoords[8][0], TesteCoords[8][1], TesteCoords[8][2], 5.0);
        TesteEtapa[playerid] = 8;
        return 1;
    }
    if(TesteEtapa[playerid] == 8 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[8][0], TesteCoords[8][1], TesteCoords[8][2], TesteCoords[9][0], TesteCoords[9][1], TesteCoords[9][2], 5.0);
        TesteEtapa[playerid] = 9;
        return 1;
    }
    if(TesteEtapa[playerid] == 9 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 1, TesteCoords[9][0], TesteCoords[9][1], TesteCoords[9][2], TesteCoords[9][0], TesteCoords[9][1], TesteCoords[9][2], 5.0);
        TesteEtapa[playerid] = 10;
        return 1;
    }
    if(TesteEtapa[playerid] == 10 && FazendoTeste[playerid] == 1)
    {
        if(lataria < 1000)
        {
            ShowPlayerDialog(playerid, DRepetirCarros2, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк danificou seu veнculo, deseja repetir o teste?", "Sim", "Nгo");
            KillTimer(Verificar[playerid]);
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            DisablePlayerRaceCheckpoint(playerid);
            return 1;
        }
        else if(lataria == 1000)
        {
            ShowPlayerDialog(playerid, DRepetirCarros3, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк deseja passar para a prуxima etapa do teste de habilitaзгo?", "Sim", "Nгo");
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            KillTimer(Verificar[playerid]);
            DisablePlayerRaceCheckpoint(playerid);
            return 1;
        }
        return 1;
    }
    if(TesteEtapa[playerid] == 11 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 1, TesteCoords[11][0], TesteCoords[11][1], TesteCoords[11][2], TesteCoords[11][0], TesteCoords[11][1], TesteCoords[11][2], 5.0);
        TesteEtapa[playerid] = 12;
        return 1;
    }
    if(TesteEtapa[playerid] == 12 && FazendoTeste[playerid] == 1)
    {
        if(lataria < 1000)
        {
            ShowPlayerDialog(playerid, DRepetirCarros3, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк danificou seu veнculo, deseja repetir o teste?", "Sim", "Nгo");
            KillTimer(Verificar[playerid]);
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            DisablePlayerRaceCheckpoint(playerid);
            return 1;
        }
        else if(lataria == 1000)
        {
            SetPlayerInterior(playerid, 3);
            SetPlayerPos(playerid, 1497.034423, 1308.573730, 1093.294799);
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк tirou sua carteira de habilitaзгo, e agora pode dirigir carros.", "Ok", "");
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            KillTimer(Verificar[playerid]);
            DisablePlayerRaceCheckpoint(playerid);
            //Aqui a variбvel habilitando o jogador а pilotar carros
            return 1;
        }
        return 1;
    }
    if(TesteEtapa[playerid] == 13 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 1, TesteCoords[14][0], TesteCoords[14][1], TesteCoords[14][2], TesteCoords[14][0], TesteCoords[14][1], TesteCoords[14][2], 5.0);
        TesteEtapa[playerid] = 14;
        FazendoTeste[playerid] = 0;
        return 1;
    }
    if(TesteEtapa[playerid] == 14 && FazendoTeste[playerid] == 0)
    {
        DisablePlayerRaceCheckpoint(playerid);
        DestroyVehicle(VAutoEscolaTeste[playerid]);
        ShowPlayerDialog(playerid, DRepetirMoto2, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк passou na primeira etapa, deseja ir para a prуxima etapa do teste?", "Sim", "Nгo");
        return 1;
    }
    if(TesteEtapa[playerid] == 15 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[15][0], TesteCoords[15][1], TesteCoords[15][2], TesteCoords[16][0], TesteCoords[16][1], TesteCoords[16][2], 5.0);
        TesteEtapa[playerid] = 16;
        return 1;
    }
    if(TesteEtapa[playerid] == 16 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[16][0], TesteCoords[16][1], TesteCoords[16][2], TesteCoords[17][0], TesteCoords[17][1], TesteCoords[17][2], 5.0);
        TesteEtapa[playerid] = 17;
        return 1;
    }
    if(TesteEtapa[playerid] == 17 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[17][0], TesteCoords[17][1], TesteCoords[17][2], TesteCoords[18][0], TesteCoords[18][1], TesteCoords[18][2], 5.0);
        TesteEtapa[playerid] = 18;
        return 1;
    }
    if(TesteEtapa[playerid] == 18 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[18][0], TesteCoords[18][1], TesteCoords[18][2], TesteCoords[19][0], TesteCoords[19][1], TesteCoords[19][2], 5.0);
        TesteEtapa[playerid] = 19;
        return 1;
    }
    if(TesteEtapa[playerid] == 19 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        SetPlayerRaceCheckpoint(playerid, 1, TesteCoords[19][0], TesteCoords[19][1], TesteCoords[19][2], TesteCoords[19][0], TesteCoords[19][1], TesteCoords[19][2], 5.0);
        TesteEtapa[playerid] = 20;
        return 1;
    }
    if(TesteEtapa[playerid] == 20 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        DestroyVehicle(VAutoEscolaTeste[playerid]);
        ShowPlayerDialog(playerid, DRepetirMoto3, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк passou na segunda etapa, deseja ir para a prуxima etapa do teste?", "Sim", "Nгo");
        TesteEtapa[playerid] = 0;
        KillTimer(Verificar[playerid]);
        return 1;
    }
    if(TesteEtapa[playerid] == 21 && FazendoTeste[playerid] == 1)
    {
        DisablePlayerRaceCheckpoint(playerid);
        DestroyVehicle(VAutoEscolaTeste[playerid]);
        SetPlayerInterior(playerid, 3);
        SetPlayerPos(playerid, 1497.034423, 1308.573730, 1093.294799);
        ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк concluiu o teste para adiquirir sua habilitaзгo, agora jб pode pilotar motos.", "Ok", "");
        TesteEtapa[playerid] = 0;
        KillTimer(Verificar[playerid]);
        //Aqui a variбvel habilitando o jogador а pilotar motos
        return 1;
    }
    if(TesteEtapa[playerid] == 22 && FazendoTeste[playerid] == 1)
    {
        if(lataria < 1000)
        {
            DisablePlayerRaceCheckpoint(playerid);
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            KillTimer(Verificar[playerid]);
            ShowPlayerDialog(playerid, DRepetirAero1, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк danificou sua aeronave, deseja repetir o teste?", "Sim", "Nгo");
            return 1;
        }
        else if(lataria == 1000)
        {
            DisablePlayerRaceCheckpoint(playerid);
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            ShowPlayerDialog(playerid, DRepetirAero2, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк passou na primeira etapa do teste de aeronaves, deseja passar para prуxima etapa?", "Sim", "Nгo");
            TesteEtapa[playerid] = 0;
            KillTimer(Verificar[playerid]);
            return 1;
        }
        return 1;
    }
    if(TesteEtapa[playerid] == 23 && FazendoTeste[playerid] == 1)
    {
        if(lataria < 1000)
        {
            DisablePlayerRaceCheckpoint(playerid);
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            KillTimer(Verificar[playerid]);
            ShowPlayerDialog(playerid, DRepetirAero2, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк danificou sua aeronave, deseja repetir o teste?", "Sim", "Nгo");
            return 1;
        }
        else if(lataria == 1000)
        {
            DisablePlayerRaceCheckpoint(playerid);
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            SetPlayerInterior(playerid, 3);
            SetPlayerPos(playerid, 1497.034423, 1308.573730, 1093.294799);
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Vocк conseguiu", "Vocк terminou o teste para obter a hбbilitaзгo para pilotar aeronaves, e agora jб pode pilotar.", "Ok", "");
            TesteEtapa[playerid] = 0;
            KillTimer(Verificar[playerid]);
            //Aqui a variбvel habilitando o jogador а pilotar aeronaves
            return 1;
        }
        return 1;
    }
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys == KEY_SECONDARY_ATTACK)
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, 1081.219726, -1696.847534, 13.546875)) //Caso esteja nesta coordenada, executarб o que estб abaixo
        {
            SetPlayerPos(playerid, 1494.325195,1304.942871,1093.289062);        //Teleporta para dentro da Auto Escola
            SetPlayerInterior(playerid, 3);                                     //Setarб o interior para [3]
            return 1;
        }
        if(IsPlayerInRangeOfPoint(playerid, 3.0, 1494.325195,1304.942871,1093.289062)) //Caso esteja nesta coordenada, executarб o que estб abaixo
        {
            SetPlayerPos(playerid, 1081.219726, -1696.847534, 13.546875);       //Teleporta para fora da Auto Escola
            SetPlayerInterior(playerid, 0);                                     //Setarб o interior para [0]
            return 1;
        }
        if(IsPlayerInRangeOfPoint(playerid, 3.0, 1490.509765, 1305.782958, 1093.296386)) //Caso esteja nesta coordenada, executarб o que estб abaixo
        {
            ShowPlayerDialog(playerid, DMenuAutoEscola, DIALOG_STYLE_LIST, "{FFFFFF}Escolha o teste", "{FFFFFF}Carros {1E90FF}$5.000\n{FFFFFF}Motos {1E90FF}$3.000\n{FFFFFF}Aeronaves {1E90FF}$4.000", "Comprar", "Cancelar"); //Mostrarб o menu
            return 1;
        }
        return 1;
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
    case DPerguntas:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DPergunta1, DIALOG_STYLE_MSGBOX, "Primeira Pergunta", "{FFFFFF}Vocк deve andar de que lado da rua?\n\n{1E90FF}Alternativas:\nA){FFFFFF} Do lado esquerdo{1E90FF}\nB){FFFFFF} Do lado direito", "A", "B");
            return 1;
        }
        return 1;
    }
    case DPergunta1:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DProxPergunta2, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}B){FFFFFF} Do lado direito", "Continuar", "");
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DProxPergunta2, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        return 1;
    }
    case DProxPergunta2:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DPergunta2, DIALOG_STYLE_MSGBOX, "Segunda Pergunta", "{FFFFFF}O sinal abre e tem um pedestre passando a faixa oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA){FFFFFF} Reduzo e deicho o pedestre acabar de passar{1E90FF}\nB){FFFFFF} Buzino para ele andar mais rapido", "A", "B");
            return 1;
        }
        return 1;
    }
    case DPergunta2:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DProxPergunta3, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DProxPergunta3, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}A){FFFFFF} Reduzo e deicho o pedestre\n acabar de passar", "Continuar", "");
            return 1;
        }
        return 1;
    }
    case DProxPergunta3:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DPergunta3, DIALOG_STYLE_MSGBOX, "Terceira Pergunta", "{FFFFFF}Vocк estб com seu veiculo quando avista um grupo de meliantes\nna calзada oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA){FFFFFF}Vou reduzindo tentando chegar ao semaforo com ele aberto{1E90FF}\nB){FFFFFF} Acelero e paro do lado deles", "A", "B");
            return 1;
        }
        return 1;
    }
    case DPergunta3:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DProxPergunta4, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DProxPergunta4, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}A){FFFFFF} Vou reduzindo\ntentando chegar ao semaforo com ele aberto", "Continuar", "");
            return 1;
        }
        return 1;
    }
    case DProxPergunta4:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DPergunta4, DIALOG_STYLE_MSGBOX, "Quarta Pergunta", "{FFFFFF}Vocк estб com seu veiculo normalmete a 110Km/h quando\nvisualiza uma placa de no maximo 80Km/h\noque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA{FFFFFF} Continuo a 110Km/h{1E90FF}\nB){FFFFFF} Reduzo para os 80Km/h", "A", "B");
            return 1;
        }
        return 1;
    }
    case DPergunta4:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DProxPergunta5, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}B){FFFFFF} Reduzo para os 80Km/h", "Continuar", "");
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DProxPergunta5, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        return 1;
    }
    case DProxPergunta5:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DPergunta5, DIALOG_STYLE_MSGBOX, "Quinta Pergunta", "{FFFFFF}Vocк dirige a 120Km/h e visualiza um carro em\n sua frente oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA{FFFFFF} Colo na trazeira dele forзando a ultrapassagem{1E90FF}\nB){FFFFFF} Mantenho distancia e espero o momento certo", "A", "B");
            return 1;
        }
        return 1;
    }
    case DPergunta5:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DProxPergunta6, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}B){FFFFFF} Mantenho distancia e espero o momento certo", "Continuar", "");
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DProxPergunta6, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        return 1;
    }
    case DProxPergunta6:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DPergunta6, DIALOG_STYLE_MSGBOX, "Sexta Pergunta", "{FFFFFF}Vocк estб seguindo normalmente quando um carro fazendo a\n ultrapassagem nota que estб vindo um caminhao\ne precisa voltar para pista oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA){FFFFFF} Reduzir assim deichando espasso para ele voltar{1E90FF}\nB){FFFFFF} Acelerar e nгo deichar ele voltar", "A", "B");
            return 1;
        }
        return 1;
    }
    case DPergunta6:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DFimdoTeste, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DFimdoTeste, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}B){FFFFFF} Mantenho distancia e espero o momento certo", "Continuar", "");
            return 1;
        }
        return 1;
    }
    case DFimdoTeste:
    {
        if(response)
        {
            if(Acertou[playerid] >= 3)
            {
                ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Dirija de LS atй o porto de San Fierro sem danos e em menos de 3:40 minutos", "OK", "");
                VAutoEscolaTeste[playerid] = CreateVehicle(402, 1089.949218, -1757.977783, 13.212669, 89.3455565, 1, 1, 5000);
                PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
                SetPlayerInterior(playerid, 0);
                TesteEtapa[playerid] = 1;
                FazendoTeste[playerid] = 1;
                GivePlayerMoney(playerid, -5000);
                Verificar[playerid] = SetTimerEx("VerificarConclusao", 220000, false, "playerid", playerid);
                SetPlayerRaceCheckpoint(playerid, 1, TesteCoords[0][0], TesteCoords[0][1], TesteCoords[0][2], TesteCoords[0][0], TesteCoords[0][1], TesteCoords[0][2], 5.0);
                return 1;
            }
            if(Acertou[playerid] <= 3)
            {
                ShowPlayerDialog(playerid, DNaoPasso, DIALOG_STYLE_MSGBOX, "Vocк foi reprovado", "Sinto muito vocк reprovou no teste tente novamente.", "OK", "");
                return 1;
            }
        }
        return 1;
    }
        case DMPerguntas:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMPergunta1, DIALOG_STYLE_MSGBOX, "Primeira Pergunta", "{FFFFFF}Vocк deve andar de que lado da rua?\n\n{1E90FF}Alternativas:\nA){FFFFFF} Do lado esquerdo{1E90FF}\nB){FFFFFF} Do lado direito", "A", "B");
            return 1;
        }
        return 1;
    }
    case DMPergunta1:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta2, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}B){FFFFFF} Do lado direito", "Continuar", "");
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta2, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        return 1;
    }
    case DMProxPergunta2:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMPergunta2, DIALOG_STYLE_MSGBOX, "Segunda Pergunta", "{FFFFFF}O sinal abre e tem um pedestre passando a faixa oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA){FFFFFF} Reduzo e deicho o pedestre acabar de passar{1E90FF}\nB){FFFFFF} Buzino para ele andar mais rapido", "A", "B");
            return 1;
        }
        return 1;
    }
    case DMPergunta2:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta3, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta3, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}A){FFFFFF} Reduzo e deicho o pedestre\n acabar de passar", "Continuar", "");
            return 1;
        }
        return 1;
    }
    case DMProxPergunta3:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMPergunta3, DIALOG_STYLE_MSGBOX, "Terceira Pergunta", "{FFFFFF}Vocк estб com seu veiculo quando avista um grupo de meliantes\nna calзada oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA){FFFFFF}Vou reduzindo tentando chegar ao semaforo com ele aberto{1E90FF}\nB){FFFFFF} Acelero e paro do lado deles", "A", "B");
            return 1;
        }
        return 1;
    }
    case DMPergunta3:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta4, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta4, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}A){FFFFFF} Vou reduzindo\ntentando chegar ao semaforo com ele aberto", "Continuar", "");
            return 1;
        }
        return 1;
    }
    case DMProxPergunta4:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMPergunta4, DIALOG_STYLE_MSGBOX, "Quarta Pergunta", "{FFFFFF}Vocк estб com seu veiculo normalmete a 110Km/h quando\nvisualiza uma placa de no maximo 80Km/h\noque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA{FFFFFF} Continuo a 110Km/h{1E90FF}\nB){FFFFFF} Reduzo para os 80Km/h", "A", "B");
            return 1;
        }
        return 1;
    }
    case DMPergunta4:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta5, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}B){FFFFFF} Reduzo para os 80Km/h", "Continuar", "");
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta5, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        return 1;
    }
    case DMProxPergunta5:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMPergunta5, DIALOG_STYLE_MSGBOX, "Quinta Pergunta", "{FFFFFF}Vocк dirige a 120Km/h e visualiza um carro em\n sua frente oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA{FFFFFF} Colo na trazeira dele forзando a ultrapassagem{1E90FF}\nB){FFFFFF} Mantenho distancia e espero o momento certo", "A", "B");
            return 1;
        }
        return 1;
    }
    case DMPergunta5:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta6, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}B){FFFFFF} Mantenho distancia e espero o momento certo", "Continuar", "");
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta6, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        return 1;
    }
    case DMProxPergunta6:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMPergunta6, DIALOG_STYLE_MSGBOX, "Sexta Pergunta", "{FFFFFF}Vocк estб seguindo normalmente quando um carro fazendo a\n ultrapassagem nota que estб vindo um caminhao\ne precisa voltar para pista oque vocк deve fazer?\n\n{1E90FF}Alternativas:\nA){FFFFFF} Reduzir assim deichando espasso para ele voltar{1E90FF}\nB){FFFFFF} Acelerar e nгo deichar ele voltar", "A", "B");
            return 1;
        }
        return 1;
    }
    case DMPergunta6:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta7, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DMProxPergunta7, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}A){FFFFFF} Reduzir assim deichando espasso para ele voltar", "Continuar", "");
            return 1;
        }
        return 1;
    }
    case DMProxPergunta7:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMPergunta7, DIALOG_STYLE_MSGBOX, "Setima Pergunta", "{FFFFFF}Numa moto vocк precisa usar capacete?\n\n{1E90FF}Alternativas:\nA){FFFFFF} Sim{1E90FF}\nB){FFFFFF} Nгo", "A", "B");
            return 1;
        }
        return 1;
    }
    case DMPergunta7:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DMFimdoTeste, DIALOG_STYLE_MSGBOX, "Vocк acertou", "{1E90FF}Parabйns!\n{FFFFFF}Vocк acertou", "Continuar", "");
            Acertou[playerid] ++;
            return 1;
        }
        if(!response)
        {
            ShowPlayerDialog(playerid, DMFimdoTeste, DIALOG_STYLE_MSGBOX, "Vocк errou", "{FFFFFF}Alternativa correta {1E90FF}A){FFFFFF} Sim", "Continuar", "");
            return 1;
        }
        return 1;
    }
    case DMFimdoTeste:
    {
        if(response)
        {
            if(Acertou[playerid] >= 4)
            {
                ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Siga reto e suba na laje atravez do meio fiu. Apуs isso vб para a casa do lado esquerdo com a moto.", "OK", "");
                VAutoEscolaTeste[playerid] = CreateVehicle(522, 305.917968, -1868.175415, 2.393410, 0.3362, 0, 158, 5000);
                PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
                SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[13][0], TesteCoords[13][1], TesteCoords[13][2], TesteCoords[14][0], TesteCoords[14][1], TesteCoords[14][2], 5.0);
                TesteEtapa[playerid] = 13;
                GivePlayerMoney(playerid, -3000);
                FazendoTeste[playerid] = 1;
                SetPlayerInterior(playerid, 0);
                return 1;
            }
            if(Acertou[playerid] <= 4)
            {
                ShowPlayerDialog(playerid, DNaoPasso, DIALOG_STYLE_MSGBOX, "Vocк foi reprovado", "Sinto muito vocк reprovou no teste tente novamente.", "OK", "");
                return 1;
            }
        }
        return 1;
    }
    case DMenuAutoEscola:
    {
        if(response)
        {
            switch(listitem)
            {
                case 0:
                {
                    Acertou[playerid] = 0;
                    ShowPlayerDialog(playerid, DPerguntas, DIALOG_STYLE_MSGBOX, "Teste Teorico", "Ola agora vamos ao Teste Teorico vocк precisa acertar\npelo menos 3 perguntas do teste para ser aprovado!", "Continuar", "");
                    return 1;
                }
                case 1:
                {
                    Acertou[playerid] = 0;
                    ShowPlayerDialog(playerid, DMPerguntas, DIALOG_STYLE_MSGBOX, "Teste Teorico", "Ola agora vamos ao Teste Teorico vocк precisa acertar\npelo menos 4 perguntas do para ser aprovado!", "Continuar", "");
                }
                case 2:
                {
                    ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Decole o aviгo, leve-o atй o hangar localizado no aeroporto abandonado de Las Venturas, estacione-o.", "OK", "");
                    VAutoEscolaTeste[playerid] = CreateVehicle(511, -1646.996459, -154.085769, 15.522509, 315.0830, 0, 158, 5000);
                    PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
                    SetPlayerRaceCheckpoint(playerid, 1, 405.687927, 2451.601562, 17.873716, 405.687927, 2451.601562, 17.873716, 5.0);
                    TesteEtapa[playerid] = 22;
                    GivePlayerMoney(playerid, -4000);
                    FazendoTeste[playerid] = 1;
                    SetPlayerInterior(playerid, 0);
                    return 1;
                }
            }
            return 1;
        }
        return 1;
    }
    case DRepetirCarros1:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Dirija de LS atй o porto de San Fierro sem danos e em menos de 3:40 minutos", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(402, 1089.949218, -1757.977783, 13.212669, 89.3455565, 1, 1, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            SetPlayerInterior(playerid, 0);
            TesteEtapa[playerid] = 1;
            FazendoTeste[playerid] = 1;
            Verificar[playerid] = SetTimerEx("VerificarConclusao", 220000, false, "playerid", playerid);
            SetPlayerRaceCheckpoint(playerid, 1, TesteCoords[0][0], TesteCoords[0][1], TesteCoords[0][2], TesteCoords[0][0], TesteCoords[0][1], TesteCoords[0][2], 5.0);
            return 1;
        }
        return 1;
    }
    case DRepetirCarros2:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Siga a trilha de checkpoints atй o final do circuito, sem danos e em menos de 3:00 minutos", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(424, -1970.295898, -2434.038574, 30.194002, 273.215728, 0, 1, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            SetPlayerInterior(playerid, 0);
            TesteEtapa[playerid] = 2;
            FazendoTeste[playerid] = 1;
            Verificar[playerid] = SetTimerEx("VerificarConclusao", 180000, false, "playerid", playerid);
            SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[1][0], TesteCoords[1][1], TesteCoords[1][2], TesteCoords[2][0], TesteCoords[2][1], TesteCoords[2][2], 5.0);
            return 1;
        }
        return 1;
    }
    case DRepetirCarros3:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Desca pelo estacionamento atй o Checkpoint no tйrreo e suba atй o ponto de partida, sem danos e em 1:15 minutos", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(562, 2236.203613, 1974.228759, 31.350551, 273.215728, 158, 1, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            SetPlayerInterior(playerid, 0);
            TesteEtapa[playerid] = 11;
            FazendoTeste[playerid] = 1;
            Verificar[playerid] = SetTimerEx("VerificarConclusao", 75000, false, "playerid", playerid);
            SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[12][0], TesteCoords[12][1], TesteCoords[12][2], TesteCoords[11][0], TesteCoords[11][1], TesteCoords[11][2], 5.0);
            return 1;
        }
        return 1;
    }
    case DRepetirMoto1:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Siga reto e suba na laje atravez do meio fiu. Apуs isso vб para a casa do lado esquerdo com a moto.", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(522, 305.917968, -1868.175415, 2.393410, 0.3362, 0, 158, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            SetPlayerRaceCheckpoint(playerid, 0, TesteCoords[13][0], TesteCoords[13][1], TesteCoords[13][2], TesteCoords[14][0], TesteCoords[14][1], TesteCoords[14][2], 5.0);
            TesteEtapa[playerid] = 13;
            FazendoTeste[playerid] = 1;
            return 1;
        }
        return 1;
    }
    case DRepetirMoto2:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Siga a trilha de checkpoints atй o alto do morro, por fim, pule o muro e pare na laje abaixo.", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(522, 2838.280517, -1046.117309, 22.838201, 89.345565, 0, 158, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            SetPlayerRaceCheckpoint(playerid, 0, 2838.280517, -1046.117309, 22.838201, TesteCoords[15][0], TesteCoords[15][1], TesteCoords[15][2], 5.0);
            TesteEtapa[playerid] = 15;
            FazendoTeste[playerid] = 1;
            return 1;
        }
        return 1;
    }
    case DRepetirMoto3:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Chegue atй o checkpoint em menos de 1:50 minutos, pegue o caminho que desejar.", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(468, 2418.786132, 91.505310, 26.047235, 89.345565, 158, 158, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            Verificar[playerid] = SetTimerEx("VerificarConclusao", 150000, false, "playerid", playerid);
            SetPlayerRaceCheckpoint(playerid, 1, -577.292663, -189.324462, 78.249137, TesteCoords[20][0], TesteCoords[20][1], TesteCoords[20][2], 5.0);
            TesteEtapa[playerid] = 21;
            FazendoTeste[playerid] = 1;
            return 1;
        }
        return 1;
    }
    case DRepetirAero1:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Decole o aviгo, leve-o atй o hangar localizado no aeroporto abandonado de Las Venturas, estacione-o.", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(511, -1646.996459, -154.085769, 15.522509, 315.0830, 0, 158, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            SetPlayerRaceCheckpoint(playerid, 1, 405.687927, 2451.601562, 17.873716, 405.687927, 2451.601562, 17.873716, 5.0);
            TesteEtapa[playerid] = 22;
            FazendoTeste[playerid] = 1;
            SetPlayerInterior(playerid, 0);
            return 1;
        }
        return 1;
    }
    case DRepetirAero2:
    {
        if(response)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Decole o aviгo, leve-o atй o hangar localizado no aeroporto abandonado de Las Venturas, estacione-o.", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(563, 1766.504882, -2286.285644, 27.501468, 268.859832, 0, 158, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            SetPlayerRaceCheckpoint(playerid, 1, 2093.283447, 2414.863037, 75.284034, 2093.283447, 2414.863037, 75.284034, 5.0);
            TesteEtapa[playerid] = 23;
            FazendoTeste[playerid] = 1;
            return 1;
        }
        return 1;
    }
}
return 1;
}

public VerificarConclusao(playerid) //Й chamada no fim do prazo, se o player chegar а tempo esse timer й destruнdo, entгo nгo serб chamado
{
    //Abaixo todas as etapas que tem um tempo limite para a chegada
    if(TesteEtapa[playerid] == 1)
    {
        if(FazendoTeste[playerid] == 1)
        {
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            TesteEtapa[playerid] = 0;
            ShowPlayerDialog(playerid, DRepetirCarros1, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк nгo chegou а tempo, deseja repetir o teste?", "Sim", "Nгo");
            return 1;
        }
        return 1;
    }
    if(TesteEtapa[playerid] >= 2 && TesteEtapa[playerid] <= 10)
    {
        if(FazendoTeste[playerid] == 1)
        {
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            TesteEtapa[playerid] = 0;
            ShowPlayerDialog(playerid, DRepetirCarros2, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк nгo chegou а tempo, deseja repetir o teste?", "Sim", "Nгo");
            return 1;
        }
        return 1;
    }
    if(TesteEtapa[playerid] >= 11 && TesteEtapa[playerid] <= 12)
    {
        if(FazendoTeste[playerid] == 1)
        {
            DestroyVehicle(VAutoEscolaTeste[playerid]);
            FazendoTeste[playerid] = 0;
            TesteEtapa[playerid] = 0;
            ShowPlayerDialog(playerid, DRepetirCarros3, DIALOG_STYLE_MSGBOX, "Vocк nгo conseguiu", "Vocк nгo chegou а tempo, deseja repetir o teste?", "Sim", "Nгo");
            return 1;
        }
        return 1;
    }
    if(TesteEtapa[playerid] == 21)
    {
        if(FazendoTeste[playerid] == 1)
        {
            ShowPlayerDialog(playerid, DInstrucaoAutoEscola, DIALOG_STYLE_MSGBOX, "Como concluнr seu teste", "Chegue atй o checkpoint em menos de 1:50 minutos, pegue o caminho que desejar.", "OK", "");
            VAutoEscolaTeste[playerid] = CreateVehicle(468, 2418.786132, 91.505310, 26.047235, 89.345565, 158, 158, 5000);
            PutPlayerInVehicle(playerid, VAutoEscolaTeste[playerid], 0);
            Verificar[playerid] = SetTimerEx("VerificarConclusao", 15000, false, "playerid", playerid);
            SetPlayerRaceCheckpoint(playerid, 1, 2838.280517, -1046.117309, 22.838201, TesteCoords[20][0], TesteCoords[20][1], TesteCoords[20][2], 5.0);
            TesteEtapa[playerid] = 21;
            FazendoTeste[playerid] = 1;
            return 1;
        }
        return 1;
    }
    return 1;
}
Download

PasteBin
Reply
#2

bacana! +rep '-'
Reply
#3

Уtimo FS, jб adicionei ele no meu GameMode RPG.
Muito Bom!
Parabйns.
Reply
#4

Muito Bom FS Ja Ate Coloquei no Meu GM RPG Muito masssa UPUP!!
Reply
#5

Muito Bom Parabens cara
Reply
#6

Valeu pelos crйditos Gustavo, sucesso com o FS.

OFF: Juninho que se tб fazendo com a foto da minha mina no seu avatar? -q kk.
Reply
#7

Gostei desse, com as perguntas parece atй real ( So um poco kk )

josma o habilitaзao dos carro nao funfa e o 2 da moto tb n !! me ajudaaa plsss '-'
Reply
#8

Dylan, os testes tгo funcionando perfeitamente, sу nгo fiz as var que definem se ele й habilitado ou nгo porque meu cуdigo foi feito pra ser adaptado aos seus sistemas padrгo.
Me chama no msn que te ajudo.(Pode chamar se eu tiver off meu msn й louco).
Reply
#9

GЃ0‹4di jobi mai friende.
Reply
#10

Obrigado!
Reply
#11

Simples й Legal Parabйns.
Reply
#12

Quote:
Originally Posted by Jonathan_Feitosa
Посмотреть сообщение
Simples й Legal Parabйns.
Obrigado Jonathan
Reply
#13

Muito bom, eu tambйm editei todo esse FS, desde os CP atй os testes rs, achei ele muito grande e tinha um Bug no Timer do ultimo teste da moto rs, ai retirei o Timer, porque alнas nem precisa ali .
E coloquei um teste teуrico de armas, 5 perguntas, tem que acerta no mнnimo 3 pra passar, se nгo acerta 3 = Reprovado .
Reply
#14

Quote:
Originally Posted by DJ Bruninho
Посмотреть сообщение
Muito bom, eu tambйm editei todo esse FS, desde os CP atй os testes rs, achei ele muito grande e tinha um Bug no Timer do ultimo teste da moto rs, ai retirei o Timer, porque alнas nem precisa ali .
E coloquei um teste teуrico de armas, 5 perguntas, tem que acerta no mнnimo 3 pra passar, se nгo acerta 3 = Reprovado .
Sim tb vou fazer de armas e quem sabe de barcos acho ideal para server rpg.
Reply
#15

O de barcos eu vou fazer depois quando tiver acabando meu GM porque й fбcil, to fazendo os mais difнceis e importantes primeiro.
Daqui a uns meses ou anos eu termino meu GM mas tambйm pretendo deixar bem fodinha rs.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)