Вопросы

VaDoS
Новичок
Спойлер

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
hokageud
Завсегдатый
Спойлер

код ужасен

 

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

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

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

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


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

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

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


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

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

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

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба