(Scr) Работа "Грузчик"

Description: Готовые решения скриптов, filterScript
Moderator: SJplayer

Дим M
Topic author, Администратор
Администратор
Avatar
Дим M
Topic author, Администратор
Администратор
Posts: 1612
Joined: 5 Apr 2013
With us: 11 years 6 months

#1by Дим » 16 May 2013, 9:48

(Scr) Работа "Грузчик"
Автор: happines

В этой теме я расскажу как сделать работу грузчиком у себя на сервере. Цель работы заключается в перевозе ящиков на погрузчике к точке разгрузки. Работа находится в районе Лас Вентураса, в городке Форт Карсон.

Скриншоты
Image

Image

Image

Image

Image

Нам потребуется: - Streamer от Incognito

Для начала создадим нужные переменные и объявим массивы.

Code: Select all

// Это массив с координатами "подбора" груза
new Float:checkLoader[7][3] = {
{-
147.66501112.114519.7500},
{-
147.71971126.303819.7422},
{-
119.99861136.409519.7422},
{-
102.04311129.715719.7500},
{-
77.81521133.704119.7422},
{-
83.79671124.847819.7422},
{-
79.53031111.522919.7500}
};
// А здесь координаты "разгрузки"
new Float:checkLoaderUnload[3][3] = {
{-
110.33171117.334019.7422},
{-
113.28391117.650919.7422},
{-
107.62721117.748019.7422}
};
new 
hereCheckLoader[MAX_PLAYERS];
new 
hereCheckUnLoader[MAX_PLAYERS];
new 
drawer[MAX_PLAYERS];  


Теперь сделаем так чтобы при посадке в погрузчик, автоматически создавался чекпойнт. Идём в OnPlayerStateChange и вставляем туда:

Code: Select all

// Если игрок сел за руль
if(newstate == PLAYER_STATE_DRIVER)
{
            if(
GetVehicleModel(GetPlayerVehicleID(playerid)) == 530// 530 это погрузчик
  
{
      new 
rand random(sizeof(checkLoader));
      
hereCheckLoader[playerid] = CreateDynamicCP(checkLoader[rand][0], checkLoader[rand][1], checkLoader[rand][2], 1.6, -1, -1playerid100.0);
      
ShowPlayerDialog(playerid666DIALOG_STYLE_MSGBOX"Грузчик""Отправляйся на красный чекпойнт за грузом.""Хорошо"""); // Покажем игроку диалог о том что он может начинать работать
  
}
}
// Если игрок вылез из кара, удалим чекпойнты
else if(newstate == PLAYER_STATE_ONFOOT)
{
    if(
hereCheckLoader[playerid]) DestroyDynamicCP(hereCheckLoader[playerid]);
    if(
hereCheckUnLoader[playerid]) DestroyDynamicCP(hereCheckUnLoader[playerid]);
}  


А теперь дадим денег игроку за каждый разгруженный ящик. Ищем (если нету, создаём) паблик OnPlayerEnterDynamicCP и вставляем в него:

Code: Select all

// Если игрок подобрал ящик
if(checkpointid == hereCheckLoader[playerid])
{
    
drawer[playerid] = CreateDynamicObject(12240.00.00.00.00.00.0);
    
AttachDynamicObjectToVehicle(drawer[playerid], GetPlayerVehicleID(playerid), 0.00.60.60.00.00.0);
    new 
rand random(sizeof(checkLoaderUnload));
    
hereCheckUnLoader[playerid] = CreateDynamicCP(checkLoaderUnload[rand][0], checkLoaderUnload[rand][1], checkLoaderUnload[rand][2], 1.6, -1, -1playerid100.0);
    
DestroyDynamicCP(hereCheckLoader[playerid]);
}
// Если игрок сгрузил ящик
else if(checkpointid == hereCheckUnLoader[playerid])
{
    
GivePlayerMoney(playerid20); // При желании вы можете записывать деньги в переменную а выдавать при зарплате
    
GameTextForPlayer(playerid"~g~+20$"30004);
    new 
rand random(sizeof(checkLoader));
    
hereCheckLoader[playerid] = CreateDynamicCP(checkLoader[rand][0], checkLoader[rand][1], checkLoader[rand][2], 1.6, -1, -1playerid100.0);
    
DestroyDynamicCP(hereCheckUnLoader[playerid]);
    
DestroyDynamicObject(drawer[playerid]);
}  
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Similar Topics
    Replies
    Views
    Last post

Return to “Скрипты / FS”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest
Bots: Yandex [Bot]