Brain_Voker
Умник
Всем привет, как увидел на бонусном сервер фишку секретарей которые принимаю во фракцию и решил написать себе, но больше она мне не нужна и отдам её вам. Пользуйтесь на здоровье.
ВНИМАНИЯ: Ко всем #defined добавьте:
Так же:
1. После всех переменных добавьте:
2. К Вашим диалогам добавьте:
3. В конец мода:
4. К Вашим командам:
Теперь само действия:
Пример с Департаментами полиции
ВНИМАНИЯ: Ко всем #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 Тут названия рангов
//Измените на свои
PHP:
enum fSecretory
{
fLevel,
fZakon,
fLic[4],//У меня было 4 лицы если у Вас больше/меньше измените сами
fDoc[2],//Это по документы у меня было (Паспорт,Мед.Карта)
fRPtest,//РП тест (Свой не солью, думаю придумать это не сложно)
fActivSecretory,//Актив или Нет Секретарь
fRank
}
new aSecInfo[24][fSecretory];//24 Это количество фракций
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;
}
}
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,"Да","Нет");
}
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);
}
Вроде все вам скинул пишите что не так подправлю тему.
