SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

Participe do fórum, é rápido e fácil

SSGamers - 13 Anos online por você.

#SSGamers - A Comunidade que mais crescer no brasil!

SSGamers - 13 Anos online por você.

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Chegou o novo tema 6.5.5 - SSGamers - Servidores online de qualidade - Aproveite e entre para nossa comunidade, inscreva-se já! - Ouça nossa web radio - Veja nossas novidades - Participe dos nossos setores de jogos online - Parcerias aberta fale já com um administrador.

5 participantes

    [FS] Sistema de Teste de Habilitação

    Overloko
    Overloko
    --> Postador Iniciante
    --> Postador Iniciante


    Mensagens : 12
    Moedas : 4648
    Data de inscrição : 23/03/2012

    [FS] Sistema de Teste de Habilitação Empty [FS] Sistema de Teste de Habilitação

    Mensagem por Overloko Ter 27 Mar 2012 - 18:30

    [FS] Sistema de Teste de Habilitação 44148649

    Descrição:
    Bom, muita gente vem me pedindo pra criar um sistema de teste de habilitação onde o player escolhe qual a categoria de veículos na qual ele deseja fazer o teste e inicia o teste, fiz 3 categorias, aeronaves, carros e motos, cada um com seu preço, não fiz as variáveis que identificam se o player é habilitado ou não por que esse FS fiz pra ser adaptado aos seus GameModes então como cada GM tem sua variável, não achei produtivo cria-las no FS.

    Sobre os testes:

    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.

    Como uma imagem vale mais que mil palavras, resolvi fazer um vídeo, salvei ele em HD mas ficou com 52GB, salvei normal ficou com 2,13 GB, tava tenso pra fazer upload então salvei com baixa qualidade ficou com 109MB.




    Clique aqui para ver mais Imagens!


    Pawn code:

    Código:

    #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 MAXPLAYERS 40
    //=============================[† Forward †]====================================
    forward VerificarConclusao(playerid);
    //============================[† Variáveis †]===================================
    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 1;
    }

    public OnPlayerConnect(playerid)
    {
        SendClientMessage(playerid, 0x1E90FF99, "Este servidor usa um sistema de teste de habilitação do{FFFFFF} Progressão Pawn - Josma_CMD");
        return 1;
    }

    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 1;
            }
            return 1;
        }
        return 1;
    }

    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 DMenuAutoEscola:
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0:
                    {
                        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;
                    }
                    case 1:
                    {
                        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;
                    }
                    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;
    }

    OBS: Essa versão é básica, pretendo fazer uma melhor futuramente porem não tenho certeza se postarei ou não, fique à vontade para editar e adaptar ao seu GameMode, qualquer duvida pergunte.
    OBS2: Adiantei partes no vídeo pra não ficar muito grande, e se notarem o helicoptero e o avião perdem reflexo em 2 partes do vídeo(Desliguei a ENB Series por que ela não foi feita especialmente pro samp, a água some achei melhor desativar).


    CRÉDITOS: Josma_cmd
    avatar
    BaD
    --> Postador Médio
    --> Postador Médio


    Mensagens : 214
    Moedas : 4949
    Data de inscrição : 14/01/2012

    [FS] Sistema de Teste de Habilitação Empty Re: [FS] Sistema de Teste de Habilitação

    Mensagem por BaD Qua 11 Abr 2012 - 20:01

    Gostei
    נ๏รмล™
    נ๏รмล™
    SS - Membro de honra
    SS - Membro de honra


    Mensagens : 101
    Moedas : 4736
    Data de inscrição : 07/04/2012
    Idade : 29
    Localização : Em Casa

    [FS] Sistema de Teste de Habilitação Empty Re: [FS] Sistema de Teste de Habilitação

    Mensagem por נ๏รмล™ Qua 18 Abr 2012 - 12:55

    O FS não ficou tão otimizado quanto eu gostaria, hoje em dia vejo projetos meus do passado e penso que poderiam ter sido feitos de maneira mais dinâmica. Mas não ficou ruim kk.
    Valeu por postar, nem sabia que tinha projetos meus nesse fórum.



    Favorite Games:

    [FS] Sistema de Teste de Habilitação 18608
    [FS] Sistema de Teste de Habilitação 20206

    User:

    [FS] Sistema de Teste de Habilitação 36200t
    Mabuya KruelL
    Mabuya KruelL
    --> Postador Iniciante
    --> Postador Iniciante


    Mensagens : 29
    Moedas : 4654
    Data de inscrição : 15/04/2012
    Idade : 26
    Localização : Pawno

    [FS] Sistema de Teste de Habilitação Empty Re: [FS] Sistema de Teste de Habilitação

    Mensagem por Mabuya KruelL Qua 18 Abr 2012 - 13:17

    UP mas neem curto esses sistemas





    [FS] Sistema de Teste de Habilitação Sign47

    Weslley_Script
    Weslley_Script
    SS - Fundador
    SS - Fundador


    Steam Steam : WeslleySSGames
    Zello : WeslleySSGames
    Mensagens : 11638
    Moedas : 1032933
    Data de inscrição : 06/10/2011
    Idade : 29
    Localização : Brasil

    [FS] Sistema de Teste de Habilitação Empty Re: [FS] Sistema de Teste de Habilitação

    Mensagem por Weslley_Script Qua 18 Abr 2012 - 18:02

    tem uns 2 ou 3 parece Very Happy

    Conteúdo patrocinado


    [FS] Sistema de Teste de Habilitação Empty Re: [FS] Sistema de Teste de Habilitação

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sáb 23 Nov 2024 - 4:34