Admin Администратор
Сообщения : 73 Дата регистрации : 2012-03-16 Возраст : 30 Откуда : Украина
| Тема: [Урок] Создание лицензии на грузовые Авто Ср Апр 04, 2012 1:54 pm | |
| дабавьте ко всем forward: Код: - Код:
-
forward GruzLicensecar(carid); - Код:
-
pGruzLic//это будет как бы лицензия на грузовой транспорт в enum pInfo добавляем: PHP код: - Код:
-
pGruzLic,//этим самым мы создаём переменную далее в public OnPlayerConnect дабавляем: - Код:
-
PlayerInfo[playerid][pGruzLic] = 0;//этим мы обозначяем переменную и при коннекте игрока она равна 0 дальше в public OnPlayerRegister дабавляем - Код:
-
format(var, 128, "GruzLicense=%d\n",PlayerInfo[playerid][pGruzLic]);fwrite(hFile, var); после в public OnPlayerLogin прочитываем из файла данную переменную: - Код:
-
if( strcmp( key , "GruzLicense" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGruzLic] = strval( val ); } далее находим public OnPlayerUpdateEx и прописываем: - Код:
-
format(var, 128, "GruzLicense=%d\n",PlayerInfo[playerid][pGruzLic]);fwrite(hFile, var);//записываем в файл
потом создаём - Код:
-
public GruzLicensecar(carid): - Код:
-
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; //это означает ид авто как бы на нём ты не сможешь ездить если у тебя нету прав на грузовики,вы можете туда добавить свои ид авто ну я там прописал все грузовые авто кроме фургонов)) далее ищем if(newstate == PLAYER_STATE_DRIVER) и прописываем там: - Код:
-
if(GruzLicensecar(newcar)) { if(PlayerInfo[playerid][pGruzLic] != 1) { SendClientMessage(playerid, COLOR_YELLOW, "У вас нет прав на грузовой транспорт."); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid, 1); } } - Код:
-
в public OnPlayerCommandText ищешь твою команду /agl(для администраторов) и приписываешь: - Код:
-
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; } } - Код:
-
[color=blue]Это мы создали комманду для админа теперь давайте создадим для самого лицензера [/color] - Код:
-
Ищем команду "/givelicense" и прописываем там следущее: PHP код: 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; } } В этой же комманде находите: - Код:
-
SendClientMessage(playerid, COLOR_WHITE, "Наименования: Driving, Flying, Sailing, Fishing");//После Fishing напишите ,Gruzlic Вот ещё комманда чтобы эти права можно было купить в аш: Находите public OnPlayerCommandText и прописываете там: - Код:
-
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; } потом находите public OnPlayerPickUpPickup(playerid, pickupid) и прописываете под примерно такой же так сказать коммандой: - Код:
-
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); } | |
|