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

Реклама


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

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    69
    Репутация:
    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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    crashdetect молчит?
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

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

    Статус
    Оффлайн
    Регистрация
    13.02.2016
    Сообщений
    69
    Репутация:
    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[][email protected] "") 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
    Сообщений
    69
    Репутация:
    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
    Сообщений
    69
    Репутация:
    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[][email protected] "") 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
    Адрес
    Ташкент
    Сообщений
    269
    Репутация:
    73 ±
    логируй PlayerInfo[playerid][pKepkiAcess]

 

 

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

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

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

Ваши права

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