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

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

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

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

Проблема с фракциями.

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

Dimarios

Умник
Добрый день, пользователи P-I. Значит у меня такая проблема. Поменял все ID фракций в моде, т.к. там была полная неразбериха, например, банда под 1 ID, полиция сразу же после неё. И тут такая проблема, сначала у меня некорректно работала команда /makeleader, она на диалоге. Потом я поменял её. Теперь значит я даю лидерку Мэрии, которая под 1 ID - всё хорошо. Даю на ФБР - она 2 ID, тоже все хорошо, НО теперь название само в /mm например не ФБР, а следующие, в моём случае LSPD. Если даю лидерку на LSPD, то название будет опять же следующее - SFPD. Вот команда:
PHP:
CMD:makeleader(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return true;
	if(PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false) return true;
	if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_GREY, "Введите: /makeleader [id игрока]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, TPLAYEROFFLINE);
	if(PlayerLogged[params[0]] == 0) return SendClientMessage(playerid, COLOR_GREY, TPLAYERNLOGGED);
	if(PlayerInfo[params[0]][pLeader] > 0)
	{
		SetFractionStr(PlayerInfo[params[0]][pLeader], "leader", "None");
		strmid(FracInfo[PlayerInfo[params[0]][pLeader]][fLeader],"None",0,strlen("None"),MAX_PLAYER_NAME);
		if(PlayerInfo[params[0]][pLeader] == 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок не находиться в организации!");
		LeaveFractionPlayer(params[0]);
		SendMes(playerid, COLOR_REDD, "Вы сняли %s с должности лидера организации ",sendername(params[0]));
		SendMes(params[0], COLOR_BLUE, "Администратор %s снял вас с должности лидера организации", PlayerInfo[playerid][pSendername]);
	}
	else
	{
		if(PlayerInfo[params[0]][pLeader] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок лидер другой организации!");
		if(PlayerInfo[params[0]][pMember] > 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок находиться в другой организации!");
		SetPVarInt(playerid, "PlayerLeader", params[0]);
		ShowPlayerDialog(playerid,D_FRACMENU,DIALOG_STYLE_LIST,"Фракции","[1]Мэрия\n[2]F.B.I\n[3]LSPD\n[4]SFPD\n[5]LVPD\
		\n[6]Special Weapon Assault Team\n[7]Армия авианосец\n[8]Зона 51\n[9]Минздрав LS\n[10]Минздрав SF\n[11]Минздрав LV\n[12]Инструкторы\
		\n[13]Grove Street\n[14]Front Yard Ballas\n[15]Varios Los Aztecas\n[16]Los Santos Vagos\n[17]ОПГ The Rifa\n[18]West Side Bloods\n[19]East Side Crips\
		\n[20]La Cosa Nostra\n[21]Yakuza\n[22]Russian Mafia\n[23]Casino Caligula\n[24]News Agency","Выбрать","Отмена");
	}
	return true;
}
Вот тот диалог:
PHP:
	case D_FRACMENU:
		{
			new playerd = GetPVarInt(playerid, "PlayerLeader");
			if(!response) { DeletePVar(playerid, "PlayerLeader"); return true; }
			if(!IsPlayerConnected(playerd)) return SendClientMessage(playerid, COLOR_GREY, TPLAYEROFFLINE);
			if(PlayerLogged[playerd] == 0) return SendClientMessage(playerid, COLOR_GREY, TPLAYERNLOGGED);
 	 		switch(listitem)
			  {
	        	case 0:
				{
					SendMes(playerid, COLOR_ORANGE, "Вы назначили %s руководить организацией: Мэрия",sendername(playerd));
					SendMes(playerd, COLOR_BLUE, "Администратор %s назначил вас руководить организацией: Мэрия", PlayerInfo[playerid][pSendername]);
					PlayerInfo[playerd][pLeader] = 1;
					PlayerInfo[playerd][pMember] = 1;
					SelectCharID[playerd] = 1;
					strmid(FracInfo[1][fLeader],sendername(playerd),0,strlen(sendername(playerd)),MAX_PLAYER_NAME);
					SetFractionStr(1, "leader", sendername(playerd));
				}
            	case 1:
				{
					SendMes(playerid, COLOR_ORANGE, "Вы назначили %s руководить организацией: FBI",sendername(playerd));
					SendMes(playerd, COLOR_BLUE, "Администратор %s назначил вас руководить организацией FBI", PlayerInfo[playerid][pSendername]);
					PlayerInfo[playerd][pLeader] = 2;
					PlayerInfo[playerd][pMember] = 2;
					PlayerInfo[playerd][pRank] = 10;
					SelectCharID[playerd] = 2;
					strmid(FracInfo[2][fLeader],sendername(playerd),0,strlen(sendername(playerd)),MAX_PLAYER_NAME);
					SetFractionStr(2, "leader", sendername(playerd));
				}
   				case 2:
				{
					SendMes(playerid, COLOR_ORANGE, "Вы назначили %s руководить организацией: LSPD",sendername(playerd));
					SendMes(playerd, COLOR_BLUE, "Администратор %s назначил вас руководить организацией LSPD", PlayerInfo[playerid][pSendername]);
					PlayerInfo[playerd][pLeader] = 3;
					PlayerInfo[playerd][pMember] = 3;
					PlayerInfo[playerd][pRank] = 10;
					SelectCharID[playerd] = 3;
					strmid(FracInfo[3][fLeader],sendername(playerd),0,strlen(sendername(playerd)),MAX_PLAYER_NAME);
					SetFractionStr(3, "leader", sendername(playerd));
				}
			}
			PlayerInfo[playerd][pJob] = 0;
			SelectCharPlace[playerd] = 1;
			ClothesRound[playerd] = 2;
			SpawnPlayer(playerd);
			DeletePVar(playerid, "PlayerLeader");
			SaveAccount(playerd);
		}
Вот стэк, узнающий имя фракции. Работал нормально до смены ID фракций:
PHP:
stock GetFracName(playerid)
{
	new frackname[32];
	new member = PlayerInfo[playerid][pMember];
	if(PlayerInfo[playerid][pMember] > 0 || PlayerInfo[playerid][pLeader] > 0)
	{
		strmid(frackname,FracInfo[member][fName],0,strlen(FracInfo[member][fName]), 128);
	}
	else frackname = "Нет";
	return frackname;
}
P.s также хочу сказать, что ранги тоже от следующий фракций. Прошу помочь, а то еб*усь уже 2 день.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу