Ошибка.
#1

Доброго времени суток. Недавно столкнулся с такой проблемой, что при нажатии на текстдрав, в консоль вылетает ошибка.

PHP код:
[debugRun time error 20"Invalid index parameter (bad entry point)" 
Пошарив на просторах интернета, я выяснил, что данная ошибка вылетает тогда, когда отсутствует main(){}, однако у меня в моде данная функция присутствует.

Вот кэлбек:
PHP код:
hook OnPlayerClickTextDraw(playeridTextclickedid
{
    
printf("start clicl");
    for(new 
isizeof textdraw_gamemode_inventory_boxi++)
    {
        if(
clickedid != textdraw_gamemode_inventory_box[i]) continue;
        if(
PlayerInfo[playerid][p_bag] == false && 9) return SendClientMessage(playerid, -1"* У вас отсутствует сумка.");
        switch(
GetPVarInt(playerid"player_item_click"))
        {
            case -
1:
            {
                if(
PlayerInfo[playerid][p_item][i] == -1) return 1;
                if(
i_info[PlayerInfo[playerid][p_item][i]][i_type] == INV_TYPE_WEAPON && 9){
                    if(
IsPlayerAttachedObjectSlotUsed(playeridGetSlotAttachedWeapon(GetWeaponIndex(i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_model])))){
                        
RemovePlayerAttachedObject(playeridGetSlotAttachedWeapon(GetWeaponIndex(i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_model])));
                    }
                }
                
SetPVarInt(playerid"player_item_click"i);
                
player_textdraw_update_inv(playeridi);
            }
            default:
            {
                if(
GetPVarInt(playerid"player_item_click") == i)
                {
                    
SetPVarInt(playerid,"player_item_click", -1);
                    
player_textdraw_update_inv(playeridi);
                    return 
1;
                }
                else
                {
                    if(
&& i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid"player_item_click")]][i_type] == INV_TYPE_BAG) return SendClientMessage(playerid, -1"Нельзя положить одну сумку в другую.");
                    switch(
PlayerInfo[playerid][p_item][i])
                    {
                        case -
1:
                        {
                            
PlayerInfo[playerid][p_item][i] = PlayerInfo[playerid][p_item][GetPVarInt(playerid"player_item_click")];
                            
PlayerInfo[playerid][p_amount][i] = PlayerInfo[playerid][p_amount][GetPVarInt(playerid"player_item_click")];
                            
PlayerInfo[playerid][p_item][GetPVarInt(playerid"player_item_click")] = -1;
                            
PlayerInfo[playerid][p_amount][GetPVarInt(playerid"player_item_click")] = 0;
                            
player_textdraw_update_inv(playeridi);
                            
player_textdraw_update_inv(playeridGetPVarInt(playerid"player_item_click"));
                            
SetPVarInt(playerid"player_item_click", -1);
                        }
                        default:
                        {
                            if(
PlayerInfo[playerid][p_item][i] == PlayerInfo[playerid][p_item][GetPVarInt(playerid"player_item_click")])
                            {
                                if(
i_info[PlayerInfo[playerid][p_item][i]][i_type] == INV_TYPE_SKIN) return SendClientMessage(playerid, -1"Нельзя совмещать одежду.");
                                
PlayerInfo[playerid][p_amount][i] += PlayerInfo[playerid][p_amount][GetPVarInt(playerid"player_item_click")];
                                
PlayerInfo[playerid][p_item][GetPVarInt(playerid"player_item_click")] = -1;
                            }
                            else
                            {
                                new 
last_item
                                    
last_amount;
                                
last_item PlayerInfo[playerid][p_item][GetPVarInt(playerid"player_item_click")];
                                
last_amount PlayerInfo[playerid][p_amount][GetPVarInt(playerid"player_item_click")];
                                
PlayerInfo[playerid][p_item][GetPVarInt(playerid"player_item_click")] = PlayerInfo[playerid][p_item][i];
                                
PlayerInfo[playerid][p_amount][GetPVarInt(playerid"player_item_click")] = PlayerInfo[playerid][p_amount][i];
                                
PlayerInfo[playerid][p_item][i] = last_item;
                                
PlayerInfo[playerid][p_amount][i] = last_amount;
                            }
                            
SetPVarInt(playerid,"player_last_item_click",GetPVarInt(playerid,"player_item_click"));
                            
SetPVarInt(playerid"player_item_click", -1);
                            
player_textdraw_update_inv(playeridi);
                            
player_textdraw_update_inv(playeridGetPVarInt(playerid"player_last_item_click"));
                        }                        
                    }
                }
            }
        }
        
SetPVarInt(playerid,"click_inventory",1);
    }
    if(
GetPVarInt(playerid,"click_inventory") == 1)
    {
        if(
clickedid == textdraw_gamemode_inventory[3])
        {
            if(
GetPVarInt(playerid,"player_item_click") == -1) return SendClientMessage(playerid, -1"Вы не выбрали предмет");
            
UseItemInventory(playeridi_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_type]);
        }
        else if(
clickedid == textdraw_gamemode_inventory[4])
        {
            if(
GetPVarInt(playerid,"player_item_click") == -1) return SendClientMessage(playerid, -1"Вы не выбрали предмет");
            
format(a_stringsizeof a_string"\t\t\tПредмет\nНазвание: %s\nОписание: %s\nКолличество: %d",
            
i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_name],
            
i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_assignment],
            
PlayerInfo[playerid][p_amount][GetPVarInt(playerid,"player_item_click")]);
            
            
Dialog_ShowCallback(playeridusing callback InventoryShowInfoDIALOG_STYLE_MSGBOX"Инвентарь"a_string"Далее","");
        }
        else if(
clickedid == textdraw_gamemode_inventory[5])
        {
            if(
GetPVarInt(playerid,"player_item_click") == -1) return SendClientMessage(playerid, -1"Вы не выбрали предмет");
            
            
Dialog_ShowCallback(playeridusing callback InventoryInputGivePlayeridDIALOG_STYLE_INPUT"Инвентарь""Введите ID игрока, которому хотите передать предмет.""Далее","Отмена");
        }
        else if(
clickedid == textdraw_gamemode_inventory[6])
        {
            if(
GetPVarInt(playerid,"player_item_click") == -1) return SendClientMessage(playerid, -1"Вы не выбрали предмет");
            if(
i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_type] == INV_TYPE_WEAPON && PlayerInfo[playerid][p_faction_duty] == 1) return SendClientMessage(playerid, -1"* Нельзя выбросить оружие, будучи на дежурстве!");
            
            
Dialog_ShowCallback(playeridusing callback InventoryInputDropItemDIALOG_STYLE_INPUT"Инвентарь""Введите колличество предмета.""Далее","Отмена");
        }
        else if(
clickedid == textdraw_gamemode_inventory[7])
        {
            if(
GetPVarInt(playerid,"player_item_click") == -1) return SendClientMessage(playerid, -1"Вы не выбрали предмет");
            if(
PlayerInfo[playerid][p_bag] == false) return SendClientMessage(playerid, -1"У вас отсутствуют сумки.");
            
SetDropBag(playerid);
        }
    }
    
printf("end click");
    return 
true;

Ошибка вылетет когда код работает в данном месте:
PHP код:
case -1:
            {
                if(
PlayerInfo[playerid][p_item][i] == -1) return 1;
                if(
i_info[PlayerInfo[playerid][p_item][i]][i_type] == INV_TYPE_WEAPON && 9){
                    if(
IsPlayerAttachedObjectSlotUsed(playeridGetSlotAttachedWeapon(GetWeaponIndex(i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_model])))){
                        
RemovePlayerAttachedObject(playeridGetSlotAttachedWeapon(GetWeaponIndex(i_info[PlayerInfo[playerid][p_item][GetPVarInt(playerid,"player_item_click")]][i_model])));
                    }
                }
                
SetPVarInt(playerid"player_item_click"i);
                
player_textdraw_update_inv(playeridi);
            } 
Reply
#2

Попробуйте обновить плагины.
С main() {} эта ошибка связана при компиляции, а у Вас во время работы.

Похожая проблема: клик.
Reply
#3

Очень благодарен за тему. Просто напросто надо было не загружать/обновить плагин crashdetect. Спасибо.
Reply
#4

От этой ошибки помогает пересобрать плагин под свою систему!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)