[Ajuda] Bug GangZone
#1

To qse desistindo
quando eu penso que nгo tem mais bugs vai la e me aparece esse das GZ, tava dominando normal ai do nda parou de dominar nda acontece qdo entro na gangzone frrehalls (play Hard 1.7)

pawn Код:
public GangZonesCheck()
{
    new string[128];
    for(new i = 0; HighestID+1 > i; i++)
    {
        if(IsPlayerConnected(i) && Player[i][Spawned] == true)
        {
            new pZone = GetPlayerZone(i);
            if(pZone != 999)
            {
                if(gZonesData[pZone][ZoneInWar] == true && (GetPlayerOrg(i) == gZonesData[pZone][ZoneOwner] ||GetPlayerOrg(i) == gZonesData[pZone][ZoneAttacker]))
                {
                    new score[256];
                    format(score,256,"Placar da Guerra ~n~~r~%s ~w~x ~b~%s ~n~~y~Pontos: ~r~%d  ~w~-  ~b~%d~n~~y~Kills: ~r~%d  ~w~-  ~b~%d~n~~n~~p~Tempo Restante: ~w~%s",
                    OrgsNamesSmall[gZonesData[pZone][ZoneAttacker]],OrgsNamesSmall[gZonesData[pZone][ZoneOwner]],
                    gZonesData[pZone][ZoneWarPoints][gZonesData[pZone][ZoneAttacker]], gZonesData[pZone][ZoneWarPoints][gZonesData[pZone][ZoneOwner]],
                    gZonesData[pZone][ZoneWarKillCount][gZonesData[pZone][ZoneAttacker]], gZonesData[pZone][ZoneWarKillCount][gZonesData[pZone][ZoneOwner]], ConvertSecondsToMins(gZonesData[pZone][ZoneWarTimeLeft]));
                    TextDrawSetString(WarPointsTD[i], score);

                    if(Player[i][SeePoints] == false)
                    {
                        TextDrawShowForPlayer(i, WarPointsTD[i]);
                        Player[i][SeePoints] = true;
                    }
                }
                else
                {
                    if(Player[i][SeePoints] == true)
                    {
                        TextDrawHideForPlayer(i, WarPointsTD[i]);
                        Player[i][SeePoints] = false;
                    }
                }

                format(string,128,"- %s -~n~~p~Territ¦rio: ~w~~h~%s", TurfsCoords[pZone][zName], GetZoneOwnerName(pZone));

                TextDrawSetString(ZoneName[i], string);
                if(Player[i][SeeName] == false && Player[i][Spawned] == true)
                {
                    TextDrawShowForPlayer(i, ZoneName[i]);
                    Player[i][SeeName] = true;
                }

                if(IsAGang(i))
                {
                    SetPlayerChatBubble( i, "GangZone", COLOR_RED, 50.0, 20000);
                    InGZ[i] = 60;
                }

                if(gZonesData[pZone][ZonePlayerReqMet][GetPlayerOrg(i)] > 0 && gZonesData[pZone][ZoneOwner] != GetPlayerOrg(i))
                {
                    new percent = 100;
                    percent = floatround((100*gZonesData[pZone][ZonePlayerReqMet][GetPlayerOrg(i)])/ZONE_CHECKS);

                    TextDrawShowForPlayer(i, ChecksBar[percent]);
                    TextDrawShowForPlayer(i, ChecksBar[100]);
                    TextDrawShowForPlayer(i, ChecksBar[101]);
                    TextDrawShowForPlayer(i, ChecksBar[102]);
                    Player[i][SeeChecksBar] = true;
                }
                else
                {
                    if(Player[i][SeeChecksBar] == true)
                    {
                        for(new x = 0; x < sizeof(ChecksBar); x ++)
                            TextDrawHideForPlayer(i, ChecksBar[x]);

                        Player[i][SeeChecksBar] = false;
                    }
                }
            }
            else
            {
                if(Player[i][SeeChecksBar] == true)
                {
                    for(new x = 0; x < sizeof(ChecksBar); x ++)
                        TextDrawHideForPlayer(i, ChecksBar[x]);

                    Player[i][SeeChecksBar] = false;
                }
                if(Player[i][SeePoints] == true)
                {
                    TextDrawHideForPlayer(i, WarPointsTD[i]);
                    Player[i][SeePoints] = false;
                }
                if(Player[i][SeeName] == true)
                {
                    Player[i][SeeName] = false;
                    TextDrawHideForPlayer(i, ZoneName[i]);
                }
            }
        }
    }
    return 1;
}
me ajudem ai manolos, й a ultima vez, se eu encontrar + bugs depois desse eu desisto. Um colega disse que й um loop q ta invertido mais n achei, me ajudem ae!
Reply
#2

Tenta isso aew meu carinha
pawn Код:
forward GangZonesCheck();
public GangZonesCheck()
{
    new string[128];
    for(new i = 0; HighestID+1 > i; i++)
    {
        if(IsPlayerConnected(i) && Player[i][Spawned] == true)
        {
            new pZone = GetPlayerZone(i);
            if(pZone != 999)
            {
                if(gZonesData[pZone][ZoneInWar] == true && (GetPlayerOrg(i) == gZonesData[pZone][ZoneOwner] ||GetPlayerOrg(i) == gZonesData[pZone][ZoneAttacker]))
                {
           new score[256];
                    format(score,256,"~b~Disputa do Territorio ~n~~g~%s ~w~x ~r~%s ~n~~w~Pontos: ~g~%d  ~w~-  ~r~%d~n~~w~Mortes: ~g~%d  ~w~-  ~r~%d~n~~n~~w~Tempo Restante: ~w~%s",
                    OrgsNamesSmall[gZonesData[pZone][ZoneAttacker]],OrgsNamesSmall[gZonesData[pZone][ZoneOwner]],
                    gZonesData[pZone][ZoneWarPoints][gZonesData[pZone][ZoneAttacker]], gZonesData[pZone][ZoneWarPoints][gZonesData[pZone][ZoneOwner]],
                    gZonesData[pZone][ZoneWarKillCount][gZonesData[pZone][ZoneAttacker]], gZonesData[pZone][ZoneWarKillCount][gZonesData[pZone][ZoneOwner]], ConvertSecondsToMins(gZonesData[pZone][ZoneWarTimeLeft]));
                    TextDrawSetString(WarPointsTD[i], score);

                    if(Player[i][SeePoints] == false)
                    {
                        TextDrawShowForPlayer(i, WarPointsTD[i]);
                        Player[i][SeePoints] = true;
                    }
                }
                else
                {
                    if(Player[i][SeePoints] == true)
                    {
                        TextDrawHideForPlayer(i, WarPointsTD[i]);
                        Player[i][SeePoints] = false;
                    }
                }

                format(string,128,"- %s -~n~~r~Territ¦rio: ~w~~h~%s", TurfsCoords[pZone][zName], GetZoneOwnerName(pZone));

                TextDrawSetString(ZoneName[i], string);
                if(Player[i][SeeName] == false && Player[i][Spawned] == true)
                {
                    TextDrawShowForPlayer(i, ZoneName[i]);
                    Player[i][SeeName] = true;
                }

                if(IsAGang(i))
                {
                    SetPlayerChatBubble( i, "{FF0000}[GangZone]", COLOR_RED, 50.0, 20000);
                    InGZ[i] = 60;
                }

                if(gZonesData[pZone][ZonePlayerReqMet][GetPlayerOrg(i)] > 0 && gZonesData[pZone][ZoneOwner] != GetPlayerOrg(i))
                {
                    new percent = 100;
                    percent = floatround((100*gZonesData[pZone][ZonePlayerReqMet][GetPlayerOrg(i)])/ZONE_CHECKS);

                    TextDrawShowForPlayer(i, ChecksBar[percent]);
                    TextDrawShowForPlayer(i, ChecksBar[100]);
                    TextDrawShowForPlayer(i, ChecksBar[101]);
                    TextDrawShowForPlayer(i, ChecksBar[102]);
                    Player[i][SeeChecksBar] = true;
                }
                else
                {
                    if(Player[i][SeeChecksBar] == true)
                    {
                        for(new x = 0; x < sizeof(ChecksBar); x ++)
                            TextDrawHideForPlayer(i, ChecksBar[x]);

                        Player[i][SeeChecksBar] = false;
                    }
                }
            }
            else
            {
                if(Player[i][SeeChecksBar] == true)
                {
                    for(new x = 0; x < sizeof(ChecksBar); x ++)
                        TextDrawHideForPlayer(i, ChecksBar[x]);

                    Player[i][SeeChecksBar] = false;
                }
                if(Player[i][SeePoints] == true)
                {
                    TextDrawHideForPlayer(i, WarPointsTD[i]);
                    Player[i][SeePoints] = false;
                }
                if(Player[i][SeeName] == true)
                {
                    Player[i][SeeName] = false;
                    TextDrawHideForPlayer(i, ZoneName[i]);
                }
            }
        }
    }
    return 1;
}
Reply
#3

infelizmente nda

Alguem ajuuuda por favorr. Fenix vc n conhece um outro freehalls desbugado pra download?
Reply
#4

Tem sу o meu,,kkkkkkkkkkkk..esse bug eu arrumei,,n lembro como,,rsrs

vai tentando aew: (substituindo pelos atuais do GM)
pawn Код:
stock IsPlayerInZone(playerid, zoneid) {
    if(zoneid == -1) return false;
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(x >= zones[zoneid][zone_minx] && x < zones[zoneid][zone_maxx] && y >= zones[zoneid][zone_miny] && y < zones[zoneid][zone_maxy] && z >= zones[zoneid][zone_minz] && z < zones[zoneid][zone_maxz] && z < 900.0) return true;
    return false;
}
pawn Код:
stock ReturnPlayerZone(playerid)
{
    new playerzone[24] = "Desconhecido";
    for(new j; j < sizeof(zones); j++)
    {
        if(IsPlayerInZone(playerid,j))
        {
            memcpy(playerzone, zones[j][zone_name], 0, 108);
            break;
        }
    }
    return playerzone;
}
pawn Код:
//Attackers Won
            else if(winner == attack_gang)
            {
                if(GetPlayerOrg(k) == defend_gang)
                    RemoveWarPoints(k, LOSE_WAR);

                if(GetPlayerOrg(k) == attack_gang && IsPlayerInZone(k, zoneid))
                    AddWarPoints(k, TAKE_OVER);


                if(GetPlayerOrg(k) == defend_gang)
                {
                    SendClientMessage(k, COLOR_GREY, msg_loser);
                    TimeTextForPlayer(k,LoserTextDraw,4500);
                }
                if(GetPlayerOrg(k) == attack_gang)
                {
                    TimeTextForPlayer(k,WinnerTextDraw,4500);
                    SendClientMessage(k, COLOR_GOLD, msg_winner);
                }
            }
        }
    }
pawn Код:
new kZone = GetPlayerZone(killerid);
        if(GetPlayerOrg(killerid) != 0 && GetPlayerVirtualWorld(playerid) == 0 && IsPlayerConnected(playerid) && IsPlayerConnected(killerid) && pZone != 999 &&
        kZone != 999)
        {
            if(gZonesData[pZone][ZoneInWar] == true || gZonesData[kZone][ZoneInWar] == true)
            {
                new zone;
                if(gZonesData[pZone][ZoneInWar] == true)
                    zone = pZone;
                else if(gZonesData[kZone][ZoneInWar] == true)
                    zone = kZone;
                if(GetPlayerOrg(killerid) == GetPlayerOrg(playerid) && (gZonesData[kZone][ZoneOwner] == GetPlayerOrg(playerid) || gZonesData[kZone][ZoneAttacker] == GetPlayerOrg(playerid)))
                {
                    new othergang;
                    if(gZonesData[kZone][ZoneOwner] == GetPlayerOrg(killerid))
                        othergang = gZonesData[kZone][ZoneAttacker];
                    else
                        othergang = gZonesData[kZone][ZoneOwner];

                    gZonesData[zone][ZoneWarPoints][othergang]+= KILLING_POINTS;
                    gZonesData[zone][ZoneWarKillCount][othergang] ++;
                }
                else if( (GetPlayerOrg(killerid) == gZonesData[zone][ZoneAttacker] && GetPlayerOrg(playerid) == gZonesData[zone][ZoneOwner]) ||
                 (GetPlayerOrg(killerid) == gZonesData[zone][ZoneOwner] && GetPlayerOrg(playerid) == gZonesData[zone][ZoneAttacker]))
                {
                    gZonesData[zone][ZoneWarPoints][GetPlayerOrg(killerid)]+= KILLING_POINTS;
                    gZonesData[zone][ZoneWarKillCount][GetPlayerOrg(killerid)] ++;
                    Player[killerid][TurfKills] ++;
                    Player[playerid][TurfDeaths] ++;

                    AddWarPoints(killerid, KILL_IN_WAR);
                    if(GetWarPoints(playerid) >= DIE_IN_WAR)
                    {
                        RemoveWarPoints(playerid, DIE_IN_WAR);
                    }
                    if(gZonesData[zone][ZoneWarPoints][GetPlayerOrg(killerid)] >= gZonesData[zone][ZoneWarPoints][GetPlayerOrg(playerid)])
                    {
                        gZonesData[zone][ZoneWarTimeLeft] -= TIME_BOBUS_WINNING;
                    }
                    else if(gZonesData[zone][ZoneWarPoints][GetPlayerOrg(killerid)] < gZonesData[zone][ZoneWarPoints][GetPlayerOrg(playerid)])
                    {
                        gZonesData[zone][ZoneWarTimeLeft] += TIME_BOBUS_LOSING;
                    }
                }
            }
            if(!gZonesData[pZone][ZoneInWar] && gZonesData[pZone][ZonePlayerReqMet] > 0 && GetPlayerOrg(killerid) == gZonesData[pZone][ZoneOwner])
            {
                gZonesData[pZone][ZonePlayerReqMet]--;
            }
            if(kZone == pZone && gZonesData[kZone][ZoneOwner] == GetPlayerOrg(killerid) && !gZonesData[kZone][ZoneInWar] && !gZonesData[kZone][ZoneIsSpawn])
            {
                GivePlayerGP(killerid, MONEY_BONUS);
            }
        }
    }
}

ALGUM TEM Q FUNCIONAR..KKKSE N DER NAO SEI CARA
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)