Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Создаем фракцию "школа"

Статус
В этой теме нельзя размещать новые ответы.

qwe123

Умник
Всем привет, я расскажу вам как создать фракцию "школа".Те кто не умеет создавать фракции в дальнейшем пригодится.
1. Для начала мы должны добавить в команду /makeleader:
PHP:
else if(level == 31) { PlayerInfo[para1][pRank] = 5; InviteSkin[para1] = 295; if(PlayerInfo[para1][pAdmin] <=0) { ini_removeKey  (iniFile, "School" );ini_setString(iniFile, "School",giveplayer);}} //31-это id нашей фракции(ставить свое), 5-это ранг когда дают лидерку, 295-скин как дают лидерку
2. Так же нам надо изменить в команде /makeleader максимальное количество организаций:
PHP:
if(level > 31 || level < 1) { SendClientMessage(playerid, COLOR_GREY, "Нельзя меньше 1 и больше 31!"); return 1; }// 31 это сколько всего фракций (ставить свое)
3. Теперь мы должны добавить в /invite:
PHP:
else if (PlayerInfo[playerid][pLeader] == 31 || PlayerInfo[playerid][pMember] == 31 && PlayerInfo[playerid][pRank] == 4)// повторяю 31 это id фракции ставить свой
			{
			    if(IsPlayerConnected(para1))
			    {
			        if(para1 != INVALID_PLAYER_ID)
			        {
			        if (PlayerInfo[para1][pPbiskey] !=255) return   SendClientMessage(playerid, COLOR_GREY, "Гражданин бизнесмен!");
			        		if (PlayerInfo[para1][pAvtomas] !=255) return   SendClientMessage(playerid, COLOR_GREY, "Гражданин владеет автомастерской!");
					        if(IsPlayerInAnyVehicle(para1)) return  SendClientMessage(playerid, COLOR_GREY, "Гражданин в машине!");
			       			if (PlayerInfo[para1][pLevel] < 1) return   SendClientMessage(playerid, COLOR_GREY, "Прием возможен с 1 lvl");
						    if (PlayerInfo[para1][pMember] != 0) return SendClientMessage(playerid, COLOR_GREY, "Человек состоит в организации");
    						if(PlayerInfo[para1][pWarns] >= 1) return SendClientMessage(playerid, COLOR_GRAD1,"У игрока Warn.");
					         if(PlayerInfo[playerid][pLeader] == 31 || PlayerInfo[playerid][pMember] == 31 && PlayerInfo[playerid][pRank] == 4) { ftext = "Scholl"; InviteSkin[para1] = 70;  }
							GetPlayerName(para1, giveplayer, sizeof(giveplayer));
							GetPlayerName(playerid, sendername, sizeof(sendername));
							InviteOffer[para1] = PlayerInfo[playerid][pMember];
							format(string, sizeof(string), "Вы пригласили %s присоединится к %s.", giveplayer,ftext);
							SendClientMessage(playerid, COLOR_BLUE, string);
							format(invite,sizeof(invite), "%s приглашает присоединится вас к  %s\n- Вы согласны?", sendername,ftext);
						   	ShowPlayerDialog(para1,76,DIALOG_STYLE_MSGBOX,"Приглашение",invite, "да", "нет");
						}
				}//not connected
			}
4.Теперь в /giverank:
а)
PHP:
else if(PlayerInfo[playerid][pMember] == 31) { if(level > 4 || level < 1) { SendClientMessage(playerid, COLOR_GREY, "Нельзя меньше 1 и больше 4!"); return 1; } }
б)
PHP:
else if (PlayerInfo[playerid][pMember] == 31 &&PlayerInfo[playerid][pRank] >= 4)
        {
            if(IsPlayerConnected(para1))
            {
                if (PlayerInfo[playerid][pMember] == PlayerInfo[para1][pMember])
                {
                    if(para1 != INVALID_PLAYER_ID)
                    {
                    	if(para1 == playerid) { SendClientMessage(playerid, COLOR_GREY, "Вы указали свой ID"); return 1; }
                    	if (PlayerInfo[para1][pLeader] >= 1) { SendClientMessage(playerid, COLOR_GREY, "Вы указали ID лидера"); return 1; }
                        GetPlayerName(para1, giveplayer, sizeof(giveplayer));
	                    GetPlayerName(playerid, sendername, sizeof(sendername));
	                    PlayerInfo[para1][pRank] = level;
	                    format(string, sizeof(string), "Вы были повышены %d ранга %s",level, sendername);
	                    SendClientMessage(para1, 0x6495EDFF, string);
	                    format(string, sizeof(string), "Вы повысили %s до %d ранга.", giveplayer,level);
	                    SendClientMessage(playerid, 0x6495EDFF, string);
	                }
                }
5.Теперь добавим в /uninvite:
PHP:
else if (PlayerInfo[playerid][pLeader] == 31 || PlayerInfo[playerid][pMember] == 31 && PlayerInfo[playerid][pRank] >= 4)
   				{
			        if (PlayerInfo[giveplayerid][pMember] != PlayerInfo[playerid][pMember]) return  SendClientMessage(playerid, COLOR_GRAD1, "Человек не вашей организации");
   					if(para1 != INVALID_PLAYER_ID)
			            {
					        	if (PlayerInfo[para1][pMember] > 0)
					        	{
              			 		if(para1 == playerid) { SendClientMessage(playerid, COLOR_GREY, "Вы указали свой ID"); return 1; }
                       			 if (PlayerInfo[para1][pLeader] >= 1) { SendClientMessage(playerid, COLOR_GREY, "Вы указали ID лидера"); return 1; }
							    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
							    GetPlayerName(playerid, sendername, sizeof(sendername));
							    //printf(" %s âûêèíóë %s.", sendername, giveplayer);
							    format(string, sizeof(string), "Вы были уволены из организации %s.", sendername);
							    SendClientMessage(para1, 0x6495EDFF, string);
							    format(string, sizeof(string), "Вы уволили %s из организации", giveplayer);
								SendClientMessage(playerid, 0x6495EDFF, string);
							    PlayerInfo[para1][pMember] = 0;
							    PlayerInfo[para1][pRank] = 0;
								PlayerInfo[para1][pLeader] = 0;
							    PlayerInfo[para1][pJob] = 0;
							    SetPlayerArmourAC(para1,0);
							    SpawnPlayer(para1);
						    }
                     }
				}//not connected
6. Теперь нам надо добавить фракцию в /r чат:
PHP:
else if(PlayerInfo[playerid][pMember] == 31 || PlayerInfo[playerid][pLeader] == 31)//PD Ranks
                {
                    if(PlayerInfo[playerid][pRank] == 6) { format(string, sizeof(string), "[R] Директор %s: %s", sendername, result); }
                    else if(PlayerInfo[playerid][pRank] == 5) { format(string, sizeof(string), "[R] Завуч %s: %s", sendername, result); }
                    else if(PlayerInfo[playerid][pRank] == 4) { format(string, sizeof(string), "[R] Ученик 9 класса %s: %s", sendername, result); }
                    else if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "[R] Ученик 8 класса %s: %s", sendername, result); }
                    else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "[R] Ученик 7 класса %s: %s", sendername, result); }
                    else { format(string, sizeof(string), "[R] Ученик 7 класса: %s", sendername, result); }
                   	SendRadioMessage(31, TEAM_BLUE_COLOR, string);
					format(string, sizeof(string), "%s передал сообщение по рации", sendername);
				ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				//printf("%s", string);
				return 1;
                }
7.Теперь нам осталось добавить в /d и /gov чат для этого мы добавим форвард :
PHP:
forward IsASchool(playerid);
8.Теперь создадим новый паблик :
PHP:
public IsASchool(playerid)
{
	if(IsPlayerConnected(playerid))
	{
	    new leader = PlayerInfo[playerid][pLeader];
	    new member = PlayerInfo[playerid][pMember];
	    if(member==31)
		{
		    return 1;
		}
		else if(leader==31)
		{
		    return 1;
		}
	}
	return 0;
}
9.теперь добавим в /d чат:
PHP:
case 31:
			{
       			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);
				}
				SendTeamMessage(1, COLOR_ALLDEPT, string);
				format(string, sizeof(string), "%s сообщил в департамент", sendername);
				ProxDetector(5.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				//printf("%s", string);
				return 1;
			}
