PHP Code:
#include < a_samp >
//utilizei a include zcmd caso nгo tenha procura que tem ai no fуrum
#include < zcmd >
//fiz na forma de um fs
#define FILTERSCRIPT
//parar dar funзхes para os checkpoits iremos usar uma variavel e a corrida iniciada
new checkpoint[MAX_PLAYERS] , carroinq[MAX_VEHICLES] , nacorrida[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
checkpoint[playerid] = 0; //checkpoint 0 ou seja nenhum...
return 1;
}
//comando que manda ele para a corrida
CMD:entrarc(playerid, params[])
{
//no lugar de 1, 1, 1 coloque as coordenadas da sua corrida
SetPlayerPos(playerid, 1, 1, 1);
//vai mandar a mensagem que ele foi para corrida
// o {00FF00} vai deixar a cor verde
SendClientMessage(playerid, -1, "{00FF00}Vocк foi para a corrida!");
//vai pegar as coordenadas do player e criar um veiculo perto dele e por ele dentro
new Float:X,Float:Y,Float:Z,Float:A; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, A);
//vai criar um veiculo(um infernus)
new carro = CreateVehicle(411, X, Y, Z, A, -1, -1, 0);
//vai por ele dentro do veiculo(infernus)
PutPlayerInVehicle(playerid, carro, 0);
//vai criar um checkpoint com tamanho 10(igual o das corridas)
//esse checkpoint й o 1
SetPlayerCheckpoint(playerid, 1, 1, 1, 10.0);
//coloca ele dentro do checkpoint 1
checkpoint[playerid] = 1;
//ativa o god car
carroinq[GetPlayerVehicleID(playerid)] = 1;
nacorrida[playerid] = 1;
return 1;
}
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
//se o carroinq tiver ligado(1)
if(carroinq[vehicleid] == 1)
{
//quando o carro sofre dano ele repara o veiuclo
if(carroinq[vehicleid]) RepairVehicle(vehicleid);
}
return 1;
}
CMD:desistir(playerid, params[])
{
if(nacorrida[playerid] == 1)
{
SendClientMessage(playerid, -1, "{FF0000}Vocк desistiu da corrida!");
checkpoint[playerid] = 0;
new idc = GetPlayerVehicleID(playerid);
carroinq[idc] = 0;
SetPlayerPos(playerid, 0, 0 ,0);
}
else
{
SendClientMessage(playerid, -1, "{FF0000}Vocк nem esta em uma corrida!");
}
return 1;
}
//comando reset
CMD:reset(playerid, params[])
{
//se o checkpoint dele for o 1...
if(checkpoint[playerid] == 1)
{
checkpoint[playerid] = 1;
//vai criar novamente o checkpoint 1
SetPlayerCheckpoint(playerid, 1, 1, 1, 10.0);
//se ele estiver em um veiculo
if(IsPlayerInAnyVehicle(playerid))
{
//ele teleporta o veiculo + o player
new veiculo = GetPlayerVehicleID(playerid);
SetVehiclePos(veiculo, 1, 1, 1);
}
else//se nao estiver em um veiculo
{
//ele teleporta so o player
SetPlayerPos(playerid, 1, 1, 1);
}
}
//mesma coisa do de cima soque й o 2° checkpoint
if(checkpoint[playerid] == 2)
{
checkpoint[playerid] = 2;
SetPlayerCheckpoint(playerid, 2, 2, 2, 10.0);
if(IsPlayerInAnyVehicle(playerid))
{
new veiculo = GetPlayerVehicleID(playerid);
SetVehiclePos(veiculo, 2, 2, 2);
}
else
{
SetPlayerPos(playerid, 2, 2, 2);
}
}
if(checkpoint[playerid] == 3)
{
checkpoint[playerid] = 3;
SetPlayerCheckpoint(playerid, 3, 3, 3, 10.0);
if(IsPlayerInAnyVehicle(playerid))
{
new veiculo = GetPlayerVehicleID(playerid);
SetVehiclePos(veiculo, 3, 3, 3);
}
else
{
SetPlayerPos(playerid, 3, 3, 3);
}
}
if(checkpoint[playerid] == 4)
{
checkpoint[playerid] = 4;
SetPlayerCheckpoint(playerid, 4, 4, 4, 10.0);
if(IsPlayerInAnyVehicle(playerid))
{
new veiculo = GetPlayerVehicleID(playerid);
SetVehiclePos(veiculo, 4, 4, 4);
}
else
{
SetPlayerPos(playerid, 4, 4, 4);
}
}
if(checkpoint[playerid] == 5)
{
checkpoint[playerid] = 5;
SetPlayerCheckpoint(playerid, 5, 5, 5, 10.0);
if(IsPlayerInAnyVehicle(playerid))
{
new veiculo = GetPlayerVehicleID(playerid);
SetVehiclePos(veiculo, 5, 5, 51);
}
else
{
SetPlayerPos(playerid, 5, 5, 5);
}
}
return 1;
}
//essa callback serve para quando ele entrar em um checkpoint
public OnPlayerEnterCheckpoint(playerid)
{
//se esse checkpoint dele for o 1
if(checkpoint[playerid] == 1)
{
//manda a mensagem que ele passou
SendClientMessage(playerid, -1, "{00FF00}Vocк passou pelo checkpoint 1!");
//para nгo se confundir abaixo й o checkpoint 2!
//vai criar o checkpoint 2
SetPlayerCheckpoint(playerid, 2, 2, 2, 10.0);
//vai colocar ele dentro do checkpoint 2
checkpoint[playerid] = 2;
}
if(checkpoint[playerid] == 2)
{
//manda a mensagem que ele passou
SendClientMessage(playerid, -1, "{00FF00}Vocк passou pelo checkpoint 2!");
//para nгo se confundir abaixo й o checkpoint 3!
//vai criar o checkpoint 3
SetPlayerCheckpoint(playerid, 3, 3, 3, 10.0);
//vai colocar ele dentro do checkpoint 3
checkpoint[playerid] = 3;
}
if(checkpoint[playerid] == 3)
{
//manda a mensagem que ele passou
SendClientMessage(playerid, -1, "{00FF00}Vocк passou pelo checkpoint 3!");
//para nгo se confundir abaixo й o checkpoint 4!
//vai criar o checkpoint 4
SetPlayerCheckpoint(playerid, 4, 4, 4, 10.0);
//vai colocar ele dentro do checkpoint 4
checkpoint[playerid] = 4;
}
if(checkpoint[playerid] == 4)
{
//manda a mensagem que ele passou
SendClientMessage(playerid, -1, "{00FF00}Vocк passou pelo checkpoint 4!");
//para nгo se confundir abaixo й o checkpoint 4!
//vai criar o checkpoint 5
SetPlayerCheckpoint(playerid, 5, 5, 5, 10.0);
//vai colocar ele dentro do checkpoint 5
checkpoint[playerid] = 5;
}
if(checkpoint[playerid] == 5)
{
//manda o premio do player que ganhou
SendClientMessage(playerid, -1, "{00FF00}Vocк ganhou a corrida!");
SendClientMessage(playerid, -1, "{00FF00}Premio: {FF0000}$10000");
GivePlayerMoney(playerid, 10000);
//apaga o checkpoint
DisablePlayerCheckpoint(playerid);
//coloca o checkpoint dele novamento no 0 (sem checkpoint)
checkpoint[playerid] = 0;
new idc = GetPlayerVehicleID(playerid);
carroinq[idc] = 0;
nacorrida[playerid] = 0;
}
return 1;
}