Vehicle lock system problem
#1

Hi, I made a little system for my server so bandits must shoot a cars door to be able to enter it...

for that I used the OnEmptyVehicleDamage callback, wich could be downloaded in an include

pawn Код:
public OnEmptyVehicleDamage(vehicleid,playerid,exems)
{
    new panels,doors,lights,tires;
    GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
//==============================================================================
//Vehicle Unlock system
//==============================================================================

    if(IsPlayerLookingAtVehicle(playerid,vehicleid))
    {
            if(gTeam[playerid] == TEAM_BANDIT)
            {
                if(unlocked[vehicleid] != 0)
                {
                    GameTextForPlayer(playerid,"~y~This vehicle is already unlocked!",4000,3);
                    return 1;
                }
                        new vehicle;
                        vehicle = GetVehicleModel(GetPlayerVehicleID(playerid));
                       
                        //////////
                        //Nebula//
                        //////////
                    if(unlocked[vehicleid] == 0)
                    {
                        if(vehicle == 516)
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 10)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 10)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        //////////////
                        //Washington//
                        //////////////
                       
                        else if(vehicle == 421)
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 30)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 30)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        ///////////
                        //stretch//
                        ///////////
                       
                        else if(vehicle == 409)
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 60)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 60)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        //======================================================
                        //Cops
                        //======================================================
                       
                        ////////
                        //Lspd//
                        ////////
                       
                        else if(vehicle == 596 || vehicle == 599)
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 75)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of good this secured door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 75)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        ///////////
                        //S.W.A.T//
                        ///////////
                       
                        else if(vehicle == 601)
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 90)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this heavy secured door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 90)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        ///////
                        //FBI//
                        ///////

                        else if(vehicle == 490)
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 95)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this heavy secured door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 95)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                    }
                }
    }
    return 1;
}
here you can see alot of code, but it's pretty much al the same, ok so, there are 6 different types of cars u can steal and each one has a different difficult level...

When I made this system I only made it that you can only steal carID 516, to test if my script works, so now, what I did was I added more vehicles... but for some reason it does not work anymore :/

when I used only one vehicle to steal u would get the message saying "U have unlocked the vehicle", and u were be able to enter the car... the system worked perfect

but since I added more cars I don't get the message no more, and the vehicle does not get unlocked :/

here's the unlock code to check if a vehicle is locked:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{

    if(unlocked[vehicleid] == 0)
    {
        if(gTeam[playerid] == TEAM_BANDIT)
        {
                SendClientMessage(playerid, COLOR_RED, "This vehicle is locked for you! Shoot its door to open the vehicle");
                TogglePlayerControllable(playerid,0);
                TogglePlayerControllable(playerid,1);
                return 1;
        }
    }
   
    if(funlocked[vehicleid] == 1)
    {
            SendClientMessage(playerid, COLOR_RED, "You have failed braking the lock of this vehicle, try another car!");
            TogglePlayerControllable(playerid,0);
            TogglePlayerControllable(playerid,1);
            return 1;
    }
    return 1;
}
any help
Reply
#2

You don't get both messages:
pawn Код:
SendClientMessage(playerid, COLOR_RED, "This vehicle is locked for you! Shoot its door to open the vehicle");
and
pawn Код:
SendClientMessage(playerid, COLOR_RED, "You have failed braking the lock of this vehicle, try another car!");
?
Reply
#3

Yes, I do but that's not the main problem :P
Reply
#4

Quote:
Originally Posted by knackworst
Посмотреть сообщение
Yes, I do but that's not the main problem :P
Quote:

but since I added more cars I don't get the message no more, and the vehicle does not get unlocked :/

Explain.
Reply
#5

Well at first i only used if(vehicle == 516 so only that car was stealable, but i wanted to be more crs to be stealable for that i dont just use if(vehicle == 516 but also if(vehicle == 490 for example
When i o ly used vehicle == 516 my script worked but since i add more vehicles the script seems to not pass if(vehicle == no more :/
Reply
#6

Quote:

if(funlocked[vehicleid] == 1)

typo maybe?
Reply
#7

pawn Код:
switch(vehicleid)
{
    case 516:
    {
        //Do your stealable vehicle thinghy
    }
    case 490:
    {
        //Do your stealable vehicle thinghy
    }
    default:
    {
        //If the car isn't stealable
    }
}
Reply
#8

Thank you but, now it seems that it returns every car as default...

pawn Код:
new panels,doors,lights,tires;
    GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
   
//==============================================================================
//Car stealing system
//==============================================================================
   
    if(IsPlayerLookingAtVehicle(playerid,vehicleid))
    {
            if(gTeam[playerid] == TEAM_BANDIT)
            {
                if(unlocked[vehicleid] == 1)
                {
                    GameTextForPlayer(playerid,"~y~This vehicle is already unlocked!",4000,3);
                    return 1;
                }

                    if(unlocked[vehicleid] == 0)
                    {
   
                        switch(vehicleid)
                        {
                       
                        //////////
                        //Nebula//
                        //////////
                       
                        case 516:
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 10)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 10)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        //////////////
                        //Washington//
                        //////////////
                       
                        case 421:
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 30)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 30)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        ///////////
                        //Stretch//
                        ///////////
                       
                        case 409:
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 60)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 60)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        //======================================================
                        //Cops
                        //======================================================

                        ////////
                        //Lspd//
                        ////////

                        case 596:
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 75)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this good secured door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 75)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        ////////
                        //Lspd//
                        ////////

                        case 599:
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 75)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this good secured door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 75)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }


                        ///////////
                        //S.W.A.T//
                        ///////////

                        case 601:
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 90)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this heavy secured door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 90)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }

                        ///////
                        //FBI//
                        ///////

                        case 490:
                        {
                            if(doors <100)
                            {
                                new crand = random(100);
                                if(crand <= 95)
                                {
                                    GameTextForPlayer(playerid,"~r~U have failed shooting the lock of this heavy secured door, try another car...",4000,3);
                                    funlocked[vehicleid] = 1;
                                    SetTimer("lockshotrectim", 30000, false);
                                    unlocked[vehicleid] = 0;
                                }
                                else if(crand > 95)
                                {
                                        unlocked[vehicleid] = 1;
                                        GameTextForPlayer(playerid,"~y~U have unlocked this Vehicle by shooting its door!",4000,3);
                                }
                            }
                        }
                       
                        default:
                        {
                            SendClientMessage(playerid, COLOR_RED, "This car is not stealable!");
                        }
                    }
                }
            }
        }
I tried with all the vehicle ID's but when I attempt to shoot it keeps saying, this car is not stealable
Reply
#9

It's
pawn Код:
switch(GetVehicleModel(vehicleid))
Reply
#10

if only 5 numbers out of 100 would be the ones to open it would be really tough.. i mean.. the command is random.. say if it outputs 5 now. thers no guarantee that it wont output 5 again. so..it can take ages also

also can u still open the Nebula ? try that
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)