[Question/SAMP 0.3.7] GetPlayerCameraTargetPlayer, etc.. limit range?
#1

Question: GetPlayerCameraTargetPlayer, etc.. limit range? Functions:
PHP код:
GetPlayerCameraTargetObject(playerid);
GetPlayerCameraTargetVehicle(playerid);
GetPlayerCameraTargetPlayer(playerid);
GetPlayerCameraTargetActor(playerid); 
a limit range? I tested on a player, actor, car and showed different distances:
Код HTML:
Max Player range ~17.5
Max Actor range ~18.0
Max Car range ~38.0
Can we consider this a bug or intended?

My debug script:
PHP код:
public OnPlayerUpdate(playerid)
{
    
//new  keys, keyud, keylf;
    //GetPlayerKeys(playerid, keys, keyud, keylf);
    //if(keys & KEY_HANDBRAKE) {
    
new id;
    new 
Float:x1Float:y1Float:z1,
        
Float:x2Float:y2Float:z2;
    new 
msg[256];
    if(
GetPlayerCameraTargetObject(playerid) != 65535){
        
id GetPlayerCameraTargetObject(playerid);
        
GetPlayerPos(playeridx1y1z1);
        
GetObjectPos(idx2y2z2);
        
format(msg256"obj(%d) dist: %.1f"idVectorSize(x1-x2y1-y2z1-z2));
        
SendClientMessage(playeridCOLOR_DEFAULTmsg);
    } else if(
GetPlayerCameraTargetVehicle(playerid) != 65535) {
        
id GetPlayerCameraTargetVehicle(playerid);
        
GetPlayerPos(playeridx1y1z1);
        
GetVehiclePos(idx2y2z2);
        
format(msg256"car(%d) dist: %.1f"idVectorSize(x1-x2y1-y2z1-z2));
        
SendClientMessage(playeridCOLOR_DEFAULTmsg);
    } else if(
GetPlayerCameraTargetPlayer(playerid) != 65535) {
        
id GetPlayerCameraTargetPlayer(playerid);
        
GetPlayerPos(playeridx1y1z1);
        
GetPlayerPos(idx2y2z2);
        
format(msg256"player(%d) dist: %.1f"idVectorSize(x1-x2y1-y2z1-z2));
        
SendClientMessage(playeridCOLOR_DEFAULTmsg);
    } else if(
GetPlayerCameraTargetActor(playerid) != 65535) {
        
id GetPlayerCameraTargetActor(playerid);
        
GetPlayerPos(playeridx1y1z1);
        
GetActorPos(idx2y2z2);
        
format(msg256"actor(%d) dist: %.1f"idVectorSize(x1-x2y1-y2z1-z2));
        
SendClientMessage(playeridCOLOR_DEFAULTmsg);
    }
    
//}
    
return 1;

Reply
#2

It was most likely intended. It's supposed to only work if you're near the targeted item.
Reply
#3

Create an alternative function with advanced properties.

Features:
The function replaces all one GetPlayerCameraTargetID:
PHP код:
GetPlayerCameraTargetObject(playerid);
GetPlayerCameraTargetVehicle(playerid);
GetPlayerCameraTargetPlayer(playerid);
GetPlayerCameraTargetActor(playerid); 
Also to the feature works great distances. You yourself can set the distance for visible object.
And you can get IDs player object.

Added a new utility function:
PHP код:
IsVectorInShere(Float:p1[3], Float:p2[3], Float:sc[3], Float:sphere_rangeFloat:max_range); 
Thanks http://forum.sa-mp.com/showpost.php?...28&postcount=5

Function:
PHP код:
GetPlayerCameraTargetID(playerid, &targetid, &typeFloat:sphere_range 1.0Float:max_dist 1000.0); 
Description: This function allows you to get going and the type of objects captured by the camera Player.

Parameters:
  1. Player against which to search
  2. Object ID. If the object was not found return 65535
  3. Type. Total available. If not found return 0
    PHP код:
    #define TARGET_TYPE_NONE 0
    #define TARGET_TYPE_PLAYER 1
    #define TARGET_TYPE_VEHICLE 2
    #define TARGET_TYPE_OBJECT 3
    #define TARGET_TYPE_PLAYER_OBJECT 4
    #define TARGET_TYPE_ACTOR 5 
  4. The visibility range of the object
  5. The maximum distance to the object
Example:
PHP код:
#include <func_GetPlayerCameraTargetID>
public OnPlayerUpdate(playerid)
{
    new  
keyskeyudkeylf;
    
GetPlayerKeys(playeridkeyskeyudkeylf);
    if(
keys KEY_HANDBRAKE) {
    new 
Float:x1Float:y1Float:z1Float:x2Float:y2Float:z2;
    new 
msg[256];
    new 
targetidtype;
    
GetPlayerCameraTargetID(playeridtargetidtype0.51000.0); 
    if(
type != 65535){
        
format(msg256"type %d id %d"typetargetid);
        
SendClientMessage(playeridCOLOR_DEFAULTmsg);
    }
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)