[include] GetRepairPrice - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[include] GetRepairPrice
Herro[CM] Дата: Среда, 09.09.2015, 20:43 | Сообщение # 1
Бывалый
Сообщений: 425
Статус: Offline

Данный include собирает статус повреждения транспортных средств на каждом компоненте транспортного средства (бампер/дверь итд)

Include
Код

/*
   2014, 18th of June.
     
   Credits:
    GiGi / d3ll / Brandon_More - Coder (Edited)
    Kalcor - a_samp.inc (functions)
    Mmartin - Original coder.
*/
#include <a_samp>
stock GetRepairPrice(vehicleid, &price)
{
   new    panels,
    doors,
    lights,
    tires;
      
   GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
// Vehicle perhiferals
   new front_left_panel  =  0xf & panels;
   new front_right_panel  =  ( ( 0xf << 4 ) & panels ) >> 4;
   new rear_left_panel  =  ( ( 0xf << 8 ) & panels ) >> 8;
   new rear_right_panel  =  ( ( 0xf << 12 ) & panels ) >> 12;
     
   new wind_shield   =  ( ( 0xf << 16 ) & panels ) >> 16;
     
   new front_bumper   =  ( ( 0xf << 20 ) & panels ) >> 20;
   new rear_bumper   =  ( ( 0xf << 24 ) & panels ) >> 24;
   new hood     =  0xf & doors;   
   new trunk    =  ( ( 0xf << 8 ) & doors ) >> 8;
// Vehicle seats
   new front_left_seat  =  ( ( 0xf << 16 ) & doors ) >> 16;
   new front_right_seat  =  ( ( 0xf << 24 ) & doors ) >> 24;
   new rear_left_seat   =  ( ( 0xf << 32 ) & doors ) >> 32;
   new rear_right_seat  =  ( ( 0xf << 40 ) & doors ) >> 40;
// Tires
   new tire_front_left = 1 & tires;
   new tire_front_right = ( ( 1 << 1 ) & tires ) >> 1;
   new tire_rear_left = ( ( 1 << 2 ) & tires ) >> 2;
   new tire_rear_right = ( ( 1 << 3 ) & tires ) >> 3;
// Comparing the information together
   new panel_add = floatround( (  front_left_panel +
           front_right_panel +
           rear_left_panel +
           rear_right_panel +
           wind_shield +
           front_bumper +
           rear_bumper ) / 0.21 );
          
   new door_add = floatround( (  hood +
           trunk +
           front_left_seat +
           front_right_seat +
           rear_left_seat +
           rear_right_seat ) / 0.24 );
     
   new tire_add = floatround( (  tire_front_left +
           tire_front_right +
           tire_rear_left +
           tire_rear_right ) / 0.04 );
     
   new pprice = 1 * panel_add;
   new dprice = 1 * door_add;
   new tprice = 2 * tire_add;
   new Float:iHealth;
   GetVehicleHealth(vehicleid, iHealth);
   new engineprice = floatround( ( floatround ( iHealth - 1000 ) * ( -1 ) ) * 0.75 );
   price = engineprice + tprice + dprice + pprice;
}


Добавление в скрипт/мод
Код
#include <GetRepairPrice>


Функция:
Код
GetRepairPrice(vehicleid, price);


Пример:

Код

COMMAND:fixcar(playerid, params[])
{
   if(IsPlayerInAnyVehicle(playerid) == 1)
   {
    new vehicleid = GetPlayerVehicleID(playerid);
    new iPrice;
    GetRepairPrice(vehicleid, iPrice);
    if(GetPlayerMoney(playerid) >= iPrice)
    {
     return RepairVehicle(vehicleid);
    }
    else return SendClientMessage(playerid, -1, "Не достаточно денег для ремонта транспортного средства");
   }
   else return SendClientMessage(playerid, -1, "Вы не в машине!");




Когда нет знания, есть мнение.

Сообщение отредактировал Herro[CM] - Среда, 09.09.2015, 20:43
Surex Дата: Суббота, 02.07.2016, 14:03 | Сообщение # 2
Боец
Сообщений: 137
Статус: Offline
полезно!

Плисс Дата: Вторник, 19.07.2016, 21:25 | Сообщение # 3
Боец
Сообщений: 70
Статус: Offline
Кросс,полезная темка!
James_Lombardo Дата: Пятница, 20.01.2017, 22:11 | Сообщение # 4
Боец
Сообщений: 131
Статус: Offline
Полезная тема!

Аккаунт разрешен администратором Sponge_Noob
Я здесь уже 999-й день
https://vk.com/id401812964
SlowsizeCM Дата: Суббота, 28.01.2017, 23:33 | Сообщение # 5
Боец
Сообщений: 78
Статус: Offline
Полезно!
  • Страница 1 из 1
  • 1
Поиск: