Jump to content

[Pawno] Helper System v1.0 by TheLittle & DreQusor


FnZ
 Share

Recommended Posts

Helper System v1.0, acest proiect pot spune ca este unul destul de amplu, dar alaturi de DreQusor il vom termina pana pe 27/28 iulie, verificati acest topic deoarece in reply-uri veti gasi comenzi si alte informatii. Si va spun din start ca nu il voi face cu mysql/dini/y_ini.

 

1.Comenzi:

 

/sethelper 1-2 (RCON admin command)
/helpers (Player Command)
/hduty (Helper Command)
/hc (Helper Command)
/n (Player Command)
/nre (Helper Command)


Made by TheLittle and DreQusor

Edited by TheLittle
Link to comment
Share on other sites

Vom incepe cu prima comanda, aceasta fiind [/sethelper]
Aveti nevoie de 3 include-uri:


#include <a_samp>
#include <zcmd>
#include <sscanf2>

Avem nevoie de o lista a informatiilor unui jucator asa ca punem aici o enumeratie

enum pInfo
{
     pHelper,
     pHelperJob
}
new pVariables[MAX_PLAYERS][pInfo];
new Duty[MAX_PLAYERS];
new IsPlayerInN[MAX_PLAYERS];

Bun acum trecem la comanda propriu zisa

CMD:sethelper(playerid, params[])
{
     new string[128], targetid, level, Nume1[MAX_PLAYER_NAME], Nume2[MAX_PLAYER_NAME]; 
     if(IsPlayerAdmin(playerid))
     { 
          if(IsPlayerConnected(targetid))
          {
               if(sscanf(params, "ui", targetid, level)) return SendClientMessage(playerid, -1, "Sintaxa: /sethelper [playerid] [level]");
               if(level == 0  || level == 1 || level == 2)
               {
                    GetPlayerName(playerid, Nume1, sizeof(Nume1));
                    GetPlayerName(targetid, Nume2, sizeof(Nume2));
                    pVariables[targetid][pHelper] = level;
                    format(string, sizeof(string), "<< RCON admin %s l-a facut pe %s, Helper level %d.>>", Nume1, Nume2, level);
                    SendMessageToAll(-1, string);

               }
               if(level !=0 || level !=1 || level !=2)
               {
                    SendClientMessage(playerid, -1, "Eroare: Nivel de helper prea mare/mic.");
               }
          }    
          else
          { 
               SendClientMessage(playerid, -1, "Eroare: Jucatorul nu este conectat.");
          }

     }
     else
     {
          SendClientMessage(playerid, -1, "Eroare: Nu esti admin.");
     }
     return 1;
}

Daca nu ati inteles ceva va rog sa imi dati un PM.

Edited by TheLittle
Link to comment
Share on other sites

In primul rand comanda care va fi acum [/helpers] este facuta de catre LF DreQusor, caruia ii multumesc ca ne ajuta cu acest proiect, bun sa incepem, in aceasta comanda nu aveti nevoie de includes/defines sau alte chestii doarece ele au fost deja definite in prima comanda asa ca,

Comanda propriu-zisa:

