SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 23/10/2019, 08:39 PM   #21
gmstrikker
Huge Clucker
 
Join Date: Aug 2013
Posts: 343
Reputation: 0
Default Re: Camera do player está na direção de uma posição

E por que nesse comando tá sempre entrando em (com a camera na direção ou com a camera fora da direção da posição):
Code:
SendClientMessage(playerid, COLOR_RED, "Sua camera NÃO está na direção da posição");
Code:
CMD:cameraproobj(playerid, distance[]) {
    // box1 = CreateObject(3052, -35.9, -1139.4, 1.2, 0, 0, 68);
    new bool:cameraproobj = false;

    new Float: oX, Float: oY;
    oX = -35.9;
    oY = -1139.4;

    new Float:P_Ang;
    cameraproobj = false;
    GetPlayerFacingAngle(playerid, P_Ang);
    if(P_Ang == GetPlayerAngleAtPos(playerid, oX, oY)) {
        cameraproobj = true;
    }

    if(cameraproobj == true) SendClientMessage(playerid, COLOR_GREEN, "Sua camera está na direção da posição");
    else if(cameraproobj == false) SendClientMessage(playerid, COLOR_RED, "Sua camera NÃO está na direção da posição");
    return true;
}
gmstrikker is offline   Reply With Quote
Old 23/10/2019, 09:17 PM   #22
Malandrin
Huge Clucker
 
Malandrin's Avatar
 
Join Date: Jun 2018
Posts: 351
Reputation: 14
Default Re: Camera do player está na direção de uma posição

Ele funciona na verdade, fiz o teste aqui.

Mas ele é um sistema preciso, ele só vai funcionar se você estiver olhando precisamente para o angulo que você determinou, você pode tentar criar um sisteminha pra deixar funcionar com um valor aproximado.

@EDIT

Fiz uma gambiarra aqui, mas tá funcionando.

PHP Code:
public OnPlayerUpdate(playerid)
{
      new
        
str[124],
        
Float:angle,
        
value;

    
GetPlayerFacingAngle(playeridangle);

       
value floatround(GetPlayerAngleAtPos(playerid0.00.0), floatround_round);
       
floatround(anglefloatround_round);

       if(
angle > (value 5) && angle < (value 8))
           
SendClientMessage(playerid, -1"Você tá olhando");
       
    return 
1;

Malandrin is online now   Reply With Quote
Old 25/10/2019, 09:39 PM   #23
gmstrikker
Huge Clucker
 
Join Date: Aug 2013
Posts: 343
Reputation: 0
Default Re: Camera do player está na direção de uma posição

Quote:
Originally Posted by Malandrin View Post
Ele funciona na verdade, fiz o teste aqui.

Mas ele é um sistema preciso, ele só vai funcionar se você estiver olhando precisamente para o angulo que você determinou, você pode tentar criar um sisteminha pra deixar funcionar com um valor aproximado.

@EDIT

Fiz uma gambiarra aqui, mas tá funcionando.

PHP Code:
public OnPlayerUpdate(playerid)
{
      new
        
str[124],
        
Float:angle,
        
value;

    
GetPlayerFacingAngle(playeridangle);

       
value floatround(GetPlayerAngleAtPos(playerid0.00.0), floatround_round);
       
floatround(anglefloatround_round);

       if(
angle > (value 5) && angle < (value 8))
           
SendClientMessage(playerid, -1"Você tá olhando");
       
    return 
1;

Te dei um rep aqui, mas não era isso que eu precisava
Eu vi pelo onplayerupdate é que ele pega a posição que o player tá pra frente e se tiver no angulo do objeto ele retorna verdadeiro

Como nessa imagem, eu to com a camera pra tras:


Deveria estar dando falso, mas tá dando verdadeiro

Eu preciso pegar pra onde a camera do player ta virada
gmstrikker is offline   Reply With Quote
Old 26/10/2019, 01:29 AM   #24
Malandrin
Huge Clucker
 
Malandrin's Avatar
 
Join Date: Jun 2018
Posts: 351
Reputation: 14
Default Re: Camera do player está na direção de uma posição

Ah sim, entendi.

Você pode tentar fazer uma gambiarra, tenta usar essa função https://wiki.sa-mp.com/wiki/GetPlayerCameraPos, creio que não será muito diferente do exemplo.

Você pode usar aquelas funções do tópico que te falei como exemplo e fazer modificações para poder funcionar corretamente.
Malandrin is online now   Reply With Quote
Old 26/10/2019, 04:39 AM   #25
RodrigoMSR
High-roller
 
RodrigoMSR's Avatar
 
Join Date: Mar 2015
Location: Brazil
Posts: 1,043
Reputation: 140
Default Re: Camera do player está na direção de uma posição

PHP Code:
CMD:camobject(playerid)
{
    static 
object 0;
    
    if(
object == 0)
    {
        
object CreateDynamicObject(3052, -35.9, -1139.41.20068);
    }
    
    new 
Float:objc[3], Float:cam[3], Float:vector[3], Float:distFloat:range;
    
    
GetDynamicObjectPos(objectobjc[0], objc[1], objc[2]);
    
    
GetPlayerCameraPos(playeridcam[0], cam[1], cam[2]);
    
GetPlayerCameraFrontVector(playeridvector[0], vector[1], vector[2]);
    
    
dist GetDistanceBetweenPoints(cam[0], cam[1], cam[2], objc[0], objc[1], objc[2]);
    
    
cam[0] += dist vector[0];
    
cam[1] += dist vector[1];
    
cam[2] += dist vector[2];
    
    
range 3.0;
    
    if(
range distrange dist;
    
    if(
GetDistanceBetweenPoints(cam[0], cam[1], cam[2], objc[0], objc[1], objc[2]) <= range)
    {
        
SendClientMessage(playerid0x00FF00FF"Olhando para o objeto");
    }
    else
    {
        
SendClientMessage(playerid0xFF0000FF"Não está olhando para o objeto");
    }
    return 
1;
}

forward Float:GetDistanceBetweenPoints(Float:x1Float:y1Float:z1Float:x2Float:y2Float:z2);
public 
Float:GetDistanceBetweenPoints(Float:x1Float:y1Float:z1Float:x2Float:y2Float:z2)
{
    return 
VectorSize(x1-x2y1-y2z1-z2);

Pode falhar se ficar com a câmera perto demais do objeto.

Regule o valor de "range" conforme o nível de precisão que deseja.
__________________
sttserver.net

RodrigoMSR is online now   Reply With Quote
Old 28/10/2019, 04:57 AM   #26
gmstrikker
Huge Clucker
 
Join Date: Aug 2013
Posts: 343
Reputation: 0
Default Re: Camera do player está na direção de uma posição

Quote:
Originally Posted by RodrigoMSR View Post
PHP Code:
CMD:camobject(playerid)
{
    static 
object 0;
    
    if(
object == 0)
    {
        
object CreateDynamicObject(3052, -35.9, -1139.41.20068);
    }
    
    new 
Float:objc[3], Float:cam[3], Float:vector[3], Float:distFloat:range;
    
    
GetDynamicObjectPos(objectobjc[0], objc[1], objc[2]);
    
    
GetPlayerCameraPos(playeridcam[0], cam[1], cam[2]);
    
GetPlayerCameraFrontVector(playeridvector[0], vector[1], vector[2]);
    
    
dist GetDistanceBetweenPoints(cam[0], cam[1], cam[2], objc[0], objc[1], objc[2]);
    
    
cam[0] += dist vector[0];
    
cam[1] += dist vector[1];
    
cam[2] += dist vector[2];
    
    
range 3.0;
    
    if(
range distrange dist;
    
    if(
GetDistanceBetweenPoints(cam[0], cam[1], cam[2], objc[0], objc[1], objc[2]) <= range)
    {
        
SendClientMessage(playerid0x00FF00FF"Olhando para o objeto");
    }
    else
    {
        
SendClientMessage(playerid0xFF0000FF"Não está olhando para o objeto");
    }
    return 
1;
}

forward Float:GetDistanceBetweenPoints(Float:x1Float:y1Float:z1Float:x2Float:y2Float:z2);
public 
Float:GetDistanceBetweenPoints(Float:x1Float:y1Float:z1Float:x2Float:y2Float:z2)
{
    return 
VectorSize(x1-x2y1-y2z1-z2);

Pode falhar se ficar com a câmera perto demais do objeto.

Regule o valor de "range" conforme o nível de precisão que deseja.
É ISSO IRMAO, VC ME SALVOU DE NOVO, VC E FODA VLW +REP
gmstrikker is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Não está salvando a posição druiida159 Português/Portuguese 0 11/12/2015 11:43 PM
[Ajuda] Posição da câmera RafaelOsio Português/Portuguese 3 05/08/2015 01:20 AM
[Ajuda] Camera e Posição . DiReCt hIt Português/Portuguese 13 20/11/2012 02:43 PM
[Ajuda] Posição da câmera Lucaz_Nunes Português/Portuguese 2 15/11/2012 12:35 PM
[Ajuda] Posição da camera MatheusAlcapone Português/Portuguese 5 29/09/2012 06:05 PM


All times are GMT. The time now is 03:44 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.