• Страница 1 из 1
  • 1
Модератор форума: admin, TweIk  
Урок по созданию лицензии на грузовые авто(gf)
adminДата: Суббота, 30.10.2010, 04:27:13 | Сообщение # 1

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

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

добавьте ко всем

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);
     }  


zm-jail.ru

Разработка сайта samp-pawno.ru


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

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

добавьте ко всем

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);
     }  

Автор - admin
Дата добавления - 30.10.2010 в 04:27:13
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
09:27:24
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2024

vkontakte :samp-pawno.ru: