Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 2 из 2
  1. #1
    Аватар для Dima_Turkow
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2013
    Адрес
    Екатеринбург
    Сообщений
    124
    Репутация:
    8 ±

    По поводу /capture

    Доброго времени суток уважаемые пользователи PRO-PAWN.RU

    У меня тут в моде возникла проблема по поводу системы "каптинга", объясню суть. При вводе команды /capture на той территории которую хочешь завоевать - все хорошо, в небе создается надпись типа, до конца войны осталось столько то времени, но при завершении этого времени, таймер зависает на одной секунде и дальше ничего не происходит, территория так дальше и моргает, а должно территорию отдать той банде, которая осталось последней в квадрате. Заранее спасибо, ниже приведу саму команду и некоторые паблики.


     Команда capture
    PHP код:
    if(!strcmp(cmd,"/capture",true))
        {
            if(!
    IsAGang(playerid)) return SendMe(playerid,CGRADD,"Вы не можете захватить территорию");
            if(
    PINFO[playerid][pRank] < 7) return SendMe(playerid,CGRADDBadRank);
            if(
    IsPlayerInAnyVehicle(playerid)) return  SendMe(playeridCGRADD"Нельзя использовать в машине.");
            if(
    CaptureZone[PINFO[playerid][pMember]] == true) return SendMe(playerid,CGRADD,"В данный момент вы уже воюете.");
            if(
    SWarcapture !=false) return SendMe(playerid,CGRADD,"В данный момент уже идёт война.");
            
    SetPVarInt(playerid,"AntiFloodKommand",gettime() + 2);
            for(new 
    =1;i<sizeof(GZInfo);i++)
            {
                if(
    PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]) && GZInfo[i][gFrakVlad] != PINFO[playerid][pMember] && ZoneOnBattle[i]==0)
                {
                    if(
    CaptInChas[PINFO[playerid][pMember]] == true) return SendMe(playerid,CGRADD,"Нельзя начать войну в этом часу");
                    if(
    CaptInChas[GZInfo[i][gFrakVlad]] == true) return SendMe(playerid,CGRADD,"Данная банда уже воевала в этом часу.");
                    if(
    CaptureZone[GZInfo[i][gFrakVlad]] == true) return SendMe(playerid,CGRADD,"В данный момент банда уже воюет.");
                    
    format(string,sizeof(string),"%s спровоцировал войну за территорию против банды %s",GN(playerid),GetGangName(GZInfo[i][gFrakVlad]));
                    
    SendFamilyMessage(PINFO[playerid][pMember],GetGangZoneColor(i),string);
                    
    VladBand 0;
                    
    SprovBand 0;
                    foreach(new 
    s:Player)
                    {
                        if(
    PINFO[s][pMember] == GZInfo[i][gFrakVlad]) VladBand++;
                        if(
    PINFO[s][pMember] == PINFO[playerid][pMember]) SprovBand++;
                    }
                    
    format(string,sizeof(string),"Внимание! На вашу территорию напала банда %s из %i человек(a)",GetGangName(PINFO[playerid][pMember]),VladBand);
                    
    SendFamilyMessage(GZInfo[i][gFrakVlad],GetGangZoneColor(PINFO[playerid][pMember]),string);
                    
    SendFamilyMessage(GZInfo[i][gFrakVlad],-1,"Территория будет мигать 10 минут. Победит банда, которая останется последней");
                    
    SendFamilyMessage(GZInfo[i][gFrakVlad],-1,"Территория будет мигать до тех пор, пока на ней не останется 1 банда");
                    
    GangZoneFlashForAll(GZInfo[i][gID],CREDD);
                    
    flash[PINFO[playerid][pMember]] = GZInfo[i][gID];
                    new 
    Float:P[3];
                    
    GetPlayerPos(playerid,P[0],P[1],P[2]);
                    
    format(string,sizeof(string),"{FF2424}Война за территорию:\n{FFFFFF}%s (%i) против %s (%i)\n{18F21C}До конца войны:\n{FFFFFF}%s",GetGangName(GZInfo[i][gFrakVlad]),SprovBand,GetGangName(PINFO[playerid][pMember]),VladBand,Convert(GZSafeTime[i]));
                    
    DiffText[85] = Create3DTextLabel(string,CYELLOWP[0],P[1], P[2]+15,200.0,0,0);
                    
    GZSafeTime[i] = 600;
                    
    GZInfo[i][gNapad] = PINFO[playerid][pMember];
                    
    ZoneTimer 600;
                    
    ZoneOnBattle[i] = 1;
                    
    CaptureZone[PINFO[playerid][pMember]] = true;
                    
    CaptInChas[PINFO[playerid][pMember]] = true;
                    
    CaptInChas[GZInfo[i][gFrakVlad]] = true;
                    
    CaptureZone[GZInfo[i][gFrakVlad]] = true;
                    
    KillTimer(CaptureTimer);
                    
    CaptureTimer SetTimer("Capture_Timer",1000,true);
                    
    SWarcapture true;
                    
    gzchecks SetTimer("GzCheck",5000,1);
                    break;
                }
            }
        } 


     public Capture_Timer
    PHP код:
    forward Capture_Timer();
    public 
    Capture_Timer()
    {
        new 
    string[300];
        new 
    text[50],text2[50];
        for(new 
    =0;b<100;b++)
        {
            if(
    GZSafeTime[b]>0)
            {
                
    GangZoneFlashForAll(flash[GZInfo[b][gNapad]],CREDD);
                
    GZSafeTime[b] --;
                switch(
    GZInfo[b][gNapad])
                {
                case 
    12text "Ballas";
                case 
    13text "Vagos";
                case 
    15text "Grove";
                case 
    17text "Aztecas";
                case 
    18text "Rifa";
                }
                switch(
    GZInfo[b][gFrakVlad])
                {
                case 
    12text2 "Ballas";
                case 
    13text2 "Vagos";
                case 
    15text2 "Grove";
                case 
    17text2 "Aztecas";
                case 
    18text2 "Rifa";
                }
                if(
    GZSafeTime[b] >=1)
                {
                    
    format(string,sizeof(string),"{FF2424}Война за территорию:\n{FFFFFF}%s (%i) против %s (%i)\n{18F21C}До конца войны:\n{FFFFFF}%s",text,SprovBand,text2,VladBand,Convert(GZSafeTime[b]));
                    
    Update3DTextLabelText(DiffText[85], 0x008080FFstring);
                }
                if(
    GZSafeTime[b] == 300)
                {
                    
    SendFamilyMessage(GZInfo[b][gFrakVlad],TEAM_GROVE_COLOR,"Внимание! Территория будет мигать 5 минут. Победит банда, которая останется последней");
                    
    SendFamilyMessage(GZInfo[b][gFrakVlad],-1,"Территория будет мигать до тех пор, пока на ней не останется одна банда");
                    
    SendFamilyMessage(GZInfo[b][gNapad],TEAM_GROVE_COLOR,"Внимание! Территория будет мигать 5 минут. Победит банда, которая останется последней");
                    
    SendFamilyMessage(GZInfo[b][gNapad],-1,"Территория будет мигать до тех пор, пока на ней не останется одна банда");
                }
                if(
    GZSafeTime[b] == 120)
                {
                    
    SendFamilyMessage(GZInfo[b][gFrakVlad],TEAM_GROVE_COLOR,"Внимание! Территория будет мигать 2 минуты. Победит банда, которая останется последней");
                    
    SendFamilyMessage(GZInfo[b][gFrakVlad],-1,"Территория будет мигать до тех пор, пока на ней не останется одна банда");
                    
    SendFamilyMessage(GZInfo[b][gNapad],TEAM_GROVE_COLOR,"Внимание! Территория будет мигать 2 минуты. Победит банда, которая останется последней");
                    
    SendFamilyMessage(GZInfo[b][gNapad],-1,"Территория будет мигать до тех пор, пока на ней не останется одна банда");
                }
            }
        }
        return 
    true;



     public GzCheck
    PHP код:
    forward GzCheck();
    public 
    GzCheck()
    {
        new 
    string[144];
        for(new 
    =1;i<sizeof(GZInfo);i++)
        {
            if(
    ZoneOnBattle[i] == && GZSafeTime[i] == 0)
            {
                if((
    ZoneTimer -= 5) <=0)
                {
                    
    SendGangMessage(0xB30000AA,"Внимание! Время на захват территории вышло.");
                    
    Delete3DTextLabel(DiffText[85]);
                    
    ZoneOnBattle[i] =0;
                    
    SWarcapture false;
                    
    GangZoneStopFlashForAll(GZInfo[i][gID]);
                    
    SaveGZ();
                    
    CaptureZone[15] = false;
                    
    CaptureZone[12] = false;
                    
    CaptureZone[13] = false;
                    
    CaptureZone[17] = false;
                    
    CaptureZone[18] = false;
                }
                for(new 
    0GetMaxPlayers(); x++)
                    if(
    PlayerToKvadrat(x,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3])&&IsAGang(x) && GetPlayerVirtualWorld(x) == 0)
                        if(
    OnZONE[i][PINFO[x][pLeader]])
                            
    PINFO[x][pLeader]++;
                        else
                            
    PINFO[x][pMember]++;

                new 
    asd;
                for(new 
    =0;x<20;x++)
                {
                    if(
    OnZONE[i][x] > && IsInAllowedF(x)) asd ++;
                }
                if(
    asd == 1)
                {
                    for(new 
    =0;x<20;x++)
                    {
                        if(
    OnZONE[i][x] > 0)
                        {
                            new 
    zx,zl;
                            
    zx x;
                            
    zl i;
                            if(
    GZInfo[i][gFrakVlad] == x)
                            {
                                
    format(string,sizeof(string),"Внимание! Банда %s отстояла свою территорию",GetGangName(zx));
                                
    Delete3DTextLabel(DiffText[85]);
                                
    SendGangMessage(GetGangZoneColor(x),string);
                                
    GangZoneStopFlashForAll(GZInfo[zl][gID]);
                                
    CaptureZone[15] = false;
                                
    CaptureZone[12] = false;
                                
    CaptureZone[13] = false;
                                
    CaptureZone[17] = false;
                                
    CaptureZone[18] = false;
                                
    ZoneOnBattle[zl] =0;
                                
    SWarcapture false;
                                
    KillTimer(CaptureTimer);
                                
    KillTimer(gzchecks);
                            }
                            else
                            {
                                
    ZoneOnBattle[zl] =0;
                                
    Delete3DTextLabel(DiffText[85]);
                                
    GZInfo[zl][gNapad] = 0;
                                
    GZInfo[zl][gFrakVlad] = zx;
                                
    GangZoneStopFlashForAll(GZInfo[zl][gID]);
                                
    GangZoneHideForAll(GZInfo[zl][gID]);
                                
    GangZoneShowForAll(GZInfo[zl][gID],GetGangZoneColor(zl));
                                
    format(string,sizeof(string),"Внимание! Банда %s выигрывает войну за территорию",GetGangName(zx));
                                
    SendGangMessage(GetGangZoneColor(zx),string);
                            }
                            
    SaveGZ();
                            
    SWarcapture false;
                            
    KillTimer(CaptureTimer);
                            
    KillTimer(gzchecks);
                            
    CaptureZone[15] = false;
                            
    CaptureZone[12] = false;
                            
    CaptureZone[13] = false;
                            
    CaptureZone[17] = false;
                            
    CaptureZone[18] = false;
                            break;
                        }
                    }
                }
            }
        }
        for(new 
    =1;i<sizeof(GZInfo);i++)
        {
            for(new 
    0;z<20;z++)
            {
                
    OnZONE[i][z] =0;
            }
        }


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

    Статус
    Оффлайн
    Регистрация
    22.12.2013
    Адрес
    Екатеринбург
    Сообщений
    124
    Репутация:
    8 ±
    УП*чхи

 

 

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

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

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

Ваши права

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