Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Work mechanics basis

Статус
В этой теме нельзя размещать новые ответы.

WorcOut-

Дебютант
Добрый день , вот решил выложить основу работы Механик
1) Проверка
2) Транспорт
3) Прицеп

[HR][/HR]
Работа 40% из 100 %
[HR][/HR]
[HR][/HR]
В #define добавим такие как
PHP:
#define COLOR_GREY                0xAFAFAFAA 
#define COLOR_GREEN                0x33AA33AA 
#define send(%0,%1)     SendClientMessage(%0, -1, %1) 
#define HOLDING(%0) \ 
    ((newkeys & (%0)) == (%0)) 
#define PRESSED(%0) \ 
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) 
#define RELEASED(%0) \ 
    (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
[HR][/HR]
К переменным добавим
PHP:
new MEH; 
new mehcar[2]; 
new GetJobVehicle[MAX_PLAYERS]; 
new MEHANIZATOK[MAX_PLAYERS];
[HR][/HR]
В native добавим !
PHP:
native IsValidVehicle(vehicleid);
[HR][/HR]
В enum pInfo добавим
PHP:
pMember, 
     pSkin, 
     pChar,
[HR][/HR]
В public OnGameModeInit() добавим
PHP:
MEH = CreatePickup(1275, 23,1654.5427,-1074.7855,23.8984,0); 
    //========================================================================== 
    mehcar[0] = CreateVehicle(525, 1649.6682, -1080.3457, 23.6751, 91.2600, 1, 0, 100); 
    CreateVehicle(525, 1649.6682, -1084.5273, 23.6751, 91.2600, 1, 0, 100); 
    CreateVehicle(525, 1649.6682, -1089.0726, 23.6751, 91.2600, 1, 0, 100); 
    CreateVehicle(525, 1649.6682, -1093.4283, 23.6751, 91.2600, 1, 0, 100); 
    CreateVehicle(525, 1649.6682, -1097.8707, 23.6751, 91.2600, 1, 0, 100); 
    CreateVehicle(525, 1649.6682, -1102.5413, 23.6751, 91.2600, 1, 0, 100); 
    CreateVehicle(525, 1649.6682, -1107.2341, 23.6751, 91.2600, 1, 0, 100); 
    mehcar[1] = CreateVehicle(525, 1649.6682, -1112.1067, 23.6751, 91.2600, 1, 0, 100);
[HR][/HR]
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) добавим
PHP:
new 
        vehicle = GetPlayerVehicleID(playerid) 
    ; 
    new 
        model = GetVehicleModel(vehicle) 
    ; 
    new 
        targetVehicle, 
        Float:targetVehicleDistance, 
        closestVehicle, 
        Float:closestVehicleDistance = 7.0, 
        found = 0 
    ; 
    new 
        Float:x_model_car, 
        Float:y_model_car, 
        Float:z_model_car 
    ; 
    if(vehicle >= mehcar[0] && vehicle <= mehcar[1]) 
    { 
        if ((GetPlayerState(playerid) == PLAYER_STATE_DRIVER) && PRESSED(KEY_ACTION) && (model == 525)) 
        { 
            while(targetVehicle < MAX_VEHICLES) 
            { 
                  GetVehiclePos(targetVehicle, x_model_car, y_model_car, z_model_car); 
                   targetVehicleDistance = GetVehicleDistanceFromPoint(vehicle, x_model_car, y_model_car, z_model_car);
                if(IsValidVehicle(targetVehicle) && (floatcmp(targetVehicleDistance, 7.0) <= 0) && (targetVehicle != vehicle) && (floatcmp(targetVehicleDistance, closestVehicleDistance) <= 0)) 
                { 
                    found = 1; 
                    closestVehicle = targetVehicle; 
                    closestVehicleDistance = targetVehicleDistance; 
                } 
                targetVehicle++; 
              } 
               if(found) 
               { 
                if  (IsTrailerAttachedToVehicle(vehicle)) 
                     { 
                          DetachTrailerFromVehicle(vehicle); 
                     } 
                   AttachTrailerToVehicle(closestVehicle, vehicle); 
             } 
        } 
          if(MEHANIZATOK[playerid] == 0) 
        { 
            send(playerid, "You do not got a job"); 
            RemoveFromVehicle(playerid); 
        } 
        else 
        { 
              GetJobVehicle[playerid] = GetPlayerVehicleID(playerid); 
         } 
      }
[HR][/HR]
В public OnPlayerPickUpPickup(playerid, pickupid) добавим
PHP:
if(pickupid == MEH) 
    { 
         if(MEHANIZATOK[playerid] == 1) ShowPlayerDialog(playerid,61,0,"JOB \"The Mechanic\"","Do you really want to quit your job?","Yes","No"); 
        else ShowPlayerDialog(playerid,60,0,"JOB \"The Mechanic\"","You're going to get Mechanic\n","Yes","No"); 
    }
[HR][/HR]
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) добавим
PHP:
case 60: 
        { 
            if(response) 
            { 
                if(MEHANIZATOK[playerid] == 1) return send(playerid, "Error! You are already working here."); 
                MEHANIZATOK[playerid] = 1; 
                SetPlayerSkin(playerid, 16); 
                SendClientMessage(playerid, COLOR_GREEN, "{e49b0f}The working day started."); 
            } 
        } 
        case 61: 
        { 
            if(response) 
            { 
                if(MEHANIZATOK[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "Error! You still do not work."); 
                MEHANIZATOK[playerid] = 0; 
                if(PlayerInfo[playerid][pMember] >= 1) SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]); 
                if(PlayerInfo[playerid][pMember] == 0) SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]); 
                SendClientMessage(playerid, COLOR_GREEN, "{e49b0f}The working day is over."); 
                SetPVarInt(playerid,"job",0); 
            } 
        } 
      }
[HR][/HR]
В конце мода добавим сток
PHP:
stock RemoveFromVehicle(playerid) 
{ 
    if(GetPlayerState(playerid) == 2) 
    { 
        SetVehicleVelocity(GetPlayerVehicleID(playerid), 0.0, 0.0, 0.0); 
        SetPVarInt(playerid, "RemoveCar", GetPlayerVehicleID(playerid)); 
        RemovePlayerFromVehicle(playerid); 
       SetTimerEx("@__check_player", 3200, false, "i", playerid); //  
    } 
    return true; 
}
@__check_player(playerid);
@__check_player(playerid)
{
    if(IsPlayerInVehicle(playerid, GetPVarInt(playerid, "RemoveCar")))
    {
        if(PlayerInfo[playerid][pAdmin] == 0) send(playerid,""C1"Вы кикнуты по подозрению в читерстве. | код: #006c (sobeit)"),Kick(playerid);
    }
}
[HR][/HR]
Автор: -WorcOut-
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу