• Страница 1 из 1
  • 1
[GF]Урок по созданию лицензии на грузовые авто
26_RUSSSДата: Среда, 10.11.2010, 04:54 | Сообщение # 1
.::Offline::.
Вор в законе
Сообщений: 73
[ 10 ]
Награды: 13

Статус отсутствует
Я такой темы не нашел поэтому решил написать,щяс мы научимся делать лицензию на грузовые авто в моде ГФ.

Вам наверное покажется что код очень большой но на самом деле нет!я просто всё подробно расписал вам!

добавьте ко всем
Code
forward:

Code

       forward GruzLicensecar(carid);

Code

       pGruzLic//это будет как бы лицензия на грузовой транспорт    
      
в
Code
enum pInfo
добавляем:
Code

       pGruzLic,//этим самым мы создаём переменную    
       
далее в
Code
public OnPlayerConnect добавляем:
       
Code

       PlayerInfo[playerid][pGruzLic] = 0;//этим мы обозначаем переменную и при коннекте игрока она равна 0    
       
дальше в
Code
public OnPlayerRegister добавляем:
       
Code

       format(var, 128, "GruzLicense=%d\n",PlayerInfo[playerid][pGruzLic]);fwrite(hFile, var);    
       
после в
Code
public OnPlayerLogin
прочитываем из файла данную переменную:
Code

       if( strcmp( key , "GruzLicense" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGruzLic] = strval( val ); }    
       
далее находим
Code
public OnPlayerUpdateEx
и прописываем:
Code

       format(var, 128, "GruzLicense=%d\n",PlayerInfo[playerid][pGruzLic]);fwrite(hFile, var);//записываем в файл    
       
потом создаём
Code
public GruzLicensecar(carid):

Code

       public GruzLicensecar(carid)
       {
       new model=GetVehicleModel(carid);
       switch(model)
       {
       case 403: return 1;
       case 406: return 1;
       case 408: return 1;
       case 414: return 1;
       case 427..428: return 1;
       case 433: return 1;
       case 443: return 1;
       case 455..456: return 1;
       case 486: return 1;
       case 498..499: return 1;
       case 508: return 1;
       case 514..515: return 1;
       case 524: return 1;
       case 531..532: return 1;
       case 572..573: return 1;
       case 578: return 1;
       case 601: return 1;
       case 609: return 1;
       default: return 0;
       }
       return 0;    
       }    
       case 403: return 1; //это означает ид авто как бы на нём ты не сможешь ездить если у тебя нету прав на грузовики,вы можете туда добавить свои ид авто ну я там прописал все грузовые авто кроме фургонов))

далее ищем
Code
if(newstate == PLAYER_STATE_DRIVER)
и прописываем там:
Code

       if(GruzLicensecar(newcar))
       {
           if(PlayerInfo[playerid][pGruzLic] != 1)
           {
               SendClientMessage(playerid, COLOR_YELLOW, "У вас нет прав на грузовой транспорт.");
               RemovePlayerFromVehicle(playerid);
               TogglePlayerControllable(playerid, 1);
           }
       }

в
Code
public OnPlayerCommandText
ищешь твою команду /agl(для администраторов) и приписываешь:
Code

       else if(strcmp(x_nr,"gruzlic",true) == 0)
       {
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp))
           {
               SendClientMessage(playerid, COLOR_WHITE, "[Info]: /agl gruzlic [ID игрока/имя_Фамилия]");
               return 1;
           }
           giveplayerid = ReturnUser(tmp);
           if(IsPlayerConnected(giveplayerid))
           {
               if(giveplayerid != INVALID_PLAYER_ID)
               {
                   if(PlayerInfo[giveplayerid][pPassport] == 1)//это проверка на паспорт
                   {
                       GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                       format(string, sizeof(string), "Вы дали лицензию %s на управление грузовым транспортом.",giveplayer, giveplayerid);
                       SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                       format(string, sizeof(string), "Модератор %s выдал вам лицензию на управление грузовым транспортом.",sendername);
                       SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                       PlayerInfo[giveplayerid][pGruzLic] = 1;
                       return 1;
                   }
                   else
                   {
                       SendClientMessage(playerid, COLOR_GREY, "У этого игрока нет паспорта.");
                       return 1;
                   }
               }
           }
           else
           {
               SendClientMessage(playerid, COLOR_GREY, "Этот игрок не в игре!");
               return 1;
           }
       }

Это мы создали команду для админа теперь давайте создадим для самого лицензера
Ищем команду "/givelicense" и прописываем там следующее:
Code

       else if(strcmp(x_nr,"gruzlic",true) == 0)
       {
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp))
           {
               SendClientMessage(playerid, COLOR_WHITE, "Используйте: /givelicense gruzlic [ID игрока/
       Имя_Фамилия] [цена]");
               return 1;
           }
           giveplayerid = ReturnUser(tmp);
           if(IsPlayerConnected(giveplayerid))
           {
               if(giveplayerid != INVALID_PLAYER_ID)
               {
                   if(PlayerInfo[giveplayerid][pPassport] == 1)
                   {
                       tmp = strtok(cmdtext, idx);
                       if(!strlen(tmp))
                       {
                           SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /givelicense gruzlic [ID игрока/Имя_Фамилия] [цена]");
                           return 1;
                       }
                       new price;
                       price = strval(tmp);
                       if(price < 200 || price > 2000) { SendClientMessage(playerid, COLOR_GREY, "Цена должна быть от 200 до 2000!"); return 1; }

                       GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                       format(string, sizeof(string), "Вы выдали водительские права на грузовые авто игроку %s.",giveplayer);
                       SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                       format(string, sizeof(string), "Инструктор %s выдал вам лицензию на вождение грузовых авто.",sendername);
                       SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                       PlayerInfo[giveplayerid][pGruzLic] = 1;
                       format(string, sizeof(string), "Bы протянули %s чек на сумму $%d .", giveplayer, price);
                       SendClientMessage(playerid, COLOR_WHITE, string);
                       format(string, sizeof(string), "%s подал вам чек на сумму $%d, (используйте /accept license) чтобы купить.", sendername, price);
                       SendClientMessage(giveplayerid, COLOR_WHITE, string);
                       LicenseOffer[giveplayerid] = playerid;
                       LicensePrice[giveplayerid] = price;
                       LicenseType[giveplayerid] = 1;
                       return 1;
                   }
                   else
                   {
                       SendClientMessage(playerid, COLOR_GREY, "У этого игрока нету паспорта!");
                       return 1;
                   }
               }
           }
           else
           {
               SendClientMessage(playerid, COLOR_GREY, "Этот игрок не в игре!");
               return 1;
           }
       }

В этой же комманде находите:
Code


       SendClientMessage(playerid, COLOR_WHITE, "Наименования: Driving, Flying, Sailing, Fishing");//После Fishing напишите ,Gruzlic

Вот ещё комманда чтобы эти права можно было купить в аш:
Находите
Code
public OnPlayerCommandText
и прописываете там:
Code

       if(strcmp(cmd, "/buygruzlic", true) == 0)
       {
           if(UsedCom[playerid]>0) return SendClientMessage(playerid, COLOR_WHITE, "Ввод команды разрешон раз в 1 секунду")
           if(IsPlayerConnected(playerid))
           {
               if(IsPlayerInRangeOfPoint(playerid, 3,1490.3195,1305.6976,1093.2964))
               {
                   if(PlayerInfo[playerid][pGruzLic] == 0)
                   {
                       if(GetPlayerMoney(playerid) < 4500)
                       {
                           SendClientMessage(playerid, COLOR_GREY, "У вас нет достаточно денег, для покупки этой лицензии");
                           return 1;
                       }
                       else
                       {
                           SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы купили водительские права на грузовые авто, за $4, 500");
                           SafeGivePlayerMoney(playerid, - 4500);
                           PlayerInfo[playerid][pGruzLic] = 1;
                           OnPlayerUpdateEx(playerid);
                           new y, m, d;
                           new h,mi,s;
                           getdate(y,m,d);
                           gettime(h,mi,s);
                           format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s [Использовал команду] -> /buygruzlic",d,m,y,h,mi,s,sendername);
                           CommandLog(string);
                       }
                   }
                   else
                   {
                       SendClientMessage(playerid, COLOR_LIGHTBLUE, "У вас уже есть водительские права на грузовые авто");
                       return 1;
                   }
               }
           }
           UsedCom[playerid]=1;
           return 1;
       }

потом находите
Code
public OnPlayerPickUpPickup(playerid, pickupid)
и прописываете под примерно такой же так сказать коммандой:
Code

       if ( pickupid == license_pu2 )
       {
           GameTextForPlayer(playerid, "~y~You can get a ~r~Gruzlic license ~n~~w~Type /buygruzlic to get a license ~n~~r~(Costs: 4 000 $)", 5000, 3);
       }  


Нарушение О_о какое нарушение?
мои разработки
[FS]bank,[FS]vip2,[FS]console,[FS]RACE v2.5.
Кому надо скрипт разработать пиши на мыло admin@samp-pawno.ru :)
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика