Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×

Question

Posted

//=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-banpetimp-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=

if(strcmp(cmd, "/tempban", true) == 0)

{

new name[MAX_PLAYER_NAME];

new giveplayer[MAX_PLAYER_NAME];

new giveplayerid;

if(PlayerInfo[playerid][pAdmin] >= 3);

{

tmp = strtok(cmdtext,idx);

if(!strlen(tmp))

{

  SendClientMessage(playerid, COLOR_LIGHTBLUE, "Usage: /tempban [PlayerID] [Day(s)] [Reason]");

SendClientMessage(playerid, COLOR_ORANGE, "Function: Temporarily bans a player for specified Days");

return 1;

}

giveplayerid = ReturnUser(tmp);

if(IsPlayerConnected(giveplayerid))

{

    tmp = strtok(cmdtext, idx);

    if (!strlen(tmp))

    {

SendClientMessage(playerid, COLOR_LIGHTBLUE, "Usage: /tempban [PlayerID] [Day(s)] [Reason]");

SendClientMessage(playerid, COLOR_ORANGE, "Function: Temporarily bans a player for specified Days");

return 1;

}

new days = strval(tmp);

if(!IsNumeric(tmp))

return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Invalid Day! Only Numbers!");

if(strval(tmp) <= 0 || strval(tmp) > 1000)

return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Invalid Day! (1-1000)");

new reason[128];

reason = strtok2(cmdtext,idx);

if (!strlen(reason))

return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Reason not Specified!");

if (strlen(reason) <= 0 || strlen(reason) > 100)

return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Invalid Reason length!");

new ip[15];

GetPlayerIp(giveplayerid,ip,15);

GetPlayerName(playerid, name, sizeof name);

GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));

new File:tempban = fopen("LuxAdmin/Config/TempBans.ban", io_append);

if (tempban)

{

    new year,month,day;

    getdate(year, month, day);

    day += days;

    if (IsMonth31(month))

    {

        if (day > 31)

        {

            month += 1;

            if (month > 12)

            {

                year += 1;

                while(day > 31) day -= 31;

            }

            else while(day > 31) day -= 31;

        }

    }

    else if (!IsMonth31(month))

    {

        if (day > 30)

        {

            month += 1;

            if (month > 12)

            {

                year += 1;

                while(day > 30) day -= 30;

            }

            else while(day > 30) day -= 30;

        }

    }

    else if (!IsMonth31(month) && IsMonth29(year) && month == 2)

    {

        if (day > 29)

        {

            month += 1;

            if (month > 12)

            {

                year += 1;

                while(day > 29) day -= 29;

            }

            else while(day > 29) day -= 29;

        }

    }

    else if (!IsMonth31(month) && !IsMonth29(year) && month == 2)

    {

        if (day > 28)

        {

            month += 1;

            if (month > 12)

            {

                year += 1;

                while(day > 28) day -= 28;

            }

            else while(day > 28) day -= 28;

        }

    }

    format(string, sizeof string, "%d|%d|%d|%s\n", day, month, year, ip);

    fwrite(tempban, string);

    fclose(tempban);

}

format(string,128,"|- Administrator %s Temporarily Banned %s for %d day(s) | Reason: %s -|",name,giveplayer,days,reason);

SendClientMessageToAll(grey,string);

Kick(giveplayerid);

    format(string, sizeof string, "Admin %s Temporarily Banned %s for %d day(s) | Reason: %s",name,giveplayer,days,reason);

    SaveIn("TempBansLog",string);

}

else

{

ErrorMessages(playerid, 2);

}

}

else ErrorMessages(playerid, 1);

  }

return true;

}

am incercat sa pun comanda /ban pe timp si imi da urmatoarele erori

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61824) : error 036: empty statement

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61851) : error 017: undefined symbol "strtok2"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61851) : error 033: array must be indexed (variable "reason")

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61868) : error 017: undefined symbol "IsMonth31"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61881) : error 017: undefined symbol "IsMonth31"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61894) : error 017: undefined symbol "IsMonth31"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61907) : error 017: undefined symbol "IsMonth31"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61925) : error 017: undefined symbol "grey"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61929) : error 017: undefined symbol "SaveIn"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61933) : error 017: undefined symbol "ErrorMessages"

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61936) : error 029: invalid expression, assumed zero

E:\TOT\Íîâàÿ ïàïêà\gafadas\gamemodes\Gamemode.pwn(61936) : error 017: undefined symbol "ErrorMessages"

8 answers to this question

Recommended Posts

Posted

a zis sa pui comanda asa

cu code

/=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-banpetimp-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=
   if(strcmp(cmd, "/tempban", true) == 0)
   {
      new name[MAX_PLAYER_NAME];
      new giveplayer[MAX_PLAYER_NAME];
      new giveplayerid;

      if(PlayerInfo[playerid][pAdmin] >= 3);
      {
         tmp = strtok(cmdtext,idx);
         if(!strlen(tmp))
         {
              SendClientMessage(playerid, COLOR_LIGHTBLUE, "Usage: /tempban [PlayerID] [Day(s)] [Reason]");
            SendClientMessage(playerid, COLOR_ORANGE, "Function: Temporarily bans a player for specified Days");
            return 1;
         }
         giveplayerid = ReturnUser(tmp);
         if(IsPlayerConnected(giveplayerid))
         {
             tmp = strtok(cmdtext, idx);
             if (!strlen(tmp))
             {
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "Usage: /tempban [PlayerID] [Day(s)] [Reason]");
            SendClientMessage(playerid, COLOR_ORANGE, "Function: Temporarily bans a player for specified Days");
            return 1;
            }
            new days = strval(tmp);
            if(!IsNumeric(tmp))
            return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Invalid Day! Only Numbers!");

            if(strval(tmp) <= 0 || strval(tmp) > 1000)
            return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Invalid Day! (1-1000)");

            new reason[128];
            reason = strtok2(cmdtext,idx);
            if (!strlen(reason))
            return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Reason not Specified!");

            if (strlen(reason) <= 0 || strlen(reason) > 100)
            return SendClientMessage(playerid, COLOR_LIGHTRED, "ERROR: Invalid Reason length!");

            new ip[15];
            GetPlayerIp(giveplayerid,ip,15);
            GetPlayerName(playerid, name, sizeof name);
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
            new File:tempban = fopen("LuxAdmin/Config/TempBans.ban", io_append);
            if (tempban)
            {
                new year,month,day;
                getdate(year, month, day);
                day += days;
                if (IsMonth31(month))
                {
                    if (day > 31)
                    {
                        month += 1;
                        if (month > 12)
                        {
                            year += 1;
                            while(day > 31) day -= 31;
                        }
                        else while(day > 31) day -= 31;
                    }
                }
                else if (!IsMonth31(month))
                {
                    if (day > 30)
                    {
                        month += 1;
                        if (month > 12)
                        {
                            year += 1;
                            while(day > 30) day -= 30;
                        }
                        else while(day > 30) day -= 30;
                    }
                }
                else if (!IsMonth31(month) && IsMonth29(year) && month == 2)
                {
                    if (day > 29)
                    {
                        month += 1;
                        if (month > 12)
                        {
                            year += 1;
                            while(day > 29) day -= 29;
                        }
                        else while(day > 29) day -= 29;
                    }
                }
                else if (!IsMonth31(month) && !IsMonth29(year) && month == 2)
                {
                    if (day > 28)
                    {
                        month += 1;
                        if (month > 12)
                        {
                            year += 1;
                            while(day > 28) day -= 28;
                        }
                        else while(day > 28) day -= 28;
                    }
                }
                format(string, sizeof string, "%d|%d|%d|%s\n", day, month, year, ip);
                fwrite(tempban, string);
                fclose(tempban);
            }
            format(string,128,"|- Administrator %s Temporarily Banned %s for %d day(s) | Reason: %s -|",name,giveplayer,days,reason);
            SendClientMessageToAll(grey,string);
            Kick(giveplayerid);

             format(string, sizeof string, "Admin %s Temporarily Banned %s for %d day(s) | Reason: %s",name,giveplayer,days,reason);
             SaveIn("TempBansLog",string);
         }
         else
         {
         ErrorMessages(playerid, 2);
         }
      }
      else ErrorMessages(playerid, 1);
   }
      return true;
   }

Posted

La [pawn]public OnGameModeInit()[/pawn]

Adaugi

[pawn]if (!fexist("TempBans.ban")){

  new File:open = fopen("TempBans.ban",io_write);

  if (open) fclose(open);

  }[/pawn]

La

[pawn]public OnPlayerLogin(playerid)[/pawn]

Adaugi

[pawn]TempBanCheck(playerid);[/pawn]

Aici ai comanda /ban

[pawn]if(strcmp(cmd, "/ban", true) == 0)

  {

      new name[MAX_PLAYER_NAME];

      if(PlayerInfo[playerid][pAdmin] >= 1)

      {

        tmp = strtok(cmdtext,idx);

        if(!strlen(tmp))

        {

              SendClientMessage(playerid, LIGHTBLUE2, "Usage: /ban [PlayerID] [Day(s)] [Reason]");

            SendClientMessage(playerid, orange, "Function: Temporarily bans a player for specified Days");

            return 1;

        }

        if(PlayerBanned[playerid] == -1)//report timer

            {

              SendClientMessage(playerid,COLOR_RED,"Poti da /ban doar o data la 3 minute!");

              return 1;

            }

            giveplayerid = ReturnUser(tmp);

        if(IsPlayerConnected(giveplayerid))

        {

            tmp = strtok(cmdtext, idx);

            if (!strlen(tmp))

            {

            SendClientMessage(playerid, LIGHTBLUE2, "Usage: /ban [PlayerID] [Day(s)] [Reason]");

            SendClientMessage(playerid, orange, "Function: Temporarily bans a player for specified Days");

            return 1;

            }

            new days = strval(tmp);

            if(!IsNumeric(tmp))

            return SendClientMessage(playerid, lightred, "ERROR: Invalid Day! Only Numbers!");

            if(strval(tmp) <= 0 || strval(tmp) > 1000)

            return SendClientMessage(playerid, lightred, "ERROR: Invalid Day! (1-1000)");

            new reason[128];

            reason = strtok2(cmdtext,idx);

            if (!strlen(reason))

            return SendClientMessage(playerid, lightred, "ERROR: Reason not Specified!");

            if (strlen(reason) <= 0 || strlen(reason) > 100)

            return SendClientMessage(playerid, lightred, "ERROR: Invalid Reason length!");

            GetPlayerName(playerid, name, sizeof name);

            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));

            new File:tempban = fopen("TempBans.ban", io_append);

            if (tempban)

            {

                new year,month,day;

                getdate(year, month, day);

                day += days;

                if (IsMonth31(month))

                {

                    if (day > 31)

                    {

                        month += 1;

                        if (month > 12)

                        {

                            year += 1;

                            while(day > 31) day -= 31;

                        }

                        else while(day > 31) day -= 31;

                    }

                }

                else if (!IsMonth31(month))

                {

                    if (day > 30)

                    {

                        month += 1;

                        if (month > 12)

                        {

                            year += 1;

                            while(day > 30) day -= 30;

                        }

                        else while(day > 30) day -= 30;

                    }

                }

                else if (!IsMonth31(month) && IsMonth29(year) && month == 2)

                {

                    if (day > 29)

                    {

                        month += 1;

                        if (month > 12)

                        {

                            year += 1;

                            while(day > 29) day -= 29;

                        }

                        else while(day > 29) day -= 29;

                    }

                }

                else if (!IsMonth31(month) && !IsMonth29(year) && month == 2)

                {

                    if (day > 28)

                    {

                        month += 1;

                        if (month > 12)

                        {

                            year += 1;

                            while(day > 28) day -= 28;

                        }

                        else while(day > 28) day -= 28;

                    }

                }

                format(string, sizeof string, "%d|%d|%d|%s\n", day, month, year, giveplayer);

                fwrite(tempban, string);

                fclose(tempban);

            }

            new y,m,d;

            getdate(y,m,d);

            format(string,128,"|- AdmCmd: %s Banned %s for %d Day(s) | Reason: %s -|",name,giveplayer,days,reason);

            SendClientMessageToAll(COLOR_LIGHTRED,string);

            Kick(giveplayerid);

            format(string, sizeof string, "(%d-%d-%d)AdmCmd: Admin %s Banned %s for %d Day(s) | Reason: %s",d,m,y,name,giveplayer,days,reason);

            BanLog(string);

            PlayerBanned[playerid] = -1;

            SetTimerEx("ResetBan", 180000, 0, "d", playerid);

        }

        else

        {

            format(string, sizeof(string), "  %d is not an active player.", giveplayerid);

            SendClientMessage(playerid, COLOR_GRAD1, string);

        }

      }

      else return SendClientMessage(playerid,COLOR_GRAD1,"You are not authorized to use that command");

      return true;

  }[/pawn]

Pe la sfarsitul Gm-ului adaugi

[pawn]stock TempBanCheck(playerid)

{

  new banname[24];

  new str[128];

  new load[4][32];

  new ban_day, ban_month, ban_year, ban_name[15];

  GetPlayerName(playerid, banname, sizeof banname);

  new year, month, day;

  getdate(year, month, day);

  new File:file = fopen("TempBans.ban",io_read);

  if (file)

  {

      while (fread(file, str, sizeof str))

      {

          split(str, load, '|');

          ban_day = strval(load[0]);

          ban_month = strval(load[1]);

          ban_year = strval(load[2]);

          strmid(ban_name, load[3], 0, strlen(load[3])-1, 24);

          if (!(year >= ban_year && month >= ban_month && day >= ban_day) && !strcmp(ban_name, banname, true))

          {

              format(str, sizeof str, "|- Login de pe cont banat. Banul expira automat la data de: %d/%d/%d -|", ban_day, ban_month, ban_year);

              SendClientMessage(playerid, RED, str);

              return Kick(playerid);

          }

      }

  }

  return true;

}

stock IsMonth31(month)

{

    switch (month)

  {

      case 1: return 1;

      case 3: return 1;

      case 5: return 1;

      case 7: return 1;

      case 8: return 1;

      case 10: return 1;

      case 12: return 1;

      default: return 0;

  }

  return 0;

}

stock IsMonth29(year)

{

    new y = 2000;

    for(new i = 4; i < 3000; i += 4) if ((y+i) == year) return 1;

    return 0;

}

stock strtok2(const string[], &idx)

{

    new length = strlen(string);

  while ((idx < length) && (string[idx] <= ' '))

  {

      idx++;

  }

  new offset = idx;

  new result[128];

  while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))

  {

      result[idx - offset] = string[idx];

      idx++;

  }

  result[idx - offset] = EOS;

  return result;

}[/pawn]

Guest
This topic is now closed to further replies.
×
×
  • 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.