Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7

Тема: /capture

  1. #1
    Аватар для Logan Jacskon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.03.2017
    Сообщений
    20
    Репутация:
    0 ±

    /capture

    Здравствуйте, у меня не работает команда /capture, не захватывает территорию, таймер стоит на 00:00 и ничего не происходит, и территория продолжает мигать, + можно захватить другую терру... какой то, странный баг. Нигде такую проблему не нашел, помогите пожалуйста поставлю жирный плюс.

    PHP код:
    //=-=-=--==-=-=-=-=-
    new FrakCD;
    new 
    PlayerText:CaptureTD[MAX_PLAYERS][8];

    new 
    bool:IsCapture;

    enum Ganginfa
    {
        
    capture,
        
    score,
        
    captureid,
        
    gangnumber
    }
    new 
    GangInfo[MAX_GANGS][Ganginfa];

    new 
    bool:drawcapt[MAX_PLAYERS];

    new 
    OnZONE[MAX_GANGZONES][20];
    new 
    ZoneOnBattle[MAX_GANGZONES];
    new 
    allowedfactions[] = {2223242526};
    new 
    GZSafeTime[MAX_GANGZONES];
    new 
    GangTotalGz[5];//rifa,aztec,ballas,grove,vagos
    enum GzoneInfo
    {
        
    gID,
    Float:gCoords[4],
        
    gFrak,
        
    gNapad
    }
    new 
    GZInfo[MAX_GANGZONES][GzoneInfo];
    new 
    GangZone[MAX_GANGZONES]; 
    PHP код:
    CMD:capture(playeridparams[])
    {
        if(!
    IsAGang(playerid)) return SendClientMessage(playeridCOLOR_GREYYouCanNot);
        if(
    pInfo[playerid][pRank] < 9) return SendClientMessage(playerid,COLOR_GREY,"Для захвата зоны необходимо иметь ранг не менее 9-го");
        new 
    hgettime(h);
        if(
    || 23) return SendClientMessage(playeridCOLOR_GREY"Проводить захват можно только с 12:00 до 22:00");
        new 
    faction pInfo[playerid][pMember];
        if(
    pInfo[playerid][pMember] == 22 && b_Capture{0}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ вашей банде к войне за территории закрыт");
        if(
    pInfo[playerid][pMember] == 23 && b_Capture{1}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ вашей банде к войне за территории закрыт");
        if(
    pInfo[playerid][pMember] == 24 && b_Capture{2}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ вашей банде к войне за территории закрыт");
        if(
    pInfo[playerid][pMember] == 25 && b_Capture{3}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ вашей банде к войне за территории закрыт");
        if(
    pInfo[playerid][pMember] == 26 && b_Capture{4}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ вашей банде к войне за территории закрыт");
        if(
    FrakCD != 0)
        {
            new 
    fd[128];
            
    format(fd,sizeof(fd),"Следующий захват территории возможен через %d минут(ы)"FrakCD/60);
            
    SendClientMessage(playerid,COLOR_GREY,fd);
            return 
    1;
        }
        if(!
    IsInAllowed(playerid)) return SendClientMessage(playeridCOLOR_GREY"Ваша банда уже участвует в захвате зон!");
        new 
    str[128];
        for(new 
    0sizeof(GZInfo); i++)
        {
            if(
    IsPlayerToSquare(playeridGZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]) && ZoneOnBattle[i] == 0)
            {
                if(
    IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridCOLOR_GREY"Нельзя использовать в машине!");
                {
                    if(
    GZInfo[i][gFrak] == faction) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Вы не можете захватывать зону вашей банды!");
                    if(
    GZInfo[i][gFrak] == 0) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Нельзя захватить эту территорию");
                    if(
    GZInfo[i][gFrak] == 22 && b_Capture{0}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ данной банды к войне за территории закрыт");
                    if(
    GZInfo[i][gFrak] == 23 && b_Capture{1}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ данной банды к войне за территории закрыт");
                    if(
    GZInfo[i][gFrak] == 24 && b_Capture{2}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ данной банды к войне за территории закрыт");
                    if(
    GZInfo[i][gFrak] == 25 && b_Capture{3}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ данной банды к войне за территории закрыт");
                    if(
    GZInfo[i][gFrak] == 26 && b_Capture{4}) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Доступ данной банды к войне за территории закрыт");
                    if(
    IsCapture == true) return SendClientMessage(playeridCOLOR_GREY"[Ошибка] Уже происходит захват одной из зон. Дождитесь окончания!");
                    if(
    IsPlayerInBandOnline(faction) < 0) return SendClientMessage(playeridCOLOR_GREY"В вашей банде мало игроков онлайн, нужно минимум 5!");
                    
    /*if(IsPlayerInBandOnline(GZInfo[i][gFrak]) < 0)
                    {
                        format(str, sizeof(str), "У банды \"%s\" мало игроков,нужно минимум 5!", GetGangName(GZInfo[i][gFrak]));
                        SendClientMessage(playerid, COLOR_GREY, str);
                        return 1;
                    }*/
                    
    format(strsizeof(str), "На вашу территорию напала банда %s, у вас есть 5 минут чтобы отстоять её!"Fraction_Name[pInfo[playerid][pMember]]);
                    
    SendFracMes(GZInfo[i][gFrak], COLOR_LIGHTREDstr);
                    
    format(strsizeof(str), "Если по истечению времени вас не будет на территории, она перейдет к %s",Fraction_Name[pInfo[playerid][pMember]]);
                    
    SendFracMes(GZInfo[i][gFrak], COLOR_VITYA2str);
                    
    format(strsizeof(str), "%s[%d] напал на территорию банды %s",pInfo[playerid][pName],playerid,GetGangName(GZInfo[i][gFrak]));
                    
    SendFracMes(factionCOLOR_LIMEstr);
                    
    GangZoneFlashForAll(GangZone[i],GetGangZoneColor(faction));
                    
    GZSafeTime[i] = 100;
                    
    FrakCD 120;
                    
    GZInfo[i][gNapad] = faction;
                    
    ZoneOnBattle[i] = 1;
                    
    GangInfo[faction][capture] = 1;
                    
    GangInfo[GZInfo[i][gFrak]][capture] = 1;
                    
    GangInfo[GZInfo[i][gFrak]][captureid] = faction;
                    
    GangInfo[faction][captureid] = faction;
                    
    GangInfo[faction][gangnumber] = 1;
                    
    GangInfo[GZInfo[i][gFrak]][gangnumber] = 0;
                    
    CaptureStart(factionGZInfo[i][gFrak]);
                    
    format(strsizeof(str), "[A] Банда %s напала на территорию банды %s",GetGangName(faction),GetGangName(GZInfo[i][gFrak]));
                    
    SendAdminMessage(COLOR_GRAD1str);
                }
            }
        }
        return 
    1;

    PHP код:
    forward SecTimer();
    public 
    SecTimer()
    {
        for(new 
    i6i++) if(gGunWorkTime[i]) gGunWorkTime[i]--;

        
    WHDataUpdate();

        
    BizWarCheck();

        
    GzCheck();
        new 
    stringText[30];
        for(new 
    0sizeof(GZInfo); i++)
        {
            if(
    GZSafeTime[i] > 0)
            {
                
    GZSafeTime[i]--;
                foreach(new 
    xPlayer)
                {
                    if(
    pInfo[x][pMember] == GZInfo[i][gNapad] || pInfo[x][pMember] == GZInfo[i][gFrak])
                    {
                        
    Convert(GZSafeTime[i], stringText);
                        
    PlayerTextDrawSetString(xCaptureTD[x][3], stringText);
                    }
                }
            }
        }
            return 
    1;


    PHP код:
    stock SaveGZ(idx)
    {
        
    mysql_query_string[0] = EOS;

        
    format(mysql_query_string100"UPDATE "T_GANGZONE" SET fraction = %i WHERE id = %i"GZInfo[idx][gFrak], idx);
        
    mysql_tquery(huseynmysql_query_string"""");
        return 
    1;
    }

    @
    LoadGZ();
    @
    LoadGZ()
    {
        new 
    time GetTickCount();
        new 
    rows;
            
        
    cache_get_row_count(rows);
        if(
    rows)
        {
            for(new 
    idx 0idx rowsidx++)
            {
                
    cache_get_value_index_int(idx0GZInfo[idx][gID]); // id
                
    cache_get_value_index_float(idx1GZInfo[idx][gCoords][0]); // ginfo1
                
    cache_get_value_index_float(idx2GZInfo[idx][gCoords][1]); // ginfo2
                
    cache_get_value_index_float(idx3GZInfo[idx][gCoords][2]); // ginfo3
                
    cache_get_value_index_float(idx4GZInfo[idx][gCoords][3]); // ginfo4
                
    cache_get_value_index_int(idx5GZInfo[idx][gFrak]); // fraction
                
    TOTALGZ++;
                
    GangZone[idx] = GangZoneCreate(GZInfo[idx][gCoords][0],GZInfo[idx][gCoords][1],GZInfo[idx][gCoords][2],GZInfo[idx][gCoords][3]);
                   
    ZoneOnBattle[idx] = 0;
                
    GZSafeTime[idx] = 0;
            }
        }
        
    printf("[Загружено гангзон]: <%i>. Потрачено: <%i ms>."TOTALGZGetTickCount() - time);
        return 
    1;


    PHP код:
    stock GzCheck()
    {
        new 
    string[256],
            
    SCORE[128];
        for(new 
    0sizeof(GZInfo); i++)
        {
            if(
    ZoneOnBattle[i] == && IsCapture == true)
            {
                   foreach(new 
    xPlayer)
                {
                    if(!
    gPlayerLogged[x] == false && drawcapt[x] == true) continue;
                    if(
    pInfo[x][pMember] == GZInfo[i][gNapad] || pInfo[x][pMember] == GZInfo[i][gFrak])
                    {
                        for(new 
    s8s++) PlayerTextDrawShow(xCaptureTD[x][s]);
                        
    format(SCOREsizeof(SCORE), "%s"GetGangName(GZInfo[i][gNapad]));
                        
    PlayerTextDrawSetString(xCaptureTD[x][4], SCORE);
                        
    format(SCOREsizeof(SCORE), "%s"GetGangName(GZInfo[i][gFrak]));
                        
    PlayerTextDrawSetString(xCaptureTD[x][7], SCORE);
                        
    format(SCOREsizeof(SCORE), "%d"GangInfo[GZInfo[i][gNapad]][score]);
                        
    PlayerTextDrawSetString(xCaptureTD[x][5], SCORE);
                        
    format(SCOREsizeof(SCORE), "%d"GangInfo[GZInfo[i][gFrak]][score]);
                        
    PlayerTextDrawSetString(xCaptureTD[x][6], SCORE);
                        
    GangZoneFlashForPlayer(x,GangZone[i],GetGangZoneColor(GZInfo[i][gNapad]));
                        
    drawcapt[x] = true;
                    }
                }
            }
            if(
    ZoneOnBattle[i] == && GZSafeTime[i] == 0)
            {
                if(
    GangInfo[GZInfo[i][gNapad]][score] == GangInfo[GZInfo[i][gFrak]][score])
                {
                    new 
    zh GZInfo[i][gNapad];
                    new 
    zj i;
                    new 
    zg GZInfo[i][gFrak];
                    
    format(string128"Вы захватили новую территорию, которая находилась под контролем банды %s",GetGangName(zg));
                    
    SendFracMes(GZInfo[i][gNapad],COLOR_GREENstring);
                    
    format(string128"Вам не удалось отстоять свою территорию, теперь эта территория под контролем банды %s",GetGangName(zh));
                    
    SendFracMes(GZInfo[i][gFrak],COLOR_REDstring);
                    
    ZoneOnBattle[i] = 0;
                    
    IsCapture false;
                    
    CaptureEnd(GZInfo[i][gNapad], GZInfo[i][gFrak]);
                    
    GangInfo[GZInfo[i][gNapad]][captureid] =
                    
    GangInfo[GZInfo[i][gNapad]][capture] =
                    
    GangInfo[GZInfo[i][gNapad]][score] =
                    
    GangInfo[GZInfo[i][gFrak]][captureid] =
                    
    GangInfo[GZInfo[i][gFrak]][capture] =
                    
    GangInfo[GZInfo[i][gFrak]][score] =
                    
    GangInfo[GZInfo[i][gNapad]][gangnumber] =
                    
    GangInfo[GZInfo[i][gFrak]][gangnumber] = 0;
                    
    GZInfo[zj][gFrak] = zh;
                    
    GZInfo[zj][gNapad] = 0;
                    
    GangZoneStopFlashForAll(GangZone[zj]);
                    
    GangZoneHideForAll(GangZone[zj]);
                    
    GangZoneShowForAll(GangZone[zj],GetGangZoneColor(zj));
                    
    SaveGZ(zj);
                    
    UpdTerrsBand();
                }
                else if(
    GangInfo[GZInfo[i][gNapad]][score] > GangInfo[GZInfo[i][gFrak]][score])
                {
                    new 
    zx GZInfo[i][gNapad];
                    new 
    zl i;
                    
    format(string128"Вы захватили новую территорию, которая находилась под контролем банды %s"GetGangName(GZInfo[i][gFrak]));
                    
    SendFracMes(GZInfo[i][gNapad],COLOR_GREENstring);
                    
    format(string128"Вам не удалось отстоять свою территорию, теперь эта территория под контролем банды %s",GetGangName(zx));
                    
    SendFracMes(GZInfo[i][gFrak],COLOR_REDstring);
                    
    ZoneOnBattle[zl] = 0;
                    
    CaptureEnd(GZInfo[zl][gNapad], GZInfo[zl][gFrak]);
                    
    GangInfo[GZInfo[zl][gNapad]][captureid] =
                    
    GangInfo[GZInfo[zl][gNapad]][capture] =
                    
    GangInfo[GZInfo[zl][gNapad]][score] =
                    
    GangInfo[GZInfo[zl][gFrak]][captureid] =
                    
    GangInfo[GZInfo[zl][gFrak]][capture] =
                    
    GangInfo[GZInfo[zl][gFrak]][score] =
                    
    GangInfo[GZInfo[i][gNapad]][gangnumber] =
                    
    GangInfo[GZInfo[i][gFrak]][gangnumber] = 0;
                    
    GZInfo[zl][gFrak] = zx;
                    
    GZInfo[zl][gNapad] = 0;
                    
    IsCapture false;
                    
    GangZoneStopFlashForAll(GangZone[zl]);
                    
    GangZoneHideForAll(GangZone[zl]);
                    
    GangZoneShowForAll(GangZone[zl],GetGangZoneColor(zl));
                    
    SaveGZ(zl);
                    
    UpdTerrsBand();
                }
                else if(
    GangInfo[GZInfo[i][gNapad]][score] < GangInfo[GZInfo[i][gFrak]][score])
                {
                    new 
    zx GZInfo[i][gFrak];
                    new 
    zl i;
                    
    SendFracMes(GZInfo[i][gNapad],COLOR_RED"Вам не удалось захватить новую территорию");
                    
    SendFracMes(GZInfo[i][gFrak],COLOR_GREEN,"Вы отстояли свою территорию");
                    
    ZoneOnBattle[zl] = 0;
                    
    CaptureEnd(GZInfo[zl][gNapad], GZInfo[zl][gFrak]);
                    
    GangInfo[GZInfo[zl][gNapad]][captureid] =
                    
    GangInfo[GZInfo[zl][gNapad]][capture] =
                    
    GangInfo[GZInfo[zl][gNapad]][score] =
                    
    GangInfo[GZInfo[zl][gFrak]][captureid] =
                    
    GangInfo[GZInfo[zl][gFrak]][capture] =
                    
    GangInfo[GZInfo[zl][gFrak]][score] =
                    
    GangInfo[GZInfo[i][gNapad]][gangnumber] =
                    
    GangInfo[GZInfo[i][gFrak]][gangnumber] = 0;
                    
    IsCapture false;
                    
    GZInfo[zl][gFrak] = zx;
                    
    GZInfo[zl][gNapad] = 0;
                    
    GangZoneStopFlashForAll(GangZone[zl]);
                    
    GangZoneHideForAll(GangZone[zl]);
                    
    GangZoneShowForAll(GangZone[zl],GetGangZoneColor(zl));
                    
    SaveGZ(zl);
                    
    UpdTerrsBand();
                }
            }
        }
        for(new 
    0sizeof(GZInfo); i++)
        {
            for(new 
    020z++)
            {
                
    OnZONE[i][z] = 0;
            }
        }
        return 
    1;
    }

    stock CaptureUpd(bandkiller)
    {
        new 
    SCORE[64];
        foreach(new 
    iPlayer)
        {
            if(!
    gPlayerLogged[i] == false) continue;
            if(
    pInfo[i][pMember] > sizeof(GangInfo)) continue;
            if(
    GangInfo[pInfo[i][pMember]][capture] > 0)
            {
                if(
    GangInfo[bandkiller][gangnumber] == 1)
                {
                    
    format(SCOREsizeof(SCORE), "%d"GangInfo[bandkiller][score]);
                    
    PlayerTextDrawSetString(iCaptureTD[i][5], SCORE);
                }
                else
                {
                    
    format(SCOREsizeof(SCORE), "%d"GangInfo[bandkiller][score]);
                    
    PlayerTextDrawSetString(iCaptureTD[i][6], SCORE);
                }
            }
        }
    }

    stock CaptureStart(familyonefamilytwo)
    {
        new 
    SCORE[64];
        foreach(new 
    iPlayer)
        {
            if(!
    gPlayerLogged[i] == false) continue;
            if(
    pInfo[i][pMember] == familyone || pInfo[i][pMember] == familytwo)
            {
                for(new 
    s8s++) PlayerTextDrawShow(iCaptureTD[i][s]);
                
    format(SCOREsizeof(SCORE), "%s"GetGangName(familyone));
                
    PlayerTextDrawSetString(iCaptureTD[i][5], SCORE);
                
    format(SCOREsizeof(SCORE), "%s"GetGangName(familytwo));
                
    PlayerTextDrawSetString(iCaptureTD[i][6], SCORE);
                
    PlayerTextDrawSetString(iCaptureTD[i][1], "0");
                
    PlayerTextDrawSetString(iCaptureTD[i][2], "0");
                
    drawcapt[i] = true;
                
    IsCapture true;
            }
        }
    }

    stock CaptureEnd(familyonefamilytwo)
    {
        foreach(new 
    iPlayer)
        {
            if(
    pInfo[i][pMember] == familyone || pInfo[i][pMember] == familytwo)
            {
                for(new 
    s8s++) PlayerTextDrawHide(iCaptureTD[i][s]);
                
    drawcapt[i] = false;
            }
        }
    }

    stock GetGangZoneColor(fractionid)
        return
            (
    GZInfo[fractionid][gFrak] == TEAM_GROVE) ? (0x009900AA) :
            (
    GZInfo[fractionid][gFrak] == TEAM_BALLAS) ? (0xCC00FFAA) :
            (
    GZInfo[fractionid][gFrak] == TEAM_VAGOS) ? (0xeee515AA) :
            (
    GZInfo[fractionid][gFrak] == TEAM_RIFA) ? (0x6666FFAA) :
            (
    GZInfo[fractionid][gFrak] == TEAM_CORONA) ? (0x00CCFFAA) : (0xFFFFFF65);
            
    stock GetGangName(fractionid)
    {
        new 
    string[20];
        switch(
    fractionid)
        {
            case 
    22format(stringsizeof(string), "Grove Street");
            case 
    23format(stringsizeof(string), "The Ballas");
            case 
    24format(stringsizeof(string), "Los Santos Vagos");
            case 
    25format(stringsizeof(string), "The Rifa");
            case 
    26format(stringsizeof(string), "Varios Los Aztecas");
        }
        return 
    string;
    }

    stock IsInAllowed(playerid)
    {
        for(new 
    0sizeof(allowedfactions); i++)
        {
            if(
    pInfo[playerid][pMember] == allowedfactions[i]||pInfo[playerid][pLeader] == allowedfactions[i]) return 1;
        }
        return 
    0;
    }

    stock IsPlayerInBandOnline(fractionid)
    {
        new 
    np;
        foreach(new 
    Player)
        {
            if(!
    gPlayerLogged[i]) continue;
            if(
    pInfo[i][pMember] == fractionid || pInfo[i][pLeader] == fractionidnp++;
        }
        return 
    np;


  2. #2
    Аватар для Logan Jacskon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.03.2017
    Сообщений
    20
    Репутация:
    0 ±
    UP-UP

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Логируй, срабатывает ли код скрытия текстдравов и дальше уже смотри на каком моменте перестаёт всё работать
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #4
    Аватар для Logan Jacskon
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.03.2017
    Сообщений
    20
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Логируй, срабатывает ли код скрытия текстдравов и дальше уже смотри на каком моменте перестаёт всё работать
    Как это сделать ?

  5. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    print/printf/SendClientMessage
    Всё, что позволит тебе определить на какой строке перестал обрабатываться код
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. #6
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    for(new 0sizeof(GZInfo); i++) 

    foreach(new 
    xPlayer
    Можно было бы и не все зоны и не всех игроков перебирать, а только нужные или нужных,
    зон нибусь штук 100-150 а нужно две или одну)) так и игроков меньше половины наверное или половина из всего онлайна что будет)
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  7. #7
    Аватар для Inferno
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.01.2018
    Сообщений
    1
    Репутация:
    0 ±
    forward SecTimer();
    public SecTimer()
    {
    for(new i; i < 6; i++) if(gGunWorkTime[i]) gGunWorkTime[i]--;

    WHDataUpdate();

    BizWarCheck();

    GzCheck();
    new stringText[30];
    for(new i = 0; i < sizeof(GZInfo); i++)
    {
    if(GZSafeTime[i] > 0)
    {
    GZSafeTime[i]--;
    foreach(new x: Player)
    {
    if(pInfo[x][pMember] == GZInfo[i][gNapad] || pInfo[x][pMember] == GZInfo[i][gFrak])
    {
    Convert(GZSafeTime[i], stringText);
    PlayerTextDrawSetString(x, CaptureTD[x][3], stringText);
    }
    }
    }
    }
    return 1;
    }

    У тебя идет таймер, но после того, как значение становится 0, ничего не происходит. Т.к у тебя нет проверки на окончание таймера и далее на перекраску территории.
    Ты должен после этой строки
    {
    Convert(GZSafeTime[i], stringText);
    PlayerTextDrawSetString(x, CaptureTD[x][3], stringText);
    }
    поставить проверку на время = 0, далее используешь функцию перекраски территории и все.
    На счет того, что могут каптить, у тебя проблема со временем, 120 секунд/60 = 2секунды, а не часы, но в этом не уверен(50/50)
    На счет еще одного капта, у тебя capture = 1, после ввода команды. Тебе нужно создать таймер, который будет убавляться и когда значение таймера = 0, capture = 0 и они снова смогут каптиться. Значит, ты должен при вводе команды /capture поставить проверку на капт, if(...[capture] == 1) return SCM(playerid,color,"нельзя");

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •