E-mail:
Пароль:
Общайтесь на форуме,задавайте вопросы,что смогу отвечу,зовите друзей.
Рекламный блок Форума
Реклама
Реклама
Реклама
  • Страница 1 из 1
  • 1
Работа наркофермера
Dima_TkachДата: Среда, 09.11.2011, 22:31 | Сообщение # 1
...</div
Сообщений: 215
Награды: 2

[ 3 ]


Идея заключается в следующем: сбор урожая комбайном => сдать урожай на склад => сесть в легковую машину => взять нарко со склада => отвезти в притон => продать в притоне (на заднем дворе). Работа не жирная но пыльная biggrin

Подразумевается, что у Вас уже создана фракция наркофермеров (FAQ по добавлению фракции лежит на форуме), поэтому нужно будем вам самим адаптировать мод под себя.


Инструкция к установке:

1. Добавляем forwards

Code
forward Timerdrugs(id);
forward Timerdrugs2(id);
forward LoadFarmer();
forward SaveFarmer();
forward IsAnFarm(playerid);


2. Добавляем переменные

Code
new combine = 0;
new drugsobject[110];
new drugsobject2[110];
new drugspickupid[110];
new combine1 = 0;
new combine2 = 0;
new storagefarm;
new storageden;
new timerdrug = 25000;
new timerdrug2 = 1000;
new drugskg[MAX_PLAYERS];
new drugsgr;


3. Создаем файл drugs.ini в папке scriptfiles с содержимым 5000|5000 (заполненность наркофермы|заполненность притона)

4. Добавляем паблики

Code
public IsAnFarm(playerid)
{
if(IsPlayerConnected(playerid))
{
    new leader = PlayerInfo[playerid][pLeader];
    new member = PlayerInfo[playerid][pMember];
    if(member==5)//
    {
     return 1;
    }
    if(leader==5)//
    {
     return 1;
    }
}
return 0;
}
public LoadFarmer()
{
    new arrCoords[2][64];
    new strFromFile2[256];
    new File: file = fopen("drugs.ini", io_read);
    if (file)
    {
     fread(file, strFromFile2);
     split(strFromFile2, arrCoords, '|');

     storagefarm = strval(arrCoords[0]);
     storageden = strval(arrCoords[1]);

     fclose(file);
    }
    return 1;
}

public SaveFarmer()
{
    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring), "%d|%d", storagefarm, storageden);
    new File: file2 = fopen("drugs.ini", io_write);
    fwrite(file2, coordsstring);
    fclose(file2);
    return 1;
}
public Timerdrugs(id)
{
        for(new d=0; d < sizeof(drugsposition); d++)
     {
      if (d == id)
      {
      drugsobject[d] = CreateStreamObject(3409,drugsposition[d][0],drugsposition[d][1],128.015625,0.00000000,0.00000000,0.00000000, 250.0); // Ai?ioa aiia Ioneoea
      drugsobject2[d] = CreateStreamObject(3409,drugsposition[d][0],drugsposition[d][1],129.015625,0.00000000,0.00000000,0.00000000, 250.0); // Ai?ioa aiia Ioneoea
         drugspickupid[id] = CreatePickup(1242, 14, drugsposition[d][0], drugsposition[d][1], 127.615625); //
      }
     }    
       return 1;
}
public Timerdrugs2(id)
{
        for(new d=0; d < sizeof(drugsposition); d++)
     {
      if (d == id)
      {
      drugsobject[d] = CreateStreamObject(3409,drugsposition[d][0],drugsposition[d][1],128.015625,0.00000000,0.00000000,0.00000000, 250.0); // Ai?ioa aiia Ioneoea
      drugsobject2[d] = CreateStreamObject(3409,drugsposition[d][0],drugsposition[d][1],129.015625,0.00000000,0.00000000,0.00000000, 250.0); // Ai?ioa aiia Ioneoea
         drugspickupid[id] = CreatePickup(1242, 14, drugsposition[d][0], drugsposition[d][1], 127.615625); //
      }
     }
       return 1;
}


5. Ко всем массивам добавляем

Code
new Float:drugsposition[110][3] = {
{-1187.31481934,-1055.79821777,129.2187500},
{-1189.56530762,-1040.53283691,129.2187500},
{-1188.87915039,-1024.93859863,129.2187500},
{  -1189.06616211,-1009.78601074,129.2187500},
{-1188.89440918,-993.43719482,129.21875000},
{-1188.73217773,-977.98822021,129.21875000},
{-1  188.56884766,-961.78900146,129.21192932},
{-1188.39331055,-945.14044189,129.21192932},
{-1188.20520020,-927.89184570,129.21875000},
{-117  2.75439453,-1055.18518066,129.2187500},
{-1173.97363281,-1040.55773926,129.2187500},
{-1173.62121582,-1025.41247559,129.2187500},
{-1173.  25537109,-1009.66662598,129.2187500},
{-1172.88537598,-993.77050781,129.21875000},
{-1172.53662109,-978.77423096,129.21875000},
{-1172.17  700195,-963.02807617,129.21192932},
{-1171.77636719,-946.08258057,129.21875000},
{-1171.39965820,-929.88659668,129.21875000},
{-1155.4638  6719,-928.94873047,129.21875000},
{-1154.79638672,-945.76794434,129.21875000},
{-1156.58752441,-963.67852783,129.21875000},
{-1156.317871  09,-979.22033691,129.21875000},
{-1157.56787109,-993.56604004,129.21875000},
{-1156.64050293,-1009.90838623,129.2187500},
{-1159.36169434  ,-1024.94433594,129.2187500},
{-1157.01196289,-1040.41101074,129.2187500},
{-1155.49243164,-1054.99658203,129.2187500},
{-1140.38330078,-  1055.52819824,129.2187500},
{-1140.78295898,-1041.13354492,129.2187500},
{-1141.21875000,-1025.38964844,129.2187500},
{-1140.58447266,-10  09.60797119,129.2187500},
{-1141.10571289,-994.78100586,129.21875000},
{-1139.44055176,-979.26989746,129.21875000},
{-1140.80786133,-962.  24249268,129.21875000},
{-1138.78747559,-946.35577393,129.21875000},
{-1138.09179688,-930.89501953,129.21875000},
{-1124.15441895,-920.72  192383,129.21875000},
{-1124.33166504,-937.24218750,129.21875000},
{-1124.52209473,-955.39111328,129.21875000},
{-1124.67944336,-970.3901  9775,129.21875000},
{-1124.84936523,-986.58935547,129.21875000},
{-1124.90209961,-1002.10119629,129.2187500},
{-1124.42004395,-1019.49462  891,129.2187500},
{-1123.96057129,-1036.43835449,129.2119293},
{-1123.48571777,-1053.23168945,129.2187500},
{-1108.98327637,-1054.3532714  8,129.2187500},
{-1108.30395508,-1038.39526367,129.2119293},
{-1107.98291016,-1021.91979980,129.2187500},
{-1107.80883789,-1004.30706787,  129.2187500},
{-1105.61840820,-986.89428711,129.21875000},
{-1103.52941895,-971.74108887,129.21875000},
{-1104.63134766,-955.63098145,129  .21875000},
{-1106.94091797,-940.09698486,129.21875000},
{-1108.34448242,-924.22302246,129.21875000},
{-1012.87835693,-1054.74340820,129.  2187500},
{-1028.50744629,-1056.21691895,129.2187500},
{-1045.73278809,-1057.13134766,129.2119293},
{-1061.66149902,-1056.99194336,129.21  19293},
{-1077.06848145,-1057.35278320,129.2119293},
{-1092.80615234,-1057.97656250,129.2119293},
{-1011.23474121,-1037.86560059,129.2187  500},
{-1026.20312500,-1038.84130859,129.2187500},
{-1042.36877441,-1039.89501953,129.2187500},
{-1057.78503418,-1040.91491699,129.211929  3},
{-1073.18676758,-1040.64001465,129.2187500},
{-1089.89001465,-1039.05200195,129.2187500},
{-1092.54016113,-1023.97473145,129.2187500}  ,
{-1076.18334961,-1024.82812500,129.2187500},
{-1059.31005859,-1025.02587891,129.2119293},
{-1043.20617676,-1023.74218750,129.2119293},
{  -1026.94555664,-1021.79357910,129.2187500},
{-1011.39929199,-1020.95043945,129.21875000},
{-1009.23950195,-1005.12329102,129.21875000},
{  -1024.79919434,-1006.01794434,129.21875000},
{-1040.18994141,-1008.06787109,129.21875000},
{-1055.79724121,-1009.36218262,129.21875000},
{  -1072.88232422,-1009.27752686,129.2187500},
{-1089.61987305,-1006.56921387,129.2187500},
{-1089.90637207,-990.40533447,129.21875000},
{-1  074.50830078,-994.03479004,129.21875000},
{-1059.16931152,-994.19226074,129.21875000},
{-1044.15380859,-992.81201172,129.21875000},
{-102  9.59423828,-990.64440918,129.21875000},
{-1013.26586914,-988.80895996,129.21875000},
{-1011.06347656,-973.12219238,129.21875000},
{-1026.  72985840,-974.30920410,129.21875000},
{-1043.22570801,-976.97375488,129.21875000},
{-1060.17089844,-979.11505127,129.21875000},
{-1076.22  253418,-978.95446777,129.21875000},
{-1089.08325195,-974.91864014,129.21875000},
{-1011.07159424,-956.27905273,129.21875000},
{-1026.5676  2695,-959.22583008,129.21875000},
{-1042.13696289,-961.29693604,129.21875000},
{-1057.66516113,-964.20458984,129.21875000},
{-1072.296875  00,-965.26214600,129.21875000},
{-1087.87744141,-959.47808838,129.21875000},
{-1091.77197266,-944.33349609,129.21875000},
{-1093.39648438  ,-927.29022217,129.21875000},
{-1078.48767090,-924.56488037,129.21875000},
{-1063.34533691,-924.88787842,129.21875000},
{-1047.32604980,-  925.84741211,129.21875000},
{-1032.52087402,-925.52294922,129.21875000},
{-1016.18963623,-925.02722168,129.21875000},
{-1076.98339844,-94  1.43719482,129.21875000},
{-1064.08984375,-948.88891602,129.21875000},
{-1055.39025879,-938.28930664,129.21875000},
{-1039.02697754,-944.  04858398,129.21875000},
{-1023.03796387,-943.14624023,129.21875000},
{-1009.17590332,-938.94738770,129.21875000},
{-1199.30883789,-919.80  627441,129.21875000}
};


6. Находим public OnPlayerPickUpPickup и в самый конец кидаем

Code
for(new d=0; d < sizeof(drugsposition); d++)
     {
      if(pickupid == drugspickupid[d])
     {

     if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5)
     {
     new newcar = GetPlayerVehicleID(playerid);
     if(newcar == 472 || newcar == 473)
     {
         
     if(newcar == 472)
     {
      if (combine1 > 90)
      {

        new text[64];
     format(text, sizeof(text), "combine is full");
        GameTextForPlayer(playerid, text, 5000, 4);
     SetPlayerCheckpoint(playerid, -1058.386108, -1195.627197, 129.188858 , 10.0);
        DestroyObject(drugsobject[d]);
     DestroyObject(drugsobject2[d]);
     DestroyPickup(drugspickupid[d]);
     SetTimerEx("Timerdrugs", timerdrug, false, "d", d);
            

      return 1;
      }
     combine1 +=10;
     new text[64];
        format(text, sizeof(text), "MAK %d/100",combine1);
        GameTextForPlayer(playerid, text, 5000, 4);
     }
      else if(newcar == 473)
     {
      if (combine2 > 90)
      {
        new text[64];
     format(text, sizeof(text), "combine is full");
        GameTextForPlayer(playerid, text, 5000, 4);
     SetPlayerCheckpoint(playerid, -1058.386108, -1195.627197, 129.188858 , 10.0);
        DestroyObject(drugsobject[d]);
     DestroyObject(drugsobject2[d]);
     DestroyPickup(drugspickupid[d]);
     SetTimerEx("Timerdrugs", timerdrug, false, "d", d);
            
      return 1;
      }
     combine2 +=10;
     new text[64];
        format(text, sizeof(text), "MAK %d/100",combine2);
        GameTextForPlayer(playerid, text, 5000, 4);
     }
        DestroyObject(drugsobject[d]);
     DestroyObject(drugsobject2[d]);
     DestroyPickup(drugspickupid[d]);
     SetTimerEx("Timerdrugs2", timerdrug, false, "d", d);
            
     }
     else
     {
     //format(text, sizeof(text), "combine is full");
        //GameTextForPlayer(playerid, text, 5000, 4);
            
     //SetPlayerCheckpoint(playerid, -1058.386108, -1195.627197, 129.188858 , 10.0);
        DestroyObject(drugsobject[d]);
     DestroyObject(drugsobject2[d]);
     DestroyPickup(drugspickupid[d]);
     SetTimerEx("Timerdrugs", timerdrug2, false, "d", d);
     return 1;
     }
      }
     }
     }


7. Добавляем команды

Code
if(strcmp(cmd,"/mac",true)==0)
       {
        if(IsPlayerConnected(playerid))
           {
            if (!IsAnFarm(playerid))
          {
       SendClientMessage(playerid,COLOR_GREY,"Вы не наркофермер!");
              return 1;
          }
          new x_nr[256];
          x_nr = strtok(cmdtext, idx);
          if(!strlen(x_nr))
      {
            SendClientMessage(playerid, COLOR_WHITE, "+++:::Crazy_Universe:::+++ Используйте:  /mac [название]");
            SendClientMessage(playerid, COLOR_WHITE, "Используйте: buy, sell, load.");
            return 1;
          }
         if(strcmp(x_nr,"buy",true) == 0) // покупка
         {
             if(IsPlayerConnected(playerid))
             {
                 if(!PlayerToPoint(5.0, playerid, -1058.386108, -1195.627197, 129.188858))//Координаты покупки
                 {
                     SendClientMessage(playerid, COLOR_GREY, "Вы не около склада наркотиков");//
                     return 1;
                 }
                 if (!IsPlayerInAnyVehicle(playerid))
                 {
                      SendClientMessage(playerid, COLOR_GREY, "Вы не в машине");//
                     return 1;
                 }
                 tmp = strtok(cmdtext, idx);
                 if(!strlen(tmp))
                 {
         SendClientMessage(playerid, COLOR_WHITE, "+++:::Crazy_Universe:::+++ Используйте: /mac buy [количество]");//
         return 1;
                 }
        drugsgr = strval(tmp);
        if(drugsgr < 1 || drugsgr > 100)// Диапазон покупки
        {
         SendClientMessage(playerid, COLOR_GREY, "Вы не можете возить более 100 грамм.");
         return 1;
        }
        if(GetPlayerMoney(playerid) < drugsgr * 50)// Кол-во материалов умножаем на 50, это и будет оплата за маты + проверка на наличные
            {
         SendClientMessage(playerid, COLOR_GREY, "У вас не хватает наличных.");
         return 1;
            }
            new bugs = drugskg[playerid] + drugsgr;
            if(bugs > 100)
            {
         SendClientMessage(playerid, COLOR_GREY, "Вы не можете взять больше.");
         return 1;
            }
            if(storagefarm < drugsgr)//
            {
         SendClientMessage(playerid, COLOR_GREY, "На ферме возможно закончилось нарко");
         return 1;
            }
            drugskg[playerid] += drugsgr;
            format(string, sizeof(string), "В Вашей машине %d грамм. Последняя покупка: $%d !", drugskg[playerid], drugsgr * 50);
            SendClientMessage(playerid, COLOR_GREY, string);
                       SetPlayerCheckpoint(playerid, 2161.416503, -1659.224243, 14.811087  , 5.0);
         GivePlayerMoney(playerid, - drugsgr * 50);
        storagefarm -= drugsgr;
        SaveFarmer();
       }
       }
         else if(strcmp(x_nr,"sell",true) == 0)
      {
       if(IsPlayerConnected(playerid))
             {
           if(!PlayerToPoint(5.0, playerid, 2159.466552, -1659.275146, 15.455442))
                 {
             SendClientMessage(playerid, COLOR_GREY, "Вы не около склада");
          return 1;
        }
                      if (!IsPlayerInAnyVehicle(playerid))
                 {
                      SendClientMessage(playerid, COLOR_GREY, "Вы не в машине");//
                     return 1;
                 }
         tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
         {
          SendClientMessage(playerid, COLOR_WHITE, "+++:::Crazy_Universe:::+++ Используйте: /mac sell [количество]");
          return 1;
         }
         drugsgr = strval(tmp);
          if (storageden >= 50000)
        {
         SendClientMessage(playerid, COLOR_GREY, "Притон полон!");
         DisablePlayerCheckpoint(playerid);

         return 1;
         }
         if(drugsgr > drugskg[playerid])
         {
          SendClientMessage(playerid, COLOR_GREY, "У Вас нету столько нарко!");
         return 1;
         }
         //drugskg[playerid] = drugsgr;
          new sellprice = (100)*(drugsgr); // Цена на продажу
         format(string, sizeof(string), "Вы продали %d грамм за %d$!", drugsgr, sellprice);
         SendClientMessage(playerid, COLOR_GREY, string);
         GivePlayerMoney(playerid, (100)*(drugskg[playerid]));
         storageden += drugsgr;
         drugskg[playerid] -= drugsgr;
        format(string, sizeof(string), "Вы продали %d грамм за %d$! Остаток: %d", drugsgr, sellprice, drugskg[playerid]);
         SendClientMessage(playerid, COLOR_GREY, string);
         DisablePlayerCheckpoint(playerid);
         SaveFarmer();
       }
      }

         else if(strcmp(x_nr,"load",true) == 0)
     {
      if(IsPlayerConnected(playerid))
      {
           if(!PlayerToPoint(10.0, playerid, -1058.386108, -1195.627197, 129.188858))
           {
                    SendClientMessage(playerid, COLOR_GREY, "Вы не около склада");
                    return 1;
           }
       format(string, sizeof(string), "На ферме %d/50000  \n В притоне %d/50000 ", storagefarm, storageden);
       SendClientMessage(playerid, COLOR_GREY, string);
      }
         }
    }
}
        if(strcmp(cmd, "/sellmac", true) == 0)
        {
      if(IsPlayerConnected(playerid))
         {
                  if (!IsAnFarm(playerid))
           {
        SendClientMessage(playerid,COLOR_GREY,"Вы не наркофермер!");
               return 1;
           }
            if(PlayerToPoint(5.0, playerid, -1058.386108, -1195.627197, 129.188858))
                  {
                    if (storagefarm >= 50000)
              {
               SendClientMessage(playerid, COLOR_GREY, "На ферме больше нет места для хранения!");
            DisablePlayerCheckpoint(playerid);
               return 1;
                   
              }
             new newcar = GetPlayerVehicleID(playerid);
             if(newcar == 472)
             {
           combine = combine1;
          }
             else if(newcar == 473)
             {
              combine = combine2;
             }
             //new farm = 50000 - storagefarm;
                            DisablePlayerCheckpoint(playerid);

           new sellprice = (100)*(combine); // Цена на продажу
              format(string, sizeof(string), "Вы продали %d за %d$!", combine, sellprice);
              SendClientMessage(playerid, COLOR_GREY, string);
              GivePlayerMoney(playerid, (100)*(combine));
              storagefarm += combine;
              combine = 0;
          if (newcar == 472)
          {
          combine1 = combine;
          }
             else if (newcar == 473)
             {
             combine2 = combine;
             }
          SaveFarmer();
             }
}}


8. Ищем if(strcmp(cmd,"/get",true)==0) и перед

Code
format(string, sizeof(string), "* Вы купили %d грамм за $%d.", ammount, price);
           SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                 GivePlayerMoney(playerid, -price);
           PlayerInfo[playerid][pDrugs] = ammount;


Вставляем это:

Code
if (ammount > storageden)
                 {
                 SendClientMessage(playerid, COLOR_GREY, "В притоне нету нарко! Наркофермеры не завезли.");
                 return 1;
                 }


Чуть ниже смотрим PlayerInfo[playerid][pDrugs] = ammount; и перед этой строчкой добавляем

Code
storageden -=ammount;
           SaveFarmer();
Dima_TkachДата: Среда, 09.11.2011, 22:31 | Сообщение # 2
...</div
Сообщений: 215
Награды: 2

[ 3 ]


9. Добавляем комбайны

Code
AddStaticVehicleEx(532,-1090.647705, -1143.137817, 130.195770, 358.470733,-1,-1,600000);
          AddStaticVehicleEx(532,-1114.593505, -1145.648925, 130.202896, 1.536546,-1,-1,600000);


10. Добавляем туда где у вас создаются пикапы

Code
for(new d=0; d < sizeof(drugsposition); d++)
       {
       drugspickupid[d] = CreatePickup(1242, 14, drugsposition[d][0], drugsposition[d][1], 127.615625); //
          }


11. Ищем кучку

Code
LoadSBizz();
       LoadBoxer();
       LoadStuff();


И ниже добавляем LoadFarmer();

12. Следующий код кидаем туда где у Вас создаются объекты

Code
for(new d=0; d < sizeof(drugsposition); d++)
       {
        drugsobject[d] = CreateStreamObject(3409,drugsposition[d][0],drugsposition[d][1],128.015625,0.00000000,0.00000000,0.00000000, 250.0); // Ai?ioa aiia Ioneoea
       }
       for(new d=0; d < sizeof(drugsposition); d++)
       {
        drugsobject2[d] = CreateStreamObject(3409,drugsposition[d][0],drugsposition[d][1],129.015625,0.00000000,0.00000000,0.00000000, 250.0); // Ai?ioa aiia Ioneoea
       }


Настройка узнайте иды комбайнов и замените, замените денежные выплаты и цвет сообщений по своему усмотрению. В паблике IsAnFarm измените ид фракции.

Видео автора:



Автор: FiLE95
  • Страница 1 из 1
  • 1
Поиск:

Статистика Форума
Лучшие пользователи
Уважаемые пользователи
Популярные темы
Недавно обновленные темы
Dima_Tkach Постов [ 215 ]
Free-Fire Постов [ 14 ]
SeXy Постов [ 11 ]
Tailer Постов [ 8 ]
r@d)_b@ll) Постов [ 5 ]
FriZ Постов [ 4 ]
ZioSHik Постов [ 4 ]
Kolyamba Постов [ 2 ]
Jon_Smit Постов [ 2 ]
Nik_Ull Постов [ 2 ]
Dima_Tkach Репутация [ 3 ]
Free-Fire Репутация [ 2 ]
FriZ Репутация [ 1 ]
Kolyamba Репутация [ 1 ]
Nik_Ull Репутация [ 1 ]
ZioSHik Репутация [ 1 ]
velix Репутация [ 1 ]
DateX Репутация [ 1 ]
smart2009 Репутация [ 1 ]
Marselo_Zm Репутация [ 1 ]
Досчитаем до 500 [ 10 ]
Услуги скриптинга и так же MAP's [ 6 ]
Место где нельзя драться [ 6 ]
Вопрос и Ответ [ 5 ]
Dima_Tkach [ 5 ]
Скриншоты с SAMP'a [ 4 ]
Регистрация [ 4 ]
[GM] V:RP aka Valence Role Play [ 3 ]
Смена ника [ 3 ]
[GM] Virtyal-City Role Play [ 3 ]
Интернет-магазин мебели в Украине [ 0 ]
[GM] MyGame Village [ 1 ]
Прослушка телефона [/track] [ 1 ]
Набор в команду сайта [ 1 ]
Как из .амх получить .pwn [ 1 ]
[GM] The Godfather [GameWorld] [ 2 ]
[GM] V:RP aka Valence Role Play [ 3 ]
Склонение [ 0 ]
Античит на оружие. [ 0 ]
Убираем пинг в SAMP [ 0 ]