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

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

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

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

Баг со смертью игрока

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

s1lverfail

Ученик
Уважаемые, помогите разобраться с очень интересным багом. Суть в том, что после убийства игрок "как бы" живой, для других он лежит мертвый, уйдя в афк и просто валяется, но не тут-то было. Сам же игрок в это время может бегать, прыгать, и подыхает только тогда, когда попадает под огонь, либо падает с высоты. Тема на официальном SA-MP форуме, где вы поймете суть, но путного решения я там так и не нашел -
Кидаю свой паблик OnPlayerDeath
PHP:
public OnPlayerDeath(playerid, killerid, reason) 
{ 
    SendDeathMessage(killerid, playerid, reason); 
    B_ResetPlayerWeapons(playerid); 
    Player[playerid][pDeath]++; 
    PlayerG[playerid][gMask] = 0; 
    PlayerG[playerid][gBandana] = 0; 
    PlayerG[playerid][gSpawn] = 0; 
    if(killerid != INVALID_PLAYER_ID) 
    { 
        if(PlayerG[playerid][gZone] == 0) 
        { 
            GangInfo[Respect][Player[playerid][pBanda]]--; 
            SetRespectInt(Player[playerid][pBanda], GangInfo[Respect][Player[playerid][pBanda]]); 
        } 
        if(Kills[playerid] > 0) Kills[playerid] = 0; 
        format(m_string, sizeof(m_string), "Killed by ~r~%s", Player[killerid][pName]); 
        GameTextForPlayer(playerid, m_string, 2000, 4); 
        Player[killerid][pKill]++; 
        if(PlayerG[killerid][gZone] != 0 && PlayerG[killerid][gZone] != 4) B_GivePlayerHealth(killerid, 100.0); 
        if(PlayerG[killerid][gZone] == 0) 
        { 
            GangInfo[Respect][Player[killerid][pBanda]]++; 
            SetRespectInt(Player[killerid][pBanda], GangInfo[Respect][Player[killerid][pBanda]]); 
        } 
        GameTextForPlayer(killerid, "~g~+$100", 2000, 1); 
        B_GivePlayerMoney(killerid, 100); 
        Kills[killerid]++; 
        SetPlayerScore(killerid,GetPlayerScore(killerid)+1); 
        for(new i = 1; i <= TOTALGZ; i++) 
        { 
            if(GZInfo[i][gBattle] == 1) 
            { 
                if(Player[killerid][pBanda] == GZInfo[i][gNapad] || Player[killerid][pBanda] == GZInfo[i][gFrak]) 
                { 
                    if(Player[playerid][pBanda] == GZInfo[i][gNapad] || Player[playerid][pBanda] == GZInfo[i][gFrak]) 
                    { 
                        CountOnZone[Player[killerid][pBanda]]++; 
                          for(new idx=0, x=0; idx<cvector_size(players); idx++) 
                        { 
                            x = cvector_get(players, idx); 
                            new color[16],color1[16]; 
                            if(PlayerG[x][gLogin] < 1 || PlayerG[x][gSpawn] < 1 || PlayerG[x][gZone] > 0) continue; 
                            if(Player[x][pBanda] == GZInfo[i][gNapad] || Player[x][pBanda] == GZInfo[i][gFrak]) 
                            { 
                                   color = (CountOnZone[GZInfo[i][gNapad]] > CountOnZone[GZInfo[i][gFrak]]) ? ("~g~") : ("~r~"); 
                                   color1 = (CountOnZone[GZInfo[i][gFrak]] > CountOnZone[GZInfo[i][gNapad]]) ? ("~g~") : ("~r~"); 
                                if(GZInfo[i][gNapad] == Player[killerid][pBanda]) 
                                { 
                                    format(m_string, 16, "%s%d", color, CountOnZone[Player[killerid][pBanda]]); 
                                    PlayerTextDrawSetString(x, CaptureInf[x][2],m_string); 
                                } 
                                else 
                                { 
                                    format(m_string, 16, "%s%d", color1, CountOnZone[Player[killerid][pBanda]]); 
                                    PlayerTextDrawSetString(x, CaptureInf[x][3],m_string); 
                                } 
                            } 
                        } 
                    } 
                } 
            } 
        } 
    } 
    return 1; 
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу