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

Тема: OnPlayerDeath

  1. #1
    Аватар для semen7907
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2014
    Сообщений
    34
    Репутация:
    0 ±

    OnPlayerDeath

    Подскажите что не так, когда я умираю, вылазит это:

    PHP код:
    [14:13:14] [debugRun time error 4"Array index out of bounds"
    [14:13:14] [debug]  Accessing element at index 65535 past array upper bound 60
    [14:13:14] [debugAMX backtrace:
    [
    14:13:14] [debug#0 000d23bc in public OnPlayerDeath (playerid=0, killerid=65535, reason=255) at C:\Users\name\Desktop\Mod.pwn:774 


    PHP код:
              new die[120];
             new 
    Float:HPKiller[MAX_PLAYERS];
             new 
    Float:ARMKiller[MAX_PLAYERS];
             
    GetPlayerHealth(killeridHPKiller[playerid]);
             
    GetPlayerArmour(killeridARMKiller[playerid]);
             
    format(die, sizeof(die), "Âàñ óáèë {FFFF00}%s {33FF66}ó íåãî îñòàëîñü {33FFFF}%.1f {33FF66}HP è {33FFFF}%.1f {33FF66}Áðîíè"playerName(killerid), HPKiller[playerid], ARMKiller[playerid]);
            
    SendClientMessage(playerid0x33FF66AA, die); 

  2. #2
    Аватар для Caypen
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.03.2014
    Сообщений
    90
    Репутация:
    16 ±
    PHP код:
    playerName(killerid 
    В этом,ты узнаешь имя убийцы в любом случае, даже если убийцы нет а именно INVALID_PLAYER_ID
    Захожу на pro-pawn.ru - чувствую себя обычным пользователем
    Захожу на gawno-info.ru - чувствую себя самым великим гением
    (С) Caypen

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

    Статус
    Оффлайн
    Регистрация
    30.11.2013
    Сообщений
    22
    Репутация:
    25 ±
    Для исправления, сделай чтобы этот код выполнялся только при условии:
    PHP код:
    if(killerid != INVALID_PLAYER_ID

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вообще паблик должен иметь такой вид
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        
    //Тут общий код (например, массив для хранения текста) и всё, что связано только с playerid (а так же SendDeathMessage, если оно есть)
        
    if(killerid != INVALID_PLAYER_ID
        {
            
    //А тут всё, что связано с killerid. Все массивы, функции и прочее.
        
    }
        return 
    1;    

    И так же во всех случаях работы с массивами. Например, если имеется переменная, значение которой используется как индекс для обращения к ячейке массива, и для этой переменной задать значение, например, "-1", получится выход за пределы массива, ибо ячейки "-1" не существует. Поэтому в таких случаях так же следует продумывать проверку и не допускать значений, которые превышают размеры массива.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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