Вопросы

Спойлер

public: LoadBusinesses()
{
    new query[85], buffer[2];
    new Cache: result, rows;

    result = mysql_query(mysql, "SELECT b.*, IFNULL(a.name, 'Государство') AS owner_name FROM business b LEFT JOIN accounts a ON a.id=b.owner_id"true);
    rows = cache_num_rows();

    if(rows > MAX_BUSINESS)
    {
        rows = MAX_BUSINESS;
        print("[Business]: DB rows > MAX_BUSINESS");
    }
    for(new idx; idx < rows; idx ++)
    {
        SetBusinessData(idx, B_SQL_ID,      cache_get_field_content_int(idx, "id"));
        SetBusinessData(idx, B_OWNER_ID,    cache_get_field_content_int(idx, "owner_id"));

        cache_get_field_content(idx, "name", g_business[idx][B_NAME], mysql, 24);

        SetBusinessData(idx, B_CITY,            cache_get_field_content_int(idx, "city"));
        SetBusinessData(idx, B_ZONE,            cache_get_field_content_int(idx, "zone"));
        SetBusinessData(idx, B_IMPROVEMENTS,    cache_get_field_content_int(idx, "improvements"));
        SetBusinessData(idx, B_PRODS,           cache_get_field_content_int(idx, "products"));
        SetBusinessData(idx, B_PROD_PRICE,      cache_get_field_content_int(idx, "prod_price"));
        SetBusinessData(idx, B_ARENDA_PRICE,        cache_get_field_content_int(idx, "arenda_price"));
        SetBusinessData(idx, B_BALANCE,         cache_get_field_content_int(idx, "balance"));
        SetBusinessData(idx, B_RENT_DATE,       cache_get_field_content_int(idx, "rent_time"));
        SetBusinessData(idx, B_PRICE,           cache_get_field_content_int(idx, "price"));
        SetBusinessData(idx, B_RENT_PRICE,      cache_get_field_content_int(idx, "rent_price"));

        SetBusinessData(idx, B_TYPE,            cache_get_field_content_int(idx, "type"));
        SetBusinessData(idx, B_INTERIOR,        cache_get_field_content_int(idx, "interior"));

        SetBusinessData(idx, B_ENTER_PRICE,     cache_get_field_content_int(idx, "enter_price"));
        SetBusinessData(idx, B_ENTER_MUSIC,     cache_get_field_content_int(idx, "enter_music"));

        SetBusinessData(idx, B_LOCK_STATUS,     bool: cache_get_field_content_int(idx, "lock"));

        SetBusinessData(idx, B_POS_X,           cache_get_field_content_float(idx, "x"));
        SetBusinessData(idx, B_POS_Y,           cache_get_field_content_float(idx, "y"));
        SetBusinessData(idx, B_POS_Z,           cache_get_field_content_float(idx, "z"));

        SetBusinessData(idx, B_EXIT_POS_X,      cache_get_field_content_float(idx, "exit_x"));
        SetBusinessData(idx, B_EXIT_POS_Y,      cache_get_field_content_float(idx, "exit_y"));
        SetBusinessData(idx, B_EXIT_POS_Z,      cache_get_field_content_float(idx, "exit_z"));
        SetBusinessData(idx, B_EXIT_ANGLE,      cache_get_field_content_float(idx, "exit_angle"));

        SetBusinessData(idx, B_EVICTION,        cache_get_field_content_int(idx, "eviction"));
        SetBusinessData(idx, B_TK_TRUCK,        cache_get_field_content_int(idx, "tk_truck"));

        SetBusinessData(idx, B_GANG,            cache_get_field_content_int(idx, "gang"));
        SetBusinessData(idx, B_ROOF,            cache_get_field_content_int(idx, "roof"));

        cache_get_field_content(idx, "owner_name", g_business[idx][B_OWNER_NAME], mysql, 21);
        // -------------------------

        SetBusinessData(idx, B_ORDER_ID, -1);
        SetBusinessData(idx, B_LABEL, CreateDynamic3DTextLabel(GetBusinessData(idx, B_NAME), 0xFFFF00FF, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z) + 1.06.50));
        
        mysql_format(mysql, query, sizeof query, "UPDATE business SET id=%d WHERE id=%d", idx, cache_get_field_content_int(idx, "id"));
        mysql_query(mysql, query, false);

        if(GetBusinessData(idx, B_CITY) == -1 || GetBusinessData(idx, B_ZONE) == -1)
        {
            buffer[0] = Get2DCity(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y));
            buffer[1] = Get2DZone(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y));

            SetBusinessData(idx, B_CITY, buffer[0]);
            SetBusinessData(idx, B_ZONE, buffer[1]);

            mysql_format(mysql, query, sizeof query, "UPDATE business SET city=%d,zone=%d WHERE id=%d", buffer[0], buffer[1], GetBusinessData(idx, B_SQL_ID));
            mysql_query(mysql, query, false);
        }

        if(IsBusinessOwned(idx) && !strcmp(GetBusinessData(idx, B_OWNER_NAME), "Государство"true))
        {
            SetBusinessData(idx, B_OWNER_ID, 0);

            mysql_format(mysql, query, sizeof query, "UPDATE business SET owner_id=0,improvements=0 WHERE id=%d", GetBusinessData(idx, B_SQL_ID));
            mysql_query(mysql, query, false);
        }

        if(!IsBusinessOwned(idx))
        {
            SetBusinessData(idx, B_PRODS,       0);
            SetBusinessData(idx, B_PROD_PRICE,  0);
            SetBusinessData(idx, B_LOCK_STATUS, false);

            SetBusinessData(idx, B_ENTER_MUSIC, 0);
            SetBusinessData(idx, B_ENTER_PRICE, 0);

            if(GetBusinessData(idx, B_IMPROVEMENTS) >= 6)
            {
                mysql_format(mysql, query, sizeof query, "DELETE FROM business_gps WHERE bid=%d", idx);
                mysql_query(mysql, query, false);
            }
        }

        CallLocalFunction("UpdateBusinessLabel""i", idx);

        BusinessHealthPickupInit(idx); //Иконки для бизов

        if(GetBusinessData(idx, B_TYPE) == 1)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 40000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 2)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 49000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 3 || GetBusinessData(idx, B_TYPE) == 4)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 28000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 5)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 45000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 8)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 25000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 9)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 26000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 11)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 6000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 12)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 52000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 14)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 54000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 17 || GetBusinessData(idx, B_TYPE) == 26 || GetBusinessData(idx, B_TYPE) == 23)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 55000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 23)
        {
            CreatePickup(127525, GetBusinessData(idx, B_EXIT_POS_X), GetBusinessData(idx, B_EXIT_POS_Y), GetBusinessData(idx, B_EXIT_POS_Z), 0, PICKUP_ACTION_TYPE_SHIN, idx);
        }
        if(GetBusinessData(idx, B_TYPE) == 24)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 38000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 25)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 39000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 27)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 18000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 30)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 46000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 31)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 10000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 32)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 21000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 33)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 17000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 20)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 55000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 34)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 55000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 35)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 55000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
        }
        if(GetBusinessData(idx, B_TYPE) == 36)
        {
            CreateDynamicMapIcon(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 51000, -1, STREAMER_MAP_ICON_SD, MAPICON_LOCAL);
            CreatePickup(127525, GetBusinessData(idx, B_EXIT_POS_X), GetBusinessData(idx, B_EXIT_POS_Y), GetBusinessData(idx, B_EXIT_POS_Z), 0, BUSINESS_TYPE_TK, idx);
        }
        if(GetBusinessData(idx, B_TYPE) == 16 || GetBusinessData(idx, B_TYPE) == 17 || GetBusinessData(idx, B_TYPE) == 18 || GetBusinessData(idx, B_TYPE) == 19 || GetBusinessData(idx, B_TYPE) == 21 || GetBusinessData(idx, B_TYPE) == 23 || GetBusinessData(idx, B_TYPE) == 36)
        {
            if(GetBusinessData(idx, B_TYPE) == 21)
            {
                CreatePickup(1863125, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);
            }
            else
            {
                CreatePickup(127425, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);
            }
        }
        else
        {
            CreatePickup(1913225, GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 0, PICKUP_ACTION_TYPE_BIZ_ENTER, idx);
        }
        biz_area[idx] = CreateDynamicSphere(GetBusinessData(idx, B_POS_X), GetBusinessData(idx, B_POS_Y), GetBusinessData(idx, B_POS_Z), 3.000, -1);
    }
    g_business_loaded = rows;
    cache_delete(result);

    for(new idx; idx < sizeof g_business_interiors; idx ++)
    {
        CreatePickup(1913223, GetBusinessInteriorInfo(idx, BT_EXIT_POS_X), GetBusinessInteriorInfo(idx, BT_EXIT_POS_Y), GetBusinessInteriorInfo(idx, BT_EXIT_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_EXIT, idx);
        buffer[0] = -1;

        switch(idx)
        {
            case BUSINESS_INTERIOR_SHOP_24_7:
            {
                CreateDynamic3DTextLabel
                (
                    "Список товаров\n"\
                    "{FFD83D}Используйте H (/buy)",
                    0x00CC00EE,
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_X),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,
                    8.0
                );
                CreatePickup(1027023, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_SHOP_247, idx);
            }
            case BUSINESS_INTERIOR_ZAKUS:
            {
                CreatePickup(1027023, -1852.5448,1276.9109,1115.8447, -1, PICKUP_ACTION_TYPE_BIZ_ZAKYSKA, idx);
            }
            case BUSINESS_INTERIOR_APTEKA:
            {
                CreatePickup(124023, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_APTEKA, idx);
            }
            case BUSINESS_INTERIOR_KONDITER:
            {
                CreateDynamic3DTextLabel
                (
                    "{6699FF}Кондитерская\n\n"\
                    "{"#cGold"}/eat {"#cW"}- Съесть купленную еду\n"\
                    "{"#cGold"}/put {"#cW"}- Положить поднос\n"\
                    "{"#cGold"}/pick {"#cW"}- Поднять поднос",
                    0xFFFFFFCC,
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_X),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z),
                    9.0
                );
                CreateDynamic3DTextLabel
                (
                    "Список\n"\
                    "товаров\n"\
                    "{FFD83D}Введите /buy",
                    0x00CC00EE,
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_X),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,
                    8.0
                );
                CreatePickup(1027023, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_KONDITER, idx);
            }
            case BUSINESS_INTERIOR_SHOP_GARDEN:
            {
                CreatePickup(1913423, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_GARDEN, idx);
                CreateDynamicCP(-1038.3335,687.4626,1001.00001.5);
            }
            case BUSINESS_INTERIOR_AVTOZAP:
            {
                CreatePickup(1913423, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_AVTOZAP, idx);
                CreateDynamicCP(1555.7836,-2400.7815,1001.00001.0);
            }
            case BUSINESS_INTERIOR_PARIK:
            {
                CreateDynamic3DTextLabel
                (
                    "Покупка аксессуаров",
                    0x00CC00EE,
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_X),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,
                    8.0
                );
                CreatePickup(127623, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BARBER, idx);
            }
            case BUSINESS_INTERIOR_CLUB, BUSINESS_INTERIOR_CASINO:
            {
                CreateDynamic3DTextLabel
                (
                    "Меню бара:\n\n"\
                    "{6699FF}1. Лимонад\n"\
                    "2. Пиво\n"\
                    "3. Вино\n"\
                    "4. Шампанское\n"\
                    "5. Водка\n"\
                    "6. Коньяк\n"\
                    "7. Виски\n"\
                    "8. Абсент\n"\
                    "{00CC66}9. Закуска\n"\
                    "10. Сигара",
                    0xFFFFFFCC,
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_X),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z),
                    9.0
                );
                buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z)1.0, _, _, _, 8.0);
            }
            case BUSINESS_INTERIOR_REALTOR_BIZ:
            {
                g_business_realtor_label = CreateDynamic3DTextLabel
                (
                    "Состояние бизнеса",
                    0xCCFF66FF,
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_X),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z),
                    10.0
                );
                CreatePickup(123923, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1);
                buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) - 1.01.2, _, _, _, 10.0);

                CallLocalFunction("UpdateRealtorBizInfo""");
            }
            case BUSINESS_INTERIOR_REALTOR_HOME:
            {
                g_house_realtor_label = CreateDynamic3DTextLabel
                (
                    "Состояние недвижимости",
                    0xCCFF66FF,
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_X),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_LABEL_POS_Z),
                    10.0
                );
                CreatePickup(127323158.4875745.818425.8272, -1, PICKUP_ACTION_TYPE_REALTOR_HOME, idx);
                CreatePickup(127223156.3270746.595825.8272, -1, PICKUP_ACTION_TYPE_REALTOR_HOME, idx);

                CreatePickup(123923, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1);
                buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z)0.7, _, _, _, 5.0);

                CallLocalFunction("UpdateRealtorHomeInfo""");
            }
            case BUSINESS_INTERIOR_CLOTHING_SHOP:
            {
                CreatePickup(127523, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_CLOTHING, idx);
            }
            case BUSINESS_INTERIOR_HOTEL:
            {
                CreatePickup(127723, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1);

                CreateDynamic3DTextLabel("Услуги\n{FFFFFF}гост. комплекса"0x3399FFFF, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.85.0);
                buffer[0] = CreateDynamicCP(GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z)1.2, _, _, _, 20.0);
            }
            case BUSINESS_INTERIOR_CAR_MARKET:
            {
            }
            case BUSINESS_INTERIOR_CELL_SALON:
            {
                CreateDynamic3DTextLabel
                (
                    "Сотовый\n"\
                    "салон\n"\
                    "{FFD83D}Введите /buy",
                    0x00CC00EE,
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_X),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Y),
                    GetBusinessInteriorInfo(idx, BT_BUY_POS_Z) + 0.8,
                    8.0
                );
                CreatePickup(1913423, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_CELL_SALON, idx);
            }
            case BUSINESS_INTERIOR_COMP_CLUB:
            {
                CreatePickup(131423652.1079,-15.6575,1001.4328, -1, PICKUP_ACTION_TYPE_BIZ_PC_GAME, idx);
                CreatePickup(158123, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_PC_CLUB, idx);
            }
            case BUSINESS_INTERIOR_TIR:
            {
                CreatePickup(123923, -2729.8062,2918.2976,998.4515, -1, PICKUP_ACTION_TYPE_BIZ_TIR, idx);
            }
            case BUSINESS_INTERIOR_BUY_GUN:
            {
                CreatePickup(34823, GetBusinessInteriorInfo(idx, BT_BUY_POS_X), GetBusinessInteriorInfo(idx, BT_BUY_POS_Y), GetBusinessInteriorInfo(idx, BT_BUY_POS_Z), -1, PICKUP_ACTION_TYPE_BIZ_GUN, idx);
            }
        }
        SetBusinessInteriorInfo(idx, BT_BUY_CHECK_ID, buffer[0]);
    }
    printf("[Business]: Бизнесов загружено: %d", g_business_loaded);
}

 

 

 

Спойлер

public: UpdateBusinessLabel(businessid)
{
    new fmt_str[229 + 1];

    new linkov = GetBusinessData(businessid, B_ROOF);

    if(!IsBusinessOwned(businessid))
    {
        if(GetBusinessData(businessid, B_TYPE) == BUSINESS_TYPE_STO || GetBusinessData(businessid, B_TYPE) == BUSINESS_TYPE_DETEYLING )
        {
            if(linkov != -1)
            {
                format
                (
                    fmt_str, sizeof fmt_str,
                    "%s\n"\
                    "{66CC00}Бизнес продается\n"\
                    "Используйте /buybiz\n"\
                    "Цена: %s руб\n"\
                    "{FFFFFF}Крыша:{3399FF} %s",
                    GetBusinessData(businessid, B_NAME),
                    formatInt(GetBusinessData(businessid, B_PRICE)),
                    GetFamilyData(linkov, F_NAME)
                );
            }
            else
            {
                format
                (
                    fmt_str, sizeof fmt_str,
                    "%s\n"\
                    "{66CC00}Бизнес продается\n"\
                    "Используйте /buybiz\n"\
                    "Цена: %s руб\n"\
                    "{FFFFFF}Крыша:{3399FF} Отсутствует",
                    GetBusinessData(businessid, B_NAME),
                    formatInt(GetBusinessData(businessid, B_PRICE))
                );
            }
        }
        else
        {
            if(linkov != -1)
            {
                format
                (
                    fmt_str, sizeof fmt_str,
                    "%s\n"\
                    "{66CC00}Бизнес продается\n"\
                    "Используйте /buybiz\n"\
                    "Цена: %s руб\n"\
                    "{FFFFFF}Крыша:{3399FF} %s",
                    GetBusinessData(businessid, B_NAME),
                    formatInt(GetBusinessData(businessid, B_PRICE)),
                    GetFamilyData(linkov, F_NAME)
                );
            }
            else
            {
                format
                (
                    fmt_str, sizeof fmt_str,
                    "%s\n"\
                    "{66CC00}Бизнес продается\n"\
                    "Используйте /buybiz\n"\
                    "Цена: %s руб\n"\
                    "{FFFFFF}Крыша:{3399FF} Отсутствует",
                    GetBusinessData(businessid, B_NAME),
                    formatInt(GetBusinessData(businessid, B_PRICE))
                );
            }
        }
    }
    else
    {
        if(linkov != -1)
        {
            format
            (
                fmt_str, sizeof fmt_str,
                "%s\n"\
                "{FFFFFF}Владелец: {3399FF}%s\n"\
                "{FFFFFF}Крыша:{3399FF} Отсутствует\n",
                GetBusinessData(businessid, B_NAME),
                GetBusinessData(businessid, B_OWNER_NAME)
            );
        }
        else
        {
            format
            (
                fmt_str, sizeof fmt_str,
                "%s\n"\
                "{FFFFFF}Владелец: {3399FF}%s\n"\
                "{FFFFFF}Крыша:{3399FF} %s\n",
                GetBusinessData(businessid, B_NAME),
                GetBusinessData(businessid, B_OWNER_NAME),
                GetFamilyData(linkov, F_NAME)
            );
        }
        if(!GetBusinessData(businessid, B_LOCK_STATUS))
        {
            if(GetBusinessData(businessid, B_ENTER_PRICE) > 0)
            {
                if(GetBusinessData(businessid, B_TYPE) == BUSINESS_TYPE_STO || GetBusinessData(businessid, B_TYPE) == BUSINESS_TYPE_DETEYLING )
                {
                format(fmt_str, sizeof fmt_str, "%s{66CC00}Цена услуг: {FF9900}%s руб\n", fmt_str, formatInt(GetBusinessData(businessid, B_ENTER_PRICE)));
                }
                else format(fmt_str, sizeof fmt_str, "%s{66CC00}Вход: {FF9900}%s руб\n", fmt_str, formatInt(GetBusinessData(businessid, B_ENTER_PRICE)));
            }
            else strcat(fmt_str, "{66CC00}Вход свободный\n");
        }
        else strcat(fmt_str, "{FF6600}Закрыто\n");
        if(GetBusinessData(businessid, B_TYPE) == BUSINESS_TYPE_STO || GetBusinessData(businessid, B_TYPE) == BUSINESS_TYPE_DETEYLING)
        {
            strcat(fmt_str, "{FFFFFF}Чтобы заехать на тюнинг нажмите H\n");
        }
    }
    UpdateDynamic3DTextLabelText(GetBusinessData(businessid, B_LABEL), 0xFFFF00FF, fmt_str);
}

 

Инофрмация обновляеть только после смены допустим цены за вход, а после пререзагрузки сервера пусто в крыше

Отредактировано пользователем VaDoS

Поделиться сообщением


Ссылка на сообщение

2 ответа на этот вопрос

  • 0
Спойлер

код ужасен

 

Заметка от Cawfee , создано

2.17. Запрещено флудить, оффтопить, заниматься флеймом. 

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
  • 0

После окончания кода , сделай тайм-аут сохранения базы данных 5-10 минут. Должно все заработать.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • angel_sinvays
      От angel_sinvays
      Attractive RP
      Скачать файл Давно не было сливов , сейчас я вам готов продемонстрировать копию проекта Attractive RolePlay
      Изначально слив был выложен на моём канале, но после я хочу выложить его сюда.
      Добавил angel_sinvays Добавлено 01.05.2024 Категория Моды Автор Angel Sinvays  
    • angel_sinvays
      От angel_sinvays
      Давно не было сливов , сейчас я вам готов продемонстрировать копию проекта Attractive RolePlay
      Изначально слив был выложен на моём канале, но после я хочу выложить его сюда.
    • angel_sinvays
      От angel_sinvays
      Как давно никто не слышал о Luxury RolePlay, теперь же я хочу вам напомнить о нём и продать за малую цену.
      В моде было сделано ОЧЕНЬ много доработок и изменений, при открытии кода вы сами поймёте о чем я имею ввиду.
      Основа мода: Active RP (Avenue RP)
       
      Что сделано:
      1. Сделана услуга премиум аккаунт
      2. В магазин добавлена новая услуга Титул
      3. Новые автомобили в донате BMW I8, BMW M5,  BMW Vision M NEXT, Mercedes Benz G-класс, Rolls-Royce Phantom, у них есть ускорения как спидхак
      4. Сделана возможность скрывать индикатор сытости в настройках
      5. Сделан новый инвентарь (/mm -> Инвентарь)
      6. Сделана возможность сменить время года в личных настройках
      7. Слоты под личный транспорт увеличены до 7
      8. Обновлён интерьер Мэрии
      9. Обновлён спавн
      10  Обновлён анти-чит
      11. Обновлён логотип
      12. Добавлена аренда мопедов
      13. Статистика игрока copy Russia RP
      14. Из регистрации на сервере убран ввод почты
      15. Для полиции добавлены команды /cap, /baton, /armour
      16. Обновлена система анти-слива
      17. Обновлена система анти-рекламы
      18. Удалён код который не используется
      19. Сделана новая система FD (private)
      20. Добавлена система викторины
      21. Система жалобов на баги
      22. Система рулеток
      23. Исправлено многочисленное количество багов с БД, системами.
      24. При пополнении казны на 500+ миллионов, вам выдается 10 рублей.
      25. Переделано /showudost, теперь в графу Должности пишет название, а не номер ранга.
       
       
      Здесь я рассписал все основные аспекты затронутые в моде, сам мод имеет ценность еще с 2020 года, старичкам которые хотят зайти на старый Luxury он приглянётся, либо тем кто хочет его переоткрыть так же.
      Жалко продавать этот мод, но ему нужно найти своё место не пылиться же у меня на компьютере)
      Много скриншотов к сожалению я не смог раскопать чтобы было видно все системы, но всю суть мода вы увидите в них (мне просто лень заливать мод)
      UPD: Если у вас будет полное желание и я это увижу, я буду дорабатывать этот мод.
    • angel_sinvays
      От angel_sinvays


      Скачать файл Luxury RolePlay (Оригинал)
      Как давно никто не слышал о Luxury RolePlay, теперь же я хочу вам напомнить о нём и продать за малую цену.
      В моде было сделано ОЧЕНЬ много доработок и изменений, при открытии кода вы сами поймёте о чем я имею ввиду.
      Основа мода: Active RP (Avenue RP)
       
      Что сделано:
      1. Сделана услуга премиум аккаунт
      2. В магазин добавлена новая услуга Титул
      3. Новые автомобили в донате BMW I8, BMW M5,  BMW Vision M NEXT, Mercedes Benz G-класс, Rolls-Royce Phantom, у них есть ускорения как спидхак
      4. Сделана возможность скрывать индикатор сытости в настройках
      5. Сделан новый инвентарь (/mm -> Инвентарь)
      6. Сделана возможность сменить время года в личных настройках
      7. Слоты под личный транспорт увеличены до 7
      8. Обновлён интерьер Мэрии
      9. Обновлён спавн
      10  Обновлён анти-чит
      11. Обновлён логотип
      12. Добавлена аренда мопедов
      13. Статистика игрока copy Russia RP
      14. Из регистрации на сервере убран ввод почты
      15. Для полиции добавлены команды /cap, /baton, /armour
      16. Обновлена система анти-слива
      17. Обновлена система анти-рекламы
      18. Удалён код который не используется
      19. Сделана новая система FD (private)
      20. Добавлена система викторины
      21. Система жалобов на баги
      22. Система рулеток
      23. Исправлено многочисленное количество багов с БД, системами.
      24. При пополнении казны на 500+ миллионов, вам выдается 10 рублей.
      25. Переделано /showudost, теперь в графу Должности пишет название, а не номер ранга.
       
       
      Здесь я рассписал все основные аспекты затронутые в моде, сам мод имеет ценность еще с 2020 года, старичкам которые хотят зайти на старый Luxury он приглянётся, либо тем кто хочет его переоткрыть так же.
      Жалко продавать этот мод, но ему нужно найти своё место не пылиться же у меня на компьютере)
      Много скриншотов к сожалению я не смог раскопать чтобы было видно все системы, но всю суть мода вы увидите в них (мне просто лень заливать мод)
      UPD: Если у вас будет полное желание и я это увижу, я буду дорабатывать этот мод.
      Добавил angel_sinvays Добавлено 01.05.2024 Категория Моды Автор Angel Sinvays (Kizaru Entancion)  
    • Redmondd
      От Redmondd
      Не появляется актер, хотя 3д текст, который должен быть там, где он стоит появляется
      new actorp = CreateActor(187, 356.2976,179.9136,1008.3762,171.8852); ApplyActorAnimation(actorp, "PED", "IDLE_STANCE", 4.1, 0, 0, 0, 0, 0); Create3DTextLabel("Работник Мэрии", 0xF7FF00FF, 356.2976,179.9136,1008.3762,50.0, 2, 1);