26_RUSSS | Дата: Среда, 10.11.2010, 04:54 | Сообщение # 1 |
.::Offline::.
Вор в законе
Сообщений: 73
[ 10 ]
Награды: 13
Статус
отсутствует
| Я такой темы не нашел поэтому решил написать,щяс мы научимся делать лицензию на грузовые авто в моде ГФ.
Вам наверное покажется что код очень большой но на самом деле нет!я просто всё подробно расписал вам!
добавьте ко всем Code forward GruzLicensecar(carid); Code pGruzLic//это будет как бы лицензия на грузовой транспорт в добавляем: 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 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 :)
|
|
| |