[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Прова
Дата: 10.04.2010, Суббота, 23:54:55 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 52
Репутация: 3+
как "разделить " прова на категории??? А,В,С
Дата: 11.04.2010, Воскресенье, 00:13:44 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 52
Репутация: 3+
На многих серверах права по категориям, А- мото, В- легковые и тд. хочу сделать то же самое...
Дата: 11.04.2010, Воскресенье, 00:18:03 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 52
Репутация: 3+
мне надо так, например у игрока лицензия только на кат. "В", он сел на мот., его выкинуло, написав "У вас нет лицензии на кат. "А""
Дата: 11.04.2010, Воскресенье, 00:26:01 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 170
Репутация: 99+
В if(strcmp(cmd, "/givelicense", true) == 0) //Выдача лицензии
Code
//===============[A, B, C - категории выдачи лицензии]==========
     if(strcmp(x_nr,"A",true) == 0)
     {
               tmp = strtok(cmdtext, idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid, COLOR_WHITE, "Используйте: /givelicense А [ID/Имя]");
          return 1;
      }
      giveplayerid = ReturnUser(tmp);
      if(IsPlayerConnected(giveplayerid))
      {
          if(giveplayerid != INVALID_PLAYER_ID)
          {
              GetPlayerName(playerid, sendername, sizeof(sendername));
              GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                 format(string, sizeof(string), "* Вы выдали лицензию категории 'А' для %s.",giveplayer);
              SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
              format(string, sizeof(string), "* %s выдал вам лицензию категории 'A'.",sendername);
              SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
              PlayerInfo[giveplayerid][pMotoLic] = 1;
              return 1;
             }
      }
      else
      {
          SendClientMessage(playerid, COLOR_GREY, "Игрок оффлайн!");
          return 1;
      }
     }
        if(strcmp(x_nr,"B",true) == 0)
     {
               tmp = strtok(cmdtext, idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid, COLOR_WHITE, "Используйте: /givelicense В [ID/Имя]");
          return 1;
      }
      giveplayerid = ReturnUser(tmp);
      if(IsPlayerConnected(giveplayerid))
      {
          if(giveplayerid != INVALID_PLAYER_ID)
          {
              GetPlayerName(playerid, sendername, sizeof(sendername));
              GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                 format(string, sizeof(string), "* Вы выдали лицензию категории 'В' для %s.",giveplayer);
              SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
              format(string, sizeof(string), "* %s выдал вам лицензию категории 'B'.",sendername);
              SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
              PlayerInfo[giveplayerid][pCarLic] = 1;
              return 1;
             }
      }
      else
      {
          SendClientMessage(playerid, COLOR_GREY, "Игрок оффлайн!");
          return 1;
      }
     }
     if(strcmp(x_nr,"C",true) == 0)
     {
               tmp = strtok(cmdtext, idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid, COLOR_WHITE, "Используйте: /givelicense C [ID/Имя]");
          return 1;
      }
      giveplayerid = ReturnUser(tmp);
      if(IsPlayerConnected(giveplayerid))
      {
          if(giveplayerid != INVALID_PLAYER_ID)
          {
              GetPlayerName(playerid, sendername, sizeof(sendername));
              GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                 format(string, sizeof(string), "* Вы выдали лицензию категории 'C' для %s.",giveplayer);
              SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
              format(string, sizeof(string), "* %s выдал вам лицензию категории 'C'.",sendername);
              SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
              PlayerInfo[giveplayerid][pTruckLic] = 1;
              return 1;
             }
      }
      else
      {
          SendClientMessage(playerid, COLOR_GREY, "Игрок оффлайн!");
          return 1;
      }
     }
     //==============================================================

В enum pInfo
Code
pCarLic,
pMotoLic,
pTruckLic,

В public OnPlayerConnect(playerid)
Code
PlayerInfo[playerid][pCarLic] = 0;
PlayerInfo[playerid][pMotoLic] = 0;
PlayerInfo[playerid][pTruckLic] = 0;

В public OnPlayerRegister(playerid, password[])
Code
format(var, 32, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
format(var, 32, "MotoLic=%d\n",PlayerInfo[playerid][pMotoLic]);fwrite(hFile, var);
format(var, 32, "TruckLic=%d\n",PlayerInfo[playerid][pTruckLic]);fwrite(hFile, var);

В public OnPlayerLogin(playerid,password[])
Code
if( strcmp( key , "CarLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCarLic] = strval( val ); }
if( strcmp( key , "MotoLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pMotoLic] = strval( val ); }
if( strcmp( key , "TruckLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTruckLic] = strval( val ); }

В if(strcmp(cmd, "/take", true) == 0)//Полицейский отбирает права
Code
if(strcmp(x_nr,"A",true) == 0)
     {
         tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) {
       SendClientMessage(playerid, COLOR_WHITE, "Использовать: /take A [ID/Имя]");
       return 1;
      }
      giveplayerid = ReturnUser(tmp);
      if(IsPlayerConnected(giveplayerid))
      {
          if(giveplayerid != INVALID_PLAYER_ID)
          {
              if (ProxDetectorS(2.0, playerid, giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
               format(string, sizeof(string), "* Вы забрали у %s лицензию категории 'А'.", giveplayer);
               SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
               format(string, sizeof(string), "* %s забрал вашу лицензию категории 'А'.", sendername);
               SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
               PlayerInfo[giveplayerid][pMotoLic] = 0;
        }
        else
        {
            SendClientMessage(playerid, COLOR_GREY, "Вы слишком далеко!");
            return 1;
        }
          }
      }
      else
      {
          SendClientMessage(playerid, COLOR_GREY, "Игрок в оффлайне!");
          return 1;
      }
     }
        if(strcmp(x_nr,"B",true) == 0)
     {
         tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) {
       SendClientMessage(playerid, COLOR_WHITE, "Использовать: /take B [ID/Имя]");
       return 1;
      }
      giveplayerid = ReturnUser(tmp);
      if(IsPlayerConnected(giveplayerid))
      {
          if(giveplayerid != INVALID_PLAYER_ID)
          {
              if (ProxDetectorS(2.0, playerid, giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
               format(string, sizeof(string), "* Вы забрали y %s лицензию категории 'B'.", giveplayer);
               SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
               format(string, sizeof(string), "* %s забрал вашу лицензию категории 'B'.", sendername);
               SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
               PlayerInfo[giveplayerid][pCarLic] = 0;
        }
        else
        {
            SendClientMessage(playerid, COLOR_GREY, "Вы слишком далеко!");
            return 1;
        }
          }
      }
      else
      {
          SendClientMessage(playerid, COLOR_GREY, "Игрок в оффлайне!");
          return 1;
      }
     }
        if(strcmp(x_nr,"C",true) == 0)
     {
         tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) {
       SendClientMessage(playerid, COLOR_WHITE, "Использовать: /take C [ID/Имя]");
       return 1;
      }
      giveplayerid = ReturnUser(tmp);
      if(IsPlayerConnected(giveplayerid))
      {
          if(giveplayerid != INVALID_PLAYER_ID)
          {
              if (ProxDetectorS(2.0, playerid, giveplayerid))
        {
            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
               format(string, sizeof(string), "* Вы забрали y %s лицензию категории 'C'.", giveplayer);
               SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
               format(string, sizeof(string), "* %s забрал вашу лицензию категории 'C'.", sendername);
               SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
               PlayerInfo[giveplayerid][pTruckLic] = 0;
        }
        else
        {
            SendClientMessage(playerid, COLOR_GREY, "Вы слишком далеко!");
            return 1;
        }
          }
      }
      else
      {
          SendClientMessage(playerid, COLOR_GREY, "Игрок в оффлайне!");
          return 1;
      }
     }

В if(strcmp(cmd,"/licenses",true)==0)//Какие лицензии имеются
Code
if(PlayerInfo[playerid][pMotoLic]) { text6 = "Имеется"; } else { text6 = "Не имеется"; }
if(PlayerInfo[playerid][pTruckLic]) { text7 = "Имеется"; } else { text7 = "Не имеется"; }

Ниже:
Code
format(string, sizeof(string), "** Права категории A: %s.", text6);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "** Права категории B: %s.", text1);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "** Права категории C: %s.", text7);
SendClientMessage(playerid, COLOR_GREY, string);

В if(strcmp(cmd,"/showlicenses",true)==0 || strcmp(cmd,"/sl",true)==0)//Показать лицензии
Code
if(PlayerInfo[playerid][pMotoLic]) { text6 = "Имеется"; } else { text6 = "Не имеется"; }
if(PlayerInfo[playerid][pTruckLic]) { text7 = "Имеется"; } else { text7 = "Не имеется"; }

Вот и все. Будут ошибки...Пиши...
Не откажусь от Плюсика:)
Дата: 11.04.2010, Воскресенье, 00:32:36 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 52
Репутация: 3+
СПС, +, только проверю завтра, еще раз СПС))
  • Страница 1 из 1
  • 1
Поиск: