[Codigo] Sistema de Criação de Veiculos

Bom, Um mini sistema de veículos. Apos sair do veículo, 5 segundos depois é destruído.

Comando:
/Car - Para criação do veículo.

Includes:
ZCMD.
SSCANF.

Command Source:
pawn Code:


CMD:car(playerid, params [])
    {
        new
            Id, Cor[2],
            Float: x,   Float: y,
            Float: z
        ;
       
        if(Criou_carro[playerid] == 1) return SendClientMessage(playerid, 0xFFFFFFAA, "Você Já possui um Veículo.");
        {
            if(sscanf(params, "dii", Id, Cor[0], Cor[1]))
            {
                SendClientMessage(playerid,-1,"Use: /Car [Id] [Cor] [Cor]");
            }
            else
            {
                if(Id < 400 || Id > 611) return
                SendClientMessage(playerid, 0xFFFFFFAA, "ID do Veículo Inválido");

                if(Cor[0] < 0 || Cor[0] > 126) return
                SendClientMessage(playerid, 0xFFFFFFAA, "ID da 1ª Cor Inválido");

                if(Cor[1] < 0 || Cor[1] > 126) return
                SendClientMessage(playerid, 0xFFFFFFAA, "ID da 2ª Cor Inválido");

                GetPlayerPos(playerid, x, y, z);
                Carro[playerid] = CreateVehicle(Id, x, y, z, 0, Cor[0], Cor[1], false);
                PutPlayerInVehicle(playerid, Carro[playerid], 0);

                new
                    Str[120]
                ;

                format(Str, sizeof(Str), "Você criou o veículo de ID: {00FFFF}%d {FFFFFF}Com as cores {00FFFF}%d {FFFFFF}e {00FFFF}%d", Id, Cor[0], Cor[1]);
                SendClientMessage(playerid, 0xFFFFFFAA, Str);
                Criou_carro[playerid] = 1;
            }
        }
        return 1;
    }



Esse callback é chamado quando um jogador muda de estado.
pawn Code:


public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
    {
        SendClientMessage(playerid, 0xFFFFFFAA, "Você tem 5 Segundos para entrar no seu veículo Novamente");
        SetTimerEx("Destroy", 5000, false, "i", playerid);
    }
    return 1;
}

forward Destroy(playerid);
public Destroy(playerid)
{
    if(!IsPlayerInVehicle(playerid, Carro[playerid]))
    {
        SendClientMessage(playerid, 0xFFFFFFAA, "Seu Veículo foi destruido Automáticamente");
        DestroyVehicle(Carro[playerid]);
        Criou_carro[playerid] = 0;
        return 1;
    }
    return 1;
}



Variáveis declaradas:
As variáveis globais são previamente alocadas no arquivo compilado. )
pawn Code:


new Carro[MAX_PLAYERS];
new Criou_carro[MAX_PLAYERS];



Creditos:
Duun - Codigo
ZeeX - Zcmd
Y_Less - Sscanf

SA-MP Team
Espero que gostem!

0 comentários:

Postar um comentário

 
▲ Subir