CMD:helpers(playerid, params[])
{
     new string[128], HelperName[MAX_PLAYER_NAME];
     SendClientMessage(playerid, -1, "-----Helpers Online-----");
     for(new j = 1; j<3; j++)
     {
          for(new i = 0; i<MAX_PLAYERS; i++)
          {
               if(pVariables[i][pHelper] == j)
               {
                    GetPlayerName(i, HelperName, sizeof(HelperName);
                    format(string, sizeof(string), "%s(%d) - helper level %d", HelperName, i, pVariables[i][pHelper]);
                    SendClientMessage(playerid, -1, string);
               }
          }
      }
      SendClientMessage(playerid, -1, "--------------------------");
      return 1;
}

Edited by TheLittle
Link to comment
Share on other sites

Urmatoarea comanda va fi [/hduty], care a gandit-o DreQusor, mutlumim!

Nu aveti nevoie de includes, defines

Comanda propriu-zisa:

CMD:hduty(playerid, params[])
{
     new string[128], Nume[MAX_PLAYER_NAME];
     GetPlayerName(playerid, Nume, sizeof(Nume));
     if(pVariables[playerid][pHelper] > 0 && Duty==0)
     {
          format(string, sizeof(string), "HlpCmd: Helper-ul %s este acum on-duty, puteti da [/n].", Nume);
          SendMessageToAll(-1, string);
          Duty=1;
     }
     if(pVariables[playerid][pHelper] > 0 && Duty==1)
     {
          format(string, sizeof(string), "HlpCmd: Helper-ul %s este acum off-duty.", Nume);
          SendMessageToAll(-1, string);
          Duty=0;
     }
     if(pVariables[playerid][pHelper] == 0)
     {
          SendClientMessage(playerid, -1 "Eroare: Nu esti un helper.");
     }
     return 1;
}

Foarte important!!! La public OnPlayerConnect si OnPlayerDisconnect adaugam aceste linii de cod:

if(pVariables[playerid][pHelper] > 0)
{
     Duty=0;
}
Link to comment
Share on other sites

Urmatoarea comanda este [/hc] care este chat-ul Helper-ilor asa ca vom trebui sa facem o functie astfel incat sa le trimita doar lor mesaje pe acest chat, asa ca vom face urmatoarea functie:

stock SendToHelpers(Color, Message[])
{
     for(new i = 0; i<MAX_PLAYERS; i++)
     {
          if(pVariables[i][pHelper] > 0 || IsPlayerAdmin(i))
          {
               SendClientMessage(i, Color, Message);
          }
          else return 0;
     }
     return 1;
}    

Comanda Propriu-zisa:

CMD:hc(playerid, params[])
{
     new text[128], string[128], Nume[MAX_PLAYER_NAME];
     if(pVariables[playerid][pHelper] > 0 || IsPlayerAdmin(playerid))
     {
          if(sscanf(params, "s[128]", text)) return SendClientMessage(playerid, -1, "Sintaxa: /hc [text]");
          GetPlayerName(playerid, Nume, sizeof(Nume));
          if(pVariables[playerid][pHelper] == 1)
          {
               format(string, sizeof(string), "Helper(1) %s: %s", Nume, text);
               SendToHelpers(-1, string);
          }
          if(pVariables[playerid][pHelper] == 2)
          {
               format(string, sizeof(string), "Helper(2) %s: %s", Nume, text);
               SendToHelpers(-1, string);
          }
          if(IsPlayerAdmin(playerid))
          {
               format(string, sizeof(string), "RCON Admin %s: %s", Nume, text);
               SendToHelpers(-1, string);
          }
     }
     else
     {
          SendClientMessage(playerid, -1, "Eroare: Nu esti helper sau Admin RCON.");
     }
     return 1;
}
Link to comment
Share on other sites

Urmatoarea comanda este [/n], care este defapt baza sistemului.

Puneti la OnPlayerConnect si OnPlayerDisconnect aceasta linie de cod:

IsPlayerInN(playerid) = 0;

Comanda Propriu-Zisa:

CMD:n(playerid, params[])
{
     new Nume[MAX_PLAYER_NAME], string[128], text[128];
     GetPlayerName(playerid, Nume, sizeof(Nume));
     if(pVariables[playerid][pHelper] == 0 && IsPlayerInN == 0)
     {
          if(sscanf(params, "s[128]", text)) return SendClientMessage(playerid, -1, "Sintaxa: /n [text]");
          format(string, sizeof(string), "Player-ul %s a intrebat: %s", Nume, text);
          SendToHelpers(-1, string);
          IsPlayerInN = 1;
          SendClientMessage(playerid, -1, "Solicitarea ta de ajutor a fost trimisa.");
     }
     if(pVariables[playerid][pHelper] > 0)
     {
          SendClientMessage(playerid, -1, "Eroare: Deja esti helper.");
     }
     if(IsPlayerInN == 1)
     {
          SendClientMessage(playerid, -1, "Eroare: Deja ai o solicitare acitva.");
     }
     return 1;
}
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • 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.