Question

@Cawfee Здравствуйте. Не могли бы помочь? Взял с Аризоны крмп команду на увольнение гос.служащих, она доступна лишь Правительству и ФСБ, подогнал в другой серв крмп, и при вводе /demoute пишет что она доступна лишь ФСБ и Правительству. 

Даже ставил != вместо == в строке if(PI[playerid][pMember] == TEAM_FBI || PI[playerid][pMember] == TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");

 

Спойлер

CMD:demoute(playerid, params[])
{
    if(PI[playerid][pMember] == TEAM_FBI || PI[playerid][pMember] == TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");
    if(PI[playerid][pRank] < 3return SendClientMessage(playerid,COLOR_RED, "Ваш ранг слишком мал");
    //if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_RED, "Отказано в доступе! (Доступно только лидеру)");
    if(!IsPlayerConnected(playerid) ||  PlayerLogged[playerid]) return false;
    new id,string[200],reason[100];
    if(sscanf(params,"us[100]",playerid,reason)) return SendClientMessage(playerid,COLOR_RED, "Используйте: /demoute [id] [причина]");
    if(!ProxDetectorS(5.0, playerid, 1)) return SendClientMessage(playerid,COLOR_RED, "Вы далеко от игрока!");
    if(playerid == playerid) return SendClientMessage(playerid,COLOR_RED, "Вы можете уволить только гос.служащих!");
    /*if(PI[playerid][pLeader] > 0 ) return SendClientMessage(playerid,COLOR_RED, "Вы не можете уволить лидера");*/
    if(IsACop(playerid))
    {
        if(IsPlayerAttachedObjectSlotUsed(playerid, 8))RemovePlayerAttachedObject(playerid, 7);
    }
    PI[playerid][pMember] = 0;
    PI[playerid][pDCTime]=0;
    SendClientMessage(id,COLOR_WHITE,">> {FF6347} Местом спавна автоматически назначен ЖД Вокзал. Изменить место спавна >> /setspawn!");
    PI[playerid][pRank] = 0;
    UpdatePlayerData(playerid, "Rank", PI[playerid][pRank]);
    pSportZal[playerid]=0;
    TeamDuty[playerid] = false;
    format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
    SendClientMessage(id,COLOR_LIGHTBLUE,string);
    format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(playerid), reason);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string,sizeof(string),"[D]%s[%d] Уволил %s, Причина: %s",GetName(playerid),playerid,GetName(playerid), reason);
    SetPlayerColor(playerid,0xFDFCFC15);
    ResetPlayerWeaponsAC(playerid);
    SetPlayerArmour(playerid, 0);
    return true;
}

 

 

Edited by Cawfee

Заметка от Cawfee , создано

Вынес ваш вопрос и все его обсуждения в отдельную тему.

Share this post


Link to post

46 answers to this question

  • 0

@Caracal2222 

if(PI[playerid][pMember] != TEAM_FBI && PI[playerid][pMember] != TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");

 

Share this post


Link to post
  • 0

@Sleash Здравствуйте.Нижние строки указали, это что ? New my first и тд 

Share this post


Link to post
  • 0

@Caracal2222 Это правильная проверка на то, является ли человек работником мэрии или ФБР

Share this post


Link to post
  • 0

@Sleash Все понял. Насчет строки теперь ничего не выдает вообще. Не строки введите /demoute и тд, странно как-то 

Share this post


Link to post
  • 0

@Caracal2222 Конечно выводить не будет, вы сохраняете ID увольняемого игрока в переменную, хранящую ID игрока, вводящего команду
Так как попытка вывести параметры в переменную были, то playerid уже пуста, и там не хранится ваш ID, соответственно сообщение вам прийти не сможет

Edited by Sleash

Share this post


Link to post
  • 0

@Sleash Это где ?Я просто ее скопировал и поменял значения под свои, дабы ошибок не было, а на это не обращал внимания 

@Sleash понял 

@Sleash Какую строку тогда удалить/поменять надо 

Share this post


Link to post
  • 0

@Caracal2222 

 

Спойлер

CMD:demoute(playerid, params[])
{
    if(PI[playerid][pMember] == TEAM_FBI || PI[playerid][pMember] == TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");
    if(PI[playerid][pRank] < 3return SendClientMessage(playerid,COLOR_RED, "Ваш ранг слишком мал");
    //if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_RED, "Отказано в доступе! (Доступно только лидеру)");
    new id,string[145],reason[75];
    if(sscanf(params,"us[100]",id,reason)) return SendClientMessage(playerid,COLOR_RED, "Используйте: /demoute [id] [причина]");
    if(!IsPlayerConnected(id) || !PlayerLogged[id]) return false;
    if(!ProxDetectorS(5.0, playerid, 1)) return SendClientMessage(playerid,COLOR_RED, "Вы далеко от игрока!");
    //if(playerid == playerid) return SendClientMessage(playerid,COLOR_RED, "Вы можете уволить только гос.служащих!");
    /*if(PI[id][pLeader] > 0 ) return SendClientMessage(playerid,COLOR_RED, "Вы не можете уволить лидера");*/
    if(IsACop(id))
    {
        if(IsPlayerAttachedObjectSlotUsed(id, 8))RemovePlayerAttachedObject(id, 7);
    }
    PI[id][pMember] = 0;
    PI[id][pDCTime]=0;
    SendClientMessage(id,COLOR_WHITE,">> {FF6347} Местом спавна автоматически назначен ЖД Вокзал. Изменить место спавна >> /setspawn!");
    PI[id][pRank] = 0;
    UpdatePlayerData(id, "Rank", PI[id][pRank]);
    pSportZal[id]=0;
    TeamDuty[id] = false;
    format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
    SendClientMessage(id,COLOR_LIGHTBLUE,string);
    format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(id), reason);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    //format(string,sizeof(string),"[D]%s[%d] Уволил %s, Причина: %s",GetName(playerid),playerid,GetName(id), reason);
    SetPlayerColor(id,0xFDFCFC15);
    ResetPlayerWeaponsAC(id);
    SetPlayerArmour(id, 0);
    return true;
}

 

Вот, это вроде-бы как должно работать по-человечески

Edited by Cawfee

Share this post


Link to post
  • 0

@Sleash поставил вашу и также текст Доступно только 

Share this post


Link to post
  • 0

@Caracal2222 

Извиняюсь, забыл в полной команде изменить проверку на нормальную:

Спойлер

CMD:demoute(playerid, params[])
{
    if(PI[playerid][pMember] != TEAM_FBI && PI[playerid][pMember] != TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");
    if(PI[playerid][pRank] < 3return SendClientMessage(playerid,COLOR_RED, "Ваш ранг слишком мал");
    //if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_RED, "Отказано в доступе! (Доступно только лидеру)");
    new id,string[145],reason[75];
    if(sscanf(params,"us[100]",id,reason)) return SendClientMessage(playerid,COLOR_RED, "Используйте: /demoute [id] [причина]");
    if(!IsPlayerConnected(id) ||  PlayerLogged[id]) return false;
    if(!ProxDetectorS(5.0, playerid, 1)) return SendClientMessage(playerid,COLOR_RED, "Вы далеко от игрока!");
    //if(playerid == playerid) return SendClientMessage(playerid,COLOR_RED, "Вы можете уволить только гос.служащих!");
    /*if(PI[id][pLeader] > 0 ) return SendClientMessage(playerid,COLOR_RED, "Вы не можете уволить лидера");*/
    if(IsACop(id))
    {
        if(IsPlayerAttachedObjectSlotUsed(id, 8))RemovePlayerAttachedObject(id, 7);
    }
    PI[id][pMember] = 0;
    PI[id][pDCTime]=0;
    SendClientMessage(id,COLOR_WHITE,">> {FF6347} Местом спавна автоматически назначен ЖД Вокзал. Изменить место спавна >> /setspawn!");
    PI[id][pRank] = 0;
    UpdatePlayerData(id, "Rank", PI[id][pRank]);
    pSportZal[id]=0;
    TeamDuty[id] = false;
    format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
    SendClientMessage(id,COLOR_LIGHTBLUE,string);
    format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(id), reason);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    //format(string,sizeof(string),"[D]%s[%d] Уволил %s, Причина: %s",GetName(playerid),playerid,GetName(id), reason);
    SetPlayerColor(id,0xFDFCFC15);
    ResetPlayerWeaponsAC(id);
    SetPlayerArmour(id, 0);
    return true;
}

 

 

Edited by Cawfee

Share this post


Link to post
  • 0

@Sleash Ну я тоже взял первую строку ранее что кидали     if(PI[playerid][pMember] != TEAM_FBI && PI[playerid][pMember] != TEAM_MERIA) return , стал выдавать что вы далеко от игрока, попытался себя уволить 

Share this post


Link to post
  • 0

@Sleash Вообщем-то ничего там не вышло, при попытке себя или другого игрока уволить просто ничего не происходит, ни текста ничего, при этом выдается текст Для ввода напишите /demoute id ,когда пишу /demoute

Edited by Caracal2222

Share this post


Link to post
  • 0

@Caracal2222, как в данный момент выглядит код этой команды?

Share this post


Link to post
  • 0

@Cawfee Выше указан. Я вставил тот что Слеаш выслал, от его редакции 

Edited by Caracal2222

Share this post


Link to post
  • 0

@Caracal2222 @Caracal2222, хорошо, пойдем по порядку.

if(sscanf(params,"us[100]",id,reason)) return SendClientMessage(playerid,COLOR_RED, "Используйте: /demoute [id] [причина]");

Спецификатор u предполагает проверку на то, подключен ли указанный игрок, и возвращает либо ID этого игрока, либо INVALID_PLAYER_ID (65535). Соответственно, проверять, подключен ли игрок id через функцию IsPlayerConnected, не имеет никакого смысла. Поэтому следующую строку:

if(!IsPlayerConnected(id) ||  PlayerLogged[id]) return false;

Заменяем на эту:

if(id == INVALID_PLAYER_ID ||  PlayerLogged[id]) return false;

Далее. Сейчас эта строка звучит так: если ID игрока эквивалентно значению константы INVALID_PLAYER_ID (65535) или в ячейке с номером id переменной PlayerLogged записано число, отличное от нуля, значит выйти нужно выйти из данной функции. Вы действительно храните в массиве PlayerLogged значения 1 в ячейках, имеющих порядковые номера, эквивалентные идентификаторам тех игроков, что не подключены к серверу? Полагаю, наоборот, поэтому условие должно выглядеть так:

if(!IsPlayerConnected(id) || !PlayerLogged[id]) return false;

 

В этом сообщении у @Sleash все было сделано как нужно. Вы уверены, что этот вариант нерабочий?

Share this post


Link to post
  • 0

@Cawfee Ну я ведь проверяю. Ввел команду /demoute, выдало сообщение "Используйте: /demoute [id] [причина]", снова набрал /demoute 0 (айди к примеру), в итоге мне ничего не выдало, ни какого сообщения, ни действия. Даже с ноута зашел выдал себе лидерку дпс, и ничего не произошло 

Edited by Caracal2222

Share this post


Link to post
  • 0

@Caracal2222, тогда пробуйте выводить диагностические сообщения. Могу лишь предположить, что в PlayerLogged хранится мусор, других идей у меня нет.

 

Спойлер

CMD:demoute(playerid, params[])
{
    if(PI[playerid][pMember] != TEAM_FBI && PI[playerid][pMember] != TEAM_MERIA) return SendClientMessage(playerid,COLOR_RED, "Доступно только ФСБ и Правительству!");
    if(PI[playerid][pRank] < 3return SendClientMessage(playerid,COLOR_RED, "Ваш ранг слишком мал");
    //if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_RED, "Отказано в доступе! (Доступно только лидеру)");
    new id,string[145],reason[75];
    if(sscanf(params,"us[100]",id,reason)) return SendClientMessage(playerid,COLOR_RED, "Используйте: /demoute [id] [причина]");
    if(id == INVALID_PLAYER_ID) {
        return SendClientMessage(playerid, -1"Игрок не подключен") & 0;
    }
    if (!PlayerLogged[id]) {
        return SendClientMessage(playerid, -1"Игрок не прошел аутентификацию") & 0;
    }
    if(!ProxDetectorS(5.0, playerid, 1)) return SendClientMessage(playerid,COLOR_RED, "Вы далеко от игрока!");
    //if(playerid == playerid) return SendClientMessage(playerid,COLOR_RED, "Вы можете уволить только гос.служащих!");
    /*if(PI[id][pLeader] > 0 ) return SendClientMessage(playerid,COLOR_RED, "Вы не можете уволить лидера");*/
    if(IsACop(id))
    {
        if(IsPlayerAttachedObjectSlotUsed(id, 8))RemovePlayerAttachedObject(id, 7);
    }
    PI[id][pMember] = 0;
    PI[id][pDCTime]=0;
    SendClientMessage(id,COLOR_WHITE,">> {FF6347} Местом спавна автоматически назначен ЖД Вокзал. Изменить место спавна >> /setspawn!");
    PI[id][pRank] = 0;
    UpdatePlayerData(id, "Rank", PI[id][pRank]);
    pSportZal[id]=0;
    TeamDuty[id] = false;
    format(string,sizeof(string),"{FFFFFF}%s выгнал вас из организации.\nПричина: %s",GetName(playerid), reason);
    SendClientMessage(id,COLOR_LIGHTBLUE,string);
    format(string,sizeof(string),"Вы выгнали %s. Причина: %s",GetName(id), reason);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    //format(string,sizeof(string),"[D]%s[%d] Уволил %s, Причина: %s",GetName(playerid),playerid,GetName(id), reason);
    SetPlayerColor(id,0xFDFCFC15);
    ResetPlayerWeaponsAC(id);
    SetPlayerArmour(id, 0);
    return true;
}

 

 

Share this post


Link to post
  • 0

@Cawfee Вставил тот нижний ваш код. В итоге вышло так: я от лица фсб прописал комнаду и на моем ноуте где я дпс, высветило что вас сняли с фракции, при этом костюм фракции остался

Share this post


Link to post
  • 0

@Caracal2222, а почему одежда должна была измениться, если это не заложено в логике данной команды?

Share this post


Link to post
  • 0

@Caracal2222 Выходит так, что о снятии пишется на второй ак который снимают с должности, при этом пишется в командах что не является во фракции, хотя прописав setlesder выдает что сняли с фракции но уже полностью 

Спойлер

IMG20230617173546.jpgIMG20230617173559.jpgIMG20230617173542.jpg

 

@Caracal2222 Выходит ак, буд-то бы его и сняли, но пишется от лица того кого снимают, тип я снял себя же, видно на фото что текст выдался Вы сняли Димас, хотя писал от лица другого где я в фсб, также так выходит что это просто снятие или смена текста, на деле игрок остается в дпс, пока его через setleader не снимут 

Edited by Cawfee

Заметка от Cawfee , создано

Большие изображения необходимо заключать в тег спойлер. Если бы вы изначально заключили их в спойлер, то заметили бы, что ваш текстовый комментарий уже был в сообщении, и не писали бы еще один.

Share this post


Link to post
  • 0

@Caracal2222, покажите команду выдачи прав руководителя организации.

Share this post


Link to post
  • 0

@Cawfee setleader ?

@Cawfee 

 

Спойлер

cmd:setleader(playerid, params[])
{
    if(GetPVarInt(playerid, "IsAFullDostup"))
    {
        if(PI[playerid][pAdmin] < 11return 1;
        else if(AdminLogged[playerid] == falsereturn SendClientMessage(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
        else if(g_cmd[playerid][cmdsetleader] == 0return SendClientMessage(playerid, COLOR_LIGHTRED, "Ó âàñ íåò äîñòóïà ê äàííîé êîìàíäå!(/admdonate)");
        else if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_WHITE, ""cPS"{9ACD32}Ââåäèòå: {FFFFFF} /setleader [id èãðîêà]");
        else if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
        else if(PlayerLogged[params[0]] == falsereturn SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
        else if(IsPlayerInAnyVehicle(params[0])) return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íå äîëæåí íàõîäèòüñÿ â òðàíñïîðòå!");
        else if((PI[params[0]][pAdmin] >= 1 && PI[params[0]][pAdmin] <= 10) && PI[playerid][pAdmin] != 11return SendClientMessage(playerid, COLOR_GREY, "Àäìèíèñòðàòîðà íåëüçÿ ñòàâèòü íà ïîñò ëèäåðà!");
        else if(PI[params[0]][pTempLeader]) return SendClientMessage(playerid, COLOR_GREY, "Ñíà÷àëà ñíèìèòå ñ ñåáÿ ïðàâà âðåìåííîãî ñîñòîÿíèå â îðãàíèçàöèè!");
        if(PI[params[0]][pLeader])
        {
            LeaveFractionPlayer(params[0]);
            PI[params[0]][pLWarn] = 0;
            SendMes(playerid, COLOR_BLUE, "Âû ñíÿëè %s ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè",GetName(params[0]));
            SendMes(params[0], COLOR_BLUE, "Àäìèíèñòðàòîð %s ñíÿë âàñ ñ äîëæíîñòè ëèäåðà îðãàíèçàöèè", GetName(playerid));
        }
        else
        {
            if(PI[params[0]][pLeader] > 0return SendClientMessage(playerid, COLOR_GREY, "Èãðîê ëèäåð äðóãîé îðãàíèçàöèè!");
            if(PI[params[0]][pMember] > 0return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íàõîäèòüñÿ â äðóãîé îðãàíèçàöèè!");
            new str[90], str2[600];
            for(new i = 1; i < MAX_FRACTIONS; i++)
            {
                format(str, sizeof(str), "¹%i - %s\n", i, Fraction_Name[i]);
                strcat(str2, str);
            }
            SetPVarInt(playerid, "actplayerid", params[0]);
            ShowPlayerDialog(playerid, D_FRACMENU, 2"{"#cSV"}Îðãàíèçàöèè", str2, "Ïðèíÿòü""Îòìåíà");
        }
    }
    return 1;
}

 

 

Edited by Cawfee

Share this post


Link to post
  • 0

@Caracal2222, нужен фрагмент кода, где игроку именно присваиваются полномочия. Здесь лишь идет отображение диалога со списком организаций.

Share this post


Link to post
  • 0

@Cawfee Что именно поискать ? Какую команду или слово на какое опираться в поиске. Чтобы найти присвоение именно прав 

Share this post


Link to post
  • 0

@Caracal2222, по цепочке диалогов идите. Здесь, например, формируется диалог с идентификатором D_FRACMENU. Смотрите, что в нем происходит. Если там нет выдачи прав, идите дальше к следующему диалогу (или функции).

Share this post


Link to post
  • 0

@Cawfee Что-то такое нашел 

 

Спойлер

    case D_INVITEFRAC:
        {
            if(!response)
            {
                DeletePVar(playerid, "offerplayer");
                DeletePVar(playerid, "offerfractionid");
                return 1;
            }
            new fractionid = GetPVarInt(playerid, "offerfractionid");
            new offer = GetPVarInt(playerid, "offerplayer");
            new mes[128];
            for(new i; i < 8; i++)
            {
                new skinid = Fraction_Skin[fractionid][i];
                if(!skinid) break;
                if(!i) format(mes, sizeof(mes), "Скин %d [%d]", i+1, skinid);
                else format(mes, sizeof(mes), "%s\nСкин %d [%d]", mes, i+1, skinid);
            }
            SendClientMessage(playerid, COLOR_BLUE, "Ждите, пока лидер выберет одежду для Вас");
            ShowPlayerDialog(offer, D_INVITESKIN, 2"{"#cSV"}Выбор скина", mes, "Принять""");
        }
    case D_INVITESKIN:
        {
            if(!response) return 1;
            new actplayerid = GetPVarInt(playerid, "actplayerid");
            new fractionid = GetPVarInt(actplayerid, "offerfractionid");
            new skinid = Fraction_Skin[fractionid][listitem];
            SendMes(actplayerid, COLOR_BLUE, "Вы присоединились к организации \"%s\"", Fraction_Name[fractionid]);
            SendMes(playerid, COLOR_BLUE, "%s принял предложение присоединиться к \"%s\"", GetName(actplayerid), Fraction_Name[fractionid]);
            PI[actplayerid][pMember] = fractionid;
            PI[actplayerid][pRank] = 1;
            PI[actplayerid][pMemberSkin] = skinid;
            SetPlayerSkin(actplayerid, skinid);
            PI[actplayerid][pJob] = 0;
            SetPlayerColorEx(actplayerid, TeamColors[GetTeamID(actplayerid)]);
            ResetPlayerWeaponsAC(actplayerid);
            PI[playerid][pLeaderStat][LEADER_INVITE] ++;
        }
    case D_WEATHER:
        {
            if(!response) return 1;
            SetWeather(listitem+1);
            SendClientMessage(playerid, COLOR_LIME, "Погода установлена");
        }
    case D_FRACMENU:
        {
            if(!response) return DeletePVar(playerid, "actplayerid");
            SetPVarInt(playerid, "actfraction", listitem+1);
            new fractionid = GetPVarInt(playerid, "actfraction");
            if(fractionid >= 13 && fractionid <= 14)
            {
                DeletePVar(playerid, "actplayerid");
                DeletePVar(playerid, "actfraction");
                return 1;
            }
            new mes[128];
            for(new i; i < 8; i++)
            {
                new skinid = Fraction_Skin[fractionid][i];
                if(!skinid) break;
                if(!i) format(mes, sizeof(mes), "Скин %d [%d]", i+1, skinid);
                else format(mes, sizeof(mes), "%s\nСкин %d [%d]", mes, i+1, skinid);
            }
            ShowPlayerDialog(playerid, D_LEADERSKIN, 2"{"#cSV"}Выбор скина", mes, "Принять""Отмена");
        }
    case D_LEADERSKIN:
        {
            if(!response)
            {
                DeletePVar(playerid, "actplayerid");
                DeletePVar(playerid, "actfraction");
                return 1;
            }
            new actplayerid = GetPVarInt(playerid, "actplayerid");
            new fractionid = GetPVarInt(playerid, "actfraction");
            new skinid = Fraction_Skin[fractionid][listitem];
            if(!IsPlayerConnected(actplayerid)) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
            else if(!PlayerLogged[actplayerid]) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
            switch(fractionid)
            {
            case TEAM_ARMIYA,TEAM_POLICIA,TEAM_POLICIA2,TEAM_SWAT: PI[actplayerid][pRank] = 10;
            case TEAM_FBI: PI[actplayerid][pRank] = 10;
            case TEAM_MERIA,TEAM_VDV,TEAM_FSIN,TEAM_BOLNICA,TEAM_SFHOSPITAL,TEAM_LVHOSPITAL,TEAM_GROOVE..TEAM_HITMAN,TEAM_OPG1..TEAM_YAK,TEAM_SMI,TEAM_SFNEWS,TEAM_LVNEWS: PI[actplayerid][pRank] = 10;
            case TEAM_AUTOSCHOOL: PI[actplayerid][pRank] = 8;
            }
            PI[actplayerid][pLeader] = PI[actplayerid][pMember] = fractionid;
            PI[actplayerid][pJob] = 0;
            PI[actplayerid][pSpawnChange] = 2;
            PI[actplayerid][pMemberSkin] = skinid;
            SetPlayerSkin(actplayerid, PI[actplayerid][pMemberSkin]);
            new string[128];
            format(string, sizeof(string), "Вы назначили %s лидером организации: %s", GetName(actplayerid), Fraction_Name[fractionid]);
            SendClientMessage(playerid, COLOR_LIME, string);
            format(string, sizeof(string), "Администратор %s назначил Вас лидером организации: %s", GetName(playerid), Fraction_Name[fractionid]);
            SendClientMessage(actplayerid, COLOR_BLUE, string);
            format(string, sizeof(string), ""aAC"%s назначил %s лидером организации \"%s\"", GetName(playerid), GetName(actplayerid), Fraction_Name[fractionid]);
            SendAdminMessage(COLOR_GREY, string);
            //AddLog(string, 46);
            ResetPlayerWeaponsAC(actplayerid);
            SetPlayerColorEx(actplayerid, TeamColors[GetTeamID(actplayerid)]);
            DeletePVar(playerid, "actplayerid");
            DeletePVar(playerid, "actfraction");
        }
    case D_TEMPLEADER:
        {
            if(!response) return 1;
            new fractionid = listitem+1;
            switch(fractionid)
            {
            case TEAM_ARMIYA,TEAM_POLICIA,TEAM_POLICIA2,TEAM_SWAT: PI[playerid][pRank] = 1;
            case TEAM_FBI: PI[playerid][pRank] = 1;
            case TEAM_MERIA,TEAM_VDV,TEAM_FSIN,TEAM_BOLNICA,TEAM_SFHOSPITAL,TEAM_LVHOSPITAL,TEAM_GROOVE..TEAM_HITMAN,TEAM_OPG1..TEAM_YAK,TEAM_SMI,TEAM_SFNEWS,TEAM_LVNEWS: PI[playerid][pRank] = 1;
            case TEAM_AUTOSCHOOL: PI[playerid][pRank] = 1;
            case 13,14return 1;
            }
            PI[playerid][pTempLeader] = PI[playerid][pMember] = fractionid;
            PI[playerid][pJob] = 0;
            PI[playerid][pMemberSkin] = GetPlayerSkin(playerid);
            PI[playerid][pSpawnChange] = 2;
            new string[128];
            format(string, sizeof(string), "Вы тихо вступили в организации: %s", Fraction_Name[fractionid]);
            SendClientMessage(playerid, COLOR_LIME, string);
            format(string, sizeof(string), ""aAC"%s тихо вступил в организацию \"%s\"", GetName(playerid), Fraction_Name[fractionid]);
            SendAdminMessage(COLOR_GREY, string);
            //AddLog(string, 50);
            ResetPlayerWeaponsAC(playerid);
            SetPlayerColorEx(playerid, TeamColors[GetTeamID(playerid)]);
        }
    case D_FRACMENU+1:
        {
            new targetid = GetPVarInt(playerid, "PlayerRank");
            if(!response) { DeletePVar(playerid, "PlayerRank"); return 1; }
            if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
            if(PlayerLogged[targetid] == falsereturn SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
            if(PI[targetid][pMember] == 0return SendClientMessage(playerid, COLOR_GREY, "Игрок не находиться в организации!");
            if(PI[targetid][pLeader] > 0return SendClientMessage(playerid, COLOR_GREY, "Игрок лидер другой организации!");
            if(PI[targetid][pMember] != PI[playerid][pMember]) return SendClientMessage(playerid, COLOR_GREY, "Игрок находиться в другой организации!");
            if(PI[targetid][pRank] == PI[playerid][pRank]) return SendClientMessage(playerid, COLOR_GREY, ""cER"Заму нельзя назчначить ранг!");
            DeletePVar(playerid, "PlayerRank");
            PI[targetid][pRank] = listitem+1;
            SendMes(targetid,COLOR_BLUE,"%s %s повысил/понизил ваш ранг. Сейчас вы: %s",Fraction_Rang[PI[playerid][pMember]][PI[playerid][pRank]], GetName(playerid),Fraction_Rang[PI[targetid][pMember]][PI[targetid][pRank]]);
            SendMes(playerid,COLOR_BLUE,"Вы повысили/понизили ранг %s. Сейчас он/она: %s",GetName(targetid), Fraction_Rang[PI[targetid][pMember]][PI[targetid][pRank]]);
            PI[playerid][pLeaderStat][LEADER_RANK] ++;
        }
    case D_FRACMENU+2:
        {
            new targetid = GetPVarInt(playerid, "PlayerRank");
            if(!response) { DeletePVar(playerid, "PlayerRank"); return 1; }
            if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
            if(PlayerLogged[targetid] == falsereturn SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
            if(PI[targetid][pMember] == 0return SendClientMessage(playerid, COLOR_GREY, "Игрок не находиться в организации!");
            if(PI[targetid][pLeader] > 0return SendClientMessage(playerid, COLOR_GREY, "Игрок лидер другой организации!");
            DeletePVar(playerid, "PlayerRank");
            PI[targetid][pRank] = listitem+1;
            SendMes(targetid,COLOR_BLUE,"Администратор %s повысил/понизил ваш ранг. Сейчас вы: %s",GetName(playerid),Fraction_Rang[PI[targetid][pMember]][PI[targetid][pRank]]);
            SendMes(playerid,COLOR_LIME,"Вы повысили/понизили ранг %s. Сейчас он/она: %s",GetName(targetid), Fraction_Rang[PI[targetid][pMember]][PI[targetid][pRank]]);
        }
    case D_FRACMENU+7:
        {
            if(!response) return 1;
            switch(listitem)
            {
            case 0: callcmd::find(playerid);
            case 1:
                {
                    format(global_string, sizeof(global_string), "SELECT `name`,`datavhod`,`rank`  FROM "T_ACCOUNTS" WHERE member = '%i' AND online = '1001'", PI[playerid][pMember]);
                    mysql_tquery(dbHandle, global_string, "OfflineMembersOnFraction""i", playerid);
                }
            case 2: ShowPlayerDialog(playerid, D_LPANEL, DIALOG_STYLE_INPUT, "{"#cSV"}Уволить игрока""{FFFFFF}Введите ник игрока, которого Вы хотите уволить:""Далее""Отмена");
            case 3:
                {
                    new st[10], st1[10], st2[10];
                    global_string = "";
                    switch(PI[playerid][pLeader])
                    {
                    case 1:
                        {
                            switch(LP0[0])
                            {
                            case 0: st = "{FF0000}-";
                            case 1: st = "{63BD4E}+";
                            }
                            switch(LP0[2])
                            {
                            case 0: st1 = "{63BD4E}+";
                            case 1: st1 = "{FF0000}-";
                            }
                            switch(LP0[3])
                            {
                            case 0: st2 = "{63BD4E}+";
                            case 1: st2 = "{FF0000}-";
                            }
                        }
                    case 2:
                        {
                            switch(LP1[0])
                            {
                            case 0: st = "{FF0000}-";
                            case 1: st = "{63BD4E}+";
                            }
                            switch(LP1[2])
                            {
                            case 0: st1 = "{63BD4E}+";
                            case 1: st1 = "{FF0000}-";
                            }
                            switch(LP1[3])
                            {
                            case 0: st2 = "{63BD4E}+";
                            case 1: st2 = "{FF0000}-";
                            }
                        }
                    case 3:
                        {
                            switch(LP2[0])
                            {
                            case 0: st = "{FF0000}-";
                            case 1: st = "{63BD4E}+";
                            }
                            switch(LP2[2])
                            {
                            case 0: st1 = "{63BD4E}+";
                            case 1: st1 = "{FF0000}-";
                            }
                            switch(LP2[3])
                            {
                            case 0: st2 = "{63BD4E}+";
                            case 1: st2 = "{FF0000}-";
                            }
                        }
                    case 5:
                        {
                            switch(LP3[0])
                            {
                            case 0: st = "{FF0000}-";
                            case 1: st = "{63BD4E}+";
                            }
                            switch(LP3[2])
                            {
                            case 0: st1 = "{63BD4E}+";
                            case 1: st1 = "{FF0000}-";
                            }
                            switch(LP3[3])
                            {
                            case 0: st2 = "{63BD4E}+";
                            case 1: st2 = "{FF0000}-";
                            }
                        }
                    case 6://АШ
                        {
                            switch(LP4[0])
                            {
                            case 0: st = "{FF0000}-";
                            case 1: st = "{63BD4E}+";
                            }
                            switch(LP4[2])
                            {
                            case 0: st1 = "{63BD4E}+";
                            case 1: st1 = "{FF0000}-";
                            }
                            switch(LP4[3])
                            {
                            case 0: st2 = "{63BD4E}+";
                            case 1: st2 = "{FF0000}-";
                            }
                        }
                    case 18://СМИ
                        {
                            switch(LP5[0])
                            {
                            case 0: st = "{FF0000}-";
                            case 1: st = "{63BD4E}+";
                            }
                            switch(LP5[2])
                            {
                            case 0: st1 = "{63BD4E}+";
                            case 1: st1 = "{FF0000}-";
                            }
                            switch(LP5[3])
                            {
                            case 0: st2 = "{63BD4E}+";
                            case 1: st2 = "{FF0000}-";
                            }
                        }
                    default: SendClientMessage(playerid, COLOR_GREY, "Данное действие не доступно вашей организации");
                    }
                    format(global_string, 300"\
                        1. Автом. набор в организацию\t%s\n\
                        2. Проверка на прописку\t\t+\n\
                        3. Проверка документов\t\t%s\n\
                        4. Проверка на скиллы\t\t%s\
                    ", st, st1, st2);
                    ShowPlayerDialog(playerid, D_FRACMENU+92"{"#cSV"}Выберите пункт", global_string, "Принять""Отмена");
                }
            }
        }
    case D_FRACMENU+8:
        {
            if(!response) return 1;
            new actplayerid = GetPVarInt(playerid, "actplayerid");
            new fractionid = PI[actplayerid][pMember];
            new skinid = Fraction_Skin[fractionid][listitem];
            if(skinid == PI[actplayerid][pMemberSkin]) return 1;
            new mes[128];
            format(mes,sizeof(mes), "%s выдал Вам новую фракционную одежду", GetName(playerid));
            SendClientMessage(actplayerid, COLOR_BLUE, mes);
            format(mes,sizeof(mes), "%s получил новую фракционную одежду", GetName(actplayerid));
            SendClientMessage(playerid, COLOR_BLUE, mes);
            PI[actplayerid][pMemberSkin] = skinid;
            SetPlayerSkin(actplayerid, skinid);
            DeletePVar(playerid, "actplayerid");
        }
    case D_FRACMENU+9:
        {
            if(!response) return 1;
            {
                switch(listitem)
                {
                case 0:
                    {
                        switch(PI[playerid][pLeader])
                        {
                        case 1://ПРАВО
                            {
                                if(LP0[0] == 0) { LP0[0] = 1; }
                                else { LP0[0] = 0; }
                                format(lp0, sizeof(lp0),"%i, %i, %i, %i, %i, %i", LP0[0], LP0[1], LP0[2], LP0[3], LP0[4], LP0[5]);
                                MysqlUpdateOtherStr("lp0", lp0);
                            }
                        case 2://ДПС
                            {
                                if(LP1[0] == 0) { LP1[0] = 1; }
                                else { LP1[0] = 0; }
                                format(lp1, sizeof(lp1),"%i, %i, %i, %i, %i, %i", LP1[0], LP1[1], LP1[2], LP1[3], LP1[4], LP1[5]);
                                MysqlUpdateOtherStr("lp1", lp1);
                            }
                        case 3://ППС
                            {
                                if(LP2[0] == 0) { LP2[0] = 1; }
                                else { LP2[0] = 0; }
                                format(lp2, sizeof(lp2),"%i, %i, %i, %i, %i, %i", LP2[0], LP2[1], LP2[2], LP2[3], LP2[4], LP2[5]);
                                MysqlUpdateOtherStr("lp2", lp2);
                            }
                        case 5://Болька
                            {
                                if(LP3[0] == 0) { LP3[0] = 1; }
                                else { LP3[0] = 0; }
                                format(lp3, sizeof(lp3),"%i, %i, %i, %i, %i, %i", LP3[0], LP3[1], LP3[2], LP3[3], LP3[4], LP3[5]);
                                MysqlUpdateOtherStr("lp3", lp3);
                            }
                        case 6://аш
                            {
                                if(LP4[0] == 0) { LP4[0] = 1; }
                                else { LP4[0] = 0; }
                                format(lp4, sizeof(lp4),"%i, %i, %i, %i, %i, %i", LP4[0], LP4[1], LP4[2], LP4[3], LP4[4], LP4[5]);
                                MysqlUpdateOtherStr("lp4", lp4);
                            }
                        case 18://СМИ
                            {
                                if(LP5[0] == 0) { LP5[0] = 1; }
                                else { LP5[0] = 0; }
                                format(lp5, sizeof(lp5),"%i, %i, %i, %i, %i, %i", LP5[0], LP5[1], LP5[2], LP5[3], LP5[4], LP5[5]);
                                MysqlUpdateOtherStr("lp5", lp5);
                            }
                        }
                    }
                case 1:
                    {
                        ShowPlayerDialog(playerid, D_LPANEL+21"{"#cSV"}Панель""\
                        {FFFFFF}Введите уровень вступление в организацию\n\n\
                        {FFFF00}Примечание:\n\
                        {FFFFFF}Значение может быть от 1 до 5""Принять""Отмена");
                    }
                case 2:
                    {
                        switch(PI[playerid][pLeader])
                        {
                        case 1://ПРАВО
                            {
                                if(LP0[2] == 0) { LP0[2] = 1; }
                                else { LP0[2] = 0; }
                                format(lp0, sizeof(lp0),"%i, %i, %i, %i, %i, %i", LP0[0], LP0[1], LP0[2], LP0[3], LP0[4], LP0[5]);
                                MysqlUpdateOtherStr("lp0", lp0);
                            }
                        case 2://ДПС
                            {
                                if(LP1[2] == 0) { LP1[2] = 1; }
                                else { LP1[2] = 0; }
                                format(lp1, sizeof(lp1),"%i, %i, %i, %i, %i, %i", LP1[0], LP1[1], LP1[2], LP1[3], LP1[4], LP1[5]);
                                MysqlUpdateOtherStr("lp1", lp1);
                            }
                        case 3://ППС
                            {
                                if(LP2[2] == 0) { LP2[2] = 1; }
                                else { LP2[2] = 0; }
                                format(lp2, sizeof(lp2),"%i, %i, %i, %i, %i, %i", LP2[0], LP2[1], LP2[2], LP2[3], LP2[4], LP2[5]);
                                MysqlUpdateOtherStr("lp2", lp2);
                            }
                        case 5://Болька
                            {
                                if(LP3[2] == 0) { LP3[2] = 1; }
                                else { LP3[2] = 0; }
                                format(lp3, sizeof(lp3),"%i, %i, %i, %i, %i, %i", LP3[0], LP3[1], LP3[2], LP3[3], LP3[4], LP3[5]);
                                MysqlUpdateOtherStr("lp3", lp3);
                            }
                        case 6://аш
                            {
                                if(LP4[2] == 0) { LP4[2] = 1; }
                                else { LP4[2] = 0; }
                                format(lp4, sizeof(lp4),"%i, %i, %i, %i, %i, %i", LP4[0], LP4[1], LP4[2], LP4[3], LP4[4], LP4[5]);
                                MysqlUpdateOtherStr("lp4", lp4);
                            }
                        case 18://СМИ
                            {
                                if(LP5[2] == 0) { LP5[2] = 1; }
                                else { LP5[2] = 0; }
                                format(lp5, sizeof(lp5),"%i, %i, %i, %i, %i, %i", LP5[0], LP5[1], LP5[2], LP5[3], LP5[4], LP5[5]);
                                MysqlUpdateOtherStr("lp5", lp5);
                            }
                        }
                    }
                case 3:
                    {
                        switch(PI[playerid][pLeader])
                        {
                        case 1://ПРАВО
                            {
                                if(LP0[3] == 0) { LP0[3] = 1; }
                                else { LP0[3] = 0; }
                                format(lp0, sizeof(lp0),"%i, %i, %i, %i, %i, %i", LP0[0], LP0[1], LP0[2], LP0[3], LP0[4], LP0[5]);
                                MysqlUpdateOtherStr("lp0", lp0);
                            }
                        case 2://ДПС
                            {
                                if(LP1[3] == 0) { LP1[3] = 1; }
                                else { LP1[3] = 0; }
                                format(lp1, sizeof(lp1),"%i, %i, %i, %i, %i, %i", LP1[0], LP1[1], LP1[2], LP1[3], LP1[4], LP1[5]);
                                MysqlUpdateOtherStr("lp1", lp1);
                            }
                        case 3://ППС
                            {
                                if(LP2[3] == 0) { LP2[3] = 1; }
                                else { LP2[3] = 0; }
                                format(lp2, sizeof(lp2),"%i, %i, %i, %i, %i, %i", LP2[0], LP2[1], LP2[2], LP2[3], LP2[4], LP2[5]);
                                MysqlUpdateOtherStr("lp2", lp2);
                            }
                        case 5://Болька
                            {
                                if(LP3[3] == 0) { LP3[3] = 1; }
                                else { LP3[3] = 0; }
                                format(lp3, sizeof(lp3),"%i, %i, %i, %i, %i, %i", LP3[0], LP3[1], LP3[2], LP3[3], LP3[4], LP3[5]);
                                MysqlUpdateOtherStr("lp3", lp3);
                            }
                        case 6://аш
                            {
                                if(LP4[3] == 0) { LP4[3] = 1; }
                                else { LP4[3] = 0; }
                                format(lp4, sizeof(lp4),"%i, %i, %i, %i, %i, %i", LP4[0], LP4[1], LP4[2], LP4[3], LP4[4], LP4[5]);
                                MysqlUpdateOtherStr("lp4", lp4);
                            }
                        case 18://СМИ
                            {
                                if(LP5[3] == 0) { LP5[3] = 1; }
                                else { LP5[3] = 0; }
                                format(lp5, sizeof(lp5),"%i, %i, %i, %i, %i, %i", LP5[0], LP5[1], LP5[2], LP5[3], LP5[4], LP5[5]);
                                MysqlUpdateOtherStr("lp5", lp5);

 

 

Edited by Cawfee

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • ismailov
      By ismailov
      Привет! Что делать, если игрока выкинули из машины? как сделать так, чтобы не выкидывало из машины? из-за NOP выкидывает человека из машины. Если заменить на PutPlayerInVehicle, такая тема все равно будет.