If всё правильно вставите должно работать ! что обозначено зелёным текстом писать ненадо :D
С грузовыми машинами можно сделать аналогично там по моему даже паблик IsATruck есть ну если с этим всё получится пиши попробую сделать просто сегодня уже мозги кипят ! Добавлено (16.01.2009, 22:51)
---------------------------------------------
Вот написал уже качать ненадо нечего )
[pwn]
forward IsAMot(carid);
//создаём паблик IsAMot
public IsAMot(carid)
{
new model = GetVehicleModel(carid);
if(model == 448 || model == 461 || model == 462 || model == 463 || model == 468 || model == 471 || model == 521 || model == 522|| model == 523|| model == 581|| model == 586)
{
return 1;
}
return 0;
}
//------------------------------------------------------------------------------
enum pInfo
pMotLic
public OnPlayerConnect(playerid)
PlayerInfo[playerid][pMotLic] = 0;
public OnPlayerStateChange(playerid, newstate, oldstate)
if(IsAMot(newcar))
{
if(PlayerInfo[playerid][pMotLic] < 1)
{
SendClientMessage(playerid, COLOR_GREY, " Вы пока не знаете как управлять мототехникой!");
RemovePlayerFromVehicle(playerid);
}
}
public OnPlayerRegister(playerid, password[])
format(var, 32, "MotLic=%d\n",PlayerInfo[playerid][pMotLic]);fwrite(hFile, var);
public OnPlayerUpdate(playerid)
format(var, 32, "MotLic=%d\n",PlayerInfo[playerid][pMotLic]);fwrite(hFile, var);
public OnPlayerLogin(playerid,password[])
if( strcmp( key , "MotLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pMotLic] = strval( val ); }
// дальше ищи команду /givelicense
if(strcmp(cmd, "/givelicense", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsAnInstructor(playerid))
{
if(PlayerInfo[playerid][pRank] < 3)
{
SendClientMessage(playerid, COLOR_GREY, " Only Rank 3 or higher can give away a License !");
return 1;
}
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givelicense [name] [playerid/PartOfName]");
SendClientMessage(playerid, COLOR_WHITE, "Available names: Driving, Flying, Sailing, Fishing, Weapon, Moto.");//добавь название лицензии в данном случае это Moto
return 1;
}
// затем добавь эту лицензию
if(strcmp(x_nr,"Moto",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givelicense Motolicense [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "* You've given a Moto License to %s.",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Instructor %s has given you a Moto License.",sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
PlayerInfo[giveplayerid][pMotLic] = 1;
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " That player is Offline !");
return 1;
}
}
// теперь делаем так чтобы копы могли забрать эту лицензию
// ищем команду if(strcmp(cmd, "/take", true) == 0)
if(strcmp(cmd, "/take", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] == 2 || IsACop(playerid))
{
if(WantedLevel[playerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, " Вы в розыске!");
return 1;
}
if(PlayerTied[playerid] > 0)
{
SendClientMessage(playerid, COLOR_WHITE, " Вы связаны!");
return 1;
}
if(PlayerCuffed[playerid] > 0)
{
SendClientMessage(playerid, COLOR_WHITE, " Вы в наручниках!");
return 1;
}
if(WatchingTV[playerid] > 0)
{
SendClientMessage(playerid, COLOR_WHITE, " Вы не можете делать это через ТВ!");
return 1;
}
if(PlayerInfo[playerid][pRank] < 2)
{
SendClientMessage(playerid, COLOR_GREY, " Вам нужен ранг 2 или больше. чтобы пользоваться этой возможностью !");
return 1;
}
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "|__________________ Изъятие лицензий и предметов __________________|");
SendClientMessage(playerid, COLOR_WHITE, " СОВЕТ: /take [название лицензии/предмета] [ID игрока/имя]");
SendClientMessage(playerid, COLOR_GREY, " Лицензии: Driverslicense, Flyinglicense, Boatlicense, Gunlicense Motolicense");//Motolicense
SendClientMessage(playerid, COLOR_GREY, " Предметы: Weapons, Drugs, Materials");
SendClientMessage(playerid, COLOR_WHITE, "|___________________________________________________|");
return 1;
}
// теперь осуществляем эту возможность )
if(strcmp(x_nr,"motolicense",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, " СОВЕТ: /take driverslicense [ID игрока/имя]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
format(string, sizeof(string), "* Вы забрали права категори А у игрока %s.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Офицер %s забрал ваши права Категории А.", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
PlayerInfo[giveplayerid][pMotLic] = 0;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Этот игрок далеко !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Этот игрок не в игре !");
return 1;
}
}
// делаем так чтобы наши новые права отображались в команде /licenses и /showlicenses ищем строку if(strcmp(cmd,"/licenses",true)==0)
if(strcmp(cmd,"/licenses",true)==0)
{
if(IsPlayerConnected(playerid))
{
new text1[20];
new text2[20];
new text3[20];
new text4[20];
new text5[20];
new text6[20];//добавляем new text6[20];
if(PlayerInfo[playerid][pCarLic]) { text1 = "Passed"; } else { text1 = "Not Passed"; }
if(PlayerInfo[playerid][pFlyLic]) { text4 = "Passed"; } else { text4 = "Not Passed"; }
if(PlayerInfo[playerid][pBoatLic]) { text2 = "Passed"; } else { text2 = "Not Passed"; }
if(PlayerInfo[playerid][pFishLic]) { text3 = "Passed"; } else { text3 = "Not Passed"; }
if(PlayerInfo[playerid][pGunLic]) { text5 = "Passed"; } else { text5 = "Not Passed"; }
if(PlayerInfo[playerid][pMotLic]) { text6 = "Passed"; } else { text6 = "Not Passed"; }//добавляем наш 6ой текст if(PlayerInfo[playerid][pMotLic]) { text6 = "Passed"; } else { text6 = "Not Passed"; }
SendClientMessage(playerid, COLOR_WHITE, "|__________________ Licenses __________________|");
format(string, sizeof(string), "** Drivers License: %s.", text1);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "** Flying License: %s.", text4);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "** Sailing License: %s.", text2);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "** Fishing License: %s.", text3);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "** Weapon License: %s.", text5);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "** Moto License: %s.", text6);// The End )
SendClientMessage(playerid, COLOR_GREY, string);
SendClientMessage(playerid, COLOR_WHITE, "|______________________________________________|");
}
return 1;
}
if(strcmp(cmd,"/showlicenses",true)==0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /showlicenses [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "You cannot Show Licenses to yourself, use /licenses!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new text1[20];
new text2[20];
new text3[20];
new text4[20];
new text5[20];
new text6[20];//текст 6
if(PlayerInfo[playerid][pCarLic]) { text1 = "Passed"; } else { text1 = "Not Passed"; }
if(PlayerInfo[playerid][pFlyLic]) { text4 = "Passed"; } else { text4 = "Not Passed"; }
if(PlayerInfo[playerid][pBoatLic]) { text2 = "Passed"; } else { text2 = "Not Passed"; }
if(PlayerInfo[playerid][pFishLic]) { text3 = "Passed"; } else { text3 = "Not Passed"; }
if(PlayerInfo[playerid][pGunLic]) { text5 = "Passed"; } else { text5 = "Not Passed"; }
if(PlayerInfo[playerid][pMotLic]) { text6 = "Passed"; } else { text6 = "Not Passed"; }//добавляем также текст 6
format(string, sizeof(string), "|__________ Licenses of %s __________|", sendername);
SendClientMessage(giveplayerid, COLOR_WHITE, string);
format(string, sizeof(string), "** Drivers License: %s.", text1);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "** Flying License: %s.", text4);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "** Sailing License: %s.", text2);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "** Fishing License: %s.", text3);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "** Weapon License: %s.", text5);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "** Moto License: %s.", text6);
SendClientMessage(giveplayerid, COLOR_GREY, string);
format(string, sizeof(string), "* %s has shown his Licenses to you.", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* You have shown your Licenses to %s.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
else
{
SendClientMessage(playerid, COLOR_GREY, " That player is not near you !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " That player is Offline !");
return 1;
}
}
return 1;
}
// ищем public OnPlayerRename(name[],string[],playerid)
// там добавляем строку нашей лицензии
format(var, 32, "MotLic=%d\n",PlayerInfo[playerid][pMotLic]);fwrite(hFile, var);
// Вот и всё ) скопируй этот код на лист формата пвн там понятнее будет [/pwn]