[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Урок по созданию работы Дальнобойщик
Дата: 30.01.2011, Воскресенье, 15:29:04 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 9
Репутация: 15+
Ко всем forward-ам добавляем:
Code
forward IsADalnoboiCar(carid);

Потом вставляем этот паблик куда вам угодно:
Code
public IsADalnoboiCar(carid)
{
new model=GetVehicleModel(carid);
if(model == 515 || model == 514 || model == 403) //
{return 1;}
return 0;
}

Где 515,514,403 это ид грузовых машин.

В public OnPlayerStateChange(playerid, newstate, oldstate) вставляем:

Code
if(IsADalnoboiCar(newcar)) {
if(PlayerInfo[playerid][pJob] != 16 )  
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COLOR_GREY, "Ты не Дальнобойщик.");
}
}

А сейчас переходим к созданию команды:

Code
if(strcmp(cmd, "/gruz", true) == 0) {
   new carid = GetPlayerVehicleID(playerid);
   if(PlayerInfo[playerid][pJob] != 16) {
    format(string, sizeof(string), "  Вы не работаете дальнобойщиком!");
       SendClientMessage(playerid, COLOR_GRAD1, string); return 1;
   }
   if (!IsADalnoboiCar(carid)) {
          SendClientMessage(playerid, COLOR_GRAD1, "  Вы должны находится в фуре чтобы взять груз!"); return 1;
   }
   GetPlayerName(playerid, sendername, sizeof(sendername));
   ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
      new listitems[] = "1\tОтвезти груз в ЛС\n2\tОтвезти груз в СФ\n3\tОтвезти груз в ЛВ";
      ShowPlayerDialog(playerid,123,DIALOG_STYLE_LIST," Портативный Gps Навигатор:",listitems," Подтвердить"," Отмена");
      return 1;
  }

А это команда чтобы выбрать куда везти груз.
Code
if(strcmp(cmd, "/ungruz", true) == 0)
  {
      if(IsPlayerConnected(playerid))
   {
       if(PlayerInfo[playerid][pJob] != 16)
    {
     SendClientMessage(playerid, COLOR_GREY, " Вы не дальнобойщик!");
        return 1;
         }
      new carid = GetPlayerVehicleID(playerid);
      new gTrailer = GetVehicleTrailer(carid);
          if(!IsTrailerAttachedToVehicle(carid))
       {
     SendClientMessage(playerid, COLOR_GREY, "Вы приехали без груза!!!");
       return 1;
    }
             new x_nr[256];
    x_nr = strtok(cmdtext, idx);
    if(!strlen(x_nr))
    {
        SendClientMessage(playerid, COLOR_WHITE, "Используйте: /upgruz название взависимости от локации");
        SendClientMessage(playerid, COLOR_WHITE, "Доступные Названия: ls, sf, lv.");
     return 1;
    }
       if(strcmp(x_nr,"ls",true) == 0)
    {
     if(PlayerToPoint(3.0,playerid,2519.7297,-2440.3740,13.3399))
     {
      format(string, sizeof(string), "|____________________________|");
      SendClientMessage(playerid, COLOR_RED1, string);
       format(string, sizeof(string), "Вы доставили груз!");
      SendClientMessage(playerid, COLOR_LG, string);
      format(string, sizeof(string), "И получили премию в размере 7000$");
      SendClientMessage(playerid, COLOR_LG, string);
      format(string, sizeof(string), "|____________________________|");
      SendClientMessage(playerid, COLOR_RED1, string);
      GivePlayerMoney(playerid, 7000);
      SetVehicleToRespawn(gTrailer);
      DisablePlayerCheckpoint(playerid);
      SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");
      return 1;
     }
     else
     {
        SendClientMessage(playerid, COLOR_GREY, "   Вы не на складе.");
      return 1;
     }
    }
    else if(strcmp(x_nr,"sf",true) == 0)
    {
    if(PlayerToPoint(3.0,playerid,-2688.5688,234.7379,4.0589))
     {
     format(string, sizeof(string), "|____________________________|");
     SendClientMessage(playerid, COLOR_RED1, string);
      format(string, sizeof(string), "Вы доставили груз в Сан Фиеро!");
     SendClientMessage(playerid, COLOR_LG, string);
     format(string, sizeof(string), "И вы получили премию в размере 14000$");
     SendClientMessage(playerid, COLOR_LG, string);
     format(string, sizeof(string), "|____________________________|");
     SendClientMessage(playerid, COLOR_RED1, string);
     GivePlayerMoney(playerid, 14000);
     SetVehicleToRespawn(gTrailer);
     DisablePlayerCheckpoint(playerid);
     SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");
        return 1;
    }
    else
    {
        SendClientMessage(playerid, COLOR_GREY, "   Вы не на складе.");
      return 1;
     }
    }
    else if(strcmp(x_nr,"lv",true) == 0)
    {
    if(PlayerToPoint(3.0,playerid,-367.9283,1583.2257,75.9362))
     {
     format(string, sizeof(string), "|____________________________|");
     SendClientMessage(playerid, COLOR_RED1, string);
      format(string, sizeof(string), "Вы доставили груз!");
     SendClientMessage(playerid, COLOR_LG, string);
     format(string, sizeof(string), "И вы получили премию в размере 25000$");
     SendClientMessage(playerid, COLOR_LG, string);
     format(string, sizeof(string), "|____________________________|");
     SendClientMessage(playerid, COLOR_RED1, string);
     GivePlayerMoney(playerid, 25000);
     SetVehicleToRespawn(gTrailer);
     DisablePlayerCheckpoint(playerid);
     SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");
        return 1;
    }
    else
    {
        SendClientMessage(playerid, COLOR_GREY, "   Вы не на складе.");
      return 1;
     }
    }
   }
     }

Это команда чтобы сдать груз когда будешь стоять на ЧП.

И последний штрих добавляем в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):

Code
else if(dialogid == 123)
  {
    if(!response) return 0;
   else
   {
    gPlayerCheckpointStatus[playerid] = CHECKPOINT_GPS;
    switch (listitem)
    {
       case 0:
       {
      SetPlayerCheckpoint(playerid,2519.7297,-2440.3740,13.3399,5.0);
     SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
     }
       case 1:
     {
     SetPlayerCheckpoint(playerid,-2688.5688,234.7379,4.0589,5.0);
     SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
     }
     case 2:
     {
                 SetPlayerCheckpoint(playerid,-367.9283,1583.2257,75.9362,5.0);
     SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
     }
     case 6:
        {
     PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
     DisablePlayerCheckpoint(playerid);
     }
       }
   }
  }

ну вот и все на этом наш урок заканчивается. Если вам поравилось от + не откажусь.

Дата: 30.01.2011, Воскресенье, 16:53:59 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 225
Репутация: 255+
ShaKuR, завтра дам + =)
Дата: 30.01.2011, Воскресенье, 16:59:28 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 223
Репутация: 98+
по этому примеру так же можно создать работы на подобии дальнобойщиков :)
Дата: 30.01.2011, Воскресенье, 17:52:45 | Сообщение # $NUMBER
Группа: Модераторы
Сообщений: 260
Репутация: -24+
У меня нету этого: PlayerInfo[playerid][pJob]
Дата: 30.01.2011, Воскресенье, 18:16:45 | Сообщение # $NUMBER
Группа: Удаленные
Сообщений:
Репутация: +
ShaKuR CRAZY , ты как Тупак Шакур ?
Дата: 30.01.2011, Воскресенье, 18:29:50 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 9
Репутация: 15+
Да нет, ты похоже ошибся.
Дата: 30.01.2011, Воскресенье, 18:51:23 | Сообщение # $NUMBER
Группа: Модераторы
Сообщений: 260
Репутация: -24+
ShaKuR, Что делать?
Дата: 31.01.2011, Понедельник, 19:32:43 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
Репутация: 74+
У мя такие ошибки помогите испрасить:
Quote
e:\VruB4Y\gamemodes\VruBY.pwn(7369) : error 017: undefined symbol "gPlayerCheckpointStatus"
e:\VruB4Y\gamemodes\VruBY.pwn(7369) : warning 215: expression has no effect
e:\VruB4Y\gamemodes\VruBY.pwn(7369) : error 001: expected token: ";", but found "]"
e:\VruB4Y\gamemodes\VruBY.pwn(7369) : error 029: invalid expression, assumed zero
e:\VruB4Y\gamemodes\VruBY.pwn(7369) : fatal error 107: too many error messages on one line

Строчка в которой ошибки выделена и почёркнута:

Quote
else if(dialogid == 123)
{
if(!response) return 0;
else
{
gPlayerCheckpointStatus[playerid] = CHECKPOINT_GPS;
switch (listitem)
{
case 0:
{
SetPlayerCheckpoint(playerid,2519.7297,-2440.3740,13.3399,5.0);
SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
}
case 1:
{
SetPlayerCheckpoint(playerid,-2688.5688,234.7379,4.0589,5.0);
SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
}
case 2:
{
SetPlayerCheckpoint(playerid,-367.9283,1583.2257,75.9362,5.0);
SendClientMessage(playerid, COLOR_LIGHTRED, "Склад на котрый требуется доствить груз отмечен на радаре!");
}
case 6:
{
PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
DisablePlayerCheckpoint(playerid);
}
}
}
}

Кто поможет тому + и подарок!
Дата: 31.01.2011, Понедельник, 20:04:58 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 225
Репутация: 255+
Alex1994, попробуй добавить в начало мода ко всем переменным new gPlayerCheckpointStatus[MAX_PLAYERS]; и еще лутче gPlayerCheckpointStatus[playerid] = CHECKPOINT_GPS; поменяй на gPlayerCheckpointStatus[playerid] = CHECKPOINT_HOME;
Дата: 31.01.2011, Понедельник, 20:52:40 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
Репутация: 74+
Терь осталось:
e:\VruB4Y\gamemodes\VruBY.pwn(20791) : error 017: undefined symbol "sendername"
e:\VruB4Y\gamemodes\VruBY.pwn(20791) : error 017: undefined symbol "sendername"
e:\VruB4Y\gamemodes\VruBY.pwn(20791) : error 029: invalid expression, assumed zero
e:\VruB4Y\gamemodes\VruBY.pwn(20791) : fatal error 107: too many error messages on one line
Дата: 06.02.2011, Воскресенье, 19:33:17 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
Репутация: 74+
Люди нужна помощ с мя + и подарок!
Вот в этом коде ошибка!
Code
if(strcmp(cmd, "/ungruz", true) == 0)  
   {  
       if(IsPlayerConnected(playerid))  
    {  
        if(PlayerInfo[playerid][pJob] != 16)  
     {  
      SendClientMessage(playerid, COLOR_GREY, " Вы не дальнобойщик!");  
         return 1;  
          }  
       new carid = GetPlayerVehicleID(playerid);  
       new gTrailer = GetVehicleTrailer(carid);  
           if(!IsTrailerAttachedToVehicle(carid))  
        {  
      SendClientMessage(playerid, COLOR_GREY, "Вы приехали без груза!!!");  
        return 1;  
     }  
              new x_nr[256];  
     x_nr = strtok(cmdtext, idx);  
     if(!strlen(x_nr))  
     {  
         SendClientMessage(playerid, COLOR_WHITE, "Используйте: /upgruz название взависимости от локации");  
         SendClientMessage(playerid, COLOR_WHITE, "Доступные Названия: ls, sf, lv.");  
      return 1;  
     }  
        if(strcmp(x_nr,"ls",true) == 0)  
     {  
      if(PlayerToPoint(3.0,playerid,2519.7297,-2440.3740,13.3399))  //Вот тут ошибка!
      {  
       format(string, sizeof(string), "|____________________________|");  
       SendClientMessage(playerid, COLOR_RED1, string);  
        format(string, sizeof(string), "Вы доставили груз!");  
       SendClientMessage(playerid, COLOR_LG, string);  
       format(string, sizeof(string), "И получили премию в размере 7000$");  
       SendClientMessage(playerid, COLOR_LG, string);  
       format(string, sizeof(string), "|____________________________|");  
       SendClientMessage(playerid, COLOR_RED1, string);  
       GivePlayerMoney(playerid, 7000);  
       SetVehicleToRespawn(gTrailer);  
       DisablePlayerCheckpoint(playerid);  
       SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");  
       return 1;  
      }  
      else  
      {  
         SendClientMessage(playerid, COLOR_GREY, "   Вы не на складе.");  
       return 1;  
      }  
     }  
     else if(strcmp(x_nr,"sf",true) == 0)  
     {  
     if(PlayerToPoint(3.0,playerid,-2688.5688,234.7379,4.0589))  //Вот тут ошибка!
      {  
      format(string, sizeof(string), "|____________________________|");  
      SendClientMessage(playerid, COLOR_RED1, string);  
       format(string, sizeof(string), "Вы доставили груз в Сан Фиеро!");  
      SendClientMessage(playerid, COLOR_LG, string);  
      format(string, sizeof(string), "И вы получили премию в размере 14000$");  
      SendClientMessage(playerid, COLOR_LG, string);  
      format(string, sizeof(string), "|____________________________|");  
      SendClientMessage(playerid, COLOR_RED1, string);  
      GivePlayerMoney(playerid, 14000);  
      SetVehicleToRespawn(gTrailer);  
      DisablePlayerCheckpoint(playerid);  
      SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");  
         return 1;  
     }  
     else  
     {  
         SendClientMessage(playerid, COLOR_GREY, "   Вы не на складе.");  
       return 1;  
      }  
     }  
     else if(strcmp(x_nr,"lv",true) == 0)  
     {  
     if(PlayerToPoint(3.0,playerid,-367.9283,1583.2257,75.9362)) //Вот тут ошибка!
      {  
      format(string, sizeof(string), "|____________________________|");  
      SendClientMessage(playerid, COLOR_RED1, string);  
       format(string, sizeof(string), "Вы доставили груз!");  
      SendClientMessage(playerid, COLOR_LG, string);  
      format(string, sizeof(string), "И вы получили премию в размере 25000$");  
      SendClientMessage(playerid, COLOR_LG, string);  
      format(string, sizeof(string), "|____________________________|");  
      SendClientMessage(playerid, COLOR_RED1, string);  
      GivePlayerMoney(playerid, 25000);  
      SetVehicleToRespawn(gTrailer);  
      DisablePlayerCheckpoint(playerid);  
      SendClientMessage(playerid, COLOR_RED1,"|Фура разгружена,отправляйтесь на базу|");  
         return 1;  
     }  
     else  
     {  
         SendClientMessage(playerid, COLOR_GREY, "   Вы не на складе.");  
       return 1;  
      }  
     }  
    }  
      }

e:\Server\VruBY\gamemodes\VruBY.pwn(20865) : error 017: undefined symbol "PlayerToPoint"
e:\Server\VruBY\gamemodes\VruBY.pwn(20889) : error 017: undefined symbol "PlayerToPoint"
e:\Server\VruBY\gamemodes\VruBY.pwn(20913) : error 017: undefined symbol "PlayerToPoint"
Люди писали что где-то нехватаает скобки!

Дата: 07.02.2011, Понедельник, 19:43:13 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 134
Репутация: 74+
Quote (velix)
IsPlayerInRangeOfPoint

Лутше!! всё спс всё пашет

Добавлено (07.02.2011, 19:43:13)
---------------------------------------------
СПС!! velix

  • Страница 1 из 1
  • 1
Поиск: