Jump to content

Recommended Posts

Posted

Buna ziua, am tot cautat zilele aceastea comanda /startradar dar peste tot doar cerere de help. nimeni cu comanda sigura.

Mai jos aveti comanda [/startradar / /stopradar] complet functionala, doar copy / paste . In cazul in care apar variabile ne define doar cautati in GM vostru si schimbati variabila nedefinita cu cea definita la voi.

Exemplu: daca in comanda este pUsername => iar voi aveti variabila pName, doar adaugati in loc de Username => Name.

Succes!! 

Poze : https://imgur.com/a/VGaNlKm

Pastebin: https://pastebin.com/XLh4cZgR

 

Daca va ajutat un +1! Multumesc ❤️ 

Posted (edited)

mai bine faci să se stingă când găsește pe cineva și să îți pună checkpoint pe el

 

si timer ul ăla merge non stop, mai bine faci unul să meargă doar când folosești comanda 

Edited by nobilzeus
  • 1 year later...
Posted
enum e_RadarData {
    bool:rOn,
    rLimit
}
new RadarData[MAX_PLAYERS][e_RadarData];
new Iterator:RadarsOn<MAX_PLAYERS>; 
new pickuptimer; 
 
public OnGameModeInit()
{
    pickuptimer = SetTimer("CustomPickups", 1000, true);
    return 1;
}
 
public OnGameModeExit()
{
    KillTimer(pickuptimer);
    return 1;
}
 
CMD:startradar(playerid, params[]) {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Nu faci parte din departament.");
    if(OnDuty[playerid] != 1) return SendClientMessage(playerid, COLOR_LGREEN, "Eroare: Nu esti la datorie!");
    if(!Copcar2(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_GREY, "Nu esti intr-o masina a factiunii.");
    if(RadarData[playerid][rOn]) return SendClientMessage(playerid, -1, "Ai deja activat radaru.");
    
    new viteza;
    if(sscanf(params, "d", viteza)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: {FFFFFF}/startradar <Speed Limit>");
    if(viteza > 200 || viteza < 40) return SendClientMessage(playerid, -1, "Viteza invalida (40-200).");
    
    RadarData[playerid][rOn] = true;
    RadarData[playerid][rLimit] = viteza;
    Iter_Add(RadarsOn, playerid);
    
    TogglePlayerControllable(playerid, 0);
    
    new string[64];
    format(string, sizeof(string), "Ai activat radarul. Viteza maxima: %d KM/H.", viteza);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    return 1;
}
 
CMD:stopradar(playerid, params[]) {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Nu faci parte din 専用 politiei.");
    if(!RadarData[playerid][rOn]) return SendClientMessage(playerid, COLOR_GREY, "Nu ai radarul activ.");
    
    RadarData[playerid][rOn] = false;
    RadarData[playerid][rLimit] = 0;
    Iter_Remove(RadarsOn, playerid);
    
    TogglePlayerControllable(playerid, 1);
    SendClientMessage(playerid, COLOR_YELLOW, "Ai dezactivat radarul!");
    return 1;
}
 
forward CustomPickups();
public CustomPickups() {
    if(Iter_Count(RadarsOn) == 0) return 1;

    new Float:pX, Float:pY, Float:pZ;
    new targetName[MAX_PLAYER_NAME], copName[MAX_PLAYER_NAME], msg[144];

    foreach(new o : Player) 
    {
        if(GetPlayerState(o) != PLAYER_STATE_DRIVER || OnDuty[o] == 1) continue;

        new viteza = Carspeed1(o);
        GetPlayerPos(o, pX, pY, pZ);

        foreach(new i : RadarsOn) 
        {
            if(viteza <= RadarData[i][rLimit]) continue;

            if(IsPlayerInRangeOfPoint(i, 30.0, pX, pY, pZ)) 
            {
                GetPlayerName(o, targetName, sizeof(targetName));
                GetPlayerName(i, copName, sizeof(copName));

                format(msg, sizeof(msg), "{FF0000}[RADAR] %s[ID:%d] conduce cu {FF0000}%d km/h, Locatie: %s, Limita: %d km/h!", targetName, o, viteza, GetPlayerZone(o), RadarData[i][rLimit]);
                SendClientMessage(i, COLOR_LIGHTBLUE, msg);

                format(msg, sizeof(msg), "{FF0000}[RADAR] Ai fost surprins de %s conducand cu {FF0000}%d km/h. Limita: %d km/h.", copName, viteza, RadarData[i][rLimit]);
                SendClientMessage(o, COLOR_YELLOW, msg);
                break; 
            }
        }
    }
    return 1;
}

 

Posted
enum e_RadarData {
    bool:rOn,
    rLimit,
    rAreaId
}
new 
    RadarData[MAX_PLAYERS][e_RadarData],
    Iterator:RadarsOn<MAX_PLAYERS>;

public OnGameModeExit() {
    foreach(new i : RadarsOn) {
        if(IsValidDynamicArea(RadarData[i][rAreaId])) {
            DestroyDynamicArea(RadarData[i][rAreaId]);
        }
    }
    Iter_Clear(RadarsOn);
    return 1;
}

public OnPlayerDisconnect(playerid, reason) {
    if(RadarData[playerid][rOn]) {
        if(IsValidDynamicArea(RadarData[playerid][rAreaId])) {
            DestroyDynamicArea(RadarData[playerid][rAreaId]);
        }
        RadarData[playerid][rOn] = false;
        RadarData[playerid][rAreaId] = INVALID_STREAMER_ID;
        
        Iter_Remove(RadarsOn, playerid);
    }
    return 1;
}

CMD:startradar(playerid, params[]) {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Nu faci parte din departament.");
    if(OnDuty[playerid] != 1) return SendClientMessage(playerid, COLOR_LGREEN, "Eroare: Nu esti la datorie!");
    
    new vehicleid = GetPlayerVehicleID(playerid);
    if(!Copcar2(vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "Nu esti intr-o masina a factiunii.");
    if(RadarData[playerid][rOn]) return SendClientMessage(playerid, -1, "Ai deja activat radaru.");
    
    new viteza;
    if(sscanf(params, "d", viteza)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: {FFFFFF}/startradar <Speed Limit>");
    if(viteza > 200 || viteza < 40) return SendClientMessage(playerid, -1, "Viteza invalida (40-200).");
    
    new Float:cX, Float:cY, Float:cZ, Float:cAngle;
    GetVehiclePos(vehicleid, cX, cY, cZ);
    GetVehicleZAngle(vehicleid, cAngle);

    new Float:rad = (360.0 - cAngle) * 0.0174532925,
        Float:points[8];
    
    points[0] = cX; points[1] = cY; 
    
    points[2] = cX + (45.0 * floatcos(rad + 0.15, degrees)); 
    points[3] = cY + (45.0 * floatsin(rad + 0.15, degrees));
    
    points[4] = cX + (45.0 * floatcos(rad - 0.15, degrees)); 
    points[5] = cY + (45.0 * floatsin(rad - 0.15, degrees));
    
    points[6] = cX; points[7] = cY;

    new areaid = CreateDynamicPolygon(points, cZ - 2.0, cZ + 5.0, 4);
    
    Streamer_SetIntData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID, playerid);

    RadarData[playerid][rOn] = true;
    RadarData[playerid][rLimit] = viteza;
    RadarData[playerid][rAreaId] = areaid;
    
    Iter_Add(RadarsOn, playerid);
    
    TogglePlayerControllable(playerid, 0);
    
    new string[64];
    format(string, sizeof(string), "Ai activat radarul. Viteza maxima: %d KM/H.", viteza);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    return 1;
}
 
CMD:stopradar(playerid, params[]) {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Nu faci parte din politie.");
    if(!RadarData[playerid][rOn]) return SendClientMessage(playerid, COLOR_GREY, "Nu ai radarul activ.");
    
    if(IsValidDynamicArea(RadarData[playerid][rAreaId])) {
        DestroyDynamicArea(RadarData[playerid][rAreaId]);
    }

    RadarData[playerid][rOn] = false;
    RadarData[playerid][rLimit] = 0;
    RadarData[playerid][rAreaId] = INVALID_STREAMER_ID;
    
    Iter_Remove(RadarsOn, playerid);
    
    TogglePlayerControllable(playerid, 1);
    SendClientMessage(playerid, COLOR_YELLOW, "Ai dezactivat radarul!");
    return 1;
}

public OnPlayerEnterDynamicArea(playerid, areaid) {
    new copid = Streamer_GetIntData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID);

    if(IsPlayerConnected(copid) && RadarData[copid][rOn] && RadarData[copid][rAreaId] == areaid) 
    {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && OnDuty[playerid] != 1) 
        {
            new viteza = Carspeed1(playerid);

            if(viteza > RadarData[copid][rLimit]) 
            {
                new targetName[MAX_PLAYER_NAME], copName[MAX_PLAYER_NAME], msg[144];
                GetPlayerName(playerid, targetName, sizeof(targetName));
                GetPlayerName(copid, copName, sizeof(copName));

                format(msg, sizeof(msg), "{FF0000}[RADAR] %s[ID:%d] conduce cu {FF0000}%d km/h, Locatie: %s, Limita: %d km/h!", targetName, playerid, viteza, GetPlayerZone(playerid), RadarData[copid][rLimit]);
                SendClientMessage(copid, COLOR_LIGHTBLUE, msg);

                format(msg, sizeof(msg), "{FF0000}[RADAR] Ai fost surprins de %s conducand cu {FF0000}%d km/h. Limita: %d km/h.", copName, viteza, RadarData[copid][rLimit]);
                SendClientMessage(playerid, COLOR_YELLOW, msg);
            }
        }
    }
    return 1;
}

cred ca e mai ok asa

Posted
enum e_RadarData {
    bool:rOn,
    rLimit,
    rAreaId
}
new RadarData[MAX_PLAYERS][e_RadarData];
new Iterator:RadarsOn<MAX_PLAYERS>;

#define RADAR_STREAMER_IDENTIFIER 999 

public OnGameModeExit() {
    foreach(new i : RadarsOn) {
        ResetPlayerRadar(i);
    }
    Iter_Clear(RadarsOn);
    return 1;
}

public OnPlayerDisconnect(playerid, reason) {
    if(RadarData[playerid][rOn]) {
        ResetPlayerRadar(playerid);
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason) {
    if(RadarData[playerid][rOn]) {
        ResetPlayerRadar(playerid);
        SendClientMessage(playerid, COLOR_GREY, "Radarul a fost oprit deoarece ai murit.");
    }
    return 1;
}

stock ResetPlayerRadar(playerid) {
    if(IsValidDynamicArea(RadarData[playerid][rAreaId])) {
        DestroyDynamicArea(RadarData[playerid][rAreaId]);
    }
    RadarData[playerid][rOn] = false;
    RadarData[playerid][rLimit] = 0;
    RadarData[playerid][rAreaId] = INVALID_STREAMER_ID;
    
    Iter_Remove(RadarsOn, playerid);
    TogglePlayerControllable(playerid, 1);
    return 1;
}

CMD:startradar(playerid, params[]) {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Nu faci parte din departament.");
    if(OnDuty[playerid] != 1) return SendClientMessage(playerid, COLOR_LGREEN, "Eroare: Nu esti la datorie!");
    
    new vehicleid = GetPlayerVehicleID(playerid);
    if(!Copcar2(vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "Nu esti intr-o masina a factiunii.");
    if(RadarData[playerid][rOn]) return SendClientMessage(playerid, -1, "Ai deja activat radaru.");
    
    new viteza;
    if(sscanf(params, "d", viteza)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: {FFFFFF}/startradar <Speed Limit>");
    if(viteza > 200 || viteza < 40) return SendClientMessage(playerid, -1, "Viteza invalida (40-200).");
    
    new Float:cX, Float:cY, Float:cZ, Float:cAngle;
    GetVehiclePos(vehicleid, cX, cY, cZ);
    GetVehicleZAngle(vehicleid, cAngle);

    new Float:rad = (90.0 - cAngle) * 0.0174532925; 
    new Float:points[8];
    
    points[0] = cX; points[1] = cY; 
    
    points[2] = cX + (45.0 * floatcos(rad + 0.15)); 
    points[3] = cY + (45.0 * floatsin(rad + 0.15));
    
    points[4] = cX + (45.0 * floatcos(rad - 0.15)); 
    points[5] = cY + (45.0 * floatsin(rad - 0.15));
    
    points[6] = cX; points[7] = cY;

    new areaid = CreateDynamicPolygon(points, cZ - 3.0, cZ + 6.0, 4);
    
    Streamer_SetIntData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID, playerid + RADAR_STREAMER_IDENTIFIER);

    RadarData[playerid][rOn] = true;
    RadarData[playerid][rLimit] = viteza;
    RadarData[playerid][rAreaId] = areaid;
    
    Iter_Add(RadarsOn, playerid);
    
    TogglePlayerControllable(playerid, 0);
    
    new string[64];
    format(string, sizeof(string), "Ai activat radarul. Viteza maxima: %d KM/H.", viteza);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    return 1;
}
 
CMD:stopradar(playerid, params[]) {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Nu faci parte din politie.");
    if(!RadarData[playerid][rOn]) return SendClientMessage(playerid, COLOR_GREY, "Nu ai radarul activ.");
    
    ResetPlayerRadar(playerid);
    SendClientMessage(playerid, COLOR_YELLOW, "Ai dezactivat radarul!");
    return 1;
}

public OnPlayerEnterDynamicArea(playerid, areaid) {
    new extraid = Streamer_GetIntData(STREAMER_TYPE_AREA, areaid, E_STREAMER_EXTRA_ID);
    
    if(extraid >= RADAR_STREAMER_IDENTIFIER) 
    {
        new copid = extraid - RADAR_STREAMER_IDENTIFIER;

        if(IsPlayerConnected(copid) && RadarData[copid][rOn] && RadarData[copid][rAreaId] == areaid) 
        {
            if(playerid != copid && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && OnDuty[playerid] != 1) 
            {
                new viteza = Carspeed1(playerid);

                if(viteza > RadarData[copid][rLimit]) 
                {
                    new targetName[MAX_PLAYER_NAME], copName[MAX_PLAYER_NAME], msg[144];
                    GetPlayerName(playerid, targetName, sizeof(targetName));
                    GetPlayerName(copid, copName, sizeof(copName));

                    format(msg, sizeof(msg), "{FF0000}[RADAR] %s[ID:%d] conduce cu {FFFFFF}%d km/h{FF0000}, Locatie: %s, Limita: %d km/h!", targetName, playerid, viteza, GetPlayerZone(playerid), RadarData[copid][rLimit]);
                    SendClientMessage(copid, COLOR_LIGHTBLUE, msg);

                    format(msg, sizeof(msg), "{FF0000}[RADAR] Ai fost surprins de %s conducand cu {FFFFFF}%d km/h{FF0000}. Limita: %d km/h.", copName, viteza, RadarData[copid][rLimit]);
                    SendClientMessage(playerid, COLOR_YELLOW, msg);
                }
            }
        }
    }
    return 1;
}

Am imbunatatit codul tau, ai avut un bug floatcos/floatsin, eroare de cash

  • Upvote 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.