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

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;
}