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

Описание: Готовые решения скриптов, filterScript
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 16 мая 2013, 9:48

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

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

Скриншоты
Изображение

Изображение

Изображение

Изображение

Изображение

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

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

Код: Выделить всё

// Это массив с координатами "подбора" груза
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 и вставляем туда:

Код: Выделить всё

// Если игрок сел за руль
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 и вставляем в него:

Код: Выделить всё

// Если игрок подобрал ящик
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]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Скрипты / FS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя