Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- #include <sscanf2>
- #include <YSI_Coding\y_timers>
- #define ADMIN_MSG_COLOR 0xFF444499
- public OnPlayerText(playerid, text[])
- {
- // Provjerava da li je igrac mutiran
- if (Player[playerid][Mute] > 0)
- {
- new message[128]; // Deklaracija niza za poruku
- // Formatira poruku koja obavestava igraca o preostalom vremenu mutiranja
- format(message, sizeof(message), "Ne mozete pricati jos %d minut/a. Mutirani ste!", Player[playerid][Mute]);
- // Salje igracu poruku
- SendClientMessage(playerid, -1, message);
- return 0;
- }
- new string[144]; // Deklaracija niza za formatiranu poruku
- // Formatira poruku koja sadrzi ID igraca i tekst koji je poslao
- format(string, sizeof (string), "(%d) %s", playerid, text);
- // Salje formatiranu poruku svim igracima
- SendPlayerMessageToAll(playerid, string);
- // Vracanje 0 ignorise podrazumevani format poruke i salje prilagodjeni umesto toga
- // Vracanje 1 ce rezultirati dupliciranjem poruke, jer ce podrazumevana poruka takodje biti poslana.
- return 0; // Vraca 0 da bi se koristila prilagodjena poruka
- }
- CMD:mute(playerid, params[])
- {
- if (IsPlayerAdmin(playerid)) // Proverava da li je igrac rcon admin
- {
- new target_id, mute_time, mute_reason[21]; // Deklaracija varijabli za ciljanog igraca
- if (sscanf(params, "uds[21]", target_id, mute_time, mute_reason)) // Parsiranje parametara
- return SendClientMessage(playerid, -1, "UPOTREBA: /mute [playerid] [vreme] [razlog]"); // Poruka o pravilnoj upotrebi komande
- //if (IsPlayerAdmin(target_id)) return SendClientMessage(playerid, -1, "Ne mozete mutirati Admina."); // Provera da li je ciljani igrac admin
- if (!IsPlayerConnected(target_id)) return SendClientMessage(playerid, -1, "Korisnik nije online."); // Provera da li je igrac online
- if (Player[target_id][Mute] != 0) return SendClientMessage(playerid, -1, "Korisnik je vec mutiran."); // Provera da li je igrac vec mutiran
- if (target_id != INVALID_PLAYER_ID) // Provera da li je ciljani igrac validan
- {
- new query[128], msg_toall[170]; // Deklaracija varijabli za SQL upit i poruku za sve igrace
- Player[target_id][Mute] = mute_time; // Postavljanje vremena mute-a za ciljanog igraca
- Player[target_id][IsMuted] = 1; // Postavljanje statusa mute-a za ciljanog igraca
- mysql_format(g_SQL, query, sizeof query, // Formiranje SQL upita za azuriranje mute statusa u bazi podataka
- "UPDATE players SET mute = %d, is_muted = 1 WHERE id = %d LIMIT 1", Player[target_id][Mute], Player[target_id][ID]);
- mysql_tquery(g_SQL, query); // Izvrsavanje SQL upita
- format(msg_toall, sizeof(msg_toall), // Formiranje poruke za sve igrace
- "AdmCmd: %s je utisan/a od strane Admina %s. [Razlog: %s, Vreme: %d min.]",
- Player[target_id][Name], Player[playerid][Name], mute_reason, mute_time);
- SendClientMessageToAll(ADMIN_MSG_COLOR, msg_toall); // Slanje poruke svim igracima
- }
- }
- else return SendClientMessage(playerid, -1, " Nemate ovlascenje!"); // Poruka o nedostatku ovlascenja
- return 1; // Izadji ovde
- }
- CMD:unmute(playerid, params[])
- {
- new target_id; // Deklaracija varijable za ciljanog igraca
- if (sscanf(params, "u", target_id)) return SendClientMessage(playerid, -1, "UPOTREBA: /unmute [playerid]"); // Provera parametara
- if (!IsPlayerConnected(target_id)) return SendClientMessage(playerid, -1, "Korisnik nije online."); // Provera da li je igrac online
- new query[80], message[80]; // Deklaracija varijabli za SQL upit i poruku
- Player[target_id][Mute] = 0; // Resetovanje mute vremena za ciljanog igraca
- Player[target_id][IsMuted] = 0; // Resetovanje mute statusa za ciljanog igraca
- mysql_format(g_SQL, query, sizeof query, // Formiranje SQL upita za azuriranje mute statusa u bazi podataka
- "UPDATE players SET mute = 0, is_muted = 0 WHERE id = %d LIMIT 1", Player[target_id][ID]);
- mysql_tquery(g_SQL, query); // Izvrsavanje SQL upita
- format(message, sizeof(message), "Ukinuli ste zabranu pisanja korisniku %s.", Player[target_id][Name]); // Formiranje poruke o ukidanju mute-a
- SendClientMessage(playerid, -1, message); // Slanje poruke adminu
- SendClientMessage(target_id, -1, "Ukinuta vam je zabrana pisanja od strane Admina."); // Slanje poruke ciljanom igracu
- return 1; // Izadji ovde
- }
- task MuteTimer[60000]() // Task koji se izvrsava svake minute
- {
- foreach(new i : Player) // Iteracija kroz sve online igrace
- {
- if (Player[i][Mute] > 0) // Provera da li igrac ima aktivan mute
- {
- new query[70]; // Deklaracija varijable za SQL upit
- Player[i][Mute] = max(0, Player[i][Mute] - 1); // Smanjenje mute vremena za 1, ako je (0, 0,) vrati value1(odnosno 0)
- mysql_format(g_SQL, query, sizeof query, // Formiranje SQL upita za azuriranje mute vremena u bazi podataka
- "UPDATE `players` SET `mute` = %d WHERE `id` = %d LIMIT 1", Player[i][Mute], Player[i][ID]);
- mysql_tquery(g_SQL, query); // Izvrsavanje SQL upita
- if (Player[i][Mute] == 0 && Player[i][IsMuted] == 1) // Provera da li je mute vreme isteklo
- {
- SendClientMessage(i, -1, "Istekla vam je kazna. Vise niste mutirani. Pazite na recnik."); // Poruka igracu o isteku mute-a
- Player[i][IsMuted] = 0; // Resetovanje mute statusa
- mysql_format(g_SQL, query, sizeof query, // Formiranje SQL upita za azuriranje mute statusa u bazi podataka
- "UPDATE `players` SET `is_muted` = 0 WHERE `id` = %d LIMIT 1", Player[i][ID]);
- mysql_tquery(g_SQL, query); // Izvrsavanje SQL upita
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement