15:23
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Модератор форума: Alcoholik  
Работа Дальнобойщиком [manual]
FiLEДата: Суббота, 28.08.2010, 16:24 | Сообщение # 1
Группа: Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
Гуглил на форуме и не нашел реализации (может зрение упало crazy )
Дабы не подымать древние темы то создал новую.

Описание: работа дальнобойщика сотрудничает с бизнесом "Gas Company" (по умолчанию этот биз есть в моде, вроде)
Собственно дальнобойщик берет грузовик и едет за прицепом в Нефтеперерабатывающий завод. Цепляет прицеп, едет на склад бензина. Заезжает на чекпоинт вводит команду "сдачи прицена", после чего прицеп исчезает с спавница на Нефтеперерабатывающем заводе (на подобие дропкар). При продаже прицепа из бизнеса "Gas Company" снимается 5к и дается дальнобойщику.
Вернусь чуть назад... при сдаче прицепа на счет склада прибавляется 1000 литров бензина. Когда человек заправляется на заправке (любой) количество заправленных литров отнимается у склада.

Реализация довольно простая:

Создаем в папке scriptfiles файл под названием gas.ini
Напишем в файле напрмер 3000|0, где 3000 это кол-во литров на складе.

Добавим forwards

Code

forward LoadGas();
forward SaveGas();

А также переменные:
Code

new Systgas = 0;
new maxgas = 50000; // макс кол-во литров на складе

Ищем паблик public Fillup(), в нем ищем строчку Gas[VID] += FillUp;
и перед этой строчкой вставляем код:
Code

          if (Systgas < FillUp)
          {
          format(string,sizeof(string),"* Бензин закончился",FillUp);
          SendClientMessage(i,COLOR_LIGHTBLUE,string);
       return 1;
          }
       Systgas -= FillUp;
       SaveGas();

Далее, добавляем паблики:
Code


public LoadGas()
{
   new arrCoords[2][64];
   new strFromFile2[256];
   new File: file = fopen("gas.ini", io_read);
   if (file)
   {
    fread(file, strFromFile2);
    split(strFromFile2, arrCoords, '|');

    Systgas = strval(arrCoords[0]);
      

    fclose(file);
   }
   return 1;
}

public SaveGas()
{
   new coordsstring[256];
   format(coordsstring, sizeof(coordsstring), "%d|0", Systgas);
   new File: file2 = fopen("gas.ini", io_write);
   fwrite(file2, coordsstring);
   fclose(file2);
   return 1;
}

Ищем кучу таких строк, они могут быть выставлены в другом порядке.
Code

   LoadProperty();
   LoadBizz();
   LoadSBizz();
   LoadBoxer();
   LoadStuff();

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

Вставляем команды в OnPlayerCommandText

Code

      if(strcmp(cmd, "/getpetrol", true) == 0)
      {
    if(IsPlayerConnected(playerid))
       {
     if(PlayerInfo[playerid][pJob] != 16) // где 16 это ид работы дальнобойщика
     {
      SendClientMessage(playerid, COLOR_GREY, "Вы не работаете Дальнобойщиком!");
      return 1;
     }
     if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
     {
     SendClientMessage(playerid, 0xFFFFFFAA, "Грузовик готов к работе!");
     SetPlayerCheckpoint(playerid, -1055.921020, -713.372985, 32.007812  , 5.0);
     SendClientMessage(playerid, 0xFFFFFFAA, "Следуйте к красной точке на радаре, чтобы отвезти бензин на склад!");
     }
     else
     {
         new newcar = GetPlayerVehicleID(playerid);
      if(newcar == 135 || newcar == 134 || newcar == 133 || newcar == 275 || newcar == 274 || newcar == 273)
      {
      SendClientMessage(playerid, 0xFFFFFFAA, "На грузовике нет прицепа с бензином!");
      SetPlayerCheckpoint(playerid, 291.202270, 1410.547607, 10.208814 , 5.0);
               SendClientMessage(playerid, 0xFFFFFFAA, "Следуйте к красной точке на радаре, чтобы взять прицеп!");
      }
      else
      {
      SendClientMessage(playerid, COLOR_RED, "Сядьте сначала в грузовик!");
      return 1;
      }
     }
    }
      return 1;
   }
      if(strcmp(cmd, "/givepetrol", true) == 0)
      {
    if(IsPlayerConnected(playerid))
       {
     if(PlayerInfo[playerid][pJob] != 16)  // где 16 это ид работы дальнобойщика
     {
      SendClientMessage(playerid, COLOR_GREY, "Вы не работаете Дальнобойщиком!");
      return 1;
     }
     if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
     {
        
      if (PlayerToPoint(8.0, playerid,-1055.921020, -713.372985, 32.007812))
      {
        
      if (Systgas >= maxgas)
      {
       SendClientMessage(playerid, 0xFFFFFFAA, "Склад Gas Company полон. Приедьте позже!");
       return 1;
      }
      new sellmoney = 5000;
      if(SBizzInfo[3][sbTill] < sellmoney)
      {
       SendClientMessage(playerid, 0xFFFFFFAA, "Извените, денег у Gas Company нету. Приедьте позже!");
       return 1;
      }
      SBizzInfo[3][sbTill] -= sellmoney;
      //ExtortionSBiz(3, sellmoney); // чето не работает
      OnPropUpdate();
         GivePlayerMoney(playerid, sellmoney);
         DisablePlayerCheckpoint(playerid);
      Systgas +=1000;
      SaveGas();
      SetVehicleToRespawn(GetVehicleTrailer(GetPlayerVehicleID(playerid)));
      SendClientMessage(playerid, 0xFFFFFFAA, "Бензин успешно доставлен!");
      SendClientMessage(playerid, 0xFFFFFFAA, "За доставку вы получили гонорар в размере $5000!");
      }
      else
      {
      SendClientMessage(playerid, 0xFFFFFFAA, "Вы не на месте доставки бензина!");
      return 1;
      }
     }
     else
     {
     SendClientMessage(playerid, 0xFFFFFFAA, "На грузовике нет прицепа с бензином!");
     SetPlayerCheckpoint(playerid, 291.202270, 1410.547607, 10.208814 , 5.0);
              SendClientMessage(playerid, 0xFFFFFFAA, "Следуйте к красной точке на радаре, чтобы взять прицеп!");
     }
    }
      return 1;
   }

Добавляем прицепы:
Code

AddStaticVehicleEx(584,285.88708496,1346.71325684,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,282.59869385,1346.81933594,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,279.00360107,1346.81140137,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,275.66162109,1346.85388184,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,272.35064697,1346.97631836,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,269.11825562,1347.16479492,11.33633232,0.00000000,-1,-1,15); //

Настройка: узнайте id грузовиков и замените их в newcar (команда /getpetrol), замените ид профессии дальнобойщика, если она у Вас под другим ид. Цвета сообщение тоже настройте сами под свой вкус.

Если выложите координаты всех бензокалонок, то я переделаю мод так чтобы вместо склада дальнобои заправляли бензокалонки.

/getpetrol - взяться за работу
/givepetrol - отдать (продать) прицеп.

Писал мод я, и если уж это новый велосипед, со извените crazy

Работа Дальнобойщика [заправка бензокалонок]

Заправки разными типами бензина



[RGS]JAGUARДата: Суббота, 28.08.2010, 16:36 | Сообщение # 2
Советчик
Группа: Продвинутые
Сообщений: 1154
Награды: 25
Город: FloatX,FloatY,FloatZ
Репутация: 291
Замечания: 40%
Статус:
FiLE95, хорошая работа если это писал ты то держи + засужил!


[/url]
Новая ICQ: 593922
DiSEДата: Суббота, 28.08.2010, 17:17 | Сообщение # 3
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
Чувак, я тебя люблю crazy

Добавлено (28.08.2010, 17:17)
---------------------------------------------
+поставлю завтра, ато ща не могу

LacosteДата: Суббота, 28.08.2010, 17:40 | Сообщение # 4
Группа: Продвинутые
Сообщений: 844
Награды: 17
Город: Japan, Fukuoka
Репутация: 1140
Замечания: 20%
Статус:
Молодец, отличная работа!
EakwarpДата: Суббота, 28.08.2010, 17:50 | Сообщение # 5
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
[RGS]JAGUAR, нет не он, это взято из паблика, и валяется там уже очень очень давно.


More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.
FiLEДата: Суббота, 28.08.2010, 17:58 | Сообщение # 6
Группа: Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
Eakwarp, этот мод писал я. Работу билаза тоже я писал с нуля. Возможно конечно как говорится "придумал велосипед", тем не менее не нашел в поиске. Чужие работы никогда не выставлял за свои и не буду mda





Сообщение отредактировал FiLE95 - Суббота, 28.08.2010, 18:28
AlcoholikДата: Суббота, 28.08.2010, 19:33 | Сообщение # 7
Мастер джэдай
Группа: Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус:
а не надоест человеку ездить туда-сюда по одному маршруту? Хотя бы минимальный рандом бы сделал


if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die();
Мониторинг sa:mp серверов


Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги.
Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
DiSEДата: Суббота, 28.08.2010, 19:45 | Сообщение # 8
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
Прикольно сделал. Крутяк молодец
FiLEДата: Суббота, 28.08.2010, 20:01 | Сообщение # 9
Группа: Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
Quote (RoACh)
а не надоест человеку ездить туда-сюда по одному маршруту? Хотя бы минимальный рандом бы сделал

я найду или сделаю со временем все координаты заправок, и при команде будет выскакивать чекпоинт на заправку с меньшим кол-вом топлива, если получится конечно. Или проще можно просто сделать несколько трасс с чекпоинтами (как для гонок), но мне этот вариант не очень ахти






Сообщение отредактировал FiLE95 - Суббота, 28.08.2010, 20:40
Slot_LiteДата: Суббота, 28.08.2010, 22:33 | Сообщение # 10
Новенький
Группа: Пользователи
Сообщений: 34
Награды: 0
Город: Сеть
Репутация: 0
Замечания: 0%
Статус:
Хорошо...Спс пригодится :)
vlad_adminДата: Воскресенье, 29.08.2010, 10:36 | Сообщение # 11
Новенький
Группа: Пользователи
Сообщений: 28
Награды: 0
Город: Уфа
Репутация: -37
Замечания: 20%
Статус:
Спасибо молодец такое зделать просто отлично, но реал по одному маршруту будет надоедать.
DiZiДата: Воскресенье, 29.08.2010, 11:32 | Сообщение # 12
Местный
Группа: Продвинутые
Сообщений: 669
Награды: 2
Город: новокузнецк
Репутация: 158
Замечания: 40%
Статус:
Quote (FiLE95)
я найду или сделаю со временем все координаты заправок

Твори :D

Code
public IsAtGasStation(playerid)
{
     if(IsPlayerConnected(playerid))
  {
   if(PlayerToPoint(6.0,playerid,1004.0070,-939.3102,42.1797) || PlayerToPoint(6.0,playerid,1944.3260,-1772.9254,13.3906))
   {//LS
       return 1;
   }
   else if(PlayerToPoint(6.0,playerid,-90.5515,-1169.4578,2.4079) || PlayerToPoint(6.0,playerid,-1609.7958,-2718.2048,48.5391))
   {//LS
       return 1;
   }
   else if(PlayerToPoint(6.0,playerid,-2029.4968,156.4366,28.9498) || PlayerToPoint(8.0,playerid,-2408.7590,976.0934,45.4175))
   {//SF
       return 1;
   }
   else if(PlayerToPoint(5.0,playerid,-2243.9629,-2560.6477,31.8841) || PlayerToPoint(8.0,playerid,-1676.6323,414.0262,6.9484))
   {//Between LS and SF
       return 1;
   }
   else if(PlayerToPoint(6.0,playerid,2202.2349,2474.3494,10.5258) || PlayerToPoint(10.0,playerid,614.9333,1689.7418,6.6968))
   {//LV
       return 1;
   }
   else if(PlayerToPoint(8.0,playerid,-1328.8250,2677.2173,49.7665) || PlayerToPoint(6.0,playerid,70.3882,1218.6783,18.5165))
   {//LV
       return 1;
   }
   else if(PlayerToPoint(8.0,playerid,2113.7390,920.1079,10.5255) || PlayerToPoint(6.0,playerid,-1327.7218,2678.8723,50.0625))
   {//LV
       return 1;
   }
   else if(PlayerToPoint(8.0,playerid,2638.9458,1106.4662,10.5221))
   {//LV
       return 1;
   }
   else if(PlayerToPoint(8.0,playerid,2146.5403,2748.8328,10.5972) || PlayerToPoint(8.0,playerid,1596.2085,2198.9282,10.6360))
   {//LV
       return 1;
   }
   else if(PlayerToPoint(8.0,playerid,-1471.8903,1863.5856,32.3165) || PlayerToPoint(8.0,playerid,656.0037,-565.0102,16.0069))
   {//LV
       return 1;
   }
  }
  return 0;
}

Тут вроди все заправки, по крайней мере большая часть ;)


======= Мои проекты =======
[GM]Zombie Mod [Разработка][7%]
=======================


=====Мои работы=====
[FS] Auto Menu
[FS] AdminPanel




FiLEДата: Понедельник, 30.08.2010, 00:11 | Сообщение # 13
Группа: Разработчики
Сообщений: 681
Награды: 70
Город: Одесса
Замечания: 0%
Статус:
Работа дальнобойщика [Заправка заправок]

Описание: игрок, садиться в грузовик и едет на нефтеперерабатыающий завод. Цепляет прицеп (если нужно то дозаправляет его на месте). Выбирает командой, на какую заправку выгодней поехать (может далеко ехать неохота или наоборот, какая заправка требует хорошей дозаправки). Собственно едет на заправку, заправляет её. Бизнес "GAS компани" пересылает денежки дальнобойщику. + несколько еще функций, поближе можно будет разглядеть в коде.

Рассказую установку с самого начала. Итак:

1. FORWARDS

Code

forward LoadGas();
forward SaveGas();  

2. ПЕРЕМЕННЫЕ
Code

new petrolstantion[19]; // заправки
new petrolmaxstantion = 1000; // макс заправка старции
new petroltrailer = 0;
new petroltrailer1 = 1000;
new petroltrailer2 = 1000;
new petroltrailer3 = 1000;
new petroltrailer4 = 1000;
new petroltrailer5 = 1000;
new petroltrailer6 = 1000;
new petrolrandom = 0;
new petrolmaxrandom = 18;
new petrolid[MAX_PLAYERS];

3. Добавляем ко всем массивам (заправки)
Code

new Float:benzostantion[19][3] = {

{1004.0070,-939.3102,42.1797}, //
{1944.3260,-1772.9254,13.3906}, //
{-90.5515,-1169.4578,2.4079},
{-1609.7958,-2718.2048,48.5391},
{-2029.4968,156.4366,28.9498},
{-2408.7590,976.0934,45.4175},
{-2243.96 29,-2560.6477,31.8841},
{-1676.6323,414.0262,6.9484},
{2202.2349,2474.3494,10.5258},
{614.9333,1689.7418,6.6968},
{-1328.8250,2677.2173, 49.7665},
{70.3882,1218.6783,18.5165},
{2113.7390,920.1079,10.5255},
{-1327.7218,2678.8723,50.0625},
{2638.9458,1106.4662,10.5221},
{21 46.5403,2748.8328,10.5972},
{1596.2085,2198.9282,10.6360},
{-1471.8903,1863.5856,32.3165}, //
{656.0037,-565.0102,16.0069} //
};

Добавлено (29.08.2010, 21:28)
---------------------------------------------
4. Паблик с координатами станций (спасибоgolden103)

Code

public IsAtGasStation(playerid)
{
  if(IsPlayerConnected(playerid))
  {
   if(PlayerToPoint(6.0,playerid,1004.0070,-939.3102,42.1797) || PlayerToPoint(6.0,playerid,1944.3260,-1772.9254,13.3906))
   {//LS
    return 1;
   }
   else if(PlayerToPoint(6.0,playerid,-90.5515,-1169.4578,2.4079) || PlayerToPoint(6.0,playerid,-1609.7958,-2718.2048,48.5391))
   {//LS
    return 1;
   }
   else if(PlayerToPoint(6.0,playerid,-2029.4968,156.4366,28.9498) || PlayerToPoint(8.0,playerid,-2408.7590,976.0934,45.4175))
   {//SF
    return 1;
   }
   else if(PlayerToPoint(5.0,playerid,-2243.9629,-2560.6477,31.8841) || PlayerToPoint(8.0,playerid,-1676.6323,414.0262,6.9484))
   {//Between LS and SF
    return 1;
   }
   else if(PlayerToPoint(6.0,playerid,2202.2349,2474.3494,10.5258) || PlayerToPoint(10.0,playerid,614.9333,1689.7418,6.6968))
   {//LV
    return 1;
   }
   else if(PlayerToPoint(8.0,playerid,-1328.8250,2677.2173,49.7665) || PlayerToPoint(6.0,playerid,70.3882,1218.6783,18.5165))
   {//LV
    return 1;
   }
   else if(PlayerToPoint(8.0,playerid,2113.7390,920.1079,10.5255) || PlayerToPoint(6.0,playerid,-1327.7218,2678.8723,50.0625))
   {//LV
    return 1;
   }
   else if(PlayerToPoint(8.0,playerid,2638.9458,1106.4662,10.5221))
   {//LV
    return 1;
   }
   else if(PlayerToPoint(8.0,playerid,2146.5403,2748.8328,10.5972) || PlayerToPoint(8.0,playerid,1596.2085,2198.9282,10.6360))
   {//LV
    return 1;
   }
   else if(PlayerToPoint(8.0,playerid,-1471.8903,1863.5856,32.3165) || PlayerToPoint(8.0,playerid,656.0037,-565.0102,16.0069))
   {//LV
    return 1;
   }
  }
  return 0;
}

Добавлено (29.08.2010, 21:28)
---------------------------------------------
5. Ищем строки в паблике public Fillup()

Code

      Gas[VID] += FillUp;
      FillUp = FillUp * SBizzInfo[3][sbEntranceCost];

И перед ними вставляем:
Code

     if(PlayerToPoint(6.0,i,1004.0070,-939.3102,42.1797))
     {
     if(petrolstantion[0] < FillUp)
     {
     SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
     return 1;
     }
     else
     {
     petrolstantion[0] -= FillUp;
     SaveGas();
     }
     }
     else if(PlayerToPoint(6.0,i,1944.3260,-1772.9254,13.3906))
     {
           if(petrolstantion[1] < FillUp)
     {
           SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
           return 1;
     }
     else
     {
     petrolstantion[1] -= FillUp;
     SaveGas();
     }
     }
        else if(PlayerToPoint(6.0,i,-90.5515,-1169.4578,2.4079))
        {//LS
           if(petrolstantion[2] < FillUp)
           {
           SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
           return 1;
           }
     else
     {
     petrolstantion[2] -= FillUp;
     SaveGas();
     }
        }
        else if(PlayerToPoint(6.0,i,-1609.7958,-2718.2048,48.5391))
        {
     if(petrolstantion[3] < FillUp)
     {
     SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
     return 1;
     }
     else
     {
     petrolstantion[3] -= FillUp;
     SaveGas();
     }
     }
    else if(PlayerToPoint(6.0,i,-2029.4968,156.4366,28.9498))
    {//SF
         if(petrolstantion[4] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[4] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,-2408.7590,976.0934,45.4175))
    {
         if(petrolstantion[5] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[5] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(5.0,i,-2243.9629,-2560.6477,31.8841))
    {//Between LS and SF
         if(petrolstantion[6] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[6] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,-1676.6323,414.0262,6.9484))
    {
         if(petrolstantion[7] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[7] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(6.0,i,2202.2349,2474.3494,10.5258))
    {//LV
         if(petrolstantion[8] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[8] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(10.0,i,614.9333,1689.7418,6.6968))
    {
         if(petrolstantion[9] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[9] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,-1328.8250,2677.2173,49.7665))
    {//LV
         if(petrolstantion[10] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[10] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(6.0,i,70.3882,1218.6783,18.5165))
    {
         if(petrolstantion[11] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[11] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,2113.7390,920.1079,10.5255))
    {//LV
         if(petrolstantion[12] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[12] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(6.0,i,-1327.7218,2678.8723,50.0625))
    {
         if(petrolstantion[13] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[13] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,2638.9458,1106.4662,10.5221))
    {//LV
         if(petrolstantion[14] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[14] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,2146.5403,2748.8328,10.5972))
    {//LV
         if(petrolstantion[15] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[15] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,1596.2085,2198.9282,10.6360))
    {
         if(petrolstantion[16] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[16] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,-1471.8903,1863.5856,32.3165))
    {//LV
         if(petrolstantion[17] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[17] -= FillUp;
   SaveGas();
   }
    }
    else if(PlayerToPoint(8.0,i,656.0037,-565.0102,16.0069))
    {
         if(petrolstantion[18] < FillUp)
         {
         SendClientMessage(i, COLOR_LIGHTBLUE,"* На бензаколонке закончился бензин!");
         return 1;
         }
   else
   {
   petrolstantion[18] -= FillUp;
   SaveGas();
   }
    }

Добавлено (29.08.2010, 21:28)
---------------------------------------------
6. Чуть ниже находим Refueling[i] = 0; и ниже вставляем OnPropUpdate();
(тут не знаю нужно не нужно, но я поставил. это для того чтобы с бизнеса снимались деньги при продаже бензина дальнобойщиком)
7. Ищем строки

Code

   LoadProperty();
   LoadBizz();
   LoadSBizz();
   LoadBoxer();
   LoadStuff();

И ниже вставляем LoadGas();

8. Вставляем паблики

Code

public LoadGas()
{
  new arrCoords[19][64];
  new strFromFile2[256];
  new File: file = fopen("gas.ini", io_read);
  if (file)
  {
   fread(file, strFromFile2);
   split(strFromFile2, arrCoords, '|');

   petrolstantion[0] = strval(arrCoords[0]);
   petrolstantion[1] = strval(arrCoords[1]);
   petrolstantion[2] = strval(arrCoords[2]);
   petrolstantion[3] = strval(arrCoords[3]);
   petrolstantion[4] = strval(arrCoords[4]);
   petrolstantion[5] = strval(arrCoords[5]);
   petrolstantion[6] = strval(arrCoords[6]);
   petrolstantion[7] = strval(arrCoords[7]);
   petrolstantion[8] = strval(arrCoords[8]);
   petrolstantion[9] = strval(arrCoords[9]);
   petrolstantion[10] = strval(arrCoords[10]);
   petrolstantion[11] = strval(arrCoords[11]);
   petrolstantion[12] = strval(arrCoords[12]);
   petrolstantion[13] = strval(arrCoords[13]);
   petrolstantion[14] = strval(arrCoords[14]);
   petrolstantion[15] = strval(arrCoords[15]);
   petrolstantion[16] = strval(arrCoords[16]);
   petrolstantion[17] = strval(arrCoords[17]);
   petrolstantion[18] = strval(arrCoords[18]);

   fclose(file);
  }
  return 1;
}

public SaveGas()
{
  new coordsstring[256];
  format(coordsstring, sizeof(coordsstring), "%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d", petrolstantion[0], petrolstantion[1], petrolstantion[2], petrolstantion[3], petrolstantion[4], petrolstantion[5], petrolstantion[6], petrolstantion[7], petrolstantion[8], petrolstantion[9], petrolstantion[10], petrolstantion[11], petrolstantion[12], petrolstantion[13], petrolstantion[14], petrolstantion[15], petrolstantion[16], petrolstantion[17], petrolstantion[18]);
  new File: file2 = fopen("gas.ini", io_write);
  fwrite(file2, coordsstring);
  fclose(file2);
  return 1;
}

Добавлено (29.08.2010, 21:28)
---------------------------------------------
9. Вставляем команды

Code

if(strcmp(cmd, "/getpetrol", true) == 0)
     {
   if(IsPlayerConnected(playerid))
      {
    if(PlayerInfo[playerid][pJob] != 16)
    {
     SendClientMessage(playerid, COLOR_GREY, "Вы не работаете Дальнобойщиком!");
     return 1;
    }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
    {
             new message[96];
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 137)
    { petroltrailer = petroltrailer1; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 138)
    { petroltrailer = petroltrailer2; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 139)
    { petroltrailer = petroltrailer3; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 469)
    { petroltrailer = petroltrailer4; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 470)
    { petroltrailer = petroltrailer5; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 471)
    { petroltrailer = petroltrailer6; }
    format(message,sizeof(message), "* Литров банзина в трейлере: %d. Заправка треллера /filltrailer",petroltrailer);
          SendClientMessage(playerid, COLOR_WHITE, message);

       if(petrolstantion[petrolrandom] < 1000)
       {
     new outlitres = 1000 - petrolstantion[petrolrandom];
        format(message,sizeof(message), "* Найдена заправка №%d. Требуется %d литров дозаправки.",petrolrandom,outlitres);
           SendClientMessage(playerid, COLOR_WHITE, message);
     petrolid[playerid] = petrolrandom;
        SetPlayerCheckpoint(playerid, benzostantion[petrolrandom][0], benzostantion[petrolrandom][1], benzostantion[petrolrandom][2], 10.0);
        if(petrolrandom == petrolmaxrandom)
        {
         petrolrandom = 0;
        }
        else
        {
            petrolrandom += 1;
        }
    }
    else
    {
       format(message,sizeof(message), "* Заправочная станция №%d не требует дозаправки.",petrolrandom);
     SendClientMessage(playerid, COLOR_WHITE, message);
              SendClientMessage(playerid, 0xFFFFFFAA, "GPS: Введите /getpetrol для поиска следующей заправки!");
       if(petrolrandom == petrolmaxrandom)
        {
         petrolrandom = 0;
        }
        else
        {
            petrolrandom += 1;
        }
    }

    }
    else
    {
        new newcar = GetPlayerVehicleID(playerid);
     if(newcar == 135 || newcar == 134 || newcar == 133 || newcar == 275 || newcar == 274 || newcar == 273)
     {
     SendClientMessage(playerid, 0xFFFFFFAA, "На грузовике нет прицепа с бензином!");
     SetPlayerCheckpoint(playerid, 291.202270, 1410.547607, 10.208814 , 5.0);
              SendClientMessage(playerid, 0xFFFFFFAA, "Красная точка на радаре показывает Нефтеперерабатывающий завод!");
     }
     else
     {
     SendClientMessage(playerid, COLOR_RED, "Сядьте сначала в грузовик!");
     return 1;
     }
    }
   }
     return 1;
  }

     if(strcmp(cmd, "/filltrailer", true) == 0)
     {
   if(IsPlayerConnected(playerid))
      {
    if(PlayerInfo[playerid][pJob] != 16)
    {
     SendClientMessage(playerid, COLOR_GREY, "Вы не работаете Дальнобойщиком!");
     return 1;
    }
    new newcar = GetPlayerVehicleID(playerid);
    if(newcar == 135 || newcar == 134 || newcar == 133 || newcar == 275 || newcar == 274 || newcar == 273)
       {} else
       {
        SendClientMessage(playerid, COLOR_RED, "Сядьте сначала в грузовик!");
     return 1;
    }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
    {}
    else
    {
    SendClientMessage(playerid, 0xFFFFFFAA, "На грузовике нет прицепа с бензином!");
    return 1;
    }
    if(PlayerToPoint(10.0, playerid, 247.031768, 1395.618041, 10.585937))
    {}
    else
    {
             SetPlayerCheckpoint(playerid, 247.031768, 1395.618041, 10.585937, 10.0);

    SendClientMessage(playerid, 0xFFFFFFAA, "Вы на на месте заправки трелера!");
    return 1;
    }

    DisablePlayerCheckpoint(playerid);

    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 137)
    { petroltrailer1 = 1000; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 138)
    { petroltrailer2 = 1000; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 139)
    { petroltrailer3 = 1000; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 469)
    { petroltrailer4 = 1000; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 470)
    { petroltrailer5 = 1000; }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 471)
    { petroltrailer6 = 1000; }
    format(string,sizeof(string), "* Треллер дозаправлен. Введите /getpetrol для начала работы",petroltrailer);
          SendClientMessage(playerid, COLOR_WHITE, string);
   }
   return 1;
  }
   

     if(strcmp(cmd, "/givepetrol", true) == 0)
     {
   if(IsPlayerConnected(playerid))
      {
    if(PlayerInfo[playerid][pJob] != 16)
    {
     SendClientMessage(playerid, COLOR_GREY, "Вы не работаете Дальнобойщиком!");
     return 1;
    }
    if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
    {
     //petrolid[playerid] = petrolrandom;
        if (PlayerToPoint(10.0, playerid, benzostantion[petrolid[playerid]][0], benzostantion[petrolid[playerid]][1], benzostantion[petrolid[playerid]][2]))
     {
      if (petrolstantion[petrolid[playerid]] >= petrolmaxstantion)
      {
      SendClientMessage(playerid, 0xFFFFFFAA, "Зарпавочная станция полна. Приедьте позже!");
      return 1;
      }
      new petrollitres = petrolmaxstantion - petrolstantion[petrolid[playerid]];
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 137)
      {
       petroltrailer = petroltrailer1;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 138)
      {
       petroltrailer = petroltrailer2;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 139)
      {
       petroltrailer = petroltrailer3;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 469)
      {
       petroltrailer = petroltrailer4;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 470)
      {
       petroltrailer = petroltrailer5;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 471)
      {
       petroltrailer = petroltrailer6;
      }
      if (petroltrailer < petrollitres)
      {
       SendClientMessage(playerid, 0xFFFFFFAA, "В вашем трейлере недостаточно бензина. Пополните /filltrailer!");
       return 1;
      }
      new sellmoney = petrollitres * 30;
      if(SBizzInfo[3][sbTill] < sellmoney)
      {
       SendClientMessage(playerid, 0xFFFFFFAA, "Извените, денег у Gas Company нету. Приедьте позже!");
       return 1;
      }
      SBizzInfo[3][sbTill] -= sellmoney;
      OnPropUpdate();
         GivePlayerMoney(playerid, sellmoney);
         DisablePlayerCheckpoint(playerid);
      petrolstantion[petrolid[playerid]] +=petrollitres;
      petroltrailer -= petrollitres;
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 137)
      {
       petroltrailer1 = petroltrailer;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 138)
      {
       petroltrailer2 = petroltrailer;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 139)
      {
       petroltrailer3 = petroltrailer;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 469)
      {
       petroltrailer4 = petroltrailer;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 470)
      {
       petroltrailer5 = petroltrailer;
      }
      if(GetVehicleTrailer(GetPlayerVehicleID(playerid)) == 471)
      {
       petroltrailer6 = petroltrailer;
      }
      SaveGas();
      SendClientMessage(playerid, 0xFFFFFFAA, "Автозаправка дозаправлена!");
      format(string,sizeof(string), "* За проделанную работу Вы получате $%d.",sellmoney);
            SendClientMessage(playerid, COLOR_WHITE, string);
     }
     else
     {
      SendClientMessage(playerid, 0xFFFFFFAA, "Вы не на месте доставки бензина!");
      return 1;
     }
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFAA, "На грузовике нет прицепа с бензином!");
    SetPlayerCheckpoint(playerid, 291.202270, 1410.547607, 10.208814 , 5.0);
             SendClientMessage(playerid, 0xFFFFFFAA, "Следуйте к красной точке на радаре, чтобы взять прицеп!");
    }
   }
     return 1;
  }

Добавлено (29.08.2010, 21:29)
---------------------------------------------
10. Добавляем прицепы

Code

AddStaticVehicleEx(584,285.88708496,1346.71325684,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,282.59869385,1346.81933594,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,279.00360107,1346.81140137,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,275.66162109,1346.85388184,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,272.35064697,1346.97631836,11.33633232,0.00000000,-1,-1,15); //
AddStaticVehicleEx(584,269.11825562,1347.16479492,11.33633232,0.00000000,-1,-1,15); //  

11. Создайте файл gas.ini в папке scriptfiles и заполните его содержимым:

Code

1000|100|100|100|100|100|100|100|100|100|100|100|100|100|100|93|100|100|100

где каждое число - это количество литров на каждой заправке.

Настройка: Цвет сообщений (опционально), id треллеров и грузовиков (обязательно) а также id работы дальнобойщика измение на свой (обязательно), измените цену бензина при продаже дальнобойщиком...

Обязательно протестируйте и проверьте на уязвимость

При правильной установке ошибок возникнуть не должно. Найдете баг - попытаемся исправить new_russian

Добавлено (30.08.2010, 00:11)
---------------------------------------------
Команды:
/getpetrol - работать
/filltrailer - заправить трелер
/givepetrol - продать бензин



Jumpman23Дата: Понедельник, 30.08.2010, 02:17 | Сообщение # 14
Группа: I'm V.I.P.
Сообщений: 1359
Награды: 23
Город: Kingston, Rastapolis
Репутация: 504
Замечания: 100%
Статус:
FiLE95, радуеш с каждым днём всё больше и больше =)


Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме.
Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы).
Великс ты красава.
DiSEДата: Понедельник, 30.08.2010, 14:46 | Сообщение # 15
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
Супер. Где ты был раньше. Через 6 часов поставлю +
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua