Portal SAMP
[Pedido] Stock que faça o jogador olhar para onde a câmera esteja - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Pedido] Stock que faça o jogador olhar para onde a câmera esteja (/showthread.php?tid=2934)



Stock que faça o jogador olhar para onde a câmera esteja - Halabam - 26/10/2022

Preciso de uma stock que faça o jogador olhar para onde a câmera esteja, se alguém poder ajudar agradeço.


RE: Stock que faça o jogador olhar para onde a câmera esteja - xbruno1000x - 26/10/2022

Não entendi bem. Você quer uma stock que faça a cabeça do personagem girar para o sentido da câmera? Ou você quer uma stock que faça uma InterpolateCamera olhar para a direção em que o player está apontado?

Caso não seja nada disso, explique um pouco mais detalhadamente.


RE: Stock que faça o jogador olhar para onde a câmera esteja - Device-Black - 27/10/2022

(26/10/2022 23:07)xbruno1000x Escreveu: Não entendi bem. Você quer uma stock que faça a cabeça do personagem girar para o sentido da câmera? Ou você quer uma stock que faça uma InterpolateCamera olhar para a direção em que o player está apontado?

Caso não seja nada disso, explique um pouco mais detalhadamente.

Acho que ele quer o headmove


RE: Stock que faça o jogador olhar para onde a câmera esteja - Carlos Victor - 27/10/2022

Tem a função SetCameraBehindPlayer que ajusta a câmera pra onde o ped está olhando, se você quer que a cabeça do ped mexa, a função nativa do SA-MP faz isso /headmove (apenas PC, Mobile já é ativado)


RE: Stock que faça o jogador olhar para onde a câmera esteja - Halabam - 27/10/2022

(26/10/2022 23:07)xbruno1000x Escreveu: Não entendi bem. Você quer uma stock que faça a cabeça do personagem girar para o sentido da câmera? Ou você quer uma stock que faça uma InterpolateCamera olhar para a direção em que o player está apontado?

Caso não seja nada disso, explique um pouco mais detalhadamente.

Eu queria uma stock que faça o player virar para onde a câmera está não a cabeça do player.


RE: Stock que faça o jogador olhar para onde a câmera esteja - Vel - 27/10/2022

Deve funcionar, talvez... não testei.

Código:
bool: SetPlayerLookAtPos(playerid, Float: x, Float: y) {
  static vehicleid,
    Float: x2,
    Float: y2,
    Float: unused;

  return ((vehicleid = GetPlayerVehicleID(playerid)) && (GetVehiclePos(vehicleid, x2, y2, unused), SetVehicleZAngle(vehicleid, -atan2(x2 - x, y2 - y) + 180))) || (GetPlayerPos(playerid, x2, y2, unused), SetPlayerFacingAngle(playerid, -atan2(x2 - x, y2 - y) + 180));
}

public OnPlayerUpdate(playerid) {
  static Float: cpx,
    Float: cpy,
    Float: cfvx,
    Float: cfvy,
    Float: x,
    Float: y,
    Float: unused;

  GetPlayerCameraPos(playerid, cpx, cpy, unused);
  GetPlayerCameraFrontVector(playerid, cfvx, cfvy, unused);

  x = cpx + cfvx;
  y = cpy + cfvy;

  SetPlayerLookAtPos(playerid, x, y);
  return 1;
}



RE: Stock que faça o jogador olhar para onde a câmera esteja - Halabam - 27/10/2022

(27/10/2022 13:19)Vel Escreveu: Deve funcionar, talvez... não testei.

Código:
bool: SetPlayerLookAtPos(playerid, Float: x, Float: y) {
  static vehicleid,
    Float: x2,
    Float: y2,
    Float: unused;

  return ((vehicleid = GetPlayerVehicleID(playerid)) && (GetVehiclePos(vehicleid, x2, y2, unused), SetVehicleZAngle(vehicleid, -atan2(x2 - x, y2 - y) + 180))) || (GetPlayerPos(playerid, x2, y2, unused), SetPlayerFacingAngle(playerid, -atan2(x2 - x, y2 - y) + 180));
}

public OnPlayerUpdate(playerid) {
  static Float: cpx,
    Float: cpy,
    Float: cfvx,
    Float: cfvy,
    Float: x,
    Float: y,
    Float: unused;

  GetPlayerCameraPos(playerid, cpx, cpy, unused);
  GetPlayerCameraFrontVector(playerid, cfvx, cfvy, unused);

  x = cpx + cfvx;
  y = cpy + cfvy;

  SetPlayerLookAtPos(playerid, x, y);
  return 1;
}
Ele virou pra onde a câmera esta e não pra onde a câmera esta olhando digamos, se a câmera está para frente do personagem ele simplesmente vira para a câmera que está atrás dele o certo seria ele vira para onde a câmera esta apontando saca?


RE: Stock que faça o jogador olhar para onde a câmera esteja - Carlos Victor - 27/10/2022

Código PHP:
boolSetPlayerLookAtPos(playeridFloatxFloaty) {
  static vehicleid,
    Floatx2,
    Floaty2,
    Floatunused;

  return ((vehicleid GetPlayerVehicleID(playerid)) && (GetVehiclePos(vehicleidx2y2unused), SetVehicleZAngle(vehicleid, -atan2(x2 xy2 y)))) || (GetPlayerPos(playeridx2y2unused), SetPlayerFacingAngle(playerid, -atan2(x2 xy2 y)));


Dei uma testada no código, eu só removi o + 180 no final dos códigos e talvez seja o que você procura.


RE: Stock que faça o jogador olhar para onde a câmera esteja - Halabam - 27/10/2022

(27/10/2022 13:53)Carlos Victor Escreveu:
Código PHP:
boolSetPlayerLookAtPos(playeridFloatxFloaty) {
  static vehicleid,
    Floatx2,
    Floaty2,
    Floatunused;

  return ((vehicleid GetPlayerVehicleID(playerid)) && (GetVehiclePos(vehicleidx2y2unused), SetVehicleZAngle(vehicleid, -atan2(x2 xy2 y)))) || (GetPlayerPos(playeridx2y2unused), SetPlayerFacingAngle(playerid, -atan2(x2 xy2 y)));


Dei uma testada no código, eu só removi o + 180 no final dos códigos e talvez seja o que você procura.

certinho, muito obrigado +1 rep