Descrição:
É um sistema de teste de habilitação onde o player escolhe qual a categoria de veículos na qual ele deseja fazer o teste. Contém 3 categorias: Aeronaves, carros e motos. Cada um com seu preço. Nesse Filterscript não contem as variáveis que identificam se o player é habilitado ou não. Esse FS foi criado para ser adaptado ao seu GameMode.
É um sistema de teste de habilitação onde o player escolhe qual a categoria de veículos na qual ele deseja fazer o teste. Contém 3 categorias: Aeronaves, carros e motos. Cada um com seu preço. Nesse Filterscript não contem as variáveis que identificam se o player é habilitado ou não. Esse FS foi criado para ser adaptado ao seu GameMode.
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.
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.
Vídeo:
~> Clique aqui para ver mais imagens <~
#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; }