[Ajuda] Carros de gangues
#1

Bom eu estou criando um server de mata-mata e tem as seguintes gangues: Ballas, Groove, Aztecas, Vagos e Hitmans....
E eu fiz cmds para criar carro de cada gangues, exemplo: /sanchezb[allas] e quando o player criar o carro eu queria que outros player de gangues inimigas nao pudessem entrar nesse carro criado.
Para facilitar pode ser tambйm pela cor do carro por exemplo se a cor do carro й verde apenas os groove podem entrar.
Me ajudem priis
Reply
#2

Nгo testei.

Assumindo que cada um pode criar somente um ъnico carro por vez.

pawn Код:
new myCar[MAX_PLAYERS] = {-1,...};


CMD:criarcarro(playerid) {

    if ( myCar[playerid] != -1 )
        DestroyVehicle(myCar[playerid]);

    static vehicleid;
    vehicleid = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay);

    myCar[playerid] = vehicleid;
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate) {

    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER) {

        static i, vehicleid;
        static bool:podeUsar = false;

        vehicleid = GetPlayerVehicleID(playerid);

        for ( i = 0; i < MAX_PLAYERS; ++i) {

            if ( vehicleid == myCar[i] && getPlayerOrg(i) == getPlayerOrg(playerid) ) {

                podeUsar = true;
                break;
            }
        }

        if ( podeUsar == false )
            RemovePlayerFromVehicle(playerid);
    }

    return 1;
}

public OnVehicleDeath(vehicleid, killerid) {

    static i;

    for ( i = 0; i < MAX_PLAYERS; ++i) {

        if ( myCar[i] == vehicleid ) {

            SendClientMessage(i, -1, "Seu veнculo foi destruнdo!");
            DestroyVehicle(vehicleid);
            myCar[i] = -1;
            break;
        }
    }
    return 1;
}
OBS: Faz se nescessбrio implementar a funзгo:getPlayerOrg() e concluir o comando /criarcarro.
Reply
#3

Sim cara mas vocк nao entendeu eu nao quero que o carro exploda eu quero que o player saia do carro com essa seguinte funзao:

RemovePlayerFromVehicle(playerid);


Para facilitar vou postar o script do carro.

if (strcmp("/sanchezv", cmdtext, true)==0)
{
if(gTeam[playerid] == Groove) return 0;
if(gTeam[playerid] == Aztecas) return 0;
if(gTeam[playerid] == Ballas) return 0;
if(gTeam[playerid] == Hitmans) return 0;
new Float:X5, Float:Y5, Float:Z5, Float:A5;
GetPlayerPos(playerid, X5, Y5, Z5);
CreateVehicle(468, X5+2, Y5, Z5, A5, 6, 6, 100);
}
Reply
#4

Quote:
Originally Posted by mateus1546
Посмотреть сообщение
Sim cara mas vocк nao entendeu eu nao quero que o carro exploda eu quero que o player saia do carro com essa seguinte funзao:

RemovePlayerFromVehicle(playerid);


Para facilitar vou postar o script do carro.

if (strcmp("/sanchezv", cmdtext, true)==0)
{
if(gTeam[playerid] == Groove) return 0;
if(gTeam[playerid] == Aztecas) return 0;
if(gTeam[playerid] == Ballas) return 0;
if(gTeam[playerid] == Hitmans) return 0;
new Float:X5, Float:Y5, Float:Z5, Float:A5;
GetPlayerPos(playerid, X5, Y5, Z5);
CreateVehicle(468, X5+2, Y5, Z5, A5, 6, 6, 100);
}
Quando o carro explodir, cair na бgua, ou qualquer outra coisa, ele vai ser destruнdo e desassociado da atual organizaзгo/dono.

Nгo sei onde vocк viu carro explodindo ai no cуdigo.
Reply
#5

Acho que aqui:
pawn Код:
SendClientMessage(i, -1, "Seu veнculo foi destruнdo!");
DestroyVehicle(vehicleid);
kkkkk Cada um que aparece nesse fуrum!
Essa funзгo faz o carro desaparecer, nгo explode ele.
Reply
#6

Bom mano eu vou mostrar no que deu olha o cmd:


if (strcmp("/sanchezb", cmdtext, true)==0)
{
if(gTeam[playerid] == Groove) return 0;
if(gTeam[playerid] == Aztecas) return 0;
if(gTeam[playerid] == Vagos) return 0;
if(gTeam[playerid] == Hitmans) return 0;
new Float:X5, Float:Y5, Float:Z5, Float:A5;
GetPlayerPos(playerid, X5, Y5, Z5);
CreateVehicle(468, X5+2, Y5, Z5, A5, 144, 144, 100);
}


E agora as callbacks que copiei e colei:


public OnPlayerStateChange(playerid, newstate, oldstate) {

if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER) {

static i, vehicleid;
static boolodeUsar = false;

vehicleid = GetPlayerVehicleID(playerid);

for ( i = 0; i < MAX_PLAYERS; ++i) {

if ( vehicleid == CarroBallas[i] && getPlayerOrg(i) == getPlayerOrg(playerid) ) {

podeUsar = true;
break;
}
}

if ( podeUsar == false )
RemovePlayerFromVehicle(playerid);
}

return 1;
}

public OnVehicleDeath(vehicleid, killerid) {

static i;

for ( i = 0; i < MAX_PLAYERS; ++i) {

if ( CarroBallas[i] == vehicleid ) {

SendClientMessage(i, -1, "Seu veнculo foi destruнdo!");
DestroyVehicle(vehicleid);
CarroBallas[i] = -1;
break;
}
}
return 1;
}


E apareceu o seguinte error:


D:\Desktop\BDM\gamemodes\BDM.pwn(776) : error 017: undefined symbol "getPlayerOrg"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


1 Error.


Espero que possa me ajuda!
Reply
#7

Eu tenho este exemplo que tem a mesma finalidade.
http://forum.sa-mp.com/showpost.php?...46&postcount=6

Porйm deve usar a lуgica pra implementar em seu sistema.
Reply
#8

Quote:
Originally Posted by iCasTiel
Посмотреть сообщение
OBS: Faz se nescessбrio implementar a funзгo:getPlayerOrg() e concluir o comando /criarcarro.
Nгo sei porque ainda faзo observaзхes.

Substitua por:

pawn Код:
gTeam[playerid]
Ou

pawn Код:
#define getPlayerOrg(%0) gTeam[%0]
Reply
#9

Brother, nao funfa tipo quando eu vou entrar num carro dos ballas sendo que eu to na gang dos ballas eu saio do carro e a msm coisa em outras gangues, e eu tambйm tentei criar um carro na gangue dos ballas e depois mudei de gangue pra tentar entrar pra ver se nao estava ao contrario o sistema e dos dois jeitos nao funfa
Reply
#10

Faz na base dessa condiзao mano quando um carro da cor id 128 128 ser criado apenas os gTeam[playerid] = Groove podem entrar entendeu?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)