Доступ к готовым решениям

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

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

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

Мануал Секретари [DC_CMD]

Brain_Voker

Умник
Всем привет, как увидел на бонусном сервер фишку секретарей которые принимаю во фракцию и решил написать себе, но больше она мне не нужна и отдам её вам. Пользуйтесь на здоровье.
ВНИМАНИЯ: Ко всем #defined добавьте:
PHP:
#define n_err                					"{CDCDB4}"
#define n_acc                 					"{FFEBCD}"
#define n_info                   				"{FFDAB9}"
#define n_warn                                  "{f06400}"
#define scm 					SendClientMessage
#define err(%0) 				scm(playerid, COLOR_GREY, %0)
#define show_d 					ShowPlayerDialog
Так же:
PHP:
get_frac(invitePlayer),GetRank(playerid))
//get_frac - Тут названия моих фракций. //GetRank Тут названия рангов
//Измените на свои
1. После всех переменных добавьте:
PHP:
enum fSecretory
{
	fLevel,
	fZakon,
	fLic[4],//У меня было 4 лицы если у Вас больше/меньше измените сами
	fDoc[2],//Это по документы у меня было (Паспорт,Мед.Карта)
	fRPtest,//РП тест (Свой не солью, думаю придумать это не сложно)
	fActivSecretory,//Актив или Нет Секретарь
	fRank
}
new aSecInfo[24][fSecretory];//24 Это количество фракций
2. К Вашим диалогам добавьте:
PHP:
		case 209: {
			if(!response) return 1;
			switch(listitem) {
				case 0: show_d(playerid, 210, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите уровень который требуется:\nОт 1 до 100","Принять","Отмена");
				case 1: show_d(playerid, 211, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите уровень законопослушности который требуется:\nОт 1 до 100","Принять","Отмена");
				case 2: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][0]) aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][0] = 1,err(""n_acc"Требуется");
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][0] = 0,err(""n_acc"Не Требуется");
					return cmd::editsecretory(playerid, "");
				}
				case 3: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][1]) aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][1] = 1,err(""n_acc"Требуется");
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][1] = 0,err(""n_acc"Не Требуется");
					return cmd::editsecretory(playerid, "");
				}
				case 4: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][2]) aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][2] = 1,err(""n_acc"Требуется");
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][2] = 0,err(""n_acc"Не Требуется");
					return cmd::editsecretory(playerid, "");
				}
				case 5: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][3]) aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][3] = 1,err(""n_acc"Требуется");
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLic][3] = 0,err(""n_acc"Не Требуется");
					return cmd::editsecretory(playerid, "");
				}
				case 6: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fDoc][0]) aSecInfo[PlayerInfo[playerid][pPlayerMember]][fDoc][0] = 1,err(""n_acc"Требуется");
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fDoc][0] = 0,err(""n_acc"Не Требуется");
					return cmd::editsecretory(playerid, "");
				}
				case 7: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fDoc][1]) aSecInfo[PlayerInfo[playerid][pPlayerMember]][fDoc][1] = 1,err(""n_acc"Требуется");
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fDoc][1] = 0,err(""n_acc"Не Требуется");
					return cmd::editsecretory(playerid, "");
				}
				case 8: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fRPtest]) aSecInfo[PlayerInfo[playerid][pPlayerMember]][fRPtest] = 1,err(""n_acc"РП текст Включен!");
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fRPtest] = 0,err(""n_acc"РП текст Выключен!");
					return cmd::editsecretory(playerid, "");
				}
				case 9: {
					if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fActivSecretory]) {
						if(!aSecInfo[PlayerInfo[playerid][pPlayerMember]][fRank]) return err(""n_err"Укажите сначало ранк на который принимаете!");
						aSecInfo[PlayerInfo[playerid][pPlayerMember]][fActivSecretory] = 1,err(""n_acc"Секретать приступил к работе!");
					}
					else aSecInfo[PlayerInfo[playerid][pPlayerMember]][fActivSecretory] = 0,err(""n_acc"Секретать закончил работу!");
					return cmd::editsecretory(playerid, "");
				}
				case 10: show_d(playerid, 212, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите ранк на который принимаете:\nОт 1 до 3","Принять","Отмена");
			}
			return 1;
		}
		case 210:
		{
			new taxfraction;
			if(!response) return cmd::editsecretory(playerid, "");
			if(sscanf(inputtext, "d",taxfraction)) return show_d(playerid, 210, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите уровень который требуется:\nОт 1 до 100","Принять","Отмена");
			if(taxfraction > 100 || taxfraction < 1) return show_d(playerid, 210, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите уровень который требуется:\nОт 1 до 100","Принять","Отмена");
			aSecInfo[PlayerInfo[playerid][pPlayerMember]][fLevel] = taxfraction;
			SendMes(playerid,-1, ""n_acc"Вы указали требуемый уровень: %d",taxfraction);
			return cmd::editsecretory(playerid, "");
		}
		case 211:
		{
			new taxfraction;
			if(!response) return cmd::editsecretory(playerid, "");
			if(sscanf(inputtext, "d",taxfraction)) return show_d(playerid, 211, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите уровень законопослушности который требуется:\nОт 1 до 100","Принять","Отмена");
			if(taxfraction > 100 || taxfraction < 1) return show_d(playerid, 211, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите уровень законопослушности который требуется:\nОт 1 до 100","Принять","Отмена");
			aSecInfo[PlayerInfo[playerid][pPlayerMember]][fZakon] = taxfraction;
			SendMes(playerid,-1, ""n_acc"Вы указали требуемый уровень законопослушности: %d",taxfraction);
			return cmd::editsecretory(playerid, "");
		}
		case 212:
		{
			new taxfraction;
			if(!response) return cmd::editsecretory(playerid, "");
			if(sscanf(inputtext, "d",taxfraction)) return show_d(playerid, 212, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите ранк на который принимаете:\nОт 1 до 3","Принять","Отмена");
			if(taxfraction > 3 || taxfraction < 1) return show_d(playerid, 212, 1, "{ffa500}Настройка секреторя", "{ffffff}Введите ранк на который принимаете:\nОт 1 до 3","Принять","Отмена");
			aSecInfo[PlayerInfo[playerid][pPlayerMember]][fRank] = taxfraction;
			SendMes(playerid,-1, ""n_acc"Вы указали ранк на который будете принимать: %d",taxfraction);
			return cmd::editsecretory(playerid, "");
		}
case 215:
		{
			if(!response) return 1;
			if(response)
			{
				new invitePlayer = GetPVarInt(playerid, "aSecInfoMember");
				if(PlayerInfo[playerid][pLevel] < aSecInfo[invitePlayer][fLevel]) return err(""n_info"Ваш уровень не подходит по критериям");
				if(PlayerInfo[playerid][pZakonp] < aSecInfo[invitePlayer][fZakon]) return err(""n_info"Ваша законопослушность не подходит по критериям");
				if(PlayerInfo[playerid][pVodPrava] < aSecInfo[invitePlayer][fLic][0]) return err(""n_info"Требуется водительские права");
				if(PlayerInfo[playerid][pFlyLic] < aSecInfo[invitePlayer][fLic][1]) return err(""n_info"Требуется лицензия на воздушный транспорт");
				if(PlayerInfo[playerid][pBoatLic] < aSecInfo[invitePlayer][fLic][2]) return err(""n_info"Требуется лицензия на водный транспорт");
				if(PlayerInfo[playerid][pGunLic] < aSecInfo[invitePlayer][fLic][3]) return err(""n_info"Требуется лицензия на ношения оружия");
				if(PlayerInfo[playerid][pPlayerItems][6] < aSecInfo[invitePlayer][fDoc][0]) return err(""n_info"Требуется паспорт");
				if(PlayerInfo[playerid][pPlayerItems][5] < aSecInfo[invitePlayer][fDoc][1]) return err(""n_info"Требуется Мед.Карта");
				if(PlayerInfo[playerid][pRPTest] < aSecInfo[invitePlayer][fRPtest]) return err(""n_acc"(( Требуется пройти РП-Тест /rptest ))");
				if(PlayerInfo[playerid][pSex]==1) {
				    switch(invitePlayer) {
					    case 1,10,20: InviteSkin[playerid]=300;
					    case 2: InviteSkin[playerid]=303;
	            	    case 3,19: InviteSkin[playerid]=287;
	            	    case 4,21,22: InviteSkin[playerid]=274;
				    	case 7..9: InviteSkin[playerid]=98;
					    case 16: InviteSkin[playerid]=211;
					}
				}
				if(PlayerInfo[playerid][pSex]==2) {
				    switch(invitePlayer) {
					    case 1,10,20: InviteSkin[playerid]=76;
					    case 2: InviteSkin[playerid]=150;
	            	    case 3,19: InviteSkin[playerid]=191;
	            	    case 4,21,22: InviteSkin[playerid]=308;
				    	case 7..9: InviteSkin[playerid]=148;
					    case 16: InviteSkin[playerid]=211;
					}
				}
				PlayerInfo[playerid][pModel] = InviteSkin[playerid];
				SetPlayerSkin(playerid,InviteSkin[playerid]);
	            PlayerInfo[playerid][pPlayerRank] = aSecInfo[invitePlayer][fRank];
				PlayerInfo[playerid][pInGameMember] = 0;//Сколько человек в организации(Если у вас нет такого можете удалить)
				PlayerInfo[playerid][pPlayerMember] = invitePlayer;
				SetPlayerToTeamColor(playerid,invitePlayer);//Тут у вас может быть по другому
				DeletePVar(playerid,"aSecInfoMember");
				SendMes(playerid,-1,""n_info""colgold"Поздравляем, Вы теперь в теперь состоите в %s "colgold"ваша должность %s",get_frac(invitePlayer),GetRank(playerid));
				err(""n_info"У нас возможен карьерный рост!");
				return 1;
			}
		}
3. В конец мода:
PHP:
stock ShowInviteSec(playerid,member) {
	if(!aSecInfo[member][fActivSecretory])return err(""n_info"Нам не требуются сотрудники!");
	new str[98],t_stra[512];
	format(str,sizeof(str),""colwhi"Здраствуйте Я отвечаю за кадры в %s "colwhi"и осуществляю прием во фракцию.",get_frac(member));
	strcat(t_stra,str);
	strcat(t_stra,"\nТребования для вступления к нам:\n\n");
    format(str,sizeof(str),"- Уровень от: "col3d"%d "colwhi"и выше,\n",aSecInfo[member][fLevel]);
	strcat(t_stra,str);
	format(str,sizeof(str),"- Законопослущность от: "col3d"%d "colwhi"и выше,\n",aSecInfo[member][fZakon]);
	strcat(t_stra,str);
	format(str,sizeof(str),"- Водительские права: "col3d"%s "colwhi"\n",aSecInfo[member][fLic][0] ? (""colgold"Требуется") : (""colmon"Не требуется"));
	strcat(t_stra,str);
	format(str,sizeof(str),"- Лицензия на воздушный транспорт: "col3d"%s "colwhi"\n",aSecInfo[member][fLic][1] ? (""colgold"Требуется") : (""colmon"Не требуется"));
	strcat(t_stra,str);
	format(str,sizeof(str),"- Лицензия на водный транспорт: "col3d"%s "colwhi"\n",aSecInfo[member][fLic][2] ? (""colgold"Требуется") : (""colmon"Не требуется"));
	strcat(t_stra,str);
	format(str,sizeof(str),"- Лицензия на ношения оружия: "col3d"%s "colwhi"\n",aSecInfo[member][fLic][3] ? (""colgold"Требуется") : (""colmon"Не требуется"));
	strcat(t_stra,str);
	format(str,sizeof(str),"- Паспорт: "col3d"%s "colwhi"\n",aSecInfo[member][fDoc][0] ? (""colgold"Требуется") : (""colmon"Не требуется"));
	strcat(t_stra,str);
	format(str,sizeof(str),"- Мед. Карта: "col3d"%s "colwhi"\n",aSecInfo[member][fDoc][1] ? (""colgold"Требуется") : (""colmon"Не требуется"));
	strcat(t_stra,str);
	format(str,sizeof(str),"- (( Наличие пройденего РП теста: "col3d"%s "colwhi"))\n\n",aSecInfo[member][fRPtest] ? (""colgold"Требуется") : (""colmon"Не требуется"));
	strcat(t_stra,str);
	strcat(t_stra,"\tЕсли Вы подходите по критериям, Я выпишу Вас документы\n");
	strcat(t_stra,"\tдалее все будет по инструкции, если Вы согласны нажмите 'Да'\n");
	SetPVarInt(playerid, "aSecInfoMember", member);
	return show_d(playerid,215,DIALOG_STYLE_MSGBOX,""col3d"| Собеседовани",t_stra,"Да","Нет");
}
4. К Вашим командам:
PHP:
CMD:editsecretory(playerid,params[])
{//IsACop - Полиция || IsAMayor - Мэриии || IsAMedic - Больки || 16 - SA News // Поменяйте на свое
    if(IsACop(playerid) || IsAMayor(playerid) || IsAMedic(playerid) || PlayerInfo[playerid][pPlayerMember] == 16)
    {
	    if(!IsAAssis(playerid)) return err(""n_err"Вы не можете это использовать.");
		new str[128], m = PlayerInfo[playerid][pPlayerMember];
		new t_stra[256];
		format(str,sizeof(str),"{ff9900}1. "colwhi"Какой уровень требуется:\t\t\t%d\n",aSecInfo[m][fLevel]);
		strcat(t_stra,str);
	    format(str,sizeof(str),"{ff9900}2. "colwhi"Сколько нужно занопослушности:\t\t%d\n",aSecInfo[m][fZakon]);
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}3. "colwhi"Водительские права:\t\t\t%s\n",aSecInfo[m][fLic][0] ? (""colgold"Требуется") : (""colmon"Не требуется"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}4. "colwhi"Лицензия на воздушный транспорт:\t\t%s\n",aSecInfo[m][fLic][1] ? (""colgold"Требуется") : (""colmon"Не требуется"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}5. "colwhi"Лицензия на водный транспорт:\t\t%s\n",aSecInfo[m][fLic][2] ? (""colgold"Требуется") : (""colmon"Не требуется"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}6. "colwhi"Лицензия на ношение оружия:\t\t%s\n",aSecInfo[m][fLic][3] ? (""colgold"Требуется") : (""colmon"Не требуется"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}7. "colwhi"Наличие паспорта:\t\t\t\t%s\n",aSecInfo[m][fDoc][0] ? (""colgold"Требуется") : (""colmon"Не требуется"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}8. "colwhi"Наличие мед.карты:\t\t\t\t%s\n",aSecInfo[m][fDoc][1] ? (""colgold"Требуется") : (""colmon"Не требуется"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}9. "colwhi"Пройденный РП тест:\t\t\t%s\n",aSecInfo[m][fRPtest] ? (""colgold"Требуется") : (""colmon"Не требуется"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}10. "colwhi"Секретарь:\t\t\t\t\t%s\n",aSecInfo[m][fActivSecretory] ? (""colgold"Работает") : (""colmon"Не работает"));
		strcat(t_stra,str);
		format(str,sizeof(str),"{ff9900}11. "colwhi"На какой ранг принимать:\t\t\t%d",aSecInfo[m][fRank]);
		strcat(t_stra,str);
		show_d(playerid, 209, DIALOG_STYLE_LIST, "{ffff00}Настройка секреторя", t_stra, "Выбрать", "Отмена");
	}
	return 1;
}
Теперь само действия:
Пример с Департаментами полиции
PHP:
if(PlayerToPoint(1.5,playerid,-1650.0338,697.8688,1008.7549))//Измените на свои кординаты
		{
		    if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return 1;//Это проверка чтоб игрок был не в машине
		    new gnmr = GetPlayerVirtualWorld(playerid),bdnomer;//Я использовал один интерьер под 3 участка и проверял по мирам
			if(gnmr == 1) bdnomer = 1;//Это ЛСПД
			else if(gnmr == 2) bdnomer = 10;//Это СФПД
			else if(gnmr == 3) bdnomer = 20;//Это ЛВПД
			if(PlayerInfo[playerid][pPlayerMember])return err(""n_info"Вы уже состоите в организации!");//Проверка на фракцию
			ShowInviteSec(playerid,bdnomer);
		}



Вроде все вам скинул пишите что не так подправлю тему.​
 
Сверху Снизу