Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[Урок]Исправление бага с /bizwar

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

stason1222

Умник
Привет всем,я видел много тем про /bizwar но не одна мне не помогла,и я решил сделать своё решение как я избавился от бага.
И так к делу:

Меняем команду /bizwar на мою:
PHP:
else if(strcmp(cmd, "/bizwar", true) == 0) 
    { 
    new factionm=0; 
    if(PlayerInfo[playerid][pLeader] !=0){ factionm = PlayerInfo[playerid][pLeader];} 
    else if(PlayerInfo[playerid][pMember] != 0 && PlayerInfo[playerid][pLeader] == 0) {factionm = PlayerInfo[playerid][pMember];} 
    else {factionm = 0;} 
    if(ISAMAFIA(playerid)) 
    { 
    if(startwar == 1) return SendClientMessage(playerid, COLOR_WHITE, "Война уже начата!"); 
    //if(FrakCDm[factionm] > 0) return SendClientMessage(playerid, COLOR_GRAD1, "Следующий захват возможен через пол часа..."); 
    for(new h = 0; h < sizeof(BizzInfo); h++) 
    { 
    if(PlayerInfo[playerid][pMember] == 5 && PlayerInfo[playerid][pRank] >= 7 || PlayerInfo[playerid][pMember] == 6 && PlayerInfo[playerid][pRank] >= 7 || PlayerInfo[playerid][pMember] == 14 && PlayerInfo[playerid][pRank] >= 7) 
    { 
    if(PlayerToPoint(3, playerid,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]) && BizzInfo[h][bMafia] != PlayerInfo[playerid][pMember]) 
    { 
    if(war > 0) 
    { 
    format(string,sizeof(string)," Войну можно начать через %d секунд(ы)",war); 
    SendClientMessage(playerid,-1,string); 
    return 1; 
    } 
    if(BizzInfo[h][bMafia] == 0) 
    { 
    BizzInfo[h][bMafia] = PlayerInfo[playerid][pMember]; 
    SendClientMessage(playerid, COLOR_WHITE, " Бизнес взят под контроль "); 
    return 1; 
     } 
    if(BizzInfo[h][bMafia] > 0) 
    { 
    startwar = 1; 
    format(string,sizeof(string),"%s назначил стрелу за %s мафии %s",Name(playerid),BizzInfo[h][bMessage],GetMafiaName(BizzInfo[h][bMafia])); 
    SendFamilyMessage(PlayerInfo[playerid][pMember],COLOR_RED,string); 
    format(string,sizeof(string)," Бизнес %s захватывает мафия %s ",BizzInfo[h][bMessage],GetMafiaName(PlayerInfo[playerid][pMember])); 
    SendFamilyMessage(BizzInfo[h][bMafia],COLOR_RED,string); 
    SendFamilyMessage(BizzInfo[h][bMafia],COLOR_WHITE,"Место встречи - Заброшенный аэропорт"); 
    SendFamilyMessage(BizzInfo[h][bMafia],COLOR_WHITE,"У Вас есть 10 минуты, чтобы отбить бизнес..."); 
    BizzInfo[h][bZahvat] = 1; 
    war = 1200; 
    MZSafeTime[0] = 600; 
    FrakCDm[factionm]  = 1800; 
    MZInfo[0][mNapad] = PlayerInfo[playerid][pMember]; 
    ZoneTimerm[0] = 130; 
    ZoneOnBattlem[0] = 1; 
    zons = GangZoneCreate(328.755706, 2412.644531, 448.755706, 2564.644531); 
    GangZoneShowForAll(zons, COLOR_NEWS); 
    GangZoneFlashForAll(zons,COLOR_REDD); 
    } 
    } 
     } 
     } 
     } 
    return 1;
      }
И public MzCheck() заменяем на мой:
PHP:
public MzCheck()
{
    for(new i =0;i<sizeof(MZInfo);i++)
    {
        if(ZoneOnBattlem[i] == 1 && MZSafeTime[i] == 0)
        {
            ZoneTimerm[i] -=10;
            if(ZoneTimerm[i] <=0)
            {
                for(new h = 0; h < sizeof(BizzInfo); h++)
                {
                    if(BizzInfo[h][bZahvat] == 1)
                    {
                        BizzInfo[h][bMafia] = BizzInfo[h][bMafia];
                        SendFamilyMessage(BizzInfo[h][bMafia],COLOR_GREEN,"{1aff00}Вам удалось отстоять свой бизнес");
                        SendFamilyMessage(MZInfo[i][mNapad],COLOR_RED,"{1aff00}Вам не удалось взять под контроль новый бизнес");
                        BizzInfo[h][bZahvat] = 0;
                        startwar = 0;
                        ZoneOnBattlem[i] =0;
                        GangZoneStopFlashForAll(zons);
                        OnPropUpdate();
                    }
                }
            }
            for(new x =0;x<MAX_PLAYERS;x++)
            {
                if(PlayerToKvadrat(x,328.755706, 2412.644531, 448.755706, 2564.644531))
                {
                    new factionm;
                    if(PlayerInfo[x][pLeader] !=0) factionm = PlayerInfo[x][pLeader];
                    else factionm = PlayerInfo[x][pMember];
                    OnmZONE[i][factionm] ++;
                }
            }
            new asd;
            for(new x =0;x<20;x++)
            {
                if(OnmZONE[i][x] > 0 && IsInAllowedM(x)) asd ++;
            }
            if(asd == 1)
            {
                for(new x =0;x<20;x++)
                {
                    if(OnmZONE[i][x] > 0)
                    {
                        new zx,zl;
                        zx = x;
                        zl = i;
                        if(MZInfo[i][mFrakVlad] == x)
                        {
                             for(new h = 0; h < sizeof(BizzInfo); h++)
                            {
                                if(BizzInfo[h][bZahvat] == 1)
                                {
                                    BizzInfo[h][bMafia] = BizzInfo[h][bMafia];
                                    SendFamilyMessage(BizzInfo[h][bMafia],COLOR_RED,"{1aff00}Вы отстояли свой бизнес");
                                    SendFamilyMessage(MZInfo[i][mNapad],COLOR_RED,"{1aff00}Вам не удалось завоевать ещё один бизнес");
                                    BizzInfo[h][bZahvat] = 0;
                                    startwar = 0;
                                }
                            }
                        }
                        else
                        {
                            for(new h = 0; h < sizeof(BizzInfo); h++)
                            {
                                if(BizzInfo[h][bZahvat] == 1)
                                {
                                      SendFamilyMessage(BizzInfo[h][bMafia],COLOR_RED,"{1aff00}Вы потеряли контроль над одним из своих бизнесов");
                                    SendFamilyMessage(MZInfo[i][mNapad],COLOR_LIGHTGREEN,"{1aff00}Вы завоевали новый бизнес");
                                    BizzInfo[h][bMafia] = MZInfo[i][mNapad];
                                    BizzInfo[h][bZahvat] = 0;
                                    startwar = 0;
                                }
                            }
                        }
                        ZoneOnBattlem[zl] =0;
                        MZInfo[zl][mNapad] = 0;
                        MZInfo[zl][mFrakVlad] = zx;
                        GangZoneStopFlashForAll(zons);
                        GangZoneHideForAll(zons);
                        GangZoneShowForAll(zons,COLOR_NEWS);
                        OnPropUpdate();
                        break;
                    }
                }
            }
        }
    }
    for(new i =0;i<3;i++)
    {
        for(new z = 0;z<20;z++)
        {
            OnmZONE[i][z] =0;
        }
    }
}
Всё,бага как не бывало,кому понадобилось жду +).
Автор:stason1222
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу