• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

/capture

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

Alex Killer

Начинающий
Пользователь
Регистрация
6 Янв 2017
Сообщения
38
Лучшие ответы
0
Репутация
9
Здравствуйте уважаемые пользователи, у меня такая проблема с командой /capture, не захватывает территорию на радаре территория мигает, и капт не останавливается, и Textdraws не пропадает, я уже неделя как, не могу исправить эту проблему..


Вот код:


PHP:
CMD:capture(playerid)
{
    if(!IsAGang(playerid)) return SendClientMessage(playerid, COLOR_GREY, YouCanNot);
    else if(pInfo[playerid][pRank] < 9) return SendClientMessage(playerid, COLOR_GREY, "Захват территории доступен с 9 ранга!");
    new h; gettime(h);
    //if(!(11 <= h <= 22)) return SendClientMessage(playerid, COLOR_GREY, "Проводить захват можно только с 11:00 до 22:00");
    if(pInfo[playerid][pMember] == 7 && b_Capture[0]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ вашей банде к войне за территории закрыт");
    else if(pInfo[playerid][pMember] == 8 && b_Capture[1]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ вашей банде к войне за территории закрыт");
    else if(pInfo[playerid][pMember] == 9 && b_Capture[2]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ вашей банде к войне за территории закрыт");
    else if(pInfo[playerid][pMember] == 10 && b_Capture[3]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ вашей банде к войне за территории закрыт");
    else if(pInfo[playerid][pMember] == 11 && b_Capture[4]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ вашей банде к войне за территории закрыт");
    else if(FrakCD != 0)
    {
        new fd[128];
        format(fd,sizeof(fd),"Следующий захват территории возможен через %d мин", FrakCD/60);
        return SendClientMessage(playerid,COLOR_GREY,fd);
    }
    new zone = GetPlayerGangZone(playerid);
    if(zone == -1) return SendClientMessage(playerid, COLOR_GREY, "Вы должны находится в опасном районе");
    else if(CaptureStatus) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Уже происходит захват одной из зон. Дождитесь окончания!");
    else if(GZInfo[zone][gFrak] == pInfo[playerid][pMember]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Вы не можете захватывать зону вашей банды!");
    else if(GZInfo[zone][gFrak] == 0)
    {
        new string[128];
        format(string,sizeof(string),"Банда %s захватила новую территорию",Fraction_Name[pInfo[playerid][pMember]]);
        SendGhettoMes(COLOR_BLUE, string);
        GangZoneHideForAll(GangZone[zone]);
        GangZoneShowForAll(GangZone[zone],TeamColors[pInfo[playerid][pMember]]);
        GZInfo[zone][gFrak] = pInfo[playerid][pMember];
        SaveGZ(zone);
        return 1;
    }
    else if(GZInfo[zone][gFrak] == 22 && b_Capture[0]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ данной банды к войне за территории закрыт");
    else if(GZInfo[zone][gFrak] == 23 && b_Capture[1]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ данной банды к войне за территории закрыт");
    else if(GZInfo[zone][gFrak] == 24 && b_Capture[2]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ данной банды к войне за территории закрыт");
    else if(GZInfo[zone][gFrak] == 25 && b_Capture[3]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ данной банды к войне за территории закрыт");
    else if(GZInfo[zone][gFrak] == 26 && b_Capture[4]) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Доступ данной банды к войне за территории закрыт");
    //else if(IsPlayerInBandOnline(pInfo[playerid][pMember]) < 3) return SendClientMessage(playerid, COLOR_GREY, "Для захвата территории должен быть онлайн хотябы 3 членов банды");
    //else if(IsPlayerInBandOnline(GZInfo[zone][gFrak]) < 3) return SendClientMessage(playerid, COLOR_GREY, "У банды владеющей этой территорией менее 3 членов банды онлайн");
    new str[128];
    format(str, sizeof(str), "%s начали захват территории банды %s", Fraction_Name[pInfo[playerid][pMember]], Fraction_Name[GZInfo[zone][gFrak]]);
    SendGhettoMes(COLOR_ORANGE, str);
    format(str, sizeof(str), "%s %s[%d] инициировал захват", Fraction_Rang[pInfo[playerid][pMember]][pInfo[playerid][pRank]], GetName(playerid), playerid);
    SendGhettoMes(COLOR_ORANGE, str);
    GangZoneFlashForAll(GangZone[zone], TeamColors[GetTeamID(playerid)]);
    CaptureTime = 180;
    FrakCD = 1800;
    CaptureStatus = 1;
    CaptureZone = zone;
    GZInfo[zone][gNapad] = pInfo[playerid][pMember];
    GangInfo[pInfo[playerid][pMember]][g_Capture] = 1;
    GangInfo[GZInfo[zone][gFrak]][g_Capture] = 1;
    GangInfo[pInfo[playerid][pMember]][g_Number] = 1;
    GangInfo[GZInfo[zone][gFrak]][g_Number] = 0;
    CaptureStart(pInfo[playerid][pMember], GZInfo[zone][gFrak]);
    format(str, sizeof(str), "[A] Банда %s напала на территорию банды %s",Fraction_Name[pInfo[playerid][pMember]],Fraction_Name[GZInfo[zone][gFrak]]);
    SendAdminMessage(COLOR_GRAD1, str);
    return 1;
}


PHP:
stock GangZoneCheck()
{
    if(CaptureTime > 0 || CaptureStatus == 0) return 1;
    new i = CaptureZone, players_in_square_frak, players_in_square_napad;
    foreach(new playerid: Player)
    {
        if(GZInfo[i][gFrak] != pInfo[playerid][pMember] && GZInfo[i][gNapad] != pInfo[playerid][pMember]) continue;
        if(IsPlayerToSquare(playerid, GZInfo[i][gCoords][0], GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3]))
        {
            if(GZInfo[i][gFrak] == pInfo[playerid][pMember]) players_in_square_frak++;
            else players_in_square_napad++;
        }
    }
    new string[128];
    if(GangInfo[GZInfo[i][gFrak]][g_Score] > GangInfo[GZInfo[i][gNapad]][g_Score])
    {
        format(string,sizeof(string),"Попытка захватить территорию %s провалилась",Fraction_Name[GZInfo[i][gFrak]]);
        SendGhettoMes(COLOR_BLUE, string);
        CaptureEnd(GZInfo[i][gNapad], GZInfo[i][gFrak]);
        GangZoneStopFlashForAll(GangZone[i]);
        GangZoneHideForAll(GangZone[i]);
        GangZoneShowForAll(GangZone[i],TeamColors[GZInfo[i][gFrak]]);
        foreach(new x : Player)
        {
            if(!gPlayerLogged[x] || (pInfo[x][pMember] != GZInfo[i][gNapad] && pInfo[x][pMember] != GZInfo[i][gFrak])) continue;
            ClearDeathMessage(x);
        }
        GangInfo[GZInfo[i][gNapad]][g_Capture] =
        GangInfo[GZInfo[i][gNapad]][g_Score] =
        GangInfo[GZInfo[i][gFrak]][g_Capture] =
        GangInfo[GZInfo[i][gFrak]][g_Score] =
        GangInfo[GZInfo[i][gNapad]][g_Number] =
        GangInfo[GZInfo[i][gFrak]][g_Number] = 0;
        GZInfo[i][gFrak] = GZInfo[i][gFrak];
        GZInfo[i][gNapad] = 0;
        SaveGZ(i);
    }
    else if(GangInfo[GZInfo[i][gFrak]][g_Score] == GangInfo[GZInfo[i][gNapad]][g_Score])
    {
        if(players_in_square_frak > players_in_square_napad)
        {
            format(string,sizeof(string),"Попытка захватить территорию %s провалилась",Fraction_Name[GZInfo[i][gFrak]]);
            SendGhettoMes(COLOR_BLUE, string);
            CaptureEnd(GZInfo[i][gNapad], GZInfo[i][gFrak]);
            GangZoneStopFlashForAll(GangZone[i]);
            GangZoneHideForAll(GangZone[i]);
            GangZoneShowForAll(GangZone[i],TeamColors[GZInfo[i][gFrak]]);
            foreach(new x : Player)
            {
                if(!gPlayerLogged[x] || (pInfo[x][pMember] != GZInfo[i][gNapad] && pInfo[x][pMember] != GZInfo[i][gFrak])) continue;
                ClearDeathMessage(x);
            }
            GangInfo[GZInfo[i][gNapad]][g_Capture] =
            GangInfo[GZInfo[i][gNapad]][g_Score] =
            GangInfo[GZInfo[i][gFrak]][g_Capture] =
            GangInfo[GZInfo[i][gFrak]][g_Score] =
            GangInfo[GZInfo[i][gNapad]][g_Number] =
            GangInfo[GZInfo[i][gFrak]][g_Number] = 0;
            GZInfo[i][gFrak] = GZInfo[i][gFrak];
            GZInfo[i][gNapad] = 0;
            SaveGZ(i);
        }
        else if(players_in_square_frak == players_in_square_napad)
        {
            format(string,sizeof(string),"Банда %s захватила новую территорию",Fraction_Name[GZInfo[i][gNapad]]);
            SendGhettoMes(COLOR_BLUE, string);
            CaptureEnd(GZInfo[i][gNapad], GZInfo[i][gFrak]);
            GangZoneStopFlashForAll(GangZone[i]);
            GangZoneHideForAll(GangZone[i]);
            GangZoneShowForAll(GangZone[i],TeamColors[GZInfo[i][gNapad]]);
            foreach(new x : Player)
            {
                if(!gPlayerLogged[x] || (pInfo[x][pMember] != GZInfo[i][gNapad] && pInfo[x][pMember] != GZInfo[i][gFrak])) continue;
                ClearDeathMessage(x);
            }
            GangInfo[GZInfo[i][gNapad]][g_Capture] =
            GangInfo[GZInfo[i][gNapad]][g_Score] =
            GangInfo[GZInfo[i][gFrak]][g_Capture] =
            GangInfo[GZInfo[i][gFrak]][g_Score] =
            GangInfo[GZInfo[i][gNapad]][g_Number] =
            GangInfo[GZInfo[i][gFrak]][g_Number] = 0;
            GZInfo[i][gFrak] = GZInfo[i][gNapad];
            GZInfo[i][gNapad] = 0;
            SaveGZ(i);
        }
        else
        {
            format(string,sizeof(string),"Банда %s захватила новую территорию",Fraction_Name[GZInfo[i][gNapad]]);
            SendGhettoMes(COLOR_BLUE, string);
            CaptureEnd(GZInfo[i][gNapad], GZInfo[i][gFrak]);
            GangZoneStopFlashForAll(GangZone[i]);
            GangZoneHideForAll(GangZone[i]);
            GangZoneShowForAll(GangZone[i],TeamColors[GZInfo[i][gNapad]]);
            foreach(new x : Player)
            {
                if(!gPlayerLogged[x] || (pInfo[x][pMember] != GZInfo[i][gNapad] && pInfo[x][pMember] != GZInfo[i][gFrak])) continue;
                ClearDeathMessage(x);
            }
            GangInfo[GZInfo[i][gNapad]][g_Capture] =
            GangInfo[GZInfo[i][gNapad]][g_Score] =
            GangInfo[GZInfo[i][gFrak]][g_Capture] =
            GangInfo[GZInfo[i][gFrak]][g_Score] =
            GangInfo[GZInfo[i][gNapad]][g_Number] =
            GangInfo[GZInfo[i][gFrak]][g_Number] = 0;
            GZInfo[i][gFrak] = GZInfo[i][gNapad];
            GZInfo[i][gNapad] = 0;
            SaveGZ(i);
        }
    }
    else
    {
        format(string,sizeof(string),"Банда %s захватила новую территорию",Fraction_Name[GZInfo[i][gNapad]]);
        SendGhettoMes(COLOR_BLUE, string);
        CaptureEnd(GZInfo[i][gNapad], GZInfo[i][gFrak]);
        GangZoneStopFlashForAll(GangZone[i]);
        GangZoneHideForAll(GangZone[i]);
        GangZoneShowForAll(GangZone[i],TeamColors[GZInfo[i][gNapad]]);
        foreach(new x : Player)
        {
            if(!gPlayerLogged[x] || (pInfo[x][pMember] != GZInfo[i][gNapad] && pInfo[x][pMember] != GZInfo[i][gFrak])) continue;
            ClearDeathMessage(x);
        }
        GangInfo[GZInfo[i][gNapad]][g_Capture] =
        GangInfo[GZInfo[i][gNapad]][g_Score] =
        GangInfo[GZInfo[i][gFrak]][g_Capture] =
        GangInfo[GZInfo[i][gFrak]][g_Score] =
        GangInfo[GZInfo[i][gNapad]][g_Number] =
        GangInfo[GZInfo[i][gFrak]][g_Number] = 0;
        GZInfo[i][gFrak] = GZInfo[i][gNapad];
        GZInfo[i][gNapad] = 0;
        SaveGZ(i);
    }
    CaptureStatus = 0;
    CaptureZone = 0;
    return 1;
}

stock GetPlayerGangZone(playerid)
{
    for(new i = 0; i < sizeof(GZInfo); i++)
    {
        if(IsPlayerToSquare(playerid, GZInfo[i][gCoords][0], GZInfo[i][gCoords][1], GZInfo[i][gCoords][2], GZInfo[i][gCoords][3]))
         {
             return i;
         }
    }
    return -1;
}

stock CaptureUpdate(gangid)
{
    new string[64];
    if(GangInfo[gangid][g_Number] == 1)
    {
        format(string, sizeof(string), "%d", GangInfo[gangid][g_Score]);
        TextDrawSetString(panel_capture_TD[5], string);
    }
    else
    {
        format(string, sizeof(string), "%d", GangInfo[gangid][g_Score]);
        TextDrawSetString(panel_capture_TD[6], string);
    }
}

stock GetGangName(fracid)
{
    new fracname[20];
    switch(fracid)
    {
        case TEAM_GROVE: fracname = "Grove Street";
        case TEAM_BALLAS: fracname = "The Ballas";
        case TEAM_RIFA: fracname = "The Rifa";
        case TEAM_CORONA: fracname = "Varios Los Aztecas";
        case TEAM_VAGOS: fracname = "Los Santos Vagos";
    }
    return fracname;
}

stock CaptureShow(playerid, gangid, targetgangid, status)
{
    new string[64];
    if(status == 1)
    {
        GangZoneFlashForPlayer(playerid, GangZone[CaptureZone], TeamColors[gangid]);
        for(new s; s < 7; s++) TextDrawShowForPlayer(playerid, panel_capture_TD[s]);
        format(string, sizeof(string), "%s", GetGangName(gangid));
        TextDrawSetString(panel_capture_TD[3], string);
        format(string, sizeof(string), "%s", GetGangName(targetgangid));
        TextDrawSetString(panel_capture_TD[4], string);
        format(string, sizeof(string), "%d", GangInfo[gangid][g_Score]);
        TextDrawSetString(panel_capture_TD[5], string);
        format(string, sizeof(string), "%d", GangInfo[targetgangid][g_Score]);
        TextDrawSetString(panel_capture_TD[6], string);
    }
    else if(status == 0)
    {
        if(GetPVarInt(playerid, "settext") == 1) DeletePVar(playerid, "settext");
        GangZoneStopFlashForPlayer(playerid, GangZone[CaptureZone]);
        ClearDeathMessage(playerid);
        for(new s; s < 7; s++) TextDrawHideForPlayer(playerid, panel_capture_TD[s]);
    }
}

stock CaptureStart(gangid, targetgangid)
{
    new string[64];
    foreach(new i : Player)
    {
        if(!gPlayerLogged[i]) continue;
        if(pInfo[i][pMember] == gangid || pInfo[i][pMember] == targetgangid)
        {
            if(pInfo[i][pAdmin]) SetPVarInt(i, "settext", 1);
            for(new s; s < 7; s++) TextDrawShowForPlayer(i, panel_capture_TD[s]);
            format(string, sizeof(string), "%s", GetGangName(gangid));
            TextDrawSetString(panel_capture_TD[3], string);
            format(string, sizeof(string), "%s", GetGangName(targetgangid));
            TextDrawSetString(panel_capture_TD[4], string);
            TextDrawSetString(panel_capture_TD[5], "0");
            TextDrawSetString(panel_capture_TD[6], "0");
        }
    }
}

stock CaptureEnd(gangid, targetgangid)
{
    foreach(new i : Player)
    {
        if(pInfo[i][pMember] == gangid || pInfo[i][pMember] == targetgangid || GetPVarInt(i, "settext") == 1)
        {
            if(GetPVarInt(i, "settext") == 1) DeletePVar(i, "settext");
            for(new s; s < 7; s++) TextDrawHideForPlayer(i, panel_capture_TD[s]);
        }
    }
}

Я уже как 3 недели так мучаюсь, не знаю в чём проблема, не могу найти ошибку, в логах ничего не показывает вообще... Буду рад за помощь
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу