OnPlayerDeath
#1

Здравствуйте, вчера поставил crashdetect но сегодня в логах заметил это:

PHP код:
[04:15:12] [debugRun time error 4"Array index out of bounds"
[04:15:12] [debug]  Accessing element at index 65535 past array upper bound 499
[04:15:12] [debugAMX backtrace:
[
04:15:12] [debug#0 0006bff4 in public OnPlayerDeath (0x00000001, 0x0000ffff, 0x00000036) from gf.amx 

Помогите исправить данную ошибку, вот public OnPlayerDeath:


PHP код:
public OnPlayerDeath(playeridkilleridreason
{
  
//if(killerid == INVALID_PLAYER_ID) return 1;
  
new name[MAX_PLAYER_NAME], names[MAX_PLAYER_NAME], string[128];
//------------------------------------------------------------------------------
  
if(killerid != 255) { // Убийство с транспорта
    
if(killerid != INVALID_PLAYER_ID) {
      if(
GetPlayerState(killerid) == 2) {
        
GetPlayerName(playeridnameMAX_PLAYER_NAME);
        
GetPlayerName(killeridnamesMAX_PLAYER_NAME);
        
SendClientMessage(killeridCOLOR_YELLOW"Убийство с транспорта строго запрещено на сервере, вы можете получить [WARN]");
        
format(stringsizeof(string), "[DRIVE BAY] %s[%d] - Совершил ДБ/Drive Bay (Погиб: %s[%d])"nameskilleridnameplayerid);
        
ABroadCast(COLOR_YELLOWstring1);
      }
    }
  }
  if(
reason == 38) {
    if(
killerid != INVALID_PLAYER_ID) {
      if(
IsPlayerConnected(killerid)) {
        
GetPlayerName(killeridnamesMAX_PLAYER_NAME);
        
format(stringsizeof(string), "[MINIGUN] %s[%d] только что убил игрока миниганом, проверьте его /spec %d"nameskilleridkillerid);
        
ABroadCast(COLOR_YELLOWstring1);
      }
    }
  }
  if(
killerid == playerid) { 
    if(
killerid != INVALID_PLAYER_ID) {
      
SendClientMessage(playeridCOLOR_ALLDEPT"Вы были кикнуты по подозрению в читерстве! (code: 13)");
      
SendClientMessage(playeridCOLOR_ALLDEPT"Если вы считайте что произошла ошибка обратитесь на форум");
      
Kick(playerid); return 1;
    }
  }
  return 
1;

Reply
#2

ABroadCast что внутри?
Reply
#3

Quote:
PHP код:
if(killerid == playerid
за такое всегда и сразу нужно банить, так как это невозможно.
Reply
#4

Quote:
Originally Posted by BJIADOKC
Посмотреть сообщение
за такое всегда и сразу нужно банить, так как это невозможно.
Может, сам себя со своей гранаты.
Reply
#5

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
ABroadCast что внутри?
Вот:

PHP код:
public ABroadCast(color,const string[], level)
{
    for(new 
0MAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i))
        {
            if (
PlayerInfo[i][pAdmin] >= level)
            {
                
SendClientMessage(icolorstring);
            }
        }
    }
    return 
true;

Reply
#6

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Может, сам себя со своей гранаты.
Попробовал не получилось сам себя не смог убить...
Reply
#7

Quote:
Originally Posted by Ganza199
Посмотреть сообщение
Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Может, сам себя со своей гранаты.
Попробовал не получилось сам себя не смог убить...
Всё правильно, он от практики давно ушёл, переквалифицировался в теоретики.

П.С.
PHP код:
if(killerid != 255) { // Убийство с транспорта 
это как понимать? Игрок Транспорт? Что-то новенькое...
Quote:

[DRIVE BAY] %s[%d] - Совершил ДБ/Drive Bay

Убылно. Drive By
Reply
#8

Quote:
Originally Posted by White_116
Посмотреть сообщение
Всё правильно, он от практики давно ушёл, переквалифицировался в теоретики.

П.С.
PHP код:
if(killerid != 255) { // Убийство с транспорта 
это как понимать? Игрок Транспорт? Что-то новенькое...
Убылно. Drive By
Вот убийство с транспорта:

PHP код:
  if(killerid != 255) { // Убийство с транспорта 
    
if(killerid != INVALID_PLAYER_ID) { 
      if(
GetPlayerState(killerid) == 2) { 
        
GetPlayerName(playeridnameMAX_PLAYER_NAME); 
        
GetPlayerName(killeridnamesMAX_PLAYER_NAME); 
        
SendClientMessage(killeridCOLOR_YELLOW"Убийство с транспорта строго запрещено на сервере, вы можете получить [WARN]"); 
        
format(stringsizeof(string), "[DRIVE BAY] %s[%d] - Совершил ДБ/Drive Bay (Погиб: %s[%d])"nameskilleridnameplayerid); 
        
ABroadCast(COLOR_YELLOWstring1); 
      } 
    } 
  } 
А это

PHP код:
if(killerid != 255) { 
один человечек посчитал что данная проверка необходима, вот я и не стал удалять а сам не знаю что это такое))
Reply
#9

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Может, сам себя со своей гранаты.
killerid будет равен INVALID_PLAYER_ID
Reply
#10

Кто нибудь знает как исправить данную ошибку ?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)