карта сайта для роботов
Подписаться на RSS Новости портала



В данное время активно ведется набор в команду сайта!
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Урок] Создание Казны
Drugs1Дата: Воскресенье, 05.06.2011, 01:48 | Сообщение # 1
Группа: Администраторы
Dream - Win
Сообщений: 1554
Награды: 0
Репутация: 1
Пол: Мужчина
Я выложил урок по созданию казны т.к не каждый сможет его сделать либо вырезать из мода и форум зачастую заполняется нуботемами по созданию казны для сервера ну начнем
Сначало ко всем NEW Добовляем

Code
new Tax = 0;


Вставляем в public OnPlayerCommandText

Code
new cmd[256];


и вот эти команды

Code
    if(strcmp(cmd, "/treasury", true) == 0)   
      {   
          if(IsPlayerConnected(playerid))   
          {   
              if(PlayerInfo[playerid][pLeader] == 7)   
              {   
                  ShowPlayerDialog(playerid, 2305,DIALOG_STYLE_LIST,"Операций с казной","Снять\nПоложить\nПосмотреть\nРаздать Закону(часть)\nРаздать всем(часть)","Делать","Отмена");   
              }   
          }   
      }


Code
if(strcmp(cmd,"/checktax",true)==0)   
      {   
          if(IsPlayerConnected(playerid))   
          {   
              if(PlayerInfo[playerid][pLeader] != 7)   
              {   
                  SendClientMessage(playerid, COLOR_GREY, " Вы не мэр!");   
                  return 1;   
              }   
              tmp = strtok(cmdtext, idx);   
              if(!strlen(tmp)) {   
                  SendClientMessage(playerid, COLOR_WHITE, " Используйте: /checktax [ammount]");   
                  return 1;   
              }   
              moneys = strval(tmp);   
              if(Tax < moneys)   
              {   
                  SendClientMessage(playerid,COLOR_GREY,"В казне нет столько денег");   
                  return 1;   
              }   
              Tax = Tax - moneys;   
              GivePlayerMoney(playerid,moneys);   
              format(string, sizeof(string), " Вы взяли %d$ из казны. Осталось в казне %d$", moneys, Tax);   
              SendClientMessage(playerid, COLOR_LIGHTBLUE, string);   
              SaveStuff();   
          }   
          return 1;   
      }


Далее в public OnDialogResponse

Code
    new string[256];   
      if(dialogid == 2305)//Снять\nПоложить\nПосмотреть\nРаздать Закону(часть)\nРаздать всем(часть)"   
      {   
          if(response)   
          {   
              if(listitem == 0)   
              {   
                  ShowPlayerDialog(playerid, 2306,DIALOG_STYLE_INPUT,"Сколько?","Кол-во","OK","Отмена");   
                  return 1;   
              }   
              else if(listitem == 1)   
              {   
                  ShowPlayerDialog(playerid, 2307,DIALOG_STYLE_INPUT,"Сколько?","Кол-во","OK","Отмена");   
              }   
              else if(listitem == 2)   
              {   
                  format(string,20,"В казне %d",Tax);   
                  SendClientMessage(playerid,COLOR_LIGHTRED,string);   
              }   
              else if(listitem == 3)   
              {   
                  if(IsPlayerConnected(playerid))   
                  {   
                      if(PlayerInfo[playerid][pLeader] != 7)   
                      {   
                          SendClientMessage(playerid, COLOR_GREY, "Вы не Сенатор Штата.");   
                          return 1;   
                         }   
                         if(Tax < 1)   
                      {   
                          SendClientMessage(playerid, COLOR_GREY, "В казне нету денег!");   
                          return 1;   
                      }   
                      new Cops = 0;   
                      for(new i = 0; i < MAX_PLAYERS; i++)   
                      {   
                          if(IsPlayerConnected(i))   
                          {   
                    i f(IsACop(i)||PlayerInfo[i][pMember]==11||PlayerInfo[i][pLeader]==11)   
                    {   
                     Cops += 1;   
                    }   
                          }   
                      }   
                      if(Cops >= 1)   
                      {   
                        new value = Tax / 4;   
                         new price = value / Cops;   
                      for(new i = 0; i < MAX_PLAYERS; i++)   
                      {   
                          if(IsPlayerConnected(i))   
                          {   
                     if( IsACop(i)||PlayerInfo[i][pMember]==11||PlayerInfo[i][pLeader]==11)   
                     {   
                     format(string, sizeof(string), "* Вы получили компенсацию в размере $%d от Государственной Думы.",price);   
                     SendClientMessage(i, COLOR_LIGHTBLUE, string);   
                     GivePlayerMoney(i, price);   
                     Tax -= price;   
                    }   
                          }   
                      }   
                      SaveStuff();   
                      }   
                      else   
                      {   
                           SendClientMessage(playerid, COLOR_GREY, "Сейчас нет ни одного полицейского!");   
                           return 1;   
                      }   
              }   
              }   
              else if(listitem == 4)   
              {   
                  if(IsPlayerConnected(playerid))   
                  {   
                         if(PlayerInfo[playerid][pLeader] != 7)   
                      {   
                          SendClientMessage(playerid, COLOR_GREY, "Вы не Сенатор Штата.");   
                          return 1;   
                      }   
                      new AllPlayers = 0;   
                      for(new i = 0; i < MAX_PLAYERS; i++)   
                      {   
                            if(IsPlayerConnected(i))   
                          {   
                     A llPlayers += 1;   
                          }   
                      }   
                      if(AllPlayers >= 1)   
                      {   
                          new value = Tax / 4;   
                          new price = value / AllPlayers;   
                          if(Tax < price)   
                          {   
                    SendClientMessage(playerid, COLOR_GREY, "В казне нету столько денег!");   
                    return 1;   
                          }   
                          for(new i = 0; i < MAX_PLAYERS; i++)   
                          {   
                    if(IsPlayerConnected(i))   
                    {   
                     f ormat(string, sizeof(string), "* Вы получили денежное пособие в размере $%d от Государственной Думы.",price);   
                     SendClientMessage(i, COLOR_LIGHTBLUE, string);   
                     GivePlayerMoney(i, price);   
                     Tax -= price;   
                    }   
                          }   
                          SaveStuff();   
                      }   
                      else   
                      {   
                           SendClientMessage(playerid, COLOR_GREY, "Сейчас нет ни одного игрока!");   
                          return 1;   
                      }   
                  }   
              }   
          }   
          else   
          {   
              SendClientMe ssage(playerid,COLOR_ORANGE,"Ничего не было сделано с казною");   
          }   
          return 1;   
      }   
      if(dialogid == 2306)   
      {   
          if(response)   
          {   
              if(!strlen(inputtext))   
              {   
                  SendClie ntMessage(playerid,COLOR_ORANGE,"Пустое значение");   
                  return 1;   
              }   
              new zkx = strval(inputtext);   
              if(Tax > zkx)   
              {   
                  Tax -=zkx;   
                  GivePlayerMoney(playerid, zkx);   
                  format(string,sizeof(string),"Вы успешно сняли себе в карман %d",zkx);   
                  SendClientMessage(playerid,COLOR_ORANGE,string);   
                  return 1;   
              }   
              else   
              {   
                  SendClientMessage(playerid,COLOR_LIGHTRED,"В казне нету столько денег");   
                  return 1;   
              }   

          }   
          else   
          {   
              SendClientMessage(playerid,COLOR_ORANGE,"Ничего не было сделано с казною");   
          }   
          return 1;   
      }   
      if(dialogid == 2307)   
      {   
          if(response)   
          {   
              if(!strlen(inputtext))   
              {   
                  SendClie ntMessage(playerid,COLOR_ORANGE,"Пустое значение");   
                  return 1;   
              }   
              new zkx = strval(inputtext);   
              if(PlayerInfo[playerid][pCash] > zkx)   
              {   
                  Tax +=zkx;   
                  GivePlayerMoney(playerid, -zkx);   
                  format(string,sizeof(string),"Вы успешно положили в казну %d",zkx);   
                  SendClientMessage(playerid,COLOR_ORANGE,string);   
                  return 1;   
              }   
              else   
              {   
                  SendClientMessage(playerid,COLOR_LIGHTRED,"У вас в кармане нет столько денег");   
                  return 1;   
              }   

          }   
          else   
          {   
              SendClientMessage(playerid,COLOR_ORANGE,"Ничего не было сделано с казною");   
          }   
          return 1;   
      }


Если вылазиют вот такие ошибки:

Quote
warning 219: local variable "string" shadows a variable at a preceding level


То на той строчке где это указано можете смело удалять

Quote
new string[256];


Автор - НЕ ИЗВЕСТЕН СКРИПТ ВЫРЕЗАН ИЗ San Sity
  • Страница 1 из 1
  • 1
Поиск:


Tolerans Team Game Portal
Создать бесплатный сайт с uCoz