Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 6 из 6
  1. #1
    Аватар для s1lverfail
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.03.2014
    Сообщений
    11
    Репутация:
    2 ±

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

    Уважаемые, помогите разобраться с очень интересным багом, который кстати тут уже поднимался, но решения так и не было (ссылка)
    Суть в том, что после убийства игрок "как бы" живой, для других он лежит мертвый, уйдя в афк и просто валяется, но не тут-то было. Сам же игрок в это время может бегать, прыгать, и подыхает только тогда, когда попадает под огонь, либо падает с высоты. Довольно странно, с этим я столкнулся первый раз, и найдя тему, указанную выше, даже обрадовался, что не один я такой.
    Кидаю свой OnPlayerDeath
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        
    SendDeathMessage(killeridplayeridreason);
        
    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] > 0Kills[playerid] = 0;
            
    format(m_stringsizeof(m_string), "Killed by ~r~%s"Player[killerid][pName]);
            
    GameTextForPlayer(playeridm_string20004);
            
    Player[killerid][pKill]++;
            if(
    PlayerG[killerid][gZone] != && PlayerG[killerid][gZone] != 4B_GivePlayerHealth(killerid100.0);
            if(
    PlayerG[killerid][gZone] == 0)
            {
                
    GangInfo[Respect][Player[killerid][pBanda]]++;
                
    SetRespectInt(Player[killerid][pBanda], GangInfo[Respect][Player[killerid][pBanda]]);
            }
            
    GameTextForPlayer(killerid"~g~+$100"20001);
            
    B_GivePlayerMoney(killerid100);
            
    Kills[killerid]++;
            
    SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
            for(new 
    1<= TOTALGZi++)
            {
                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=0x=0idx<cvector_size(players); idx++)
                            {
                                
    cvector_get(playersidx);
                                new 
    color[16],color1[16];
                                if(
    PlayerG[x][gLogin] < || PlayerG[x][gSpawn] < || 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_string16"%s%d"colorCountOnZone[Player[killerid][pBanda]]);
                                        
    PlayerTextDrawSetString(xCaptureInf[x][2],m_string);
                                    }
                                    else
                                    {
                                        
    format(m_string16"%s%d"color1CountOnZone[Player[killerid][pBanda]]);
                                        
    PlayerTextDrawSetString(xCaptureInf[x][3],m_string);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        return 
    1;

    - - - Добавлено - - -

    Нашел тему на форуме sa-mp.com Ссылка на форуме SA-MP
    ничего путного, к сожалению, не нашел

  2. #2
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Подключи crashdetect, возможно краш какой то..
    Skype: vitya.saveliev


  3. #3
    Аватар для s1lverfail
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.03.2014
    Сообщений
    11
    Репутация:
    2 ±
    Не думаю, что краш. На оф. форуме говорят, что баг сампа. Но так подключу, гляну логи

  4. #4
    Аватар для dimozz
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.08.2014
    Адрес
    Санкт-Петербург
    Сообщений
    6
    Репутация:
    0 ±
    Возможно, что дело в этой строчке:
    PHP код:
    if(PlayerG[killerid][gZone] != && PlayerG[killerid][gZone] != 4B_GivePlayerHealth(killerid100.0); 

  5. #5
    Аватар для s1lverfail
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.03.2014
    Сообщений
    11
    Репутация:
    2 ±
    Цитата Сообщение от dimozz Посмотреть сообщение
    Возможно, что дело в этой строчке:
    PHP код:
    if(PlayerG[killerid][gZone] != && PlayerG[killerid][gZone] != 4B_GivePlayerHealth(killerid100.0); 
    нет, не в ней
    баг именно в сампе, игроки говорят что и на серверах таких как, адванс, самп рп было, просто сервер дм, и поэтому данный паблик вызывается куда чаще, чем на РП серверах, сами понимаете

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    OnPlayerSpawn в студию. И что crashdetect сказал?
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

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

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

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

Ваши права

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