[Ajuda] Bug Sinistro
#1

Oi pessoal estou aqui pedindo ajuda de vocкs de novo.. a umas semanas atras vim aqui no forum com um probleminha besta (pura falta de atenзгo minha) q foi resolvido facilmente

mas agora erstou com um bug muito mais sйrio e desta vez nгo й falta de atenзгo, eu realmente preciso de ajuda porйm nгo й bem nos cуdigos em si...

O meu problema й o seguinte.. no meu servidor estб acontecendo um bug que eventualmente quando alguйm morre em GZ/Contrato/Procurado ele nao conta.. nao conta pt na gz, se for contrtato nгo conta como cumprido e se for procurado nгo vai preso... o problema eh q este bug acontece eventualmente(tem hora q acontece e tem hora que nгo) por tanto estб sendo muito dificil identificar o problema, alйm do mais que eu nгo faзo a mнnima idйia do que possa estar causando este bug, logo, por ser um gm muito grande, nгo sei nem por onde comeзar.. pedi ajuda a uns amigos e todos inicialmente tiveram a mesma suspeita que eu: Deve ser no OnPlayerDeath, porйm eu vasculhei toda essa public varias vezes e nгo encontrei nada...

alguйm ai ja teve esse bug no sv ou algo parecido? alguma dica q vcs possam me dar?

pq sera q esse bug soh acontece de vez em quando e nгo toda hora?


esta й a public OnPlayerDeath do meu GM:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(!IsPlayerConnected(playerid))
        return 1;
    if(TaNaLan[playerid])
        return QuandoMorrerNikoLanHouse(playerid, killerid, reason);
    if(IsPlayerConnected(killerid))
    {
        if(NikoDeuDano[killerid][playerid] < 60)
            return 1;
        if(AntiMultiKill[killerid] > 60)
        {
            AntiMultiKill[killerid] += 60;
            return 1;
        }
        AntiMultiKill[killerid] += 10;
    }
    if(BugSamp[playerid])
        return 1;
    BugSamp[playerid] = true;
    SetTimerEx("NikoResetVar",10000,false,"ii",playerid,4);
    if(Player[playerid][FirstSpawn] == true)
        return 1;
   
    if(PlayerBarraAtiva[playerid])
    {
        EscondeNikoOponenteVidaBarra(playerid);
        TaEmCombateCom[playerid] = INVALID_PLAYER_ID;
        TaEmCombate[playerid] = 0;
        SaiuDeCombate(playerid);
    }
    SetarNikoColeteJogador(playerid, 0.0);
    if(TaNoMapa[playerid])
    {
        TaNoMapa[playerid] = false;
        Descongelar(playerid);
        if(MovePlayerTimer[playerid] > -1)
            KillTimer(MovePlayerTimer[playerid]);
        if(MapTimer[playerid] > -1)
            KillTimer(MapTimer[playerid]);
        if(VehFocus[playerid] > -1)
            KillTimer(VehFocus[playerid]);
        MovePlayerTimer[playerid] = -1;
        MapTimer[playerid] = -1;
        VehFocus[playerid] = -1;
        Degrees[playerid] = 0.0;
        TextDrawHideForPlayer(playerid, MapsTD);
        TextDrawHideForPlayer(playerid, Coordenadas[playerid]);
        TextDrawHideForPlayer(playerid, MapsAltimeterPlus);
        TextDrawHideForPlayer(playerid, MapsAltimeterMinus);
        TextDrawHideForPlayer(playerid, MapsAltimeterLines);
        TextDrawHideForPlayer(playerid, MapsMainAltLine[playerid]);
        if (OldPlayerVehID[playerid] > -1)
        {
            OldPlayerVehID[playerid] = INVALID_VEHICLE_ID;
            OldPlayerSeat[playerid] = -1;
        }
    }
   
    new string[128];
    Player[playerid][Spawned] = false;
    Conce[playerid] = 0;
    pizzaexit[playerid] = 0;
    cluckinexit[playerid] = 0;
    burgerexit[playerid] = 0;
    storeexit[playerid] = 0;
    cherifeexit[playerid] = 0;
    Player[playerid][pLocal] = 255;
    Player[playerid][pSeatBelt] = 0;
    Player[playerid][pCapacete] = 0;
    IpodNikoDesligar(playerid);
    DropWeapons(playerid);
   
    foreach(new x : Player)
        if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && Player[x][gSpectateID] == playerid)
              AdvanceSpectate(x);
       
    if(PlayerTied[playerid] > 0)
    {
        format(string, sizeof(string), "[Atenзгo] O BOPE fracassou no sequestro de %s. O refйm foi morto.",Player[playerid][pNome]);
        EnviaNikoMensagemTodos(COLOR_OOC, string, MSG_NEWS);
        PlayerTied[playerid] = 0;
    }
    //EM CORRIDA
    if(gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
    {
        NikoDesativarCP(playerid);
        gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
    }
   
    // Ao Celular
    if(IsPlayerConnected(Mobile[playerid]))
    {
        SendClientMessage ( playerid, COLOR_LIGHTBLUE, "** A ligaзгo caiu..." );
        SendClientMessage ( Mobile [ playerid ], COLOR_LIGHTBLUE, "** Ninguйm na linha..." ); //OnPlayerDisconnect
       
        if ( !RingTone [ playerid ] && !RingTone [ Mobile [ playerid ] ] )
        {
            new cost = ( CallCost[playerid] / 2 );
            format(string, sizeof(string), "~w~a chamada custou~n~~r~R$ %d", cost );
            GameTextForPlayer(Mobile[playerid], string, 5000, 1);
            GameTextForPlayer(playerid, string, 5000, 1);
           
            GivePlayerGP ( Mobile[playerid], - cost );
            GivePlayerGP ( playerid, - cost );
           
            if(SBizzInfo[2][sbProducts] > 0)
            {
                ProdutoSB(2,2*cost);
            }
        }
        CallCost[playerid] = 0;
        CallCost[Mobile[playerid]] = 0;
        DesligarCel(Mobile[playerid]);
        DesligarCel(playerid);
    }
   
    if(NikoGuerraAQFASystem[ngsLigada])
        QuandoJogadorMorrerNikoGuerra(playerid, killerid, reason);
   
    if(IsPlayerConnected(killerid))
    {
        if(PlayerBarraAtiva[killerid])
        {
            EscondeNikoOponenteVidaBarra(killerid);
            TaEmCombateCom[killerid] = INVALID_PLAYER_ID;
            TaEmCombate[killerid] = 0;
            SaiuDeCombate(killerid);
        }
        WarCode_PlayerDeath(playerid, killerid, reason);
       
       
        if(GetPVarInt(killerid,"TaNoEvento") == 1 || (NikoGuerraAQFASystem[ngsLigada] && PertenceAQFA(playerid) && PertenceAQFA(killerid)) || GetPlayerZone(killerid) != 999)
        {
            Player[killerid][pWZKills]++;
            Player[playerid][pWZDeaths]++;
        }
        else if(Player[killerid][pMember] == TEAM_HITMAN && Vitima[killerid] == playerid)
        {
            Player[killerid][pWZKills]++;
            Player[playerid][pWZDeaths]++;
        }
       
        Player[killerid][pKills]++;
        Player[playerid][pDeaths]++;
       
        if(Player[playerid][pLeader] == TEAM_PREF)
        {
            format(string, sizeof(string), "[Atenзгo] O Prefeito %s foi assassinado por %s!", Player[playerid][pNome] , Player[killerid][pNome]);
            EnviaNikoMensagemTodos(COLOR_YELLOW, string, MSG_NEWS);
        }
        //PAINT BALL
        if(PlayerPaintballing[playerid] != 0)
        {
            new killer[MAX_PLAYER_NAME];
            PlayerPaintballKills[killerid]++;
            format(string, sizeof(string), "Vocк matou %d pessoas nesta partida.",PlayerPaintballKills[killerid]);
            SendClientMessage(killerid, COLOR_YELLOW, string);
           
            if(PlayerPaintballKills[killerid] > PaintballWinnerKills)
            {
                PaintballWinner = killerid;
                PaintballWinnerKills = PlayerPaintballKills[killerid];
                GetPlayerName(killerid, killer, sizeof(killer));
               
                foreach(new i : Player)
                    if(PlayerPaintballing[i] != 0)
                    {
                        format(string, sizeof(string), "%s estб liderando o paintball com %d pontos.",Player[killerid][pNome],PaintballWinnerKills);
                        SendClientMessage(i, COLOR_YELLOW, string);
                    }
            }
            return 1;
        }
       
        //Driver By
        if(IsPlayerInAnyVehicle(killerid) && DriverBY[playerid] == -1)
        {
            if(!PertenceAQFA(killerid) || !PertenceAQFA(playerid))
            {
                DriverBY[playerid] = killerid;
                SetTimerEx("NikoResetVar",600*1000,false,"ii",playerid,1);
                //SendClientMessage(killerid, COLOR_YELLOW, "Vocк infringiu uma lei do servidor cometendo DRIVE-BY !");
                SendClientMessage(playerid, COLOR_YELLOW, "Vocк foi atropelado. Este DB foi proposital? Caso tenha sido denuncie no /forum ");
            }
        }
       
        //Evento
        if((GetPVarInt(playerid,"TaNoEvento") == 1) && Evento[eTrancado])
        {
            new contador=0;
            new morreu[128];
            SetPVarInt(playerid,"TaNoEvento",0);
            foreach(new i : Player)
                if(GetPVarInt(i,"TaNoEvento") == 1)
                    contador++;
           
            if(contador > 1)
                format(morreu,sizeof(morreu),"{ff7e19}%s{4290fe} matou {ff7e19}%s{4290fe} no evento! Ainda faltam{ff7e19} %d{4290fe} disputando o prкmio de: R$:%s", pNick(killerid), pNick(playerid), contador, NumeroComPonto(NikoEventoPremio));
            else
            {
                foreach(new i : Player)
                    if(GetPVarInt(i,"TaNoEvento") == 1)
                        contador = i;
                format(morreu,sizeof(morreu),"{ff7e19}%s{4290fe} Morreu no evento! {ff7e19} %s{4290fe} й o campeгo do prкmio de: R$:%s",pNick(playerid),pNick(contador),NumeroComPonto(NikoEventoPremio));
            }
            return SendClientMessageToAll(-1,morreu);
        }
       
        //Spawn Kill
        if(SpawnTime[playerid] > 0)
            if(Player[playerid][pLevel] > 2 && PlayerPaintballing[playerid] == 0)
            {
                format(string, sizeof(string), "%s (id: %i) cometeu SpawnKill em %s e foi kickado", Player[killerid][pNome], killerid, Player[playerid][pNome]);
                EnviaNikoMensagemTodos(COLOR_OOC,string, MSG_PUN);
                printf("kickado por spawnkill");
                OnKick(killerid);
            }
        //MATAR EM LOCAL PROIBIDO
        if(IsPlayerConnected(killerid))
            if(Player[killerid][pJailed] == Player[playerid][pJailed] && Player[playerid][pJailed] > 0)
                NikoPrender(killerid, 20, 1, "Matar em Local Proibido");
               
        //chat kill
        if(Player[playerid][pHeadValue] <=0 || Vitima[killerid] != playerid)
        {
            new chatkill[128], gunname[32];
            GetWeaponName(reason, gunname, sizeof(gunname));
            format(chatkill, sizeof(chatkill), "{FFFFFF}O jogador {FF9500}%s {FFFFFF}te matou com uma {FF0000}%s", Player[killerid][pName], gunname);
            SendClientMessage(playerid, COLOR_RED, chatkill);
        }
               
        //CONTRATO
        new bool:contrato = false;
        if(Player[playerid][pHeadValue] > 0  && GetPVarInt(killerid,"TaNoEvento") == 0)
            if(Player[killerid][pMember] == TEAM_HITMAN)
                if(Vitima[killerid] == playerid)
                {
                    contrato = true;
                    GivePlayerGP(killerid, Player[playerid][pHeadValue]);
                    AumentarReconhecimento(killerid);
                    new strung[128];
                    format(string,128,"Um assassino cumpriu o contrato а cabeca de %s e adquiriu um valor de R$%d",Player[playerid][pNome],Player[playerid][pHeadValue]);
                    format(strung,128,"O assassino %s cumpriu o contrato а cabeca de %s e adquiriu um valor de R$%d",Player[killerid][pNome],Player[playerid][pNome],Player[playerid][pHeadValue]);
                    foreach(new i : Player)
                        if(Player[i][pMember] == TEAM_HITMAN)
                            SendClientMessage(i, COLOR_GROOVE, strung);
                        else
                            SendClientMessage(i, COLOR_GROOVE, string);
                    Player[playerid][pHeadValue] = 0;
                    SendoProcurado[playerid] = false;
                    Procurando[killerid] = false;
                    ConquistaInfo[killerid][contratos]++;
                }
        //Sistema de Procurado
        //if(GetPVarInt(killerid,"TaNoEvento") == 0 && (!NikoGuerraAQFASystem[ngsLigada] || !(PertenceAQFA(playerid) || PertenceAQFA(killerid))))
        if(GetPVarInt(killerid,"TaNoEvento") == 0 && !(Player[playerid][pMember] == TEAM_FA && Player[killerid][pMember] == TEAM_ALQAEDA))
        {
            new zone1 = GetPlayerZone(playerid);
            new zone2 = GetPlayerZone(killerid);
           
            if(IsACop(killerid))
            {
                if(Player[playerid][pProcurado] > 0 && !(Player[killerid][pMember] == TEAM_FA && Player[playerid][pMember] == TEAM_ALQAEDA))
                {
                    if(Player[killerid][pMember] != TEAM_MUNICIPAL)
                    {
                        if(Player[playerid][pLevel] > 2)
                        {
                            new Float:X, Float:Y, Float:Z;
                            GetPlayerPos(killerid, X, Y, Z);
                            new ajudantes = 0;
                            foreach(new i : Player)
                                if(NikoDeuDano[i][playerid] > 0)
                                    if(NikoPlayerRaio(i, 30, X, Y, Z) && (Player[i][pMember] == Player[killerid][pMember]) && i != killerid)
                                        ajudantes++;
                           
                           
                            new recompensa = Player[playerid][pProcurado]*250;
                            if(recompensa > 5000)
                                recompensa = 5000;
                            recompensa = recompensa + ajudantes*1000;
                            if(recompensa > 10000)
                                recompensa = 10000;
                           
                            format(string,sizeof(string),"{ff0000}[BSL]:{4290fe} Parabйns Senhor! Vocк recebeu: R$: %s por prender um procurado com %d estrelas com ajuda de %d outros COPs.",NumeroComPonto(recompensa), Player[playerid][pProcurado], ajudantes);
                            SendClientMessage(killerid,-1,string);
                            Player[killerid][pPrendeu]++;
                            AumentarReconhecimento(killerid);
                            if(EmFuga[playerid]<999)
                            {
                                if(EmFuga[playerid]==13)
                                    CofreOrgInfo[Player[killerid][pMember]][mat] += 13*999;
                                else
                                {
                                    format(string,sizeof(string),"{ff0000}[BSL]:{4290fe} Vocк recebeu um bфnus de R$ %d por impedir um assalto!.",ROB_CASH);
                                    SendClientMessage(killerid,-1,string);
                                    recompensa += ROB_CASH;
                                }
                                AumentarReconhecimento(killerid);
                            }
                            GivePlayerGP(killerid,recompensa/2);
                            CofreOrgInfo[Player[killerid][pMember]][mony] += recompensa/2;

                            foreach(new i : Player)
                                if(NikoDeuDano[i][playerid] > 0)
                                    if(NikoPlayerRaio(i, 30, X, Y, Z) && (Player[i][pMember] == Player[killerid][pMember]) && i != killerid)
                                    {
                                        GivePlayerGP(i,recompensa);
                                        format(string,sizeof(string),"{ff0000}[BSL]:{4290fe} Parabйns Senhor! Vocк recebeu: R$: %s por ajudar a prender um procurado com %d estrelas.",NumeroComPonto(recompensa), Player[playerid][pProcurado]);
                                        SendClientMessage(i,-1,string);
                                        Player[i][pPrendeu]++;
                                    }
                                   
                            format(thestring,sizeof(thestring),"Vocк foi preso por: %s com nнvel: %d de procurado e serб solto pagando a /fianca de: %s.",Player[killerid][pNome], Player[playerid][pProcurado], NumeroComPonto(Player[playerid][pProcurado]*1000));
                            SendClientMessage(playerid,-1,thestring);
                            Player[killerid][pWZKills]++;
                            Player[playerid][pWZDeaths]++;
                            new TodosOsBens = Player[playerid][pBank] + Player[playerid][pCash];
                            if(TodosOsBens < 1000000)
                                TodosOsBens = 1000000;
                               
                            if(Player[killerid][pMember] == TEAM_PM)
                                NikoPrender(playerid,Player[playerid][pProcurado]*2,2,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_PF)
                                NikoPrender(playerid,Player[playerid][pProcurado]*2,3,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_BOPE)
                                NikoPrender(playerid,Player[playerid][pProcurado]*2,4,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_FA)
                                NikoPrender(playerid,Player[playerid][pProcurado]*2,5,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_PC)
                                NikoPrender(playerid,Player[playerid][pProcurado]*2,6,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                        }
                        else
                        {
                            format(thestring,sizeof(thestring),"Vocк foi preso por: %s com nнvel: %d de procurado e serб solto pagando a /fianca de: %s.",Player[killerid][pNome], Player[playerid][pProcurado], NumeroComPonto(Player[playerid][pProcurado]*1000));
                            SendClientMessage(playerid,-1,thestring);
                            Player[killerid][pWZKills]++;
                            Player[playerid][pWZDeaths]++;
                            new TodosOsBens = Player[playerid][pBank] + Player[playerid][pCash];
                            if(TodosOsBens < 1000000)
                                TodosOsBens = 1000000;
                               
                            if(Player[killerid][pMember] == TEAM_PM)
                                NikoPrender(playerid,Player[playerid][pProcurado]*1,2,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_PF)
                                NikoPrender(playerid,Player[playerid][pProcurado]*1,3,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_BOPE)
                                NikoPrender(playerid,Player[playerid][pProcurado]*1,4,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_FA)
                                NikoPrender(playerid,Player[playerid][pProcurado]*1,5,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                            else if(Player[killerid][pMember] == TEAM_PC)
                                NikoPrender(playerid,Player[playerid][pProcurado]*1,6,"",1000,Player[playerid][pProcurado]*TodosOsBens/100);
                        }
                    }
                }
                else if(IsACivil(playerid) || Player[playerid][pMember] == TEAM_BOMBE)
                {
                    format(thestring,sizeof(thestring),"COP Matando Civil (%s) nгo-procurado", Player[playerid][pNome]);
                    NikoPrender(killerid, 40, 1, thestring);
                    format(thestring,sizeof(thestring),"{ff0000}[BSL Anti-DM]:{ffffff} Vocк й um COP e matou um civil que nгo era procurado (%s). Consequкncia: Bangu 40min.", Player[playerid][pNome]);
                    SendClientMessage(killerid,-1,thestring);
                    format(thestring,sizeof(thestring),"%s foi para o bangu por matar civil nгo procurado (%s).", Player[killerid][pNome], Player[playerid][pNome]);
                    WriteLog("Bangu",thestring);
                }
                /*else if(IsACrime(playerid) && !(Player[killerid][pMember] == TEAM_FA && Player[playerid][pMember] == TEAM_ALQAEDA))
                {
                    format(thestring,sizeof(thestring),"COP Matando Criminoso (%s) nгo-procurado", Player[playerid][pNome]);
                    NikoPrender(killerid, 40, 1, thestring);
                    format(thestring,sizeof(thestring),"{ff0000}[BSL Anti-DM]:{ffffff} Vocк й um COP e matou um Criminoso que nгo era procurado (%s). Consequкncia: Bangu 40min.", Player[playerid][pNome]);
                    SendClientMessage(killerid,-1,thestring);
                    format(thestring,sizeof(thestring),"%s foi para o bangu por matar Criminoso nгo procurado (%s).", Player[killerid][pNome], Player[playerid][pNome]);
                    WriteLog("Bangu",thestring);
                }*/

                else if(IsACop(playerid) || Player[playerid][pMember] == TEAM_PREF)
                {
                    CopDM[playerid] = killerid;
                    SetTimerEx("NikoResetVar",120*1000,false,"ii",playerid,10);
                    SendClientMessage(killerid, COLOR_YELLOW, "Vocк infringiu uma lei do servidor cometendo DM !");
                    SendClientMessage(playerid, COLOR_YELLOW, "Vocк foi morto por um COP. Este DM foi proposital? Caso tenha sido digite /copdm");
                }
            }
            else if(IsACrime(killerid))
            {
                    if(IsACivil(playerid) || Player[playerid][pMember] == TEAM_BOMBE)
                {
                    if(zone2 != 999)
                    {
                        if(NikoDeuDano[playerid][killerid] < 6)
                        {
                            SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou por bala perdida um civil que NГO te atacou nos ъltimos 60 segundos. Consequкncia: +16 Nнveis de Procurado");
                            AddNivelProcurado(killerid,1000,"Matar Civil Sem Revide por Bala Perdida",12);
                        }
                        else if(Player[playerid][pConnectTime] < 6*3600)
                        {
                            SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou por bala perdida um civil que criou a conta hб pouco tempo. Consequкncia: +8 Nнveis de Procurado");
                            AddNivelProcurado(killerid,1000,"Matar Civil Iniciante por Bala Perdida",8);
                        }
                        else
                        {
                            SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou um civil por bala-perdida e ganhou 4 nнveis de procurado.");
                            AddNivelProcurado(killerid,1000,"Matar Civil por Bala Perdida",4);
                        }
                    }
                    else
                    {
                        if(NikoDeuDano[playerid][killerid] < 6)
                        {
                            SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou um civil que NГO te atacou nos ъltimos 60 segundos. Consequкncia: +20 Nнveis de Procurado");
                            AddNivelProcurado(killerid,1000,"Matar Civil Sem Revide",15);
                        }
                        else if(Player[playerid][pConnectTime] < 6*3600)
                        {
                            SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou um civil que criou a conta hб pouco tempo. Consequкncia: +10 Nнveis de Procurado");
                            AddNivelProcurado(killerid,1000,"Matar Civil Iniciante",10);
                        }
                        else
                        {
                            SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou um civil fora da zona de guerra e ganhou 6 nнveis de procurado.");
                            AddNivelProcurado(killerid,1000,"Matar Civil",6);
                        }
                    }
                }
                else if(IsACop(playerid))
                {
                    SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou um Membro da Lei fora da zona de guerra e ganhou 2 nнveis de procurado.");
                    AddNivelProcurado(killerid,1000,"Matar COP",2);
                }
                else if(IsACrime(playerid))
                {
                    if(zone2 == 999)
                    {
                        SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк matou um Gangster fora da zona de guerra e ganhou 1 nнvel de procurado.");
                        AddNivelProcurado(killerid,1000,"Homicidio",1);
                    }
                }
                Player[playerid][pAssassinado] = killerid;
                Player[playerid][pAssassinadoID] = killerid;
                format(Player[playerid][pAssassinadoNick], 24, Player[killerid][pName]);
                SetTimerEx("NikoResetVar",210000,false,"ii",playerid,8);
                SendClientMessage(playerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк foi assassinado! Poderб ir atй а delegacia de polнcia e abrir um boletim de ocorrкncia, /bo.");
                if(Player[killerid][pLevel] <= 2)
                    MostrarDMInfo(killerid);
               
            }
            else if(IsACivil(killerid))
            {
                if(IsACivil(playerid) || Player[playerid][pMember] == TEAM_BOMBE)
                {
                    if(NikoDeuDano[playerid][killerid] < 6)
                    {
                        SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк й civil e matou outro civil que NГO te atacou nos ъltimos 60 segundos. Consequкncia: +20 Nнveis de Procurado");
                        AddNivelProcurado(killerid,1000,"Civil Matando Civil Sem Revide",20);
                    }
                    else if(Player[playerid][pConnectTime] < 6*3600)
                    {
                        SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк й civil e matou outro civil que criou a conta hб pouco tempo. Consequкncia: +10 Nнveis de Procurado");
                        AddNivelProcurado(killerid,1000,"Civil Matando Civil Iniciante",10);
                    }
                    else
                    {
                        SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк й civil e matou outro civil. Consequкncia: +5 Nнveis de Procurado");
                        AddNivelProcurado(killerid,1000,"Civil Matando Civil",5);
                    }
                }
                else if(IsACop(playerid))
                {
                    SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк й civil e matou um COP. Consequкncia: +6 Nнveis de Procurado");
                    AddNivelProcurado(killerid,1000,"Civil Matando COP",6);
                }
                else if(IsACrime(playerid))
                {
                    SendClientMessage(killerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк й civil e cometeu um homicнdio. Consequкncia: +4 Nнveis de Procurado");
                    AddNivelProcurado(killerid,1000,"Civil Matando Gangster",4);
                }
                Player[playerid][pAssassinado] = killerid;
                Player[playerid][pAssassinadoID] = killerid;
                format(Player[playerid][pAssassinadoNick], 24, Player[killerid][pName]);
                SetTimerEx("NikoResetVar",6000000,false,"ii",playerid,8);
                SendClientMessage(playerid,-1,"{ff0000}[BSL Anti-DM]:{ffffff} Vocк foi assassinado! Poderб ir atй а delegacia de polнcia e abrir um boletim de ocorrкncia, /bo.");
                if(Player[killerid][pLevel] <= 2)
                    MostrarDMInfo(killerid);
            }
        }
    }
    else
    {
        if((GetPVarInt(playerid,"TaNoEvento") == 1) && Evento[eTrancado])
        {
            new contador=0;
            new morreu[128];
            SetPVarInt(playerid,"TaNoEvento",0);
            foreach(new i : Player)
                if(GetPVarInt(i,"TaNoEvento") == 1)
                    contador++;
           
            if(contador > 1)
                format(morreu,sizeof(morreu),"{ff7e19}%s{4290fe} Morreu no evento! Ainda faltam{ff7e19} %d{4290fe} disputando o prкmio de: R$:%s",pNick(playerid),contador,NumeroComPonto(NikoEventoPremio));
            else
            {
                foreach(new i : Player)
                    if(GetPVarInt(i,"TaNoEvento") == 1)
                        contador = i;
                format(morreu,sizeof(morreu),"{ff7e19}%s{4290fe} Morreu no evento! {ff7e19} %s{4290fe} й o campeгo do prкmio de: R$:%s",pNick(playerid),pNick(contador),NumeroComPonto(NikoEventoPremio));
            }
            SendClientMessageToAll(-1,morreu);
        }
    }
   
    //Botar no Hospital
    if(SpawnTime[playerid] < 1 && !AdminDuty[playerid] && Player[playerid][pJailTime] == 0)
    {
        TempoHospital[playerid] = 20;
        if(Player[playerid][pPlano] > 0)
            Player[playerid][pPlano]--;
    }
    if(CarShopping[playerid] == true)
    {
        CarShopping[playerid] = false;
        NikoDestruirVeiculo(ShopCar[playerid]);
        ShopCar[playerid] = INVALID_VEHICLE_ID;
        carbrowse[playerid] = 0;
        SetPlayerVirtualWorld(playerid, 0);
        Player[playerid][pVW] = 0;
        //printf("kickado no carshopping");
        //OnKick(playerid);
    }
   
    EmFuga[playerid]=999;
    Cumplice[playerid]=false;
   
    return 1;
}
Se alguйm puder me ajudar agradeзo desde jб.
Reply
#2

Faz um debug verificando se o valor de killerid/playerid й vбlido
Reply
#3

cara fiz o debug e esta normal.. killerid retorna o id de quem amtou e playerid retorna o id de quem morreu..

ta foda esse bug..
Reply
#4

up

alguem tem mais alguma soluзгo ou dica?
Reply
#5

Quote:
Originally Posted by Chainksain
Посмотреть сообщение
up

alguem tem mais alguma soluзгo ou dica?
Remova todos os returns pois eles servem como uma barreira pra n seguir com o cуdigo abaixo deles
Reply
#6

Quote:
Originally Posted by HoodScript
Посмотреть сообщение
Remova todos os returns pois eles servem como uma barreira pra n seguir com o cуdigo abaixo deles
cara, mas nгo tem nenhum return colocado onde nao deveria, soh tem 2 return pra fla a verdade sendo um deles o da public e o outro que eh justamente pra encerrar a public mesmo pra n seguir com o cуodigo numa deterrminada seituaзгo lб, fora isso esta td normal mas o bug continua
Reply
#7

fiz um debug no meu gm e descobri que realmente o problema й que as vezes nгo estб identificando o killerid.

e agora? o que fazer?
Reply
#8

Quando vi isso
Код:
return QuandoMorrerNikoLanHouse(playerid, killerid, reason);
Jб sabia que era o BSL

na verdade esse problema й causado por um tipo de hask que altera os danos (nгo estou lembrado do nome) que da conflito com o sistema atual.
uns 3 anos atrбs quando ainda era admin/player lembro que uns engraзadinhos usavam ele e chegaram atй postar no fуrum. parece que agora voltaram a usar novamente (confirmei com um admin, e conheзo de longe as peзas que tгo usando, aehausidhuHEUHAUHA).

bem, espero que isso ajude
Reply
#9

dei uma olhada fiz umas alteraзхes aki vamos ver se resolve, vlw ai a forзa, mecher com esse tipo de gm eh meio chato principalmente qdo a gnt nгo conhece direito xD

mas com o tempo a gnt passa a conhecer
Reply
#10

Faзa debugs com printf no comeзo meio e fim da public OnPlayerDeath aonde se encontra seus cуdigos, tenho certeza que lб possui algum return que nгo estб deixando o cуdigo ser executado por completo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)