/lock system on outside?
#1

hi i have been looking for a cae lock system like /lock or /lk /unlock /ulk t lock and unlock but not inside care i mean outside car?
Reply
#2

Create your own with GetVehiclePos(...) and IsPlayerInRangeOfPoint(playerid, 2.0, ...);

?
Reply
#3

pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>

new LastCar[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    LastCar[playerid] = 0;
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/lock", cmdtext, true) == 0)
    {
        if(LastCar[playerid] != 0)
        {
            new Float:X, Float:Y, Float:Z;
            GetVehiclePos(LastCar[playerid], X, Y, Z);
            if(IsPlayerInRangeOfPoint(playerid, 10, X, Y, Z))
            {
                new engine,lights,alarm,doors,bonnet,boot,objective;
                GetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
                if(doors == 0)
                {
                    SetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,1,bonnet,boot,objective);
                    SendClientMessage(playerid, 0xFF0000AA, "Your vehicle has been locked. Use /unlock to unlock it.");
                    GameTextForPlayer(playerid, "~w~Vehicle ~r~Locked!", 5000, 5);
                    return 1;
                }
                else return SendClientMessage(playerid, 0xFF0000AA, "This vehicle is already locked!");
            }
            else return SendClientMessage(playerid, 0xFF0000AA, "You are not close enough to a car that you can lock.");
        }
        else return SendClientMessage(playerid, 0xFF0000AA, "You do not have a car to lock!");
    }
   
    if(strcmp(cmdtext, "/unlock", true) == 0)
    {
        if(LastCar[playerid] != 0)
        {
            new Float:X, Float:Y, Float:Z;
            GetVehiclePos(LastCar[playerid], X, Y, Z);
            if(IsPlayerInRangeOfPoint(playerid, 10, X, Y, Z))
            {
                new engine,lights,alarm,doors,bonnet,boot,objective;
                GetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
                if(doors == 1)
                {
                    SetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,0,bonnet,boot,objective);
                    SendClientMessage(playerid, 0x00FF00AA, "Your vehicle has been unlocked. Use /lock to lock it.");
                    GameTextForPlayer(playerid, "~w~Vehicle ~g~Unlocked!", 5000, 5);
                    return 1;
                }
                else return SendClientMessage(playerid, 0xFF0000AA, "This vehicle is already unlocked!");
            }
            else return SendClientMessage(playerid, 0xFF0000AA, "You are not close enough to a car that you can unlock.");
        }
        else return SendClientMessage(playerid, 0xFF0000AA, "You do not have a car to unlock!");
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(doors == 1 && ispassenger == 0)
    {
        GameTextForPlayer(playerid, "~r~Vehicle Locked!", 5000, 5);
        return 1;
    }
    else
    {
        LastCar[playerid] = vehicleid;
    }
    return 1;
}
Sorry, it took me a while to make it.
Reply
#4

Sorry for the double post.
This one will not allow you to lock/unlocks cars from inside the car.
pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>

new LastCar[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    LastCar[playerid] = 0;
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/lock", cmdtext, true) == 0)
    {
        if(LastCar[playerid] != 0)
        {
            if(!IsPlayerInAnyVehicle(playerid))
            {
                new Float:X, Float:Y, Float:Z;
                GetVehiclePos(LastCar[playerid], X, Y, Z);
                if(IsPlayerInRangeOfPoint(playerid, 10, X, Y, Z))
                {
                    new engine,lights,alarm,doors,bonnet,boot,objective;
                    GetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
                    if(doors == 0)
                    {
                        SetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,1,bonnet,boot,objective);
                        SendClientMessage(playerid, 0xFF0000AA, "Your vehicle has been locked. Use /unlock to unlock it.");
                        GameTextForPlayer(playerid, "~w~Vehicle ~r~Locked!", 5000, 5);
                        return 1;
                    }
                    else return SendClientMessage(playerid, 0xFF0000AA, "This vehicle is already locked!");
                }
                else return SendClientMessage(playerid, 0xFF0000AA, "You are not close enough to a car that you can lock.");
            }
            else return SendClientMessage(playerid, 0xFF0000AA, "You cannot be in a vehicle when locking a car!");
        }
        else return SendClientMessage(playerid, 0xFF0000AA, "You do not have a car to lock!");
    }
   
    if(strcmp(cmdtext, "/unlock", true) == 0)
    {
        if(LastCar[playerid] != 0)
        {
            if(!IsPlayerInAnyVehicle(playerid))
            {
                new Float:X, Float:Y, Float:Z;
                GetVehiclePos(LastCar[playerid], X, Y, Z);
                if(IsPlayerInRangeOfPoint(playerid, 10, X, Y, Z))
                {
                    new engine,lights,alarm,doors,bonnet,boot,objective;
                    GetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
                    if(doors == 1)
                    {
                        SetVehicleParamsEx(LastCar[playerid],engine,lights,alarm,0,bonnet,boot,objective);
                        SendClientMessage(playerid, 0x00FF00AA, "Your vehicle has been unlocked. Use /lock to lock it.");
                        GameTextForPlayer(playerid, "~w~Vehicle ~g~Unlocked!", 5000, 5);
                        return 1;
                    }
                    else return SendClientMessage(playerid, 0xFF0000AA, "This vehicle is already unlocked!");
                }
                else return SendClientMessage(playerid, 0xFF0000AA, "You are not close enough to a car that you can unlock.");
            }
            else return SendClientMessage(playerid, 0xFF0000AA, "You cannot be in a vehicle when locking a car!");
        }
        else return SendClientMessage(playerid, 0xFF0000AA, "You do not have a car to unlock!");
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(doors == 1 && ispassenger == 0)
    {
        GameTextForPlayer(playerid, "~r~Vehicle Locked!", 5000, 5);
        return 1;
    }
    else
    {
        LastCar[playerid] = vehicleid;
    }
    return 1;
}
Reply
#5

This is old I know, but if I have 2 active cars on the server this is going to cause problems. IE if I get out of 1 car I own last car is going to be set to the id of that car. I then get close to my other car and type unlock, its not going to unlock the right car. Is there a way around this.

Thanks
Reply
#6

nice...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)