[Question/SAMP 0.3.7] GetPlayerCameraTargetPlayer, etc.. limit range? -
Logofero - 13.05.2015
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:x1, Float:y1, Float:z1,
Float:x2, Float:y2, Float:z2;
new msg[256];
if(GetPlayerCameraTargetObject(playerid) != 65535){
id = GetPlayerCameraTargetObject(playerid);
GetPlayerPos(playerid, x1, y1, z1);
GetObjectPos(id, x2, y2, z2);
format(msg, 256, "obj(%d) dist: %.1f", id, VectorSize(x1-x2, y1-y2, z1-z2));
SendClientMessage(playerid, COLOR_DEFAULT, msg);
} else if(GetPlayerCameraTargetVehicle(playerid) != 65535) {
id = GetPlayerCameraTargetVehicle(playerid);
GetPlayerPos(playerid, x1, y1, z1);
GetVehiclePos(id, x2, y2, z2);
format(msg, 256, "car(%d) dist: %.1f", id, VectorSize(x1-x2, y1-y2, z1-z2));
SendClientMessage(playerid, COLOR_DEFAULT, msg);
} else if(GetPlayerCameraTargetPlayer(playerid) != 65535) {
id = GetPlayerCameraTargetPlayer(playerid);
GetPlayerPos(playerid, x1, y1, z1);
GetPlayerPos(id, x2, y2, z2);
format(msg, 256, "player(%d) dist: %.1f", id, VectorSize(x1-x2, y1-y2, z1-z2));
SendClientMessage(playerid, COLOR_DEFAULT, msg);
} else if(GetPlayerCameraTargetActor(playerid) != 65535) {
id = GetPlayerCameraTargetActor(playerid);
GetPlayerPos(playerid, x1, y1, z1);
GetActorPos(id, x2, y2, z2);
format(msg, 256, "actor(%d) dist: %.1f", id, VectorSize(x1-x2, y1-y2, z1-z2));
SendClientMessage(playerid, COLOR_DEFAULT, msg);
}
//}
return 1;
}
Re: [Question/SAMP 0.3.7] GetPlayerCameraTargetPlayer, etc.. limit range? - Emmet_ - 13.05.2015
It was most likely intended. It's supposed to only work if you're near the targeted item.
Re: [Question/SAMP 0.3.7] GetPlayerCameraTargetPlayer, etc.. limit range? -
Logofero - 13.05.2015
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_range, Float:max_range);
Thanks http://forum.sa-mp.com/showpost.php?...28&postcount=5
Function:
PHP код:
GetPlayerCameraTargetID(playerid, &targetid, &type, Float:sphere_range = 1.0, Float:max_dist = 1000.0);
Description: This function allows you to get going and the type of objects captured by the camera Player.
Parameters:- Player against which to search
- Object ID. If the object was not found return 65535
- 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
- The visibility range of the object
- The maximum distance to the object
Example:
PHP код:
#include <func_GetPlayerCameraTargetID>
public OnPlayerUpdate(playerid)
{
new keys, keyud, keylf;
GetPlayerKeys(playerid, keys, keyud, keylf);
if(keys & KEY_HANDBRAKE) {
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
new msg[256];
new targetid, type;
GetPlayerCameraTargetID(playerid, targetid, type, 0.5, 1000.0);
if(type != 65535){
format(msg, 256, "type %d id %d", type, targetid);
SendClientMessage(playerid, COLOR_DEFAULT, msg);
}
}
return 1;
}