Restricted vehicles help [part 2]
#1

So ok, im again here for another problem. I made restricted vehicles per team and on OnPlayerStateChange i placed this:

pawn Код:
//Usa restricted uvehicles
    new uvehicle;
    uvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if(uvehicle == RhinoUsaOne || uvehicle == RhinoUsaTwo || uvehicle == HunterUsaOne || uvehicle == HydraUsaOne || uvehicle == SeaSparrowUsaOne && gTeam[playerid] != TEAM_USA)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by USA team only.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }

    //Germany restricted vehicles
    new gvehicle;
    gvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if( gvehicle == RhinoGermanyOne || gvehicle == RhinoGermanyTwo || gvehicle == HunterGermanyOne || gvehicle == SeaSparrowGermanyOne || gvehicle == HydraGermanyOne || gvehicle == RustlerGermanyOne && gTeam[playerid] != TEAM_GERMANY)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Germany team only.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }

    //Russia restricted vehicles
    new rvehicle;
    rvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if(rvehicle == SeaSparrowRussiaOne || rvehicle == RhinoRussiaOne || rvehicle == RhinoRussiaTwo || rvehicle == HydraRussiaOne || rvehicle == RustlerRussiaOne && gTeam[playerid] != TEAM_RUSSIA)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Russia team only.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }

    //Japan restricted vehicles
    new jvehicle;
    jvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if(jvehicle == RhinoJapanOne || jvehicle == RhinoJapanTwo || jvehicle == SeaSparrowJapanOne || jvehicle == HydraJapanOne || jvehicle == HunterJapanOne && gTeam[playerid] != TEAM_JAPAN)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Japan team only.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }

    //Mercenary restricted vehicles
    new mvehicle;
    mvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if(mvehicle == RhinoMercOne || mvehicle == RhinoMercTwo || mvehicle == SeaSparrowMercOne || mvehicle == RustlerMercOne || mvehicle == HunterMercOne &&  gTeam[playerid] != TEAM_MERCENARY)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Mercenary team only.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
The problem is: If im as Usa team and i try to enter in RhinoUsaOne vehicle (already declared and created), it says "This vehicle can be used by USA team only.".

Same with other teams. How i can fix it?
Reply
#2

how about keeping your codes in onplayerentervehicle
it would be more accurate and fast
Reply
#3

That code is wrong!

It doesn't check for what team the player is it checks if the car matches any of the if statements.
So ur checking cars for variables they aren't!
Reply
#4

Quote:
Originally Posted by Abhishek.
Посмотреть сообщение
how about keeping your codes in onplayerentervehicle
it would be more accurate and fast
I'll try now.

Quote:
Originally Posted by park4bmx
Посмотреть сообщение
That code is wrong!

It doesn't check for what team the player is it checks if the car matches any of the if statements.
So ur checking cars for variables they aren't!
What about this:

pawn Код:
&& gTeam[playerid] != TEAM_USA
EDIT: Tried with OnPlayerEnterVehicle:

pawn Код:
//Usa restricted uvehicles
    new uvehicle;
    uvehicle = GetPlayerVehicleID(playerid);
    if(uvehicle == RhinoUsaOne || uvehicle == RhinoUsaTwo || uvehicle == HunterUsaOne || uvehicle == HydraUsaOne || uvehicle == SeaSparrowUsaOne && gTeam[playerid] != TEAM_USA)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by USA team only.");
    return 0;
    }

    //Germany restricted vehicles
    new gvehicle;
    gvehicle = GetPlayerVehicleID(playerid);
    if( gvehicle == RhinoGermanyOne || gvehicle == RhinoGermanyTwo || gvehicle == HunterGermanyOne || gvehicle == SeaSparrowGermanyOne || gvehicle == HydraGermanyOne || gvehicle == RustlerGermanyOne && gTeam[playerid] != TEAM_GERMANY)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Germany team only.");
    return 0;
    }

    //Russia restricted vehicles
    new rvehicle;
    rvehicle = GetPlayerVehicleID(playerid);
    if(rvehicle == SeaSparrowRussiaOne || rvehicle == RhinoRussiaOne || rvehicle == RhinoRussiaTwo || rvehicle == HydraRussiaOne || rvehicle == RustlerRussiaOne && gTeam[playerid] != TEAM_RUSSIA)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Russia team only.");
    return 0;
    }

    //Japan restricted vehicles
    new jvehicle;
    jvehicle = GetPlayerVehicleID(playerid);
    if(jvehicle == RhinoJapanOne || jvehicle == RhinoJapanTwo || jvehicle == SeaSparrowJapanOne || jvehicle == HydraJapanOne || jvehicle == HunterJapanOne && gTeam[playerid] != TEAM_JAPAN)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Japan team only.");
    return 0;
    }

    //Mercenary restricted vehicles
    new mvehicle;
    mvehicle = GetPlayerVehicleID(playerid);
    if(mvehicle == RhinoMercOne || mvehicle == RhinoMercTwo || mvehicle == SeaSparrowMercOne || mvehicle == RustlerMercOne || mvehicle == HunterMercOne &&  gTeam[playerid] != TEAM_MERCENARY)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by Mercenary team only.");
    return 0;
    }
Same problem.
Reply
#5

pawn Код:
new uvehicle;
    uvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if(uvehicle == RhinoUsaOne && gTeam[playerid] != TEAM_USA || uvehicle == RhinoUsaTwo && gTeam[playerid] != TEAM_USA || uvehicle == HunterUsaOne && gTeam[playerid] != TEAM_USA || uvehicle == HydraUsaOne && gTeam[playerid] != TEAM_USA || uvehicle == SeaSparrowUsaOne && gTeam[playerid] != TEAM_USA)
    {
    SendClientMessage(playerid, red, "This vehicle can be used by USA team only.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }
Another way
pawn Код:
new uvehicle;
    uvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    switch(uvehicle)
    {
        case RhinoUsaOne,RhinoUsaTwo,HunterUsaOne,HydraUsaOne,SeaSparrowUsaOne:
        {
            if(gTeam[playerid] != TEAM_USA)
                {
                    SendClientMessage(playerid, red, "This vehicle can be used by USA team only.");
                    RemovePlayerFromVehicle(playerid);
                    return 0;
                }
        }
    }
    return 1;
    }
Reply
#6

pawn Код:
new uvehicle;
    uvehicle = GetPlayerVehicleID(playerid);
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    switch(uvehicle)
    {
        case RhinoUsaOne,RhinoUsaTwo,HunterUsaOne,HydraUsaOne,SeaSparrowUsaOne:
        {
                if(gTeam[playerid] != TEAM_USA)
                {
                    SendClientMessage(playerid, red, "This vehicle can be used by USA team only.");
                    RemovePlayerFromVehicle(playerid);
                    return 0;
                }
        }
    }
    return 1;
    }
(9871) : error 008: must be a constant expression; assumed zero

9871:

pawn Код:
case RhinoUsaOne,RhinoUsaTwo,HunterUsaOne,HydraUsaOne,SeaSparrowUsaOne:
Reply
#7

I think the problem with the original code was the precedence of operators. I bet that if you do it like this with an extra set of brackets, it'll work.

pawn Код:
if((uvehicle == RhinoUsaOne || uvehicle == RhinoUsaTwo || uvehicle == HunterUsaOne || uvehicle == HydraUsaOne || uvehicle == SeaSparrowUsaOne) && gTeam[playerid] != TEAM_USA)
Reply
#8

Oh yeah :P thanks Vince!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)