Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 8 из 8
  1. #1
    Аватар для Vasya_Pupkin
    Пользователь

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

    Перестает работать команда

    Всем привет.
    Перестает работать команда после покупки предмета
    Вот диалог из за которого перестает работать
    Код:
    case dAccesShopBuing:
    {
        new objectid,objs, type = GetPVarInt(playerid, "AcessType"), z = GetPVarInt(playerid, "SelectSKIN")-1, price;
        if(type == 1) objs = 7, objectid = floatround(AcessOchki[z][0]), price = floatround(AcessOchki[z][1]);
        else if(type == 2) objs = 8, objectid = floatround(AcessKepki[z][0]), price = floatround(AcessKepki[z][1]);
        else if(type == 3) objs = 8, objectid = floatround(AcessShapki[z][0]), price = floatround(AcessShapki[z][1]);
        else if(type == 4) objs = 9, objectid = floatround(AcessMaski[z][0]), price = floatround(AcessMaski[z][1]);
        if(response)
        {
            if(GetPlayerMoney(playerid) < price) return SendClientMessage(playerid, CRED, "x {AC0000}[Ошибка] {FFFFFF}У Вас недостаточно денег");
            new str[40];
            format(str, sizeof(str), "~r~ -%d$",price);
            GameTextForPlayer(playerid,str,2000,1);
            if(type == 1)
            {
                PlayerInfo[playerid][pOchkiAcess] = objectid;//Очки
                printf("objectid = %d", objectid);
            }
            else if(type == 2)
            {
                PlayerInfo[playerid][pKepkiAcess] = objectid;//Кепка
                printf("objectid = %d", objectid);
            }
            else if(type == 3)
            {
                PlayerInfo[playerid][pShapkiAcess] = objectid;//Шапка
                printf("objectid = %d", objectid);
            }
            else if(type == 4)
            {
                PlayerInfo[playerid][pMaskiAcess] = objectid;//Маска
                printf("objectid = %d", objectid);
            }
            SendClientMessage(playerid,0x66CC00FF, "Поздравляем с покупкой! Для управления инвентарем введите {0099FF}/inv");
            for(new t = 0; t < 11; t++)
            {
                if(Accessories[playerid][t] != PlayerText:INVALID_TEXT_DRAW)
                {
                    PlayerTextDrawDestroy(playerid, Accessories[playerid][t]);
                    Accessories[playerid][t] = PlayerText:INVALID_TEXT_DRAW;
                }
            }
            CancelSelectTextDraw(playerid);
            pTemp[playerid][pAcessBuying] = false;
            pTemp[playerid][pAcessBuyingW] = false;
            DeletePVar(playerid, "SelectSKIN");
            DeletePVar(playerid, "AcessType");
            objs = GetPVarInt(playerid, "AcessSLOT");
            if(IsPlayerAttachedObjectSlotUsed(playerid, objs) && objs != 0) RemovePlayerAttachedObject(playerid, objs);
            DeletePVar(playerid, "AcessSLOT");
        }
        else
        {
            SendClientMessage(playerid, -1, "Вы отказались от покупки");
        }
        return true;
    }
    А вот команда которая не работает:(но пока не покупаю все работает)
    Код:
    CMD:inv(playerid, params[])
    {
        if(PlayerInfo[playerid][pOchkiAcess])//очки
        {
            PlayerTextDrawSetPreviewModel(playerid, AccsesuarInventory[playerid][14], PlayerInfo[playerid][pOchkiAcess]);//очки
            PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][14], 0.000000, 0.000000, 66.000000, 1.000000);
            if(pTemp[playerid][pOdelOcki] == true)
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][14], -16777046);
            }
            else
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][14], 96);
            }
            PlayerTextDrawShow(playerid,AccsesuarInventory[playerid][14]);
        }
        if(PlayerInfo[playerid][pKepkiAcess])//Кепка
        {
            PlayerTextDrawSetPreviewModel(playerid, AccsesuarInventory[playerid][15], PlayerInfo[playerid][pKepkiAcess]);
            PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][15], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][2], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][3], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][4], 1.0);
            if(pTemp[playerid][pOdelKepky] == true)
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][15], -16777046);
            }
            else
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][15], 96);
            }
            PlayerTextDrawShow(playerid,AccsesuarInventory[playerid][15]);
        }
        if(PlayerInfo[playerid][pShapkiAcess])//шапка
        {
            PlayerTextDrawSetPreviewModel(playerid, AccsesuarInventory[playerid][16], PlayerInfo[playerid][pShapkiAcess]);
            PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][16],  AcessShapki[PlayerInfo[playerid][pShapkiAcess]][2], AcessShapki[PlayerInfo[playerid][pShapkiAcess]][3], AcessShapki[PlayerInfo[playerid][pShapkiAcess]][4], 1.0);
            if(pTemp[playerid][pOdelShapky] == true)
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][16], -16777046);
            }
            else
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][16], 96);
            }
            PlayerTextDrawShow(playerid,AccsesuarInventory[playerid][16]);
        }
        if(PlayerInfo[playerid][pMaskiAcess])//маска
        {
            PlayerTextDrawSetPreviewModel(playerid, AccsesuarInventory[playerid][17], PlayerInfo[playerid][pMaskiAcess]);
            PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][17], AcessMaski[PlayerInfo[playerid][pMaskiAcess]][2], AcessMaski[PlayerInfo[playerid][pMaskiAcess]][3], AcessMaski[PlayerInfo[playerid][pMaskiAcess]][4], 1.0);
            if(pTemp[playerid][pOdelMasky] == true)//
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][17], -16777046);
            }
            else
            {
                PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][17], 96);
            }
            PlayerTextDrawShow(playerid,AccsesuarInventory[playerid][17]);
        }
        if(pTemp[playerid][pAppSumka] == true)//Сумка
        {
            PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][13], -16777046);
        }
        else
        {
            PlayerTextDrawBackgroundColor(playerid, AccsesuarInventory[playerid][13], 96);
        }
        PlayerTextDrawSetPreviewModel(playerid, AccsesuarInventory[playerid][3], GetPlayerSkin(playerid));//скин
        for(new g;g<14; g++)
        {
            PlayerTextDrawShow(playerid,AccsesuarInventory[playerid][g]);
        }
        SelectTextDraw(playerid, 0xFF0000FF);
        printf("objectidddd");
        return 1;
    }

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    crashdetect молчит?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±
    Молчит :(

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

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±
    Во вот крешар выдал:
    Код:
    [17:38:45] [debug] Run time error 4: "Array index out of bounds"
    [17:38:45] [debug]  Accessing element at index 18926 past array upper bound 12
    [17:38:45] [debug] AMX backtrace:
    [debug] #0 003c7114 in public cmd_inv (playerid=0, params[]=@004e7844 "") at E:\gamemodes\sss.pwn:29197
    [17:38:46] [save] Vasya_Pupkin the server (13.12.11.10)
    [17:38:46] [debug] Run time error 4: "Array index out of bounds"
    [17:38:46] [debug]  Accessing element at index 5 past array upper bound 4
    [17:38:46] [debug] AMX backtrace:
    А вот строка:
    Код:
    PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][15], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][2], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][3], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][4], 1.0);

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

    Статус
    Оффлайн
    Регистрация
    04.06.2016
    Сообщений
    16
    Репутация:
    1 ±
    Выход за придела массива!!!
    PHP код:
    PlayerTextDrawSetPreviewRot(playeridAccsesuarInventory[playerid][15], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][2], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][3], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][4], 1.0); 
    В данной функции ты используешь 4 переменных с двухмерными массивами.
    PHP код:
    AccsesuarInventory[playerid][15]
    AcessMaski[переменная][2]
    AcessMaski[переменная][3]
    AcessMaski[переменная][4
    Посмотри какое ты количество ячеек задал в этих переменных.
    Последняя ячейка недолжна использоваться так как, она нужна для хранения идентификатора массива.

    Например:
    PHP код:
    new AcessMaski[MAX_PLAYERS][5];

    //Использование
    AcessMaski[playerid][0];
    AcessMaski[playerid][1];
    AcessMaski[playerid][2];
    AcessMaski[playerid][3];
    AcessMaski[playerid][4]; 
    (Последняя экстра – ячейка – 5 не используется никогда, она нужна для хранения идентификатора массива)

  6. #6
    Аватар для Vasya_Pupkin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±
    Вот если ту строку заменить на эту
    Код:
    PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][15], 0.000000, 0.000000, 66.000000, 1.000000);
    то все робит но положение обьекто сбито он должен грузить их от сюда
    Код HTML:
    static const Float:AcessMaski[][] = { // Маски
    	{18912.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18913.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18914.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18915.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18916.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18917.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18918.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18919.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{18920.0, 2100.0, -125.0, 25.0, 0.0}, // готово
    	{19036.0, 3600.0, 0.0, 0.0, 70.0}, // готово
    	{19037.0, 3600.0, 0.0, 0.0, 70.0}, // готово
    	{19038.0, 3600.0, 0.0, 0.0, 70.0}, // готово
    	{19137.0, 7000.0, -70.0, -65.0, -80.0}
    };
    и вот как должно
    Код:
    PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][15], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][2], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][3], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][4], 1.0);
    но когда оно так оно не работает =(

  7. #7
    Аватар для Vasya_Pupkin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    77
    Репутация:
    0 ±
    UP!!! крешар выдал:
    Код:
    [17:38:45] [debug] Run time error 4: "Array index out of bounds"
    [17:38:45] [debug]  Accessing element at index 18926 past array upper bound 12
    [17:38:45] [debug] AMX backtrace:
    [debug] #0 003c7114 in public cmd_inv (playerid=0, params[]=@004e7844 "") at E:\gamemodes\sss.pwn:29197
    [17:38:46] [save] Vasya_Pupkin the server (13.12.11.10)
    [17:38:46] [debug] Run time error 4: "Array index out of bounds"
    [17:38:46] [debug]  Accessing element at index 5 past array upper bound 4
    [17:38:46] [debug] AMX backtrace:
    А вот строка:
    Код:
    PlayerTextDrawSetPreviewRot(playerid, AccsesuarInventory[playerid][15], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][2], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][3], AcessMaski[PlayerInfo[playerid][pKepkiAcess]][4], 1.0);
    что значит это искал не мог найти такие ошибки =(

  8. #8
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    логируй PlayerInfo[playerid][pKepkiAcess]

 

 

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

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

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

Ваши права

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