[Tutorial] Como criar carro para organizaзгo Simples
#1

Muitas pessoas me perguntam no MSN e Skype como criar carros para tal org entгo vou deixar esse tutorial para eles
pawn Код:
//Coloque isto no inicio do seu gamemode junto com as forwards
forward IsASuaOrgCar(carid);//Coloque aqui qualquer coisa mais tem q ter de preferencia IsA e Car

// Coloque na public OnPlayerStateChange \\
    if(newstate == PLAYER_STATE_DRIVER)//Funзгo usada para ver se o player estб  no veiculo
    {
        new newcar = GetPlayerVehicleID(playerid);//
        if(carid == 0 || carid == 0 || carid == 0) { }//Caso de algum erro
        else
        {
            if(IsASuaOrgCar(newcar))//Coloque em IsASuaOrgCar o nome da forward q vocк criou
            {
                if(GetPlayerOrg(playerid) != 1)//Coloque aqui o ID da organizaзгo que poderб dirigir o veiculo...No caso coloquei 1
                {
                    SendClientMessage(playerid, COR_WHITE, "Vocк nгo й da org Tal, por isso nгo pode dirigir este veнculo!");//Avisa q o player nгo pode dirigir o carro
                    RemovePlayerFromVehicleEx(playerid);//Remove o player do carro caso nгo seja da org
                }
            }
        }
    }
   
//Coloque isto no final do seu gamemode
public IsASuaOrgCar(carid)
{
    if((carid >= 1) && (carid <= 50))//Coloque em 1 e 50 o id dos carros q vocк irб adcionar
    {
        return true;
    }
    return 0;
}
Reply
#2

Melhor e mais fбcil de adicionar novos veнculos:

pawn Код:
enum
{
    org_Nome,
    org_Nome2
//....
}

enum VEHICLE_ORG_INFO {
    vOrgid,
    bool:vTipo
}
new VehicleOrg[100][VEHICLE_ORG_INFO];

Criar_Veiculo_Org(modelid, orgid, Float:X, Float:Y, Float:Z, Float: A, cor_1, cor_2) {
    new id;
    id = AddStaticVehicleEx(modelid, X, Y, Z, A, cor_1, cor_2, 60);
    VehicleOrg[id][vOrgid] = orgid;
    VehicleOrg[id][vTipo] = true;
    return id;
}

public OnPlayerStateChange(playerid, newstate, oldstate) {
    if(newstate == PLAYER_STATE_DRIVER) {
        if(VehicleOrg[GetPlayerVehicleID(playerid)][vTipo] == true) {
            if(PlayerInfo[playerid][pOrg] != VehicleOrg[GetPlayerVehicleID(playerid)][vOrgid]) {
                RemovePlayerFromVehicle(playerid);
                SendClientMessage(playerid, -1,"SERVER: Vocк nгo tem permissгo para dirigir este veнculo");
            }
        }
    }
    return 1;
}

public OnGameModeInit() {
    Criar_Veiculo_Org(451, org_Nome, 0.000000, 0.000000, 0.000000, 0.000000, 0, 0);
    return 1;
}
Pequeno exemplo, й уbvio. O mesmo tambйm pode ser adaptado para ser utilizado como veнculos de profissхes.

Abraзos .
Reply
#3

n й mais fбcil usar isso o
pawn Код:
new BALLAS[4];

forward Ballascar(playerid);

// na public ongamemodeinit
BALLAS[0] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 0
BALLAS[1] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 1
BALLAS[2] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 2
BALLAS[3] = CreateVehicle(modelo, X, Y, Z, Rotaзгo, Cor1, Cor2, RespawnDelay); //Veiculo numero 3

// na OnPlayerStateChange

    if(newstate == PLAYER_STATE_DRIVER) Ballascar(playerid);

// e depois
public Ballascar(playerid)
{
    for(new c = 0; c <= 4; c++)
    {
        if(IsPlayerInVehicle(playerid, BALLAS[c]) && PlayerInfo[playerid][BALLAS] < 1)
        {
            SendClientMessage(playerid, AZUL_CLARO, "Vocк nгo й um Ballas Los Santos");
            RemovePlayerFromVehicle(playerid);
            return 1;
        }
    }
    return 1;
}
'-'
Reply
#4

poderia melhorar e bastante
Reply
#5

pawn Код:
#define MAX_CARROS_ORG 10//definir o nъmero de carros da org
new CarrosDaOrgTal[MAX_CARROS_ORG];
CarrosDaOrgTal[0] = CreateVehicle...
CarrosDaOrgTal[1] = CreateVehicle...
.....

//para checar se й da org
for(new i; i<sizeof(CarrosDaOrgTal); i++){
    if(vehicleid == CarrosDaOrgTal){//este carro que entrou й da org Tal
    }
}
Reply
#6

Quote:
Originally Posted by [JD]BlackFire
Посмотреть сообщение
pawn Код:
#define MAX_CARROS_ORG 10//definir o nъmero de carros da org
new CarrosDaOrgTal[MAX_CARROS_ORG];
CarrosDaOrgTal[0] = CreateVehicle...
CarrosDaOrgTal[1] = CreateVehicle...
.....

//para checar se й da org
for(new i; i<sizeof(CarrosDaOrgTal); i++){
    if(vehicleid == CarrosDaOrgTal){//este carro que entrou й da org Tal
    }
}
'-' Eu prefeiro assim em new , em em >
Quote:

public IsASuaOrgCar(carid)
{
if((carid >= 1) && (carid <= 50))//Coloque em 1 e 50 o id dos carros q vocк irб adcionar
{
return true;
}
return 0;
}

< tipo , se vc erra a conta tem que recontar, ou tipo se coloca o carro antes de outro tem que recontar e tipo se vc quiser refazer uma hq tem que refazer todas pois tem que reconar e isto й muito trabalhoso em new org[4] Fica bem mais prбtico e eficiente .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)