Portal SAMP
[Lançamento] Camera - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Lançamentos (https://portalsamp.com/forumdisplay.php?fid=26)
+---- Fórum: Gamemodes (https://portalsamp.com/forumdisplay.php?fid=8)
+---- Tópico: [Lançamento] Camera (/showthread.php?tid=5052)



Camera - ANDREX - 14/07/2025

Ola como eu tenho muita dificuldade para entender as coisas da câmera posições etc para colocar na Gamemode para se criar a seleção de skin , então criei esse código que me ajudou muito pois nesse código ao digitar o comando câmera ela pega exatamente a posição de tudo necessário para mostrar o jogador de forma mais simples e sem dor de cabeça então resumindo ele e muito útil para mostrar o player na seleção da escolha de skin pois ela mostra exatamente o jogador na posição de frente para a câmera e todas as coordenadas das câmeras necessária , ao usar o comando fiz com que criasse um arquivo chamado camera.txt onde automaticamente e criado ao usar o comando e toda as coordenadas de maneira perfeita e fácil fica la então e só pegar e jogar dentro da Gamemode as posições , tenho absoluta certeza q isso irá ajudar há muitos de maneira mais fácil e prática , odeio complicações 
Código:
#include <a_samp>
#include <zcmd>

#define PI 3.141592653589793
CMD:camera(playerid, params[]){
    new Float:x, Float:y, Float:z;
    new Float:angle;
    new Float:camX, Float:camY, Float:camZ;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, angle);
    camX = x - (5.0 * floatsin(angle * (PI / 180.0)));
    camY = y + (5.0 * floatcos(angle * (PI / 180.0)));
    camZ = z + 2.0;
    new File:fileHandle;
    new buffer[256];
    fileHandle = fopen("camera.txt", io_append);
    if (fileHandle){
        format(buffer, sizeof(buffer), "SetPlayerPos(playerid, %.4f,%.4f,%.4f);\r\n", x, y, z);
        fwrite(fileHandle, buffer);
        format(buffer, sizeof(buffer), "SetPlayerFacingAngle(playerid, %.4f);\r\n", angle);
        fwrite(fileHandle, buffer);
        format(buffer, sizeof(buffer), "SetPlayerCameraPos(playerid, %.4f,%.4f,%.4f);\r\n", camX, camY, camZ);
        fwrite(fileHandle, buffer);
        format(buffer, sizeof(buffer), "SetPlayerCameraLookAt(playerid, %.4f,%.4f,%.4f);\r\n\r\n", x, y, z);
        fwrite(fileHandle, buffer);
        fclose(fileHandle);
        SendClientMessage(playerid, 0x00FF00FF, "Coordenadas salvas em scriptfiles/camera_coords.txt!");
    }else{
        SendClientMessage(playerid, 0xFF0000FF, "ERRO: Não foi possível abrir o arquivo camera_coords.txt para escrita.");
    }
    format(buffer, sizeof(buffer), "SetPlayerPos(playerid, %.4f,%.4f,%.4f);", x, y, z);
    SendClientMessage(playerid, -1, buffer);
    format(buffer, sizeof(buffer), "SetPlayerFacingAngle(playerid, %.4f);", angle);
    SendClientMessage(playerid, -1, buffer);
    format(buffer, sizeof(buffer), "SetPlayerCameraPos(playerid, %.4f,%.4f,%.4f);", camX, camY, camZ);
    SendClientMessage(playerid, -1, buffer);
    format(buffer, sizeof(buffer), "SetPlayerCameraLookAt(playerid, %.4f,%.4f,%.4f);", x, y, z);
    SendClientMessage(playerid, -1, buffer);
    return 1;
}