/kidnap and /detain bug
#1

hello guys everytime, i kidnap or detain someone, but i already have a vehicle its still saying
"You must enter a vehicle before attempting to kidnap a player."

Can anyone help me whats the problem?

Variable
pawn Код:
new LastVehicle[MAX_PLAYERS];
Kidnap Command
pawn Код:
dcmd_kidnap(playerid,params[])
{
    new string[128];
    new ID;
    if(sscanf(params, "u", ID))
    {
        SendClientMessage(playerid,COLOR_ERROR,"USAGE: /kidnap (Player Name/ID)");
        return 1;
    }
    if(IsSpawned[playerid] != 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You must be alive and spawned in order to be able to use this command.");
        return 1;
    }
    if(IsFrozen[playerid] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You have been frozen by a Server Administrator. You cannot use this command.");
        return 1;
    }
    if(LastVehicle[playerid] == 0)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You must enter a vehicle before attempting to kidnap a player.");
        return 1;
    }
    if(InAdminMode[ID] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command on this player because they are in Administrator mode.");
        return 1;
    }
    if(IsKidnapped[playerid] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You are kidnapped. You cannot use this command.");
        return 1;
    }
    if(IsKidnapped[ID] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"They are kidnapped. You cannot kidnap them twice.");
        return 1;
    }
    if(gTeam[playerid] != TEAM_KIDNAP)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Only kidnappers can use this command to kidnap players.");
        return 1;
    }
    if(!IsPlayerConnected(ID))
    {
        format(string,sizeof(string),"The player ID (%d) is not connected to the server. You cannot kidnap them",ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,ID) > 4)
    {
        format(string,sizeof(string),"%s(%d) is too far away. You cannot reach him to kidnap him.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot kidnap someone while in a vehicle. Exit the vehicle first.");
        return 1;
    }
    if(GetPlayerState(ID) == PLAYER_STATE_DRIVER || GetPlayerState(ID) == PLAYER_STATE_PASSENGER)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot kidnap someone while they are in a vehicle. Get them to exit the vehicle first.");
        return 1;
    }
    if(playerid == ID)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot kidnap yourself, how can you even manage that?");
        return 1;
    }
    if(IsSpawned[ID] != 1)
    {
        format(string,sizeof(string),"%s(%d) is not spawned. You cannot kidnap dead people ..",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(IsFrozen[ID] == 1)
    {
        format(string,sizeof(string),"%s(%d) is frozen by a Server Administrator. You cannot kidnap them.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(AttemptedToKidnapRecently[playerid] >= 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You are tired from your last kidnap attempt. Please wait before trying to kidnap again.");
        return 1;
    }
    if(HasKidnappedRecently[playerid] >= 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You are tired from your last kidnap. Please wait before kidnapping someone again.");
        return 1;
    }
    if(HasRope[playerid] == 0)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You must have rope in order to use this command. Buy one from Supa Save.");
        return 1;
    }
    new crand = random(100);
    if(crand <= 30)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Kidnap attempt failed. The player slipped out of your grasp.");
        AttemptedToKidnapRecently[playerid] =60;
        return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,ID) <= 4 && crand > 30)
    {
        new current_zone = player_zone[playerid];

        SendClientMessage(playerid,COLOR_DEADCONNECT,"[[_Kidnapped Player_]]");
        format(string,sizeof(string),"You have grabbed %s(%d), tied them up with your rope and thrown them into your vehicle.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_RED,string);
        IncreaseWantedLevel(playerid,8);
        HasKidnappedRecently[playerid] =300;
        HasRope[playerid] --;
        IncreasePlayerScore(playerid,3);

        SendClientMessage(ID,COLOR_DEADCONNECT,"[[_Kidnapped_]]");
        format(string,sizeof(string),"%s(%d) has tied you up and thrown you into their vehicle!. If you have scissors you can /cutrope.",PlayerName(playerid),playerid);
        SendClientMessage(ID,COLOR_RED,string);
        PutPlayerInVehicle(ID,LastVehicle[playerid],1);
        TogglePlayerControllable(ID,0);
        IsKidnapped[ID] =120;

        format(string,sizeof(string),"[KIDNAP] %s(%d) has tied %s(%d) up and thrown them into their vehicle!",PlayerName(playerid),playerid,PlayerName(ID),ID);
        SendClientMessageToAll(COLOR_RED,string);

        format(string,sizeof(string),"[POLICE RADIO] %s(%d) has tied %s(%d) up with rope and thrown them into their vehicle! Location: %s",PlayerName(playerid),playerid,PlayerName(ID),ID,zones[current_zone][zone_name]);
        SendClientMessageToAllCops(string);
        return 1;
    }
    return 1;
}
Detain command
pawn Код:
dcmd_detain(playerid,params[])
{
    new string[128];
    new ID;
    if(sscanf(params, "u", ID))
    {
        SendClientMessage(playerid,COLOR_ERROR,"USAGE: /detain (Player Name/ID)");
        return 1;
    }
    if(IsSpawned[playerid] != 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You must be alive and spawned in order to be able to use this command.");
        return 1;
    }
    if(IsFrozen[playerid] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You have been frozen by a Server Administrator. You cannot use this command.");
        return 1;
    }
    if(gTeam[playerid] != TEAM_COP && gTeam[playerid] != TEAM_ARMY && gTeam[playerid] != TEAM_CIA)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Only law enforcement can take suspects into their vehicle.");
        return 1;
    }
    if(InAdminMode[ID] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command on this player because they are in Administrator mode.");
        return 1;
    }
    if(!IsPlayerConnected(ID))
    {
        format(string,sizeof(string),"The player ID (%d) is not connected to the server. You cannot detain them",ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(IsKidnapped[playerid] == 1)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You are kidnapped. You cannot use this command.");
        return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,ID) > 4)
    {
        format(string,sizeof(string),"%s(%d) is too far away. You cannot reach him to detain him.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(IsCuffed[ID] == 0)
    {
        format(string,sizeof(string),"%s(%d) is not cuffed. You cannot detain them.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot detain a suspect while in a vehicle. Exit the vehicle first.");
        return 1;
    }
    if(GetPlayerState(ID) == PLAYER_STATE_DRIVER || GetPlayerState(ID) == PLAYER_STATE_PASSENGER)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot detain a suspect while they are in a vehicle. Get them to exit the vehicle first.");
        return 1;
    }
    if(playerid == ID)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You cannot detain yourself.");
        return 1;
    }
    if(IsSpawned[ID] != 1)
    {
        format(string,sizeof(string),"%s(%d) is not spawned. You cannot detain dead people ..",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(IsFrozen[ID] == 1)
    {
        format(string,sizeof(string),"%s(%d) is frozen by a Server Administrator. You cannot detain them.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_ERROR,string);
        return 1;
    }
    if(LastVehicle[playerid] == 0)
    {
        SendClientMessage(playerid,COLOR_ERROR,"You must enter a vehicle before trying to detain a suspect.");
        return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,ID) <= 4)
    {
        format(string,sizeof(string),"[POLICE ACTION] Law Enforcement Officer %s(%d) has placed the suspect %s(%d) in his vehicle.",PlayerName(playerid),playerid,PlayerName(ID),ID);
        SendClientMessageToAll(COLOR_DODGERBLUE,string);
        format(string,sizeof(string),"12[POLICE ACTION] Law Enforcement Officer %s(%d) has placed the suspect %s(%d) in his vehicle.",PlayerName(playerid),playerid,PlayerName(ID),ID);
        IRC_Say(gGroupID,IRC_CHANNEL,string);

        SendClientMessage(ID,COLOR_DEADCONNECT,"[[_Detained_]]");
        format(string,sizeof(string),"Law Enforcement Officer %s(%d) has placed you in his vehicle. Your auto uncuff timer has been increased.",PlayerName(playerid),playerid);
        SendClientMessage(ID,COLOR_DODGERBLUE,string);

        SendClientMessage(playerid,COLOR_DEADCONNECT,"[[_Detained_]]");
        format(string,sizeof(string),"You have detained %s(%d) into the last vehicle you were in.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_DODGERBLUE,string);
        SendClientMessage(playerid,COLOR_DODGERBLUE,"You have recieved $5000 for detaining the suspect.");
        GivePlayerMoney(playerid,5000);

        //Put the suspect in the vehicle and increase cuff timer
        PutPlayerInVehicle(ID,LastVehicle[playerid],1);
        CuffTime[ID] =300;
        IsDetained[ID] =1;
        return 1;
    }
    return 1;
}
+ Rep anyone who can help me
Reply
#2

Try this one
pawn Код:
dcmd_kidnap(playerid,params[])
{
    new string[128],ID,crand = random(100);
    if(sscanf(params, "u", ID)) return SendClientMessage(playerid,COLOR_ERROR,"USAGE: /kidnap (Player Name/ID)");
    if(IsSpawned[playerid] != 1) return SendClientMessage(playerid,COLOR_ERROR,"You must be alive and spawned in order to be able to use this command.");
    if(IsFrozen[playerid] == 1) return SendClientMessage(playerid,COLOR_ERROR,"You have been frozen by a Server Administrator. You cannot use this command.");
    if(LastVehicle[playerid] == 0) return SendClientMessage(playerid,COLOR_ERROR,"You must enter a vehicle before attempting to kidnap a player.");
    if(InAdminMode[ID] == 1) return SendClientMessage(playerid,COLOR_ERROR,"You cannot use this command on this player because they are in Administrator mode.");
    if(IsKidnapped[playerid] == 1)return SendClientMessage(playerid,COLOR_ERROR,"You are kidnapped. You cannot use this command.");
    if(IsKidnapped[ID] == 1) return SendClientMessage(playerid,COLOR_ERROR,"They are kidnapped. You cannot kidnap them twice.");
    if(gTeam[playerid] != TEAM_KIDNAP)return SendClientMessage(playerid,COLOR_ERROR,"Only kidnappers can use this command to kidnap players.");
    if(!IsPlayerConnected(ID)) return SendClientMessageEx(playerid,COLOR_ERROR,"The player ID (%d) is not connected to the server. You cannot kidnap them",ID);
    if(GetDistanceBetweenPlayers(playerid,ID) > 4) return SendClientMessageEx(playerid,COLOR_ERROR,"%s(%d) is too far away. You cannot reach him to kidnap him.",PlayerName(ID),ID);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)return SendClientMessage(playerid,COLOR_ERROR,"You cannot kidnap someone while in a vehicle. Exit the vehicle first.");
    if(GetPlayerState(ID) == PLAYER_STATE_DRIVER || GetPlayerState(ID) == PLAYER_STATE_PASSENGER) return  SendClientMessage(playerid,COLOR_ERROR,"You cannot kidnap someone while they are in a vehicle. Get them to exit the vehicle first.");
    if(playerid == ID) return SendClientMessage(playerid,COLOR_ERROR,"You cannot kidnap yourself, how can you even manage that?");
    if(IsSpawned[ID] != 1) return SendClientMessageEx(playerid,COLOR_ERROR,"%s(%d) is not spawned. You cannot kidnap dead people ..",PlayerName(ID),ID);
    if(IsFrozen[ID] == 1) SendClientMessageEx(playerid,COLOR_ERROR,"%s(%d) is frozen by a Server Administrator. You cannot kidnap them.",PlayerName(ID),ID);
    if(AttemptedToKidnapRecently[playerid] >= 1) return SendClientMessage(playerid,COLOR_ERROR,"You are tired from your last kidnap attempt. Please wait before trying to kidnap again.");
    if(HasKidnappedRecently[playerid] >= 1) return SendClientMessage(playerid,COLOR_ERROR,"You are tired from your last kidnap. Please wait before kidnapping someone again.");
    if(HasRope[playerid] == 0) return SendClientMessage(playerid,COLOR_ERROR,"You must have rope in order to use this command. Buy one from Supa Save.");
    if(crand <= 30)
    {
        SendClientMessage(playerid,COLOR_ERROR,"Kidnap attempt failed. The player slipped out of your grasp.");
        AttemptedToKidnapRecently[playerid] =60;
        return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,ID) <= 4 && crand > 30)
    {
        new current_zone = player_zone[playerid];

        SendClientMessage(playerid,COLOR_DEADCONNECT,"[[_Kidnapped Player_]]");
        format(string,sizeof(string),"You have grabbed %s(%d), tied them up with your rope and thrown them into your vehicle.",PlayerName(ID),ID);
        SendClientMessage(playerid,COLOR_RED,string);
        IncreaseWantedLevel(playerid,8);
        HasKidnappedRecently[playerid] =300;
        HasRope[playerid] --;
        IncreasePlayerScore(playerid,3);

        SendClientMessage(ID,COLOR_DEADCONNECT,"[[_Kidnapped_]]");
        format(string,sizeof(string),"%s(%d) has tied you up and thrown you into their vehicle!. If you have scissors you can /cutrope.",PlayerName(playerid),playerid);
        SendClientMessage(ID,COLOR_RED,string);
        PutPlayerInVehicle(ID,LastVehicle[playerid],1);
        TogglePlayerControllable(ID,0);
        IsKidnapped[ID] =120;

        format(string,sizeof(string),"[KIDNAP] %s(%d) has tied %s(%d) up and thrown them into their vehicle!",PlayerName(playerid),playerid,PlayerName(ID),ID);
        SendClientMessageToAll(COLOR_RED,string);

        format(string,sizeof(string),"[POLICE RADIO] %s(%d) has tied %s(%d) up with rope and thrown them into their vehicle! Location: %s",PlayerName(playerid),playerid,PlayerName(ID),ID,zones[current_zone][zone_name]);
        SendClientMessageToAllCops(string);
        return 1;
    }
    return 1;
}
Also to don`t forgot this is define for SendClientMessageEx
pawn Код:
#define SendClientMessageEx(%0,%1,%2,%3)\
        do{\
            format(str,sizeof(str),%2,%3);\
            SendClientMessage(%0,%1,str);\
        }\
        while(False)
//----------------------------------------
#define SendClientMessageToAllEx(%0,%1,%2)\
        do{\
            format(str,sizeof(str),%1,%2);\
            SendClientMessageToAll(%0,str);\
        }\
        while(False)
You must put it to work without errors!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)