Добрый вечер. Сегодня будем писать Фракции для SAMP с нуля. В моем случае бандиты.
В самое начало ставим:
Код
#define TEAM_Frakcia 12 //Frakcia - название 12 - id фракции
далее идут скины банды:
пишем их в
Код
new JoinPed[55][1] = {
внизу идут скины и после этого там где [55] ставим столько,сколько скинов стало больше, например вы добавили 3 скина и пишешь 58.
Код
public SetPlayerSpawn(playerid)
// пишем информацию респауна банды
Код
if (PlayerInfo[playerid] [pMember]== 12 || PlayerInfo[playerid] [pLeader]== 12)
{
SetPlayerToTeamColor(playerid); //
SetPlayerPos(playerid, 1270.8563,-793.7981,1084.1719); // координаты
SetPlayerFacingAngle(playerid, 3.4467); // направление камеры
SetPlayerInterior(playerid,0); // id интерьера, если на улице то id=0
PlayerInfo[playerid] [pInt]= 0; //
return 1;
}
Далее в
Код
public SetPlayerWeapons(playerid) // Если ты хочешь, чтобы было оружия в банде, то пишешь так
Код
if(PlayerInfo[playerid] [pMember]== 12 || PlayerInfo[playerid] [pLeader]== 12)
{
GivePlayerWeapon(playerid, 9, 2); // оружия
GivePlayerWeapon(playerid, 24, 100); // оружия
GivePlayerWeapon(playerid, 16, 5); // оружия
}
дальше в
public ShowStats(playerid,targetid)
добавляешь 12 строчку
Код
else if(PlayerInfo[targetid] [pMember]== 12 || PlayerInfo[targetid] [pLeader]== 12) { ttext = \"Frakcia\"; } // слово Frakcia можно поменять как хочешь. Это как вид фракции. Будет отображаться в /stats
еще ниже есть строки названия самой банды вот например тебе надо еще одну добавить
Код
else if(PlayerInfo[targetid] [pMember]== 12 || PlayerInfo[targetid] [pLeader]== 12)
{ ftext = "Название банды \"; }
//дальше ниже пропиши ранги где все ранги находятся
Код
else if(PlayerInfo[targetid] [pMember]== 12 || PlayerInfo[targetid] [pLeader]== 12)
{
if(PlayerInfo[targetid] [pRank]== 1) { rtext = "Новичёк\"; }
else if(PlayerInfo[targetid] [pRank]== 2) { rtext = \"Салага\"; }
else if(PlayerInfo[targetid] [pRank]== 3) { rtext = \"Местный \"; }
else if(PlayerInfo[targetid] [pRank]== 4) { rtext = \"Солдат\"; }
else if(PlayerInfo[targetid] [pRank]== 5) { rtext = \"Правая рука\"; }
else if(PlayerInfo[targetid] [pRank]== 6) { rtext = \"Мафиози\"; }
else { rtext = \"Новичёк\"; }
Дальше ищешь команду /invite и добавляешь там
Код
else if(PlayerInfo[playerid] [pLeader]== 12) { PlayerInfo[para1] [pTeam]= 12; gTeam[para1] = 12; ftext = "Название банды\"; ChosenSkin[para1] = 98; SetPlayerSkin(para1, 98); }
// Где 98 - Скин лидера.
И в команде /makeleader
Код
else if(level == 12) { PlayerInfo[para1] [pChar]= 98; }
Но тут надо быть внимательнее.
Код
gTeam[para1] = 12;
PlayerInfo[para1] [pTeam]= 12;
// числа 12 заменяем на столько скока у вас получаецо фракций, раз было 11, а мы создаем еще одну, то пишем 12.
И конечно диапазон id:
PHP код:
if(level > 11 || level < 0)
Изменить число 11 на столько, скока у вас фракций.
Дальше в
Код
public OnPlayerText(playerid, text[])
ищем кейсы со скинами при выборе
Тут как раз и пригодятся те скины что добавляли мы в joinPed
Код
case 12:
{
if(SelectCharPlace [playerid]== 1) { SetPlayerSkin(playerid, JoinPed[56][0]); SelectCharPlace [playerid]= 2; ChosenSkin [playerid]= JoinPed[56][0]; }
else if(SelectCharPlace [playerid]== 2) { SetPlayerSkin(playerid, JoinPed[57][0]); SelectCharPlace [playerid]= 3; ChosenSkin [playerid]= JoinPed[57][0]; }
else if(SelectCharPlace [playerid]== 3) { SetPlayerSkin(playerid, JoinPed[58][0]); SelectCharPlace [playerid]= 4; ChosenSkin [playerid]= JoinPed[58][0]; }
}
Числа 56 57 58 - порядок скинов в JoinPed.
И конечно же чтобы работал командный чат /f делаем так:
находим
Код
if(strcmp(cmd, "/family\", true) == 0 || strcmp(cmd, \"/f\", true) == 0)
и добавляем
Код
else if(member==12)
{
if(PlayerInfo[playerid] [pRank]== 6) { format(string, sizeof(string), "** Мафиози %s: %s. )) **\", sendername, result); }
else if(PlayerInfo[playerid] [pRank]== 5) { format(string, sizeof(string), \"** Зам босса %s: %s. )) **\", sendername, result); }
else if(PlayerInfo[playerid] [pRank]== 4) { format(string, sizeof(string), \"** Спец отдел %s: %s. )) **\", sendername, result); }
else if(PlayerInfo[playerid] [pRank]== 3) { format(string, sizeof(string), \"** Старший помошник%s: %s. )) **\", sendername, result); }
else if(PlayerInfo[playerid] [pRank]== 2) { format(string, sizeof(string), \"** Член банды %s: %s. )) **\", sendername, result); }
else if(PlayerInfo[playerid] [pRank]== 1) { format(string, sizeof(string), \"** Стажёр %s: %s. )) **\", sendername, result); }
else { format(string, sizeof(string), \"** Начинающий %s: %s. )) **\", sendername, result); }
SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_AZTECAS_COLOR, string);