moving objects in a certain radius
#1

i have a command to move a gate:
Код:
CMD:gopen(playerid, params[])
{
if(INI_Open(getINI(playerid)))
{
PlayerInfo[playerid][Faction] = INI_ReadInt("Faction");
PlayerInfo[playerid][Factionrank] = INI_ReadInt("Factionrank");

//LSPDFACTION
if(PlayerInfo[playerid][Faction] == LSPD)
{
if(PlayerInfo[playerid][Factionrank] > 0)//Any rank
{
if(!isnull(params))
{
 return SendClientMessage(playerid,SYellow,"Usage: /gate.");
 }
 else
 {
SendClientMessage(playerid,SYellow,"The Lspd Garage gate is now opening.");
return MoveObject(lspdgaragegate, 1596.90, -1637.94, 16.00, 4.0);
}
}
return SendClientMessage(playerid,SYellow,"You must be atlest rank 1 LSPD to use this.");
}//RANK 1 END
else
{
return SendClientMessage(playerid,SYellow,"You must be LSPD to use that command.");
}

}
return 0;
}
how can i modify that to only move in a certain radius?
Reply
#2

You mean the player must be in a certain radius to move the gate? That is, if they are not close enough to the gate, it won't move. If so, then look into IsPlayerInRangeOfPoint function: https://sampwiki.blast.hk/wiki/IsPlayerInRangeOfPoint

And for the code, it should work like this:
pawn Код:
CMD:gopen(playerid, params[])
{
    if(INI_Open(getINI(playerid))) {
        PlayerInfo[playerid][Faction] = INI_ReadInt("Faction");
        PlayerInfo[playerid][Factionrank] = INI_ReadInt("Factionrank");

//LSPDFACTION
        if(PlayerInfo[playerid][Faction] == LSPD) {
                                                  //Any rank
            if(PlayerInfo[playerid][Factionrank] > 0) {
                if(!isnull(params)) {
                    return SendClientMessage(playerid,SYellow,"Usage: /gate.");
                }
                else {
                    new Float:x, Float:y, Float:z;
                    GetObjectPos(lspdgaragegate, x, y, z);
                    if(!IsPlayerInRangeOfPoint(playerid, 5, x, y, z)) return SendClientMessage(playerid, COLOR_RED, "Your'e not close enough to the gate.");
                    SendClientMessage(playerid,SYellow,"The Lspd Garage gate is now opening.");
                    return MoveObject(lspdgaragegate, 1596.90, -1637.94, 16.00, 4.0);
                }
            }
            return SendClientMessage(playerid,SYellow,"You must be atlest rank 1 LSPD to use this.");
        }                                         //RANK 1 END
        else {
            return SendClientMessage(playerid,SYellow,"You must be LSPD to use that command.");
        }

    }
    return 0;
}
The range is set to 5.0, that can be changed to what suits you the most.
Reply
#3

worked thanks alot
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)