• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Проблема с объектами.

Nikit[A]

Ученик
Мод Reliant/Empire RP, есть система бизнесов, при покупке помещения для бизнеса в /bmenu есть "Выбрать продаваемый товар", с типом товара зависит маппинг в помещении бизнеса. Всего 6 типов товаров, и короче когда ставишь какой-либо объекты появляются, но после релога сервера или игрока - при заходе в бизнес объектов нет. Помогите пожалуйста.

Код:
        case dBMENU_PROD_1:
        {
            new id = Players[playerid][pBusiness], id_cell = GetPVarInt(playerid,"Select_Prod");
            if(!response) return BMenu(playerid),DeletePVar(playerid,"Select_Prod");
            switch(listitem)
            {
                case 0:
                {
                    new str[106];
                    if(GetProdID(id,id_cell) != -1) format(str,sizeof(str),""CLSERV"%s:"W"\n1. %s товар\n2. Заказать товар (на складе %d штук)",tvInfo[id_cell][tName_Rus],(Business[id][bProducts][GetProdID(id,id_cell)]) ? ("Перестать продавать") : ("Начать продавать"),Business[id][bProducts_cell][GetProdID(id,id_cell)]);
                    else format(str,sizeof(str),""CLSERV"%s:"W"\n1. Начать продавать товар",tvInfo[id_cell][tName_Rus]);
                    ShowPlayerDialog(playerid,dBMENU_PROD_1,DIALOG_STYLE_LIST,"{"#W_CC"}Меню бизнеса:"W" товар",str,"Далее","Закрыть");
                }
                case 1:
                {
                    for (new i = 0; i < 2 ; i++)
                    {
                        if(Business[id][bProducts][i] == id_cell)
                        {
                            Business[id][bProducts_cell][GetProdID(id,id_cell)] = 0;
                            Business[id][bProducts][GetProdID(id,id_cell)] = 0;
                            SendClientMessage(playerid,-1,""CLSERV"Товар снят с лавок вашего бизнеса предприятия!");
                            UpdateBiz(id,0);
                            UpdateBiz(id,1);
                            Save_Business(id);
                            return BMenu(playerid),DeletePVar(playerid,"Select_Prod");
                        }
                    }
                    new current;
                    for (new i = 0; i < 2 ; i++)
                    {
                        if(Business[id][bProducts][i] != 0) current++;
                        if(Business[id][bProducts][i] == 5 && current != 0) return SendClientMessage(playerid,-1,""CLSERV"Нельзя продавать другие товары, если Вы продаете оружие!"),BMenu(playerid),DeletePVar(playerid,"Select_Prod");
                    }
                    if(current > 0 && Business[id][bBizType] == 0) return SendClientMessage(playerid,-1,""CLSERV"Вы не можете продать два вида товара в магазине, улучшите свой бизнес до универмага!"),BMenu(playerid),DeletePVar(playerid,"Select_Prod");
                    if(current > 1) return SendClientMessage(playerid,-1,""CLSERV"Нельзя иметь больше 2 видов товара!");
                     for (new i = 0; i < 2 ; i++)
                    {
                        if(Business[id][bProducts][i] != 0) continue;
                        Business[id][bProducts][i] = id_cell;
                        SendClientMessage(playerid,-1,""CLSERV"Товар выставлен на продажу в ваше бизнес предприятие!");
                        UpdateBiz(id,0);
                        UpdateBiz(id,1);
                        BMenu(playerid),DeletePVar(playerid,"Select_Prod");
                        Save_Business(id);
                        break;
                    }
                    return 1;
                }
                case 2:
                {
                    new str[156];
                    format(str,sizeof(str),""W"Сейчас на складе %d штук \"%s\"\n"cOR"Стоимость 1 штук товара составляет 8$\n"CLSERV"- Введите количество товара, которое хотите купить:",Business[id][bProducts_cell][GetProdID(id,id_cell)],tvInfo[id_cell][tName_Rus]);
                    ShowPlayerDialog(playerid,dBMENU_PROD_2,DIALOG_STYLE_INPUT,"{"#W_CC"}Меню бизнеса:"W" покупка товара",str,"Купить","Закрыть");
                }
            }
        }
Код:
stock UpdateBiz(i,params)
{
    switch(params)
    {
        case 0:
        {
            foreach(new playerid : Player)
            {
                if(!IsPlayerInRangeOfPoint(playerid,1.0,Business[i][bPosEx][0],Business[i][bPosEx][1],Business[i][bPosEx][2]) && Business[i][bID] != GetPlayerVirtualWorld(playerid)) continue;
                HidePlayerBObjects(playerid);
                ShowPlayerBObjects(playerid,i);
            }
        }
        case 1:
        {
            Delete3DTextLabel(Business[i][bProdShop][0]);
            Delete3DTextLabel(Business[i][bProdShop][1]);
            for (new id = 0; id < 2 ; id++)
            {
                switch(Business[i][bProducts][id])
                {
                    case 1: Business[i][bProdShop][id] = Create3DTextLabel("Продукты\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,222.4726,-110.4689,1007.6758,5.0,i);
                    case 2: Business[i][bProdShop][id] = Create3DTextLabel("Напитки\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,223.9310,-105.9483,1007.7930,5.0,i);
                    case 3: Business[i][bProdShop][id] = Create3DTextLabel("Одежда\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,238.8325,-101.8562,1007.7930,5.0,i);
                    case 4: Business[i][bProdShop][id] = Create3DTextLabel("Электротехника\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,230.1801,-105.7671,1007.7930,5.0,i);
                    case 5: Business[i][bProdShop][id] = Create3DTextLabel("Оружие\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,234.0840,-111.8773,1007.6680,5.0,i);
                }
            }
        }
        case 2:
        {
              DestroyActor(Business[i][bWActor][0]);
            Delete3DTextLabel(Business[i][bWActor3D][0]);
            if(Business[i][bWorker][0] != -1)
            {
                Business[i][bWActor][0] = CreateActor(bWorkers[Business[i][bWorker][0]][wModel], 227.7390,-111.9663,1007.6758+0.8,356.5920);
                SetActorVirtualWorld(Business[i][bWActor][0],i);
                Business[i][bWActor3D][0] = Create3DTextLabel(bWorkers[Business[i][bWorker][0]][wName],0x4582A1FF,227.7390,-111.9663,1007.6758+1.2,5.0,i);
            }
            return 1;
        }
        case 3:
        {
            DestroyActor(Business[i][bWActor][1]);
            Delete3DTextLabel(Business[i][bWActor3D][1]);
            if(Business[i][bWorker][1] != -1)
            {
                Business[i][bWActor][1] = CreateActor(bWorkers[Business[i][bWorker][1]][wModel], 225.9214,-113.5084,1007.6680+0.8,3.0271);
                SetActorVirtualWorld(Business[i][bWActor][1],i);
                Business[i][bWActor3D][1] = Create3DTextLabel(bWorkers[Business[i][bWorker][1]][wName],0x4582A1FF,225.9214,-113.5084,1007.6680+1.2,5.0,i);
            }
        }
    }
    return 1;
}
Код:
stock HidePlayerBObjects(playerid)
{
    for (new i = 0; i < 41 ; i++) DestroyPlayerObject(playerid, bObjects[playerid][i]);
    return 1;
}
И собственно сами объекты.
Код:
stock ShowPlayerBObjects(playerid, bid)
{
    for (new i = 0; i < 2 ; i++)
    {
        if(Business[bid][bProducts][i] == 4)
        {
            //Электроника
            bObjects[playerid][0] = CreatePlayerObject(playerid,2376, 231.91360, -106.85510, 1006.74609,   0.00000, 0.00000, 90.00000);
            bObjects[playerid][1] = CreatePlayerObject(playerid,19894, 231.37263, -105.45903, 1007.07568,   0.00000, 0.00000, 84.00000);
            bObjects[playerid][2] = CreatePlayerObject(playerid,18873, 230.93230, -105.07660, 1007.05627,   0.00000, 0.00000, -90.00000);
            bObjects[playerid][3] = CreatePlayerObject(playerid,19893, 231.34419, -104.97830, 1007.05548,   0.00000, 0.00000, -52.00000);
            bObjects[playerid][4] = CreatePlayerObject(playerid,19623, 231.46809, -105.86120, 1007.13049,   0.00000, 0.00000, -47.00000);
            bObjects[playerid][5] = CreatePlayerObject(playerid,18872, 231.09720, -106.80920, 1007.05627,   0.00000, 0.00000, -127.00000);
            bObjects[playerid][6] = CreatePlayerObject(playerid,18871, 230.99373, -105.93531, 1007.05627,   0.00000, 0.00000, -84.00000);
            bObjects[playerid][7] = CreatePlayerObject(playerid,18870, 230.97610, -104.42690, 1007.05627,   0.00000, 0.00000, -84.00000);
            bObjects[playerid][8] = CreatePlayerObject(playerid,18871, 231.41710, -106.44910, 1007.05627,   0.00000, 0.00000, -120.00000);
        }
          if(Business[bid][bProducts][i] == 1)
          {
            //Продукты
            bObjects[playerid][9] = CreatePlayerObject(playerid,2543, 225.19180, -107.13990, 1006.53339,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][10] = CreatePlayerObject(playerid,2543, 222.30339, -112.82976, 1006.41339,   0.00000, 0.00000, 144.00000);
            bObjects[playerid][11] = CreatePlayerObject(playerid,2542, 222.24661, -108.20031, 1006.71338,   0.00000, 0.00000, 0.00000);
            bObjects[playerid][12] = CreatePlayerObject(playerid,2536, 221.41493, -111.54364, 1006.51343,   0.00000, 0.00000, 90.00000);
            bObjects[playerid][13] = CreatePlayerObject(playerid,2539, 221.41289, -110.54832, 1006.51343,   0.00000, 0.00000, 90.00000);
            bObjects[playerid][14] = CreatePlayerObject(playerid,2538, 221.40559, -109.56510, 1006.51343,   0.00000, 0.00000, 90.00000);
        }
          if(Business[bid][bProducts][i] == 2)
        {
            //Напитки
            bObjects[playerid][15] = CreatePlayerObject(playerid,2541, 222.24197, -106.83212, 1006.64941,   0.00000, 0.00000, 164.00000);
            bObjects[playerid][16] = CreatePlayerObject(playerid,2533, 223.85796, -107.09406, 1006.79340,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][17] = CreatePlayerObject(playerid,16151, 225.16682, -101.29755, 1007.07239,   0.00000, 0.00000, 90.00000);
            bObjects[playerid][18] = CreatePlayerObject(playerid,2543, 225.19180, -107.13990, 1006.53339,   0.00000, 0.00000, 180.00000);
        }
           if(Business[bid][bProducts][i] == 3)
        {
            //Одежда
            bObjects[playerid][19] = CreatePlayerObject(playerid,2733, 233.11011, -98.75700, 1008.99847,   0.00000, 0.00000, 0.00000);
            bObjects[playerid][20] = CreatePlayerObject(playerid,2732, 234.37010, -98.75700, 1008.99847,   0.00000, 0.00000, 0.00000);
            bObjects[playerid][21] = CreatePlayerObject(playerid,2734, 234.37010, -98.75700, 1007.67047,   0.00000, 0.00000, 0.00000);
            bObjects[playerid][22] = CreatePlayerObject(playerid,2735, 233.11011, -98.75700, 1007.67047,   0.00000, 0.00000, 0.00000);
            bObjects[playerid][23] = CreatePlayerObject(playerid,2395, 239.58571, -106.87881, 1006.79242,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][24] = CreatePlayerObject(playerid,2375, 239.85330, -106.29226, 1006.62299,   0.00000, 0.00000, 90.00000);
            bObjects[playerid][25] = CreatePlayerObject(playerid,2397, 239.24319, -106.71401, 1008.73920,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][26] = CreatePlayerObject(playerid,2397, 238.46092, -106.71352, 1008.73920,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][27] = CreatePlayerObject(playerid,2390, 237.64120, -106.66810, 1008.73920,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][28] = CreatePlayerObject(playerid,2390, 236.78087, -106.67375, 1008.73920,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][29] = CreatePlayerObject(playerid,2391, 239.30612, -106.64150, 1007.41919,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][30] = CreatePlayerObject(playerid,2391, 238.45891, -106.63689, 1007.41919,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][31] = CreatePlayerObject(playerid,2389, 237.55939, -106.67049, 1007.41919,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][32] = CreatePlayerObject(playerid,2389, 236.80045, -106.71571, 1007.41919,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][33] = CreatePlayerObject(playerid,2387, 236.86697, -104.38444, 1006.79272,   0.00000, 0.00000, 0.00000);
        }
           if(Business[bid][bProducts][i] == 5)
        {
            //Оружейка
            bObjects[playerid][34] = CreatePlayerObject(playerid,18109, 235.53922, -116.73988, 1008.48907,   0.00000, 0.00000, 0.00000);
            bObjects[playerid][35] = CreatePlayerObject(playerid,2358, 234.53931, -115.71610, 1006.93958,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][36] = CreatePlayerObject(playerid,2358, 233.77704, -115.72794, 1006.93958,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][37] = CreatePlayerObject(playerid,2358, 232.93611, -115.73226, 1006.93958,   0.00000, 0.00000, 180.00000);
            bObjects[playerid][38] = CreatePlayerObject(playerid,2358, 235.93130, -113.66280, 1006.74762,   0.00000, 0.00000, 215.00000);
            bObjects[playerid][39] = CreatePlayerObject(playerid,2358, 235.92070, -112.99805, 1006.74762,   0.00000, 0.00000, 215.00000);
            bObjects[playerid][40] = CreatePlayerObject(playerid,2358, 235.90094, -112.28952, 1006.74762,   0.00000, 0.00000, 215.00000);
        }
    }
    return 1;
}
 
Сверху Снизу