Detain Problems
#1

Hello, I can't detain someone.
Here's my scripts
pawn Code:
CMD:detain(playerid, params[])
{
    new playerb, seatid, string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsACop(playerid) && !IsFBI(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not an NYPD Oficer/FBI Agent.");
    if(sscanf(params, "ui", playerb, seatid)) return SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /detain [playerid] [seatid]");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
    if(!IsPlayerNearPlayer(playerid, playerb, 2)) return SendClientMessage(playerid, COLOR_GREY, "You can't detain someone from this disatance.");
    if(!IsPlayerCuffed(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Player is not cuffed.");
    if(seatid < 2 || seatid > 3) return SendClientMessage(playerid, COLOR_GREY, "You can only detain people in seats 2 and 3.");
    PutPlayerInVehicle(playerb, LastCar[playerid], seatid);
    format(string, sizeof(string), "* %s grabs %s from their cuffs and throws him inside the NYPD cruiser.", RPN(playerid), RPN(playerb));
    SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
    return 1;
}
Reply
#2

Noone help me, Answer me please.
Reply
#3

Show LastCar[playerid] and how its called.

Also you should replace this with NearbyVehicle or a similar function, as the last car you where in could be across the map.
Reply
#4

What do you mean? can you tell me the right scripts?
Reply
#5

pawn Code:
CMD:detain(playerid, params[])
{
    if(gTeam[playerid] == 2 || IsACop(playerid) || (PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pDivision] == 2))
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            SendClientMessageEx(playerid, COLOR_GREY, "You can't do this while you're in a vehicle.");
            return 1;
        }

        new string[128], giveplayerid, seat;
        if(sscanf(params, "id", giveplayerid, seat)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /detain [playerid] [seatid 1-3]");

        if(IsPlayerConnected(giveplayerid))
        {
            if(seat < 1 || seat > 3)
            {
                SendClientMessageEx(playerid, COLOR_GRAD1, "The seat ID cannot be above 3 or below 1.");
                return 1;
            }
            if(gTeam[giveplayerid] == 2 || IsACop(giveplayerid))
            {
                SendClientMessageEx(playerid, COLOR_GREY, "You can't detain other law enforcement officers.");
                return 1;
            }
            if(IsPlayerInAnyVehicle(giveplayerid))
            {
                SendClientMessageEx(playerid, COLOR_GREY, "That person is in a car - get them out first.");
                return 1;
            }
            if (ProxDetectorS(8.0, playerid, giveplayerid))
            {
                if(giveplayerid == playerid) { SendClientMessageEx(playerid, COLOR_GREY, "You cannot detain yourself!"); return 1; }
                if(PlayerCuffed[giveplayerid] == 2)
                {
                    new carid = gLastCar[playerid];
                    if(IsSeatAvailable(carid, seat))
                    {
                        new Float:pos[6];
                        GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
                        GetPlayerPos(giveplayerid, pos[3], pos[4], pos[5]);
                        GetVehiclePos( carid, pos[0], pos[1], pos[2]);
                        if (floatcmp(floatabs(floatsub(pos[0], pos[3])), 10.0) != -1 &&
                                floatcmp(floatabs(floatsub(pos[1], pos[4])), 10.0) != -1 &&
                                floatcmp(floatabs(floatsub(pos[2], pos[5])), 10.0) != -1) return false;
                        format(string, sizeof(string), "* You were detained by %s .", GetPlayerNameEx(playerid));
                        SendClientMessageEx(giveplayerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* You detained %s .", GetPlayerNameEx(giveplayerid));
                        SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* %s throws %s in the vehicle.", GetPlayerNameEx(playerid), GetPlayerNameEx(giveplayerid));
                        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        GameTextForPlayer(giveplayerid, "~r~Detained", 2500, 3);
                        ClearAnimations(giveplayerid);
                        TogglePlayerControllable(giveplayerid, false);
                        PutPlayerInVehicle(giveplayerid, carid, seat);
                    }
                    else
                    {
                        SendClientMessageEx(playerid, COLOR_GREY, "That seat isn't available!");
                        return 1;
                    }
                }
                else
                {
                    SendClientMessageEx(playerid, COLOR_GREY, "That person isn't cuffed.");
                    return 1;
                }
            }
            else
            {
                SendClientMessageEx(playerid, COLOR_GREY, " You're not close enough to the player or your car!");
                return 1;
            }
        }
        else
        {
            SendClientMessageEx(playerid, COLOR_GREY, "Invalid player specified.");
            return 1;
        }
    }
    else
    {
        SendClientMessageEx(playerid, COLOR_GRAD2, "   You are not a Cop / FBI / Coastguard!");
    }
    return 1;
}
If this didn't work use:

pawn Code:
CMD:detain(playerid, params[])
{
    new playerb, seatid, string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsACop(playerid) && !IsFBI(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not an NYPD Oficer/FBI Agent.");
    if(sscanf(params, "ui", playerb, seatid)) return SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /detain [playerid] [seatid]");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
    if(!IsPlayerNearPlayer(playerid, playerb, 2)) return SendClientMessage(playerid, COLOR_GREY, "You can't detain someone from this disatance.");
    if(!IsPlayerCuffed(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Player is not cuffed.");
    if(seatid < 2 || seatid > 3) return SendClientMessage(playerid, COLOR_GREY, "You can only detain people in seats 2 and 3.");
    PutPlayerInVehicle(playerb, LastCar[playerid], seatid);
    format(string, sizeof(string), "* %s grabs %s from their cuffs and throws him inside the NYPD cruiser.", RPN(playerid), RPN(playerb));
    SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
    return 1;
}
as also I believe that the lastcar meant to be like this:

pawn Code:
public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(LicenseTest[playerid])
    {
        DisablePlayerCheckpoint(playerid);
        LicenseTest[playerid] = 0;
        CP[playerid] = 0;
        SetVehicleToRespawn(GetPlayerVehicleID(playerid));
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Driving Center: You have left your car, therefore your test has been failed.");
    }
    if(PlayerInfo[playerid][pFac] == 1 && PlayerInfo[playerid][pFac] == 7 && PlayerInfo[playerid][pFac] == 6)
    {
        LastCar[playerid] = vehicleid;
    }
    return 1;
}
Hint: so you need to get into the car that you want to detain the player in and use the [/detain (number of the seat)]

I hope that I helped If I did rep+ me please.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)