10.Далее в ищем вот эту строчку если она есть
PHP:
if(IsAArm(playerid) || IsAMayor(playerid) || IsAMedic(playerid))
и заменяем на:
PHP:
if(IsAArm(playerid) || IsAMayor(playerid) || IsAMedic(playerid) || IsASchool(playerid))
если этой строчки не имеется то не стоит ее добавлять
11.Теперь в сам /gov чат:
PHP:
else if(PlayerInfo[playerid][pMember] == 31 || PlayerInfo[playerid][pLeader] == 31)//PD Ranks
					{
	    				if(PlayerInfo[playerid][pRank] >= 4) { rtext = "новости:"; }
			            else if(PlayerInfo[playerid][pRank] == 5) { rtext = "Директор школы"; }
					}
и еще вот это:
PHP:
else if(PlayerInfo[playerid][pMember] == 31 || PlayerInfo[playerid][pLeader] == 31)
					{
						SendClientMessageToAll(COLOR_WHITE, "---========== Государственные новости ==========---");
						format(string, sizeof(string), "%s %s: %s", rtext, sendername, result);
						SendClientMessageToAll(0x6495EDFF, string);
					}
12. Далее нам нужно добавить в pInfo:
PHP:
pObr,
13. Теперь ко всем командам:
PHP:
else if(strcmp(cmd, "/diplom", true) == 0)
	{
	new para1;
	new ftext[25];
    if(IsPlayerConnected(playerid))
	    {
	    if (PlayerInfo[playerid][pLeader] == 31 || PlayerInfo[playerid][pMember] == 31 && PlayerInfo[playerid][pRank] == 4)
	    {
            if (PlayerInfo[para1][pObr] > 0) return   SendClientMessage(playerid, COLOR_GREY, "Гражданин уже получил диплом");
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return	SendClientMessage(playerid, COLOR_GRAD2, "Введите: /diplom [id]");
			para1 = ReturnUser(tmp);
			GetPlayerName(para1, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			PlayerInfo[para1][pObr] = 1;
			format(string, sizeof(string), "---------------==Вы получили диплом. Выдал(а): %s==---------------", sendername,ftext);
			SendClientMessage(para1, COLOR_GREEN, string);
            format(string, sizeof(string), "---------------==Вы выдали диплом. Был выдан: %s==---------------", giveplayer,ftext);
			SendClientMessage(playerid, COLOR_GREEN, string);
		 }
  			else
			{
				SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать команду!");
			}
	      }
	      }
14. теперь в public OnPlayerConnect(playerid):
PHP:
PlayerInfo[playerid][pObr] = 0;
15.Далее ищем public OnPlayerRegister(playerid, password[]) и вставим:
PHP:
ini_setInteger(File,"pObr",PlayerInfo[playerid][pObr]);
16.Теперь нам нужно все это сохранить в .ini файле, для этого ищем public SavessAkk(playerid,string3[]) и вставляем туда:
PHP:
ini_setInteger(File,"pObr",PlayerInfo[playerid][pObr]);
17.И теперь когда заходит игрок нам нужно его как сказать то, вообщем загрузить. Значит ищем public OnPlayerLogin(playerid,password[]) и вставим:
PHP:
ini_getInteger(File,"pObr",PlayerInfo[playerid][pObr]);
18. Теперь нам нужно сделать так, чтобы принимало в гос. фракцию если имеется диплом. Вот строчка вставляйте ее в /invite в фракции которые вам нужны:
PHP:
if (PlayerInfo[para1][pObr] < 1) return   SendClientMessage(playerid, COLOR_GREY, "Гражданин без образования");
Вот и все. Мы сделали фракцию. Ставьте + =)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу