Modun Başına:
#define MAX_RADAR (50)
new MySQL:bMysql;
new RadarFlood[MAX_PLAYERS];
new RadarSayisi = 0;
enum radarB
{
radarID,
Float: radarPos[3],
radarHiz
};
new radarData[MAX_RADAR][radarB];
OnGameModeInit publicine
bMysql = mysql_connect(SQL_HOST, SQL_KULLANICI, SQL_SIFRE, SQL_DB);
mysql_tquery(bMysql, "SELECT * FROM `radarlar`", "RadarYukle");//Radarları yükler
RadarSayisi = 0;
OnPlayerConnect publicine
RadarFlood[playerid] = 0;
OnPlayerUpdate publicine
public OnPlayerUpdate(playerid)
{
for(new i; i < MAX_RADAR; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 20.0, radarData[i][radarPos][0], radarData[i][radarPos][1], radarData[i][radarPos][2]))
{
new id = GetPlayerVehicleID(playerid);
if(RadarFlood[playerid] == 0 && IsPlayerInAnyVehicle(playerid) && radarData[i][radarHiz] < GetVehicleSpeed(id))
{
SendClientMessage(playerid, 0x59ACFFFF, "[RADAR]{10F441} Hız limitini aşarak radara yakalandınız. Hesabınızdan 2500 dolar kesildi.");
new RadarM[200], Hiz = radarData[i][radarHiz];
format(RadarM, sizeof(RadarM), "{10F441}[RADAR]{59ACFF} Hızınız: %d - Limit: %d", GetVehicleSpeed(id), Hiz);
SendClientMessage(playerid, 0x10F441FF, RadarM);
RadarFlood[playerid] = 1;
GivePlayerMoney(playerid, -2500);
SetTimerEx("RadarF", 4000, false, "i", playerid);
}
}
}
return true;
}
Boş biryere:
stock GetVehicleSpeed(vehicleid)
{
new Float:Pos[3],Float:ARRAY ;
GetVehicleVelocity(vehicleid, Pos[0], Pos[1], Pos[2]);
ARRAY = floatsqroot(Pos[0]*Pos[0] + Pos[1]*Pos[1] + Pos[2]*Pos[2])*200;
return floatround(ARRAY,floatround_round);
}
forward RadarF(playerid);
public RadarF(playerid)
{
RadarFlood[playerid] = 0;
return 1;
}
forward RadarOlustur(aID, Float: X, Float: Y, Float: Z, Float: N, Hiz);
public RadarOlustur(aID, Float: X, Float: Y, Float: Z, Float: N, Hiz)
{
RadarSayisi++;
radarData[aID][radarID] = aID;
radarData[aID][radarPos][0] = X;
radarData[aID][radarPos][1] = Y;
radarData[aID][radarPos][2] = Z;
radarData[aID][radarHiz] = Hiz;
CreateObject(18880, X, Y, Z-1.3, 0.0, 0.0, N, 150.0);
new query[120];
format(query, sizeof(query), "{33FF33}[Radar - %d]\n{59ACFF}Maximum Hız: {FFFFFF}%d{59ACFF} KM/H", aID, Hiz);
Create3DTextLabel(query, -1, X, Y, Z, 40.0, 0, 0);
return 1;
}
forward RadarYukle();
public RadarYukle()
{
new rows, id, Float: atx, Float: aty, Float: atz, Float: atmN, hizlimit;
cache_get_row_count(rows);
for(new i=0;i<rows;i++)
{
cache_get_value_name_int(i, "radarID", id);
cache_get_value_name_float(i, "radarX", atx);
cache_get_value_name_float(i, "radarY", aty);
cache_get_value_name_float(i, "radarZ", atz);
cache_get_value_name_float(i, "radarN", atmN);
cache_get_value_name_int(i, "hizLimit", hizlimit);
RadarOlustur(id, atx, aty, atz, atmN, hizlimit);
}
return 1;
}
Komutu için :
CMD:radarolustur(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için {FF0033}Rcon Admin{FFFFFF}olmanız gerekiyor.");
new limit;
if(sscanf(params, "d", limit)) return SendClientMessage(playerid, -1, "/radarolustur [Hız-Limit]");
new Float: X, Float: Y, Float: Z, Float: N, rID;
radarData[rID][radarID] = RadarSayisi;
GetPlayerFacingAngle(playerid, N);
GetPlayerPos(playerid, X, Y, Z);
RadarOlustur(RadarSayisi+1, X, Y, Z, N, limit);
new query[200];
format(query, sizeof(query), "INSERT INTO `radarlar` (`radarID`, `radarX`, `radarY`, `radarZ`, `radarN`, `hizLimit`) VALUES (%d, %f, %f, %f, %f, %d)", RadarSayisi+1, X, Y, Z, N, limit);
mysql_query(bMysql, query);
RadarSayisi++;
return 1;
}