Portal SAMP
[Ajuda] ajuda no meu codigo - 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: [Ajuda] ajuda no meu codigo (/showthread.php?tid=4387)



ajuda no meu codigo - LOS_SANTOS - 07/01/2024

ola amigos adaptei esse codigo para colocar no meu servidor o problema e que a velocidade dele e 80 eu queria que algem pudesse colocar para quando eu criar os radares eu colocar a velocidade neles  e no 3dtext aparecer a velocidade colocada aqui esta o codigo 


Código:
#include <a_samp>
#include <zcmd>
#include <DOF2>
#include <sscanf2>
#include <streamer>

#define MAX_RADAR 500
new bool:criandoRadar[MAX_PLAYERS];
new ObjetoRada;
new Timer[MAX_PLAYERS];

public OnGameModeInit()
{
    LoadRadares();
    return 1;
}
public OnGameModeExit()
{
    DOF2_Exit();
    return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
    {
        Timer[playerid] = SetTimerEx("VerificarRadares", 100, true, "i", playerid);
    }
    return 1;
}
stock VelocidadeDoVeiculo(vehicleid)
{
    new Float:xPos[3];
    GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]);
    return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
}
forward VerificarRadares(playerid);
public VerificarRadares(playerid)
{
    new File[200];
    if(!IsPlayerInAnyVehicle(playerid))
    {
        KillTimer(Timer[playerid]);
    }
    for(new i = 0; i < MAX_RADAR; i++)
    {
        format(File, sizeof(File), "Radares/Rada%d.ini", i);
        if(DOF2_FileExists(File))
        {
            new Float:x, Float:y, Float:z;
            x = DOF2_GetFloat(File, "RadaX");
            y = DOF2_GetFloat(File, "RadaY");
            z = DOF2_GetFloat(File, "RadaZ");
            if(IsPlayerInRangeOfPoint(playerid, 20.0, x, y, z))
            {
                if(GetPVarInt(playerid, "passouradar") == 0)
                {
                    if(VelocidadeDoVeiculo(GetPlayerVehicleID(playerid)) > 80)
                    {
                        SendClientMessage(playerid, -1, "Voce Levou Uma Multa");
                        GameTextForPlayer(playerid, "~r~Multa", 5000, 5);
                    }
                    else
                    {
                        SendClientMessage(playerid, -1, "Voce Passou No Radar");
                        GameTextForPlayer(playerid, "~b~radar", 2000, 5);
                    }
                    SetTimerEx("LiberarRadar", 5000, false, "i", playerid);
                    SetPVarInt(playerid, "passouradar", true);
                }
            }
        }
    }
    return 1;
}
forward LiberarRadar(playerid);
public LiberarRadar(playerid)
{
    SetPVarInt(playerid, "passouradar", false);
    return 1;
}
stock LoadRadares()
{
    new File[200];
    for(new i = 0; i < MAX_RADAR; i++)
    {
        format(File, sizeof(File), "Radares/Rada%d.ini", i);
        if(DOF2_FileExists(File))
        {
            new Float:x, Float:y, Float:z, Float:RX, Float:RY, Float:RZ;
            x = DOF2_GetFloat(File, "RadaX");
            y = DOF2_GetFloat(File, "RadaY");
            z = DOF2_GetFloat(File, "RadaZ");
            RX = DOF2_GetFloat(File, "RadaRX");
            RY = DOF2_GetFloat(File, "RadaRY");
            RZ = DOF2_GetFloat(File, "RadaRZ");
            Create3DTextLabel("{FFFFFF}RADAR - {43ff1e}Limite:{f5ff3a}80 KM/H", -1, x, y, z + 3, 80.0, 0);
            CreateDynamicMapIcon(x, y, z, 34, -1);
            CreateDynamicObject(18880, x, y, z, RX, RY, RZ);
        }
    }
    return 1;
}
public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
    new File[100];
    if(response == 1)
    {
        if(criandoRadar[playerid])
        {
            for(new i = 0; i < MAX_RADAR; i++)
            {
                format(File, sizeof(File), "Radares/Rada%d.ini", i);
                if(!DOF2_FileExists(File))
                {
                    DOF2_CreateFile(File);
                    DOF2_SetInt(File, "Objetoid", 18880);
                    DOF2_SetString(File, "3DText", "Radar\nLimite De Velocidade: {FF0000}80Km/H");
                    DOF2_SetInt(File, "MapInco", 34);
                    DOF2_SetFloat(File, "RadaX", x);
                    DOF2_SetFloat(File, "RadaY", y);
                    DOF2_SetFloat(File, "RadaZ", z);
                    DOF2_SetFloat(File, "RadaRX", rx);
                    DOF2_SetFloat(File, "RadaRY", ry);
                    DOF2_SetFloat(File, "RadaRZ", rz);
                    DOF2_SaveFile();
                    DestroyDynamicObject(ObjetoRada);
                    LoadRadares();
                    criandoRadar[playerid] = false;
                    break;
                }
            }
        }
    }
    return 1;
}
CMD:criarradar(playerid, params[])
{
    new Float:X, Float:Y, Float:Z, Float:R;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, R);
    const radarObjID = 18880;
    const maxRadar = MAX_RADAR;
    new ObjetoRada = CreateDynamicObject(radarObjID, X, Y, Z, 0.00000, 0.00000, R);
    EditDynamicObject(playerid, ObjetoRada);
    CriarRadarFile(playerid, X, Y, Z, radarObjID);
    return 1;
}
CriarRadarFile(playerid, Float:X, Float:Y, Float:Z, objID)
{
    for(new i = 0; i < MAX_RADAR; i++)
    {
        new File[128];
        format(File, sizeof(File), "Radares/Rada%d.ini", i);
        if(!DOF2_FileExists(File))
        {
            DOF2_CreateFile(File);
            DOF2_SetInt(File, "Objetoid", objID);
            DOF2_SetString(File, "3DText", "Radar\nLimite De Velocidade: {FF0000}80Km/H");
            DOF2_SetFloat(File, "RadaX", X);
            DOF2_SetFloat(File, "RadaY", Y);
            DOF2_SetFloat(File, "RadaZ", Z);
            DOF2_SaveFile();
            DestroyDynamicObject(objID);
            LoadRadares();
            break;
        }
    }
}



RE: ajuda no meu codigo - blueN - 07/01/2024

Tá na mão meu amigo, código todo rescrito, marcha no projeto agora pai.
Enjoy Smile

Código:
#include <a_samp>
#include <zcmd>
#include <DOF2>
#include <sscanf2>
#include <streamer>

#define         MAX_RADAR       (500)
#define         DIALOG_RADAR    (1572)

enum Radar_Enum {
    bool:Radar_Set,
    Radar_Objeto,
    Radar_MapIcon,
    Radar_Velocidade,
    Text3D:Radar_Texto,
    Float:Radar_Posicao[3]
};

new Radar[MAX_RADAR][Radar_Enum];

enum playerRadar_Enum {
    playerRadar_Timer,
    playerRadar_Type,
    playerRadar_Objeto,
    playerRadar_Velocidade
};

new playerRadar[MAX_PLAYERS][playerRadar_Enum];

forward VerificarRadares(playerid);

public OnGameModeInit() {
   
    new
        tempString[200];

    for(new i = 0; i < MAX_RADAR; i++) {

        format(tempString, sizeof(tempString), "Radares/Rada%d.ini", i);
        if(!DOF2_FileExists(tempString)) continue;

        Radar[i][Radar_Posicao][0] = DOF2_GetFloat(tempString, "RadaX");
        Radar[i][Radar_Posicao][1] = DOF2_GetFloat(tempString, "RadaY");
        Radar[i][Radar_Posicao][2] = DOF2_GetFloat(tempString, "RadaZ");
        Radar[i][Radar_Posicao][3] = DOF2_GetFloat(tempString, "RadaRX");
        Radar[i][Radar_Posicao][4] = DOF2_GetFloat(tempString, "RadaRY");
        Radar[i][Radar_Posicao][5] = DOF2_GetFloat(tempString, "RadaRZ");
        Radar[i][Radar_Velocidade] = DOF2_GetInt(tempString, "Velocidade");
       
        loadRadar(i);
    }
    return true;
}

public OnGameModeExit()
    return (DOF2_Exit());

public OnPlayerDisconnect(playerid, reason) {

    KillTimer(playerRadar[playerid][playerRadar_Timer]);
    DestroyDynamicObject(playerRadar[playerid][playerRadar_Objeto]);

    new dsaa[playerRadar_Enum];
    playerRadar[playerid] = dsaa;
    return true;
}

public OnPlayerStateChange(playerid, newstate, oldstate) {

    switch(newstate)
    {
        case PLAYER_STATE_DRIVER:
        {
            playerRadar[playerid][playerRadar_Timer] = SetTimerEx("VerificarRadares", 100, true, "i", playerid);
        }
    }
    return true;
}

public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) {
   
    if(playerRadar[playerid][playerRadar_Type] != 1)
        return true;

    switch(response) {
        case EDIT_RESPONSE_FINAL, EDIT_RESPONSE_CANCEL: DestroyDynamicObject(playerRadar[playerid][playerRadar_Objeto]);
    }

    switch(response)
    {
        case EDIT_RESPONSE_FINAL:
        {
            new tempId = -1;

            for(new i = 0; i < MAX_RADAR; i++) {
                if(Radar[i][Radar_Set] == true) continue;
                tempId = i;
                break;
            }

            if(tempId == -1) return SendClientMessage(playerid, -1, "Servidor não suporta mais radares");

            format(File, sizeof(File), "Radares/Rada%d.ini", tempId);
            if(DOF2_FileExists(File)) return SendClientMessage(playerid, -1, "Houve uma falha na criação");

            /*          DOF2 Config          */
            DOF2_CreateFile(File);
            DOF2_SetFloat(File, "RadaX", x);
            DOF2_SetFloat(File, "RadaY", y);
            DOF2_SetFloat(File, "RadaZ", z);
            DOF2_SetFloat(File, "RadaRX", rx);
            DOF2_SetFloat(File, "RadaRY", ry);
            DOF2_SetFloat(File, "RadaRZ", rz);
            DOF2_SetInt(File, "Velocidade", playerRadar[playerid][playerRadar_Velocidade]);
            DOF2_SaveFile();

            /*          Server Config        */
            Radar[tempId][Radar_Posicao][0] = x;
            Radar[tempId][Radar_Posicao][1] = y;
            Radar[tempId][Radar_Posicao][2] = z;
            Radar[tempId][Radar_Posicao][3] = rx;
            Radar[tempId][Radar_Posicao][4] = ry;
            Radar[tempId][Radar_Posicao][5] = rz;
            Radar[tempId][Radar_Velocidade] = playerRadar[playerid][playerRadar_Velocidade];

            loadRadar(tempId);      // Carregar no mundo
            playerRadar[playerid][playerRadar_Type] = 0;
        }
    }
    return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {

    switch(dialogid)
    {
        case DIALOG_RADAR:
        {
            new tempValue;
            if(sscanf(inputtext, "d", tempValue)) return SendClientMessage(playerid, -1, "Coloque apenas números");
            if(tempValue < 1) return SendClientMessage(playerid, -1, "Coloque apenas números acima de 0");

            playerRadar[playerid][playerRadar_Velocidade] = tempValue;

            new Float:tempPosicao[4];
            GetPlayerPos(playerid, tempPosicao[0], tempPosicao[1], tempPosicao[2]);
            GetPlayerFacingAngle(playerid, tempPosicao[3]);

            playerRadar[playerid][playerRadar_Objeto] = CreateDynamicObject(18880, X, Y, Z, 0.00000, 0.00000, R);
            EditDynamicObject(playerid, playerRadar[playerid][playerRadar_Objeto]);
        }
    }
    return true;
}



/*

                    .oooooo..o ooooooooooooo   .oooooo.     .oooooo.   oooo    oooo  .oooooo..o
                    d8P'    `Y8 8'   888   `8  d8P'  `Y8b   d8P'  `Y8b  `888   .8P'  d8P'    `Y8
                    Y88bo.           888      888      888 888           888  d8'    Y88bo.     
                    `"Y8888o.       888      888      888 888           88888[       `"Y8888o. 
                        `"Y88b      888      888      888 888           888`88b.         `"Y88b
                    oo     .d8P      888      `88b    d88' `88b    ooo   888  `88b.  oo     .d8P
                    8""88888P'      o888o      `Y8bood8P'   `Y8bood8P'  o888o  o888o 8""88888P' 

*/

stock VelocidadeDoVeiculo(vehicleid) {
    new Float:xPos[3];
    GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]);
    return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
}

stock loadRadar(radarId) {

    format(tempString, sizeof tempString, "{FFFFFF}RADAR - {43ff1e}Limite:{f5ff3a}%d KM/H", Radar[radarId][Radar_Velocidade]);
    Radar[radarId][Radar_Texto] = CreateDynamic3DTextLabel(tempString, -1, Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2] + 3, 80.0, 0);
    Radar[radarId][Radar_MapIcon] = CreateDynamicMapIcon(Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2], 34, -1);
    Radar[radarId][Radar_Objeto] = CreateDynamicObject(18880, Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2], Radar[radarId][Radar_Posicao][3], Radar[radarId][Radar_Posicao][4], Radar[radarId][Radar_Posicao][5]);
   
    Radar[radarId][Radar_Set] = true;
    return true;
}



/*

                    ooooooooo.   ooooo     ooo oooooooooo.  ooooo        ooooo   .oooooo.  
                    `888   `Y88. `888'     `8' `888'   `Y8b `888'        `888'  d8P'  `Y8b 
                    888   .d88'  888       8   888     888  888          888  888         
                    888ooo88P'   888       8   888oooo888'  888          888  888         
                    888          888       8   888    `88b  888          888  888         
                    888          `88.    .8'   888    .88P  888       o  888  `88b    ooo 
                    o888o           `YbodP'    o888bood8P'  o888ooooood8 o888o  `Y8bood8P' 

*/

public VerificarRadares(playerid) {
    new File[200];
   
    if(!IsPlayerInAnyVehicle(playerid))
        return KillTimer(Timer[playerid]);
   
    for(new i = 0; i < MAX_RADAR; i++) {

        if(Radar[i][Radar_Set] == false) continue;
        if(!IsPlayerInRangeOfPoint(playerid, 20.0, Radar[i][Radar_Posicao][0], Radar[i][Radar_Posicao][1], Radar[i][Radar_Posicao][2])) continue;
        if(GetPVarInt(playerid, "delayRadar") > gettime()) break;

        if(VelocidadeDoVeiculo(GetPlayerVehicleID(playerid)) > Radar[i][Radar_Velocidade]) {
            SendClientMessage(playerid, -1, "Voce Levou Uma Multa");
            GameTextForPlayer(playerid, "~r~Multa", 5000, 5);
        }
       
        SetPVarInt(playerid, "delayRadar", gettime() + 5);      // 5 Segundos de Delay
        break;
    }
    return true;
}



/*

                    .oooooo.     .oooooo.   ooo        ooooo       .o.       ooooo      ooo oooooooooo.     .oooooo.    .oooooo..o
                    d8P'  `Y8b   d8P'  `Y8b  `88.       .888'      .888.      `888b.     `8' `888'   `Y8b   d8P'  `Y8b  d8P'    `Y8
                    888          888      888  888b     d'888      .8"888.      8 `88b.    8   888      888 888      888 Y88bo.     
                    888          888      888  8 Y88. .P  888     .8' `888.     8   `88b.  8   888      888 888      888  `"Y8888o. 
                    888          888      888  8  `888'   888    .88ooo8888.    8     `88b.8   888      888 888      888      `"Y88b
                    `88b    ooo  `88b    d88'  8    Y     888   .8'     `888.   8       `888   888     d88' `88b    d88' oo     .d8P
                    `Y8bood8P'   `Y8bood8P'  o8o        o888o o88o     o8888o o8o        `8  o888bood8P'    `Y8bood8P'  8""88888P' 

*/

CMD:criarradar(playerid, params[]) {

    if(playerRadar[playerid][playerRadar_Type] > 0)
        return SendClientMessage(playerid, -1, "Você já está criando um radar");

    ShowPlayerDialog(playerid, DIALOG_RADAR, DIALOG_STYLE_MSGBOX, "Velocidade", "Informe a velocidade do veículo", "Confirmar", "Fechar");
    return true;
}



RE: ajuda no meu codigo - LOS_SANTOS - 07/01/2024

(07/01/2024 20:37)blueN Escreveu: Tá na mão meu amigo, código todo rescrito, marcha no projeto agora pai.
Enjoy Smile

Código:
#include <a_samp>
#include <zcmd>
#include <DOF2>
#include <sscanf2>
#include <streamer>

#define         MAX_RADAR       (500)
#define         DIALOG_RADAR    (1572)

enum Radar_Enum {
    bool:Radar_Set,
    Radar_Objeto,
    Radar_MapIcon,
    Radar_Velocidade,
    Text3D:Radar_Texto,
    Float:Radar_Posicao[3]
};

new Radar[MAX_RADAR][Radar_Enum];

enum playerRadar_Enum {
    playerRadar_Timer,
    playerRadar_Type,
    playerRadar_Objeto,
    playerRadar_Velocidade
};

new playerRadar[MAX_PLAYERS][playerRadar_Enum];

forward VerificarRadares(playerid);

public OnGameModeInit() {
   
    new
        tempString[200];

    for(new i = 0; i < MAX_RADAR; i++) {

        format(tempString, sizeof(tempString), "Radares/Rada%d.ini", i);
        if(!DOF2_FileExists(tempString)) continue;

        Radar[i][Radar_Posicao][0] = DOF2_GetFloat(tempString, "RadaX");
        Radar[i][Radar_Posicao][1] = DOF2_GetFloat(tempString, "RadaY");
        Radar[i][Radar_Posicao][2] = DOF2_GetFloat(tempString, "RadaZ");
        Radar[i][Radar_Posicao][3] = DOF2_GetFloat(tempString, "RadaRX");
        Radar[i][Radar_Posicao][4] = DOF2_GetFloat(tempString, "RadaRY");
        Radar[i][Radar_Posicao][5] = DOF2_GetFloat(tempString, "RadaRZ");
        Radar[i][Radar_Velocidade] = DOF2_GetInt(tempString, "Velocidade");
       
        loadRadar(i);
    }
    return true;
}

public OnGameModeExit()
    return (DOF2_Exit());

public OnPlayerDisconnect(playerid, reason) {

    KillTimer(playerRadar[playerid][playerRadar_Timer]);
    DestroyDynamicObject(playerRadar[playerid][playerRadar_Objeto]);

    new dsaa[playerRadar_Enum];
    playerRadar[playerid] = dsaa;
    return true;
}

public OnPlayerStateChange(playerid, newstate, oldstate) {

    switch(newstate)
    {
        case PLAYER_STATE_DRIVER:
        {
            playerRadar[playerid][playerRadar_Timer] = SetTimerEx("VerificarRadares", 100, true, "i", playerid);
        }
    }
    return true;
}

public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) {
   
    if(playerRadar[playerid][playerRadar_Type] != 1)
        return true;

    switch(response) {
        case EDIT_RESPONSE_FINAL, EDIT_RESPONSE_CANCEL: DestroyDynamicObject(playerRadar[playerid][playerRadar_Objeto]);
    }

    switch(response)
    {
        case EDIT_RESPONSE_FINAL:
        {
            new tempId = -1;

            for(new i = 0; i < MAX_RADAR; i++) {
                if(Radar[i][Radar_Set] == true) continue;
                tempId = i;
                break;
            }

            if(tempId == -1) return SendClientMessage(playerid, -1, "Servidor não suporta mais radares");

            format(File, sizeof(File), "Radares/Rada%d.ini", tempId);
            if(DOF2_FileExists(File)) return SendClientMessage(playerid, -1, "Houve uma falha na criação");

            /*          DOF2 Config          */
            DOF2_CreateFile(File);
            DOF2_SetFloat(File, "RadaX", x);
            DOF2_SetFloat(File, "RadaY", y);
            DOF2_SetFloat(File, "RadaZ", z);
            DOF2_SetFloat(File, "RadaRX", rx);
            DOF2_SetFloat(File, "RadaRY", ry);
            DOF2_SetFloat(File, "RadaRZ", rz);
            DOF2_SetInt(File, "Velocidade", playerRadar[playerid][playerRadar_Velocidade]);
            DOF2_SaveFile();

            /*          Server Config        */
            Radar[tempId][Radar_Posicao][0] = x;
            Radar[tempId][Radar_Posicao][1] = y;
            Radar[tempId][Radar_Posicao][2] = z;
            Radar[tempId][Radar_Posicao][3] = rx;
            Radar[tempId][Radar_Posicao][4] = ry;
            Radar[tempId][Radar_Posicao][5] = rz;
            Radar[tempId][Radar_Velocidade] = playerRadar[playerid][playerRadar_Velocidade];

            loadRadar(tempId);      // Carregar no mundo
            playerRadar[playerid][playerRadar_Type] = 0;
        }
    }
    return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {

    switch(dialogid)
    {
        case DIALOG_RADAR:
        {
            new tempValue;
            if(sscanf(inputtext, "d", tempValue)) return SendClientMessage(playerid, -1, "Coloque apenas números");
            if(tempValue < 1) return SendClientMessage(playerid, -1, "Coloque apenas números acima de 0");

            playerRadar[playerid][playerRadar_Velocidade] = tempValue;

            new Float:tempPosicao[4];
            GetPlayerPos(playerid, tempPosicao[0], tempPosicao[1], tempPosicao[2]);
            GetPlayerFacingAngle(playerid, tempPosicao[3]);

            playerRadar[playerid][playerRadar_Objeto] = CreateDynamicObject(18880, X, Y, Z, 0.00000, 0.00000, R);
            EditDynamicObject(playerid, playerRadar[playerid][playerRadar_Objeto]);
        }
    }
    return true;
}



/*

                    .oooooo..o ooooooooooooo   .oooooo.     .oooooo.   oooo    oooo  .oooooo..o
                    d8P'    `Y8 8'   888   `8  d8P'  `Y8b   d8P'  `Y8b  `888   .8P'  d8P'    `Y8
                    Y88bo.           888      888      888 888           888  d8'    Y88bo.     
                    `"Y8888o.       888      888      888 888           88888[       `"Y8888o. 
                        `"Y88b      888      888      888 888           888`88b.         `"Y88b
                    oo     .d8P      888      `88b    d88' `88b    ooo   888  `88b.  oo     .d8P
                    8""88888P'      o888o      `Y8bood8P'   `Y8bood8P'  o888o  o888o 8""88888P' 

*/

stock VelocidadeDoVeiculo(vehicleid) {
    new Float:xPos[3];
    GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]);
    return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
}

stock loadRadar(radarId) {

    format(tempString, sizeof tempString, "{FFFFFF}RADAR - {43ff1e}Limite:{f5ff3a}%d KM/H", Radar[radarId][Radar_Velocidade]);
    Radar[radarId][Radar_Texto] = CreateDynamic3DTextLabel(tempString, -1, Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2] + 3, 80.0, 0);
    Radar[radarId][Radar_MapIcon] = CreateDynamicMapIcon(Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2], 34, -1);
    Radar[radarId][Radar_Objeto] = CreateDynamicObject(18880, Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2], Radar[radarId][Radar_Posicao][3], Radar[radarId][Radar_Posicao][4], Radar[radarId][Radar_Posicao][5]);
   
    Radar[radarId][Radar_Set] = true;
    return true;
}



/*

                    ooooooooo.   ooooo     ooo oooooooooo.  ooooo        ooooo   .oooooo.  
                    `888   `Y88. `888'     `8' `888'   `Y8b `888'        `888'  d8P'  `Y8b 
                    888   .d88'  888       8   888     888  888          888  888         
                    888ooo88P'   888       8   888oooo888'  888          888  888         
                    888          888       8   888    `88b  888          888  888         
                    888          `88.    .8'   888    .88P  888       o  888  `88b    ooo 
                    o888o           `YbodP'    o888bood8P'  o888ooooood8 o888o  `Y8bood8P' 

*/

public VerificarRadares(playerid) {
    new File[200];
   
    if(!IsPlayerInAnyVehicle(playerid))
        return KillTimer(Timer[playerid]);
   
    for(new i = 0; i < MAX_RADAR; i++) {

        if(Radar[i][Radar_Set] == false) continue;
        if(!IsPlayerInRangeOfPoint(playerid, 20.0, Radar[i][Radar_Posicao][0], Radar[i][Radar_Posicao][1], Radar[i][Radar_Posicao][2])) continue;
        if(GetPVarInt(playerid, "delayRadar") > gettime()) break;

        if(VelocidadeDoVeiculo(GetPlayerVehicleID(playerid)) > Radar[i][Radar_Velocidade]) {
            SendClientMessage(playerid, -1, "Voce Levou Uma Multa");
            GameTextForPlayer(playerid, "~r~Multa", 5000, 5);
        }
       
        SetPVarInt(playerid, "delayRadar", gettime() + 5);      // 5 Segundos de Delay
        break;
    }
    return true;
}



/*

                    .oooooo.     .oooooo.   ooo        ooooo       .o.       ooooo      ooo oooooooooo.     .oooooo.    .oooooo..o
                    d8P'  `Y8b   d8P'  `Y8b  `88.       .888'      .888.      `888b.     `8' `888'   `Y8b   d8P'  `Y8b  d8P'    `Y8
                    888          888      888  888b     d'888      .8"888.      8 `88b.    8   888      888 888      888 Y88bo.     
                    888          888      888  8 Y88. .P  888     .8' `888.     8   `88b.  8   888      888 888      888  `"Y8888o. 
                    888          888      888  8  `888'   888    .88ooo8888.    8     `88b.8   888      888 888      888      `"Y88b
                    `88b    ooo  `88b    d88'  8    Y     888   .8'     `888.   8       `888   888     d88' `88b    d88' oo     .d8P
                    `Y8bood8P'   `Y8bood8P'  o8o        o888o o88o     o8888o o8o        `8  o888bood8P'    `Y8bood8P'  8""88888P' 

*/

CMD:criarradar(playerid, params[]) {

    if(playerRadar[playerid][playerRadar_Type] > 0)
        return SendClientMessage(playerid, -1, "Você já está criando um radar");

    ShowPlayerDialog(playerid, DIALOG_RADAR, DIALOG_STYLE_MSGBOX, "Velocidade", "Informe a velocidade do veículo", "Confirmar", "Fechar");
    return true;
}

eita mano vei quando fui complilar deu esses erros sabe dizer o pode ser ?

C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(45) : error 032: array index out of bounds (variable "Radar")
C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(46) : error 032: array index out of bounds (variable "Radar")
C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(47) : error 032: array index out of bounds (variable "Radar")
C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(56) : warning 209: function "DOF2_Exit" should return a value
C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(103) : error 017: undefined symbol "File"
C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(103) : error 017: undefined symbol "File"
C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(103) : error 029: invalid expression, assumed zero
C:\Users\andre\OneDrive\Área de Trabalho\[GM]ANDRESANTOS\filterscripts\radar.pwn(103) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


7 Errors.


RE: ajuda no meu codigo - blueN - 08/01/2024

Correção, testa ai e me retorna depois ^^

Código:
#include <a_samp>
#include <zcmd>
#include <DOF2>
#include <sscanf2>
#include <streamer>

#define         MAX_RADAR       (500)
#define         DIALOG_RADAR    (1572)

enum Radar_Enum {
    bool:Radar_Set,
    Radar_Objeto,
    Radar_MapIcon,
    Radar_Velocidade,
    Text3D:Radar_Texto,
    Float:Radar_Posicao[6]
};

new Radar[MAX_RADAR][Radar_Enum];

enum playerRadar_Enum {
    playerRadar_Timer,
    playerRadar_Type,
    playerRadar_Objeto,
    playerRadar_Velocidade
};

new playerRadar[MAX_PLAYERS][playerRadar_Enum];

forward VerificarRadares(playerid);

public OnGameModeInit() {
   
    new
        tempString[200];

    for(new i = 0; i < MAX_RADAR; i++) {

        format(tempString, sizeof(tempString), "Radares/Rada%d.ini", i);
        if(!DOF2_FileExists(tempString)) continue;

        Radar[i][Radar_Posicao][0] = DOF2_GetFloat(tempString, "RadaX");
        Radar[i][Radar_Posicao][1] = DOF2_GetFloat(tempString, "RadaY");
        Radar[i][Radar_Posicao][2] = DOF2_GetFloat(tempString, "RadaZ");
        Radar[i][Radar_Posicao][3] = DOF2_GetFloat(tempString, "RadaRX");
        Radar[i][Radar_Posicao][4] = DOF2_GetFloat(tempString, "RadaRY");
        Radar[i][Radar_Posicao][5] = DOF2_GetFloat(tempString, "RadaRZ");
        Radar[i][Radar_Velocidade] = DOF2_GetInt(tempString, "Velocidade");
       
        loadRadar(i);
    }
    return true;
}

public OnGameModeExit() {
    DOF2_Exit();
    return true;
}

public OnPlayerDisconnect(playerid, reason) {

    KillTimer(playerRadar[playerid][playerRadar_Timer]);
    DestroyDynamicObject(playerRadar[playerid][playerRadar_Objeto]);

    new dsaa[playerRadar_Enum];
    playerRadar[playerid] = dsaa;
    return true;
}

public OnPlayerStateChange(playerid, newstate, oldstate) {

    switch(newstate)
    {
        case PLAYER_STATE_DRIVER:
        {
            playerRadar[playerid][playerRadar_Timer] = SetTimerEx("VerificarRadares", 100, true, "i", playerid);
        }
    }
    return true;
}

public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) {
   
    if(playerRadar[playerid][playerRadar_Type] != 1)
        return true;

    switch(response) {
        case EDIT_RESPONSE_FINAL, EDIT_RESPONSE_CANCEL: DestroyDynamicObject(playerRadar[playerid][playerRadar_Objeto]);
    }

    switch(response)
    {
        case EDIT_RESPONSE_FINAL:
        {
            new tempId = -1;

            for(new i = 0; i < MAX_RADAR; i++) {
                if(Radar[i][Radar_Set] == true) continue;
                tempId = i;
                break;
            }

            if(tempId == -1) return SendClientMessage(playerid, -1, "Servidor não suporta mais radares");

            new File[100];
            format(File, sizeof(File), "Radares/Rada%d.ini", tempId);
            if(DOF2_FileExists(File)) return SendClientMessage(playerid, -1, "Houve uma falha na criação");

            /*          DOF2 Config          */
            DOF2_CreateFile(File);
            DOF2_SetFloat(File, "RadaX", x);
            DOF2_SetFloat(File, "RadaY", y);
            DOF2_SetFloat(File, "RadaZ", z);
            DOF2_SetFloat(File, "RadaRX", rx);
            DOF2_SetFloat(File, "RadaRY", ry);
            DOF2_SetFloat(File, "RadaRZ", rz);
            DOF2_SetInt(File, "Velocidade", playerRadar[playerid][playerRadar_Velocidade]);
            DOF2_SaveFile();

            /*          Server Config        */
            Radar[tempId][Radar_Posicao][0] = x;
            Radar[tempId][Radar_Posicao][1] = y;
            Radar[tempId][Radar_Posicao][2] = z;
            Radar[tempId][Radar_Posicao][3] = rx;
            Radar[tempId][Radar_Posicao][4] = ry;
            Radar[tempId][Radar_Posicao][5] = rz;
            Radar[tempId][Radar_Velocidade] = playerRadar[playerid][playerRadar_Velocidade];

            loadRadar(tempId);      // Carregar no mundo
            playerRadar[playerid][playerRadar_Type] = 0;
        }
    }
    return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {

    switch(dialogid)
    {
        case DIALOG_RADAR:
        {
            new tempValue;
            if(sscanf(inputtext, "d", tempValue)) return SendClientMessage(playerid, -1, "Coloque apenas números");
            if(tempValue < 1) return SendClientMessage(playerid, -1, "Coloque apenas números acima de 0");

            playerRadar[playerid][playerRadar_Velocidade] = tempValue;

            new Float:tempPosicao[4];
            GetPlayerPos(playerid, tempPosicao[0], tempPosicao[1], tempPosicao[2]);
            GetPlayerFacingAngle(playerid, tempPosicao[3]);

            playerRadar[playerid][playerRadar_Objeto] = CreateDynamicObject(18880, X, Y, Z, 0.00000, 0.00000, R);
            EditDynamicObject(playerid, playerRadar[playerid][playerRadar_Objeto]);
        }
    }
    return true;
}



/*

                    .oooooo..o ooooooooooooo   .oooooo.     .oooooo.   oooo    oooo  .oooooo..o
                    d8P'    `Y8 8'   888   `8  d8P'  `Y8b   d8P'  `Y8b  `888   .8P'  d8P'    `Y8
                    Y88bo.           888      888      888 888           888  d8'    Y88bo.     
                    `"Y8888o.       888      888      888 888           88888[       `"Y8888o.
                        `"Y88b      888      888      888 888           888`88b.         `"Y88b
                    oo     .d8P      888      `88b    d88' `88b    ooo   888  `88b.  oo     .d8P
                    8""88888P'      o888o      `Y8bood8P'   `Y8bood8P'  o888o  o888o 8""88888P'

*/

stock VelocidadeDoVeiculo(vehicleid) {
    new Float:xPos[3];
    GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]);
    return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00);
}

stock loadRadar(radarId) {

    format(tempString, sizeof tempString, "{FFFFFF}RADAR - {43ff1e}Limite:{f5ff3a}%d KM/H", Radar[radarId][Radar_Velocidade]);
    Radar[radarId][Radar_Texto] = CreateDynamic3DTextLabel(tempString, -1, Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2] + 3, 80.0, 0);
    Radar[radarId][Radar_MapIcon] = CreateDynamicMapIcon(Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2], 34, -1);
    Radar[radarId][Radar_Objeto] = CreateDynamicObject(18880, Radar[radarId][Radar_Posicao][0], Radar[radarId][Radar_Posicao][1], Radar[radarId][Radar_Posicao][2], Radar[radarId][Radar_Posicao][3], Radar[radarId][Radar_Posicao][4], Radar[radarId][Radar_Posicao][5]);
   
    Radar[radarId][Radar_Set] = true;
    return true;
}



/*

                    ooooooooo.   ooooo     ooo oooooooooo.  ooooo        ooooo   .oooooo. 
                    `888   `Y88. `888'     `8' `888'   `Y8b `888'        `888'  d8P'  `Y8b
                    888   .d88'  888       8   888     888  888          888  888         
                    888ooo88P'   888       8   888oooo888'  888          888  888         
                    888          888       8   888    `88b  888          888  888         
                    888          `88.    .8'   888    .88P  888       o  888  `88b    ooo
                    o888o           `YbodP'    o888bood8P'  o888ooooood8 o888o  `Y8bood8P'

*/

public VerificarRadares(playerid) {
    new File[200];
   
    if(!IsPlayerInAnyVehicle(playerid))
        return KillTimer(playerRadar[playerid][playerRadar_Timer]);
   
    for(new i = 0; i < MAX_RADAR; i++) {

        if(Radar[i][Radar_Set] == false) continue;
        if(!IsPlayerInRangeOfPoint(playerid, 20.0, Radar[i][Radar_Posicao][0], Radar[i][Radar_Posicao][1], Radar[i][Radar_Posicao][2])) continue;
        if(GetPVarInt(playerid, "delayRadar") > gettime()) break;

        if(VelocidadeDoVeiculo(GetPlayerVehicleID(playerid)) > Radar[i][Radar_Velocidade]) {
            SendClientMessage(playerid, -1, "Voce Levou Uma Multa");
            GameTextForPlayer(playerid, "~r~Multa", 5000, 5);
        }
       
        SetPVarInt(playerid, "delayRadar", gettime() + 5);      // 5 Segundos de Delay
        break;
    }
    return true;
}



/*

                    .oooooo.     .oooooo.   ooo        ooooo       .o.       ooooo      ooo oooooooooo.     .oooooo.    .oooooo..o
                    d8P'  `Y8b   d8P'  `Y8b  `88.       .888'      .888.      `888b.     `8' `888'   `Y8b   d8P'  `Y8b  d8P'    `Y8
                    888          888      888  888b     d'888      .8"888.      8 `88b.    8   888      888 888      888 Y88bo.     
                    888          888      888  8 Y88. .P  888     .8' `888.     8   `88b.  8   888      888 888      888  `"Y8888o.
                    888          888      888  8  `888'   888    .88ooo8888.    8     `88b.8   888      888 888      888      `"Y88b
                    `88b    ooo  `88b    d88'  8    Y     888   .8'     `888.   8       `888   888     d88' `88b    d88' oo     .d8P
                    `Y8bood8P'   `Y8bood8P'  o8o        o888o o88o     o8888o o8o        `8  o888bood8P'    `Y8bood8P'  8""88888P'

*/

CMD:criarradar(playerid, params[]) {

    if(playerRadar[playerid][playerRadar_Type] > 0)
        return SendClientMessage(playerid, -1, "Você já está criando um radar");

    ShowPlayerDialog(playerid, DIALOG_RADAR, DIALOG_STYLE_MSGBOX, "Velocidade", "Informe a velocidade do veículo", "Confirmar", "Fechar");
    return true;
}