Вопросы

Привет, мне друг добавил команду для создания домов, и я решил её проверить!

Создаю дом всё как надо, /addhouse [ТИП] [СТОИМОСТЬ] [ЦЕНА АРЕНДЫ]

Создаю так: /addhouse (2-Высокий) 50000000 100000

Дом создался под ID 0

 

Я пере захожу, создаю ещё один дом, а он начал создаваться опять с 0 ID.

Посмотрел то место где я создавал дом, того дома нет он просто переместился!

Купил дом который создал, потом вышел из него, а вышел в другом месте где создавал дом в первый раз!

Что делать кто знает?

 

Спойлер

CMD:addhouse(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) != 6) return 1;

    extract params -> new type, price, rent_price; else return SendClientMessage(playerid, 0xCECECEFF, "Используйте: /addhouse [тип] [стоимость] [цена аренды]");

    new fmt_text[300];

    if(!(0 <= type <= sizeof g_house_type - 1))
    {
        SendClientMessage(playerid, 0x999999FF, "Типы домов:");

        for(new i; i < sizeof g_house_type; i ++)
        {
            format(fmt_text, sizeof fmt_text, "%d. %s", i, GetHouseTypeInfo(i, HT_NAME));

            SendClientMessage(playerid, 0xCECECEFF, fmt_text);
        }

        return 1;
    }

    if(price < 1) return SendClientMessage(playerid, 0x999999FF, "Стоимость дома не может быть меньше 1");

    if(rent_price < 1) return SendClientMessage(playerid, 0x999999FF, "Стоимость аренды не может быть меньше 1");

    new Cache: result,
        idx = g_house_loaded;

    GetPlayerPos(playerid, g_house[idx][H_POS_X], g_house[idx][H_POS_Y], g_house[idx][H_POS_Z]);

    new buffer[2];

    buffer[0] = Get2DCity(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));
    buffer[1] = Get2DZone(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));

    SetHouseData(idx, H_CITY,            buffer[0]);
    SetHouseData(idx, H_ZONE,            buffer[1]);

    SetHouseData(idx, H_PRICE,            price);
    SetHouseData(idx, H_RENT_PRICE,        rent_price);
    SetHouseData(idx, H_TYPE,            type);

    SetHouseData(idx, H_ENTRACE,        -1);

    format
    (
        fmt_text, sizeof fmt_text,
        "INSERT INTO houses \
        (city, zone, type, price, rent_price, x, y, z)\
        VALUES ('%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f')",
        GetHouseData(idx, H_CITY),
        GetHouseData(idx, H_ZONE),
        type, price, rent_price,
        GetHouseData(idx, H_POS_X),
        GetHouseData(idx, H_POS_Y),
        GetHouseData(idx, H_POS_Z)
    );

    result = mysql_query(mysql, fmt_text, true);

    SetHouseData(idx, H_SQL_ID,         cache_insert_id());

    cache_delete(result);

    g_house_loaded ++;

    UpdateHouse(idx);

    format(fmt_text, sizeof fmt_text, "[A] %s[%d] создал дом ¹%d (%s / %s)", GetPlayerNameEx(playerid), playerid, idx, GetCityName(GetHouseData(idx, H_CITY)), GetZoneName(GetHouseData(idx, H_ZONE)));

    SendMessageToAdmins(fmt_text, 0x66CC33FF);

    SendClientMessage(playerid, 0x3399FFFF, "Используйте {FFFF00}/setexitpos и /setcarpos{3399FF}, чтобы завершить создание дома");

    return 1;
}

 

CMD:setexitpos(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) != 6) return 1;

    extract params -> new house_id; else return SendClientMessage(playerid, 0xCECECEFF, "Используйте: /setexitpos [id дома]");

    if(!(0 <= house_id <= g_house_loaded - 1)) return SendClientMessage(playerid, 0x999999FF, "Данного дома не существует на сервере");

    GetPlayerPos(playerid, g_house[house_id][H_EXIT_POS_X], g_house[house_id][H_EXIT_POS_Y], g_house[house_id][H_EXIT_POS_Z]);
    GetPlayerFacingAngle(playerid, g_house[house_id][H_EXIT_ANGLE]);

    new fmt_text[144];

    format
    (
        fmt_text, sizeof fmt_text,
        "UPDATE houses SET exit_x='%f', exit_y='%f', exit_z='%f', exit_angle='%f' WHERE id=%d",
        GetHouseData(house_id, H_EXIT_POS_X),
        GetHouseData(house_id, H_EXIT_POS_Y),
        GetHouseData(house_id, H_EXIT_POS_Z),
        GetHouseData(house_id, H_EXIT_ANGLE),
        GetHouseData(house_id, H_SQL_ID)
    );

    mysql_query(mysql, fmt_text, false);

    format(fmt_text, sizeof fmt_text, "Вы успешно изменили координаты выхода у дома №%d", house_id);

    SendClientMessage(playerid, 0x66CC33FF, fmt_text);

    return 1;
}

 

CMD:setcarpos(playerid, params[])
{
    if(GetPlayerAdminEx(playerid) != 6) return 1;

    extract params -> new house_id; else return SendClientMessage(playerid, 0xCECECEFF, "Используйте: /setcarpos [id дома]");

    if(!(0 <= house_id <= g_house_loaded - 1)) return SendClientMessage(playerid, 0x999999FF, "Данного дома не существует на сервере");

    GetPlayerPos(playerid, g_house[house_id][H_CAR_POS_X], g_house[house_id][H_CAR_POS_Y], g_house[house_id][H_CAR_POS_Z]);
    GetPlayerFacingAngle(playerid, g_house[house_id][H_CAR_ANGLE]);

    new fmt_text[144];

    format
    (
        fmt_text, sizeof fmt_text,
        "UPDATE houses SET car_x='%f', car_y='%f', car_z='%f', car_angle='%f' WHERE id=%d",
        GetHouseData(house_id, H_CAR_POS_X),
        GetHouseData(house_id, H_CAR_POS_Y),
        GetHouseData(house_id, H_CAR_POS_Z),
        GetHouseData(house_id, H_CAR_ANGLE),
        GetHouseData(house_id, H_SQL_ID)
    );

    mysql_query(mysql, fmt_text, false);

    format(fmt_text, sizeof fmt_text, "Вы успешно изменили координаты спавна авто у дома №%d", house_id);

    SendClientMessage(playerid, 0x66CC33FF, fmt_text);

    return 1;
}

 

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

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


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

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

  • 0

Приветствую, возможно у вас не идет сохранение в базу данных, mysql.log файл покажите.

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


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

Файл сильно большой

Так что только ZIP

mysql.zip

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


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

Когда вы создали дом, в базе данных он появился, в таблице я так понимаю `houses`?

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


Ссылка на сообщение
  • 0
1 час назад, danya_white сказал:

Когда вы создали дом, в базе данных он появился, в таблице я так понимаю `houses`?

Да

 

Только что, SendFo RP сказал:

Да

 

Когда начинаешь создавать с самого начала создаются дома поп порядку 0.1.2.3 и т.д.

Но когда пере заходишь и начинаешь продолжать расстановку домов, то всё начинается с самого начала опять с 0 ид

а те дома просто переносятся даже если он купленый

 

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


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

@SendFo RP В базе запись появляется после того, как дом создан? 

Если да, то нужно смотреть код загрузки домов, с ним что-то не то скорее всего. 

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


Ссылка на сообщение
  • 0
Только что, DEST сказал:

@SendFo RP В базе запись появляется после того, как дом создан? 

Если да, то нужно смотреть код загрузки домов, с ним что-то не то скорее всего. 

Я создал дом, он появился в бд.

потом пере захожу, всё как надо работает.

 

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


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

@SendFo RPТак в чем проблема тогда?

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


Ссылка на сообщение
  • 0
Только что, danya_white сказал:

@SendFo RPТак в чем проблема тогда?

я создал пару домов, они шли по порядку с 0 ид по 3 ид.

Пере захожу что бы до расставлять дома, а они почему то с 0 ид опять начали создаваться.

купил дом под 0 ид для примера, пере зашёл создал дом, а он опять под 0 ид и перенесся мой дом в другое место, а место выхода осталось там где у его указал при первом создании дома!

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


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

Код загрузки домов покажи

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


Ссылка на сообщение
  • 0
1 минуту назад, danya_white сказал:

Код загрузки домов покажи

где их найти? Я не знаю просто

 

 

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


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

LoadHouses должно быть, возможно у вас как-то по другому

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


Ссылка на сообщение
  • 0
1 минуту назад, danya_white сказал:

LoadHouses должно быть, возможно у вас как-то по другому

Спойлер

    LoadHouses();
    LoadHousesRenters();

 

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

    result = mysql_query(mysql, "SELECT * FROM `houses`", true);

    for(idx = 0; idx < MAX_HOUSES; idx++)
    {
        cache_get_value_name(idx, "h_owner", g_house[idx][H_OWNER_NAME]);

        cache_get_value_name(idx, "name", g_house[idx][H_NAME]);

        cache_get_value_name_int(idx, "city", GetHouseData(idx, H_CITY));
        cache_get_value_name_int(idx, "zone", GetHouseData(idx, H_ZONE));
        cache_get_value_name_int(idx, "improvements", GetHouseData(idx, H_IMPROVEMENTS));

        cache_get_value_name_int(idx, "rent_time", GetHouseData(idx, H_RENT_DATE));
        cache_get_value_name_int(idx, "price", GetHouseData(idx, H_PRICE));
        cache_get_value_name_int(idx, "rent_price", GetHouseData(idx, H_RENT_PRICE));
        cache_get_value_name_int(idx, "type", GetHouseData(idx, H_TYPE));
        cache_get_value_name_int(idx, "lock", bool: GetHouseData(idx, H_LOCK_STATUS));

        cache_get_value_name_float(idx, "x", GetHouseData(idx, H_POS_X));
        cache_get_value_name_float(idx, "y", GetHouseData(idx, H_POS_Y));
        cache_get_value_name_float(idx, "z", GetHouseData(idx, H_POS_Z));

        cache_get_value_name_float(idx, "exit_x", GetHouseData(idx, H_EXIT_POS_X));
        cache_get_value_name_float(idx, "exit_y", GetHouseData(idx, H_EXIT_POS_Y));
        cache_get_value_name_float(idx, "exit_z", GetHouseData(idx, H_EXIT_POS_Z));
        cache_get_value_name_float(idx, "exit_angle", GetHouseData(idx, H_EXIT_ANGLE));

        cache_get_value_name_float(idx, "car_x", GetHouseData(idx, H_CAR_POS_X));
        cache_get_value_name_float(idx, "car_y", GetHouseData(idx, H_CAR_POS_Y));
        cache_get_value_name_float(idx, "car_z", GetHouseData(idx, H_CAR_POS_Z));
        cache_get_value_name_float(idx, "car_angle", GetHouseData(idx, H_CAR_ANGLE));

        cache_get_value_name_float(idx, "helicopter_x", GetHouseData(idx, H_HELI_POS_X));
        cache_get_value_name_float(idx, "helicopter_y", GetHouseData(idx, H_HELI_POS_Y));
        cache_get_value_name_float(idx, "helicopter_z", GetHouseData(idx, H_HELI_POS_Z));
        cache_get_value_name_float(idx, "helicopter_angle", GetHouseData(idx, H_HELI_ANGLE));

        cache_get_value_name_float(idx, "store_x", GetHouseData(idx, H_STORE_X));
        cache_get_value_name_float(idx, "store_y", GetHouseData(idx, H_STORE_Y));
        cache_get_value_name_float(idx, "store_z", GetHouseData(idx, H_STORE_Z));

        cache_get_value_name_int(idx, "store_metall", GetHouseData(idx, H_STORE_METALL));
        cache_get_value_name_int(idx, "store_drugs", GetHouseData(idx, H_STORE_DRUGS));
        cache_get_value_name_int(idx, "store_weapon", GetHouseData(idx, H_STORE_WEAPON));
        cache_get_value_name_int(idx, "store_ammo", GetHouseData(idx, H_STORE_AMMO));
        cache_get_value_name_int(idx, "store_skin", GetHouseData(idx, H_STORE_SKIN));

        // -------------------------
        SetHouseData(idx, H_STORE_LABEL, Text3D:-1);

        buffer[0] = GetHouseData(idx, H_TYPE);
        if(!strlen(GetHouseData(idx, H_NAME)))
            format(g_house[idx][H_NAME], 20, GetHouseTypeInfo(buffer[0], HT_NAME), 0);

        if(GetHouseData(idx, H_CITY) == -1 || GetHouseData(idx, H_ZONE) == -1)
        {
            buffer[0] = Get2DCity(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));
            buffer[1] = Get2DZone(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));

            SetHouseData(idx, H_CITY, buffer[0]);
            SetHouseData(idx, H_ZONE, buffer[1]);

            mysql_format(mysql, query, sizeof query, "UPDATE houses SET city=%d,zone=%d WHERE id=%d", buffer[0], buffer[1], idx);
            mysql_tquery(mysql, query);
        }

        if(!IsHouseOwned(idx))
        {
            SetHouseData(idx, H_IMPROVEMENTS,     0);
            SetHouseData(idx, H_LOCK_STATUS,     false);
        }
        UpdateHouse(idx);

        HouseHealthInit(idx);
        HouseStoreInit(idx);
    }

    cache_delete(result);

    printf("[Houses]: Домов загружено: %d", MAX_HOUSES);
}

public: LoadHousesRenters()
{
    new house_id;
    new room_id;
    new rent_time;
    new time;
    new owner_name[MAX_PLAYER_NAME];

    new Cache: result, rows;

    result = mysql_query(mysql, "SELECT * FROM houses_renters", true);
    rows = cache_num_rows();

    for(new i; i < MAX_HOUSES; i++) for(new x; x < MAX_HOUSE_ROOMS; x++) format(GetHouseRenterInfo(i, x, HR_OWNER_NAME), MAX_PLAYER_NAME, "null");

    for(new idx; idx < rows; idx ++)
    {
        cache_get_value_name(idx, "owner_name", owner_name);

        cache_get_value_name_int(idx, "house_id", house_id);
        cache_get_value_name_int(idx, "room_id", room_id);
        cache_get_value_name_int(idx, "rent_time", rent_time);
        cache_get_value_name_int(idx, "time", time);

        if(!strlen(owner_name))
            owner_name[0] = '\1';

        HouseRenterInit(owner_name, house_id, room_id, rent_time, time);
    }

    cache_delete(result);

    printf("[Houses]: Арендаторов загружено: %d", rows);
}

 

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


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

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

    result = mysql_query(mysql, "SELECT * FROM `houses`", true);

    for(idx = 0; idx < MAX_HOUSES; idx++)
    {

        cache_get_value_name_int(idx, "house_id", house_id);
        cache_get_value_name(idx, "h_owner", g_house[idx][H_OWNER_NAME]);

        cache_get_value_name(idx, "name", g_house[idx][H_NAME]);

        cache_get_value_name_int(idx, "city", GetHouseData(idx, H_CITY));
        cache_get_value_name_int(idx, "zone", GetHouseData(idx, H_ZONE));
        cache_get_value_name_int(idx, "improvements", GetHouseData(idx, H_IMPROVEMENTS));

        cache_get_value_name_int(idx, "rent_time", GetHouseData(idx, H_RENT_DATE));
        cache_get_value_name_int(idx, "price", GetHouseData(idx, H_PRICE));
        cache_get_value_name_int(idx, "rent_price", GetHouseData(idx, H_RENT_PRICE));
        cache_get_value_name_int(idx, "type", GetHouseData(idx, H_TYPE));
        cache_get_value_name_int(idx, "lock", bool: GetHouseData(idx, H_LOCK_STATUS));

        cache_get_value_name_float(idx, "x", GetHouseData(idx, H_POS_X));
        cache_get_value_name_float(idx, "y", GetHouseData(idx, H_POS_Y));
        cache_get_value_name_float(idx, "z", GetHouseData(idx, H_POS_Z));

        cache_get_value_name_float(idx, "exit_x", GetHouseData(idx, H_EXIT_POS_X));
        cache_get_value_name_float(idx, "exit_y", GetHouseData(idx, H_EXIT_POS_Y));
        cache_get_value_name_float(idx, "exit_z", GetHouseData(idx, H_EXIT_POS_Z));
        cache_get_value_name_float(idx, "exit_angle", GetHouseData(idx, H_EXIT_ANGLE));

        cache_get_value_name_float(idx, "car_x", GetHouseData(idx, H_CAR_POS_X));
        cache_get_value_name_float(idx, "car_y", GetHouseData(idx, H_CAR_POS_Y));
        cache_get_value_name_float(idx, "car_z", GetHouseData(idx, H_CAR_POS_Z));
        cache_get_value_name_float(idx, "car_angle", GetHouseData(idx, H_CAR_ANGLE));

        cache_get_value_name_float(idx, "helicopter_x", GetHouseData(idx, H_HELI_POS_X));
        cache_get_value_name_float(idx, "helicopter_y", GetHouseData(idx, H_HELI_POS_Y));
        cache_get_value_name_float(idx, "helicopter_z", GetHouseData(idx, H_HELI_POS_Z));
        cache_get_value_name_float(idx, "helicopter_angle", GetHouseData(idx, H_HELI_ANGLE));

        cache_get_value_name_float(idx, "store_x", GetHouseData(idx, H_STORE_X));
        cache_get_value_name_float(idx, "store_y", GetHouseData(idx, H_STORE_Y));
        cache_get_value_name_float(idx, "store_z", GetHouseData(idx, H_STORE_Z));

        cache_get_value_name_int(idx, "store_metall", GetHouseData(idx, H_STORE_METALL));
        cache_get_value_name_int(idx, "store_drugs", GetHouseData(idx, H_STORE_DRUGS));
        cache_get_value_name_int(idx, "store_weapon", GetHouseData(idx, H_STORE_WEAPON));
        cache_get_value_name_int(idx, "store_ammo", GetHouseData(idx, H_STORE_AMMO));
        cache_get_value_name_int(idx, "store_skin", GetHouseData(idx, H_STORE_SKIN));

        // -------------------------
        SetHouseData(idx, H_STORE_LABEL, Text3D:-1);

        buffer[0] = GetHouseData(idx, H_TYPE);
        if(!strlen(GetHouseData(idx, H_NAME)))
            format(g_house[idx][H_NAME], 20, GetHouseTypeInfo(buffer[0], HT_NAME), 0);

        if(GetHouseData(idx, H_CITY) == -1 || GetHouseData(idx, H_ZONE) == -1)
        {
            buffer[0] = Get2DCity(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));
            buffer[1] = Get2DZone(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));

            SetHouseData(idx, H_CITY, buffer[0]);
            SetHouseData(idx, H_ZONE, buffer[1]);

            mysql_format(mysql, query, sizeof query, "UPDATE houses SET city=%d,zone=%d WHERE id=%d", buffer[0], buffer[1], idx);
            mysql_tquery(mysql, query);
        }

        if(!IsHouseOwned(idx))
        {
            SetHouseData(idx, H_IMPROVEMENTS,     0);
            SetHouseData(idx, H_LOCK_STATUS,     false);
        }
        UpdateHouse(idx);

        HouseHealthInit(idx);
        HouseStoreInit(idx);
    }

    cache_delete(result);

    printf("[Houses]: Домов загружено: %d", MAX_HOUSES);
}

Попробуйте так. 

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


Ссылка на сообщение
  • 0
1 минуту назад, danya_white сказал:

 


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

    result = mysql_query(mysql, "SELECT * FROM `houses`", true);

    for(idx = 0; idx < MAX_HOUSES; idx++)
    {

        cache_get_value_name_int(idx, "house_id", house_id);
        cache_get_value_name(idx, "h_owner", g_house[idx][H_OWNER_NAME]);

        cache_get_value_name(idx, "name", g_house[idx][H_NAME]);

        cache_get_value_name_int(idx, "city", GetHouseData(idx, H_CITY));
        cache_get_value_name_int(idx, "zone", GetHouseData(idx, H_ZONE));
        cache_get_value_name_int(idx, "improvements", GetHouseData(idx, H_IMPROVEMENTS));

        cache_get_value_name_int(idx, "rent_time", GetHouseData(idx, H_RENT_DATE));
        cache_get_value_name_int(idx, "price", GetHouseData(idx, H_PRICE));
        cache_get_value_name_int(idx, "rent_price", GetHouseData(idx, H_RENT_PRICE));
        cache_get_value_name_int(idx, "type", GetHouseData(idx, H_TYPE));
        cache_get_value_name_int(idx, "lock", bool: GetHouseData(idx, H_LOCK_STATUS));

        cache_get_value_name_float(idx, "x", GetHouseData(idx, H_POS_X));
        cache_get_value_name_float(idx, "y", GetHouseData(idx, H_POS_Y));
        cache_get_value_name_float(idx, "z", GetHouseData(idx, H_POS_Z));

        cache_get_value_name_float(idx, "exit_x", GetHouseData(idx, H_EXIT_POS_X));
        cache_get_value_name_float(idx, "exit_y", GetHouseData(idx, H_EXIT_POS_Y));
        cache_get_value_name_float(idx, "exit_z", GetHouseData(idx, H_EXIT_POS_Z));
        cache_get_value_name_float(idx, "exit_angle", GetHouseData(idx, H_EXIT_ANGLE));

        cache_get_value_name_float(idx, "car_x", GetHouseData(idx, H_CAR_POS_X));
        cache_get_value_name_float(idx, "car_y", GetHouseData(idx, H_CAR_POS_Y));
        cache_get_value_name_float(idx, "car_z", GetHouseData(idx, H_CAR_POS_Z));
        cache_get_value_name_float(idx, "car_angle", GetHouseData(idx, H_CAR_ANGLE));

        cache_get_value_name_float(idx, "helicopter_x", GetHouseData(idx, H_HELI_POS_X));
        cache_get_value_name_float(idx, "helicopter_y", GetHouseData(idx, H_HELI_POS_Y));
        cache_get_value_name_float(idx, "helicopter_z", GetHouseData(idx, H_HELI_POS_Z));
        cache_get_value_name_float(idx, "helicopter_angle", GetHouseData(idx, H_HELI_ANGLE));

        cache_get_value_name_float(idx, "store_x", GetHouseData(idx, H_STORE_X));
        cache_get_value_name_float(idx, "store_y", GetHouseData(idx, H_STORE_Y));
        cache_get_value_name_float(idx, "store_z", GetHouseData(idx, H_STORE_Z));

        cache_get_value_name_int(idx, "store_metall", GetHouseData(idx, H_STORE_METALL));
        cache_get_value_name_int(idx, "store_drugs", GetHouseData(idx, H_STORE_DRUGS));
        cache_get_value_name_int(idx, "store_weapon", GetHouseData(idx, H_STORE_WEAPON));
        cache_get_value_name_int(idx, "store_ammo", GetHouseData(idx, H_STORE_AMMO));
        cache_get_value_name_int(idx, "store_skin", GetHouseData(idx, H_STORE_SKIN));

        // -------------------------
        SetHouseData(idx, H_STORE_LABEL, Text3D:-1);

        buffer[0] = GetHouseData(idx, H_TYPE);
        if(!strlen(GetHouseData(idx, H_NAME)))
            format(g_house[idx][H_NAME], 20, GetHouseTypeInfo(buffer[0], HT_NAME), 0);

        if(GetHouseData(idx, H_CITY) == -1 || GetHouseData(idx, H_ZONE) == -1)
        {
            buffer[0] = Get2DCity(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));
            buffer[1] = Get2DZone(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));

            SetHouseData(idx, H_CITY, buffer[0]);
            SetHouseData(idx, H_ZONE, buffer[1]);

            mysql_format(mysql, query, sizeof query, "UPDATE houses SET city=%d,zone=%d WHERE id=%d", buffer[0], buffer[1], idx);
            mysql_tquery(mysql, query);
        }

        if(!IsHouseOwned(idx))
        {
            SetHouseData(idx, H_IMPROVEMENTS,     0);
            SetHouseData(idx, H_LOCK_STATUS,     false);
        }
        UpdateHouse(idx);

        HouseHealthInit(idx);
        HouseStoreInit(idx);
    }

    cache_delete(result);

    printf("[Houses]: Домов загружено: %d", MAX_HOUSES);
}

Попробуйте так. 

Сейчас попробую

 

4 минуты назад, danya_white сказал:

 


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

    result = mysql_query(mysql, "SELECT * FROM `houses`", true);

    for(idx = 0; idx < MAX_HOUSES; idx++)
    {

        cache_get_value_name_int(idx, "house_id", house_id);
        cache_get_value_name(idx, "h_owner", g_house[idx][H_OWNER_NAME]);

        cache_get_value_name(idx, "name", g_house[idx][H_NAME]);

        cache_get_value_name_int(idx, "city", GetHouseData(idx, H_CITY));
        cache_get_value_name_int(idx, "zone", GetHouseData(idx, H_ZONE));
        cache_get_value_name_int(idx, "improvements", GetHouseData(idx, H_IMPROVEMENTS));

        cache_get_value_name_int(idx, "rent_time", GetHouseData(idx, H_RENT_DATE));
        cache_get_value_name_int(idx, "price", GetHouseData(idx, H_PRICE));
        cache_get_value_name_int(idx, "rent_price", GetHouseData(idx, H_RENT_PRICE));
        cache_get_value_name_int(idx, "type", GetHouseData(idx, H_TYPE));
        cache_get_value_name_int(idx, "lock", bool: GetHouseData(idx, H_LOCK_STATUS));

        cache_get_value_name_float(idx, "x", GetHouseData(idx, H_POS_X));
        cache_get_value_name_float(idx, "y", GetHouseData(idx, H_POS_Y));
        cache_get_value_name_float(idx, "z", GetHouseData(idx, H_POS_Z));

        cache_get_value_name_float(idx, "exit_x", GetHouseData(idx, H_EXIT_POS_X));
        cache_get_value_name_float(idx, "exit_y", GetHouseData(idx, H_EXIT_POS_Y));
        cache_get_value_name_float(idx, "exit_z", GetHouseData(idx, H_EXIT_POS_Z));
        cache_get_value_name_float(idx, "exit_angle", GetHouseData(idx, H_EXIT_ANGLE));

        cache_get_value_name_float(idx, "car_x", GetHouseData(idx, H_CAR_POS_X));
        cache_get_value_name_float(idx, "car_y", GetHouseData(idx, H_CAR_POS_Y));
        cache_get_value_name_float(idx, "car_z", GetHouseData(idx, H_CAR_POS_Z));
        cache_get_value_name_float(idx, "car_angle", GetHouseData(idx, H_CAR_ANGLE));

        cache_get_value_name_float(idx, "helicopter_x", GetHouseData(idx, H_HELI_POS_X));
        cache_get_value_name_float(idx, "helicopter_y", GetHouseData(idx, H_HELI_POS_Y));
        cache_get_value_name_float(idx, "helicopter_z", GetHouseData(idx, H_HELI_POS_Z));
        cache_get_value_name_float(idx, "helicopter_angle", GetHouseData(idx, H_HELI_ANGLE));

        cache_get_value_name_float(idx, "store_x", GetHouseData(idx, H_STORE_X));
        cache_get_value_name_float(idx, "store_y", GetHouseData(idx, H_STORE_Y));
        cache_get_value_name_float(idx, "store_z", GetHouseData(idx, H_STORE_Z));

        cache_get_value_name_int(idx, "store_metall", GetHouseData(idx, H_STORE_METALL));
        cache_get_value_name_int(idx, "store_drugs", GetHouseData(idx, H_STORE_DRUGS));
        cache_get_value_name_int(idx, "store_weapon", GetHouseData(idx, H_STORE_WEAPON));
        cache_get_value_name_int(idx, "store_ammo", GetHouseData(idx, H_STORE_AMMO));
        cache_get_value_name_int(idx, "store_skin", GetHouseData(idx, H_STORE_SKIN));

        // -------------------------
        SetHouseData(idx, H_STORE_LABEL, Text3D:-1);

        buffer[0] = GetHouseData(idx, H_TYPE);
        if(!strlen(GetHouseData(idx, H_NAME)))
            format(g_house[idx][H_NAME], 20, GetHouseTypeInfo(buffer[0], HT_NAME), 0);

        if(GetHouseData(idx, H_CITY) == -1 || GetHouseData(idx, H_ZONE) == -1)
        {
            buffer[0] = Get2DCity(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));
            buffer[1] = Get2DZone(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));

            SetHouseData(idx, H_CITY, buffer[0]);
            SetHouseData(idx, H_ZONE, buffer[1]);

            mysql_format(mysql, query, sizeof query, "UPDATE houses SET city=%d,zone=%d WHERE id=%d", buffer[0], buffer[1], idx);
            mysql_tquery(mysql, query);
        }

        if(!IsHouseOwned(idx))
        {
            SetHouseData(idx, H_IMPROVEMENTS,     0);
            SetHouseData(idx, H_LOCK_STATUS,     false);
        }
        UpdateHouse(idx);

        HouseHealthInit(idx);
        HouseStoreInit(idx);
    }

    cache_delete(result);

    printf("[Houses]: Домов загружено: %d", MAX_HOUSES);
}

Попробуйте так. 

Спойлер

C:\Users\admin\Desktop\Friendly rp (Nikitos)\gamemodes\new.pwn(25954) : error 017: undefined symbol "house_id"
Pawn compiler 3.10.20150531              Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
 

 

Строка 

cache_get_value_name_int(idx, "house_id", house_id);

 

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


Ссылка на сообщение
  • 0
16 минут назад, danya_white сказал:

 


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

    result = mysql_query(mysql, "SELECT * FROM `houses`", true);

    for(idx = 0; idx < MAX_HOUSES; idx++)
    {

        cache_get_value_name_int(idx, "house_id", house_id);
        cache_get_value_name(idx, "h_owner", g_house[idx][H_OWNER_NAME]);

        cache_get_value_name(idx, "name", g_house[idx][H_NAME]);

        cache_get_value_name_int(idx, "city", GetHouseData(idx, H_CITY));
        cache_get_value_name_int(idx, "zone", GetHouseData(idx, H_ZONE));
        cache_get_value_name_int(idx, "improvements", GetHouseData(idx, H_IMPROVEMENTS));

        cache_get_value_name_int(idx, "rent_time", GetHouseData(idx, H_RENT_DATE));
        cache_get_value_name_int(idx, "price", GetHouseData(idx, H_PRICE));
        cache_get_value_name_int(idx, "rent_price", GetHouseData(idx, H_RENT_PRICE));
        cache_get_value_name_int(idx, "type", GetHouseData(idx, H_TYPE));
        cache_get_value_name_int(idx, "lock", bool: GetHouseData(idx, H_LOCK_STATUS));

        cache_get_value_name_float(idx, "x", GetHouseData(idx, H_POS_X));
        cache_get_value_name_float(idx, "y", GetHouseData(idx, H_POS_Y));
        cache_get_value_name_float(idx, "z", GetHouseData(idx, H_POS_Z));

        cache_get_value_name_float(idx, "exit_x", GetHouseData(idx, H_EXIT_POS_X));
        cache_get_value_name_float(idx, "exit_y", GetHouseData(idx, H_EXIT_POS_Y));
        cache_get_value_name_float(idx, "exit_z", GetHouseData(idx, H_EXIT_POS_Z));
        cache_get_value_name_float(idx, "exit_angle", GetHouseData(idx, H_EXIT_ANGLE));

        cache_get_value_name_float(idx, "car_x", GetHouseData(idx, H_CAR_POS_X));
        cache_get_value_name_float(idx, "car_y", GetHouseData(idx, H_CAR_POS_Y));
        cache_get_value_name_float(idx, "car_z", GetHouseData(idx, H_CAR_POS_Z));
        cache_get_value_name_float(idx, "car_angle", GetHouseData(idx, H_CAR_ANGLE));

        cache_get_value_name_float(idx, "helicopter_x", GetHouseData(idx, H_HELI_POS_X));
        cache_get_value_name_float(idx, "helicopter_y", GetHouseData(idx, H_HELI_POS_Y));
        cache_get_value_name_float(idx, "helicopter_z", GetHouseData(idx, H_HELI_POS_Z));
        cache_get_value_name_float(idx, "helicopter_angle", GetHouseData(idx, H_HELI_ANGLE));

        cache_get_value_name_float(idx, "store_x", GetHouseData(idx, H_STORE_X));
        cache_get_value_name_float(idx, "store_y", GetHouseData(idx, H_STORE_Y));
        cache_get_value_name_float(idx, "store_z", GetHouseData(idx, H_STORE_Z));

        cache_get_value_name_int(idx, "store_metall", GetHouseData(idx, H_STORE_METALL));
        cache_get_value_name_int(idx, "store_drugs", GetHouseData(idx, H_STORE_DRUGS));
        cache_get_value_name_int(idx, "store_weapon", GetHouseData(idx, H_STORE_WEAPON));
        cache_get_value_name_int(idx, "store_ammo", GetHouseData(idx, H_STORE_AMMO));
        cache_get_value_name_int(idx, "store_skin", GetHouseData(idx, H_STORE_SKIN));

        // -------------------------
        SetHouseData(idx, H_STORE_LABEL, Text3D:-1);

        buffer[0] = GetHouseData(idx, H_TYPE);
        if(!strlen(GetHouseData(idx, H_NAME)))
            format(g_house[idx][H_NAME], 20, GetHouseTypeInfo(buffer[0], HT_NAME), 0);

        if(GetHouseData(idx, H_CITY) == -1 || GetHouseData(idx, H_ZONE) == -1)
        {
            buffer[0] = Get2DCity(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));
            buffer[1] = Get2DZone(GetHouseData(idx, H_POS_X), GetHouseData(idx, H_POS_Y));

            SetHouseData(idx, H_CITY, buffer[0]);
            SetHouseData(idx, H_ZONE, buffer[1]);

            mysql_format(mysql, query, sizeof query, "UPDATE houses SET city=%d,zone=%d WHERE id=%d", buffer[0], buffer[1], idx);
            mysql_tquery(mysql, query);
        }

        if(!IsHouseOwned(idx))
        {
            SetHouseData(idx, H_IMPROVEMENTS,     0);
            SetHouseData(idx, H_LOCK_STATUS,     false);
        }
        UpdateHouse(idx);

        HouseHealthInit(idx);
        HouseStoreInit(idx);
    }

    cache_delete(result);

    printf("[Houses]: Домов загружено: %d", MAX_HOUSES);
}

Попробуйте так. 

удаляю строку еррора нет

 

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


Ссылка на сообщение
  • 0
H_OWNER_ID есть у вас переменная?

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


Ссылка на сообщение
  • 0
29 минут назад, danya_white сказал:

H_OWNER_ID есть у вас переменная?
enum E_HOTEL_STRUCT
{
	H_SQL_ID,
	H_OWNER_ID,
	H_RENT_DATE,
	bool: H_STATUS,
	H_OWNER_NAME[21]
};

 

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


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

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

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

    • angel_sinvays
      От angel_sinvays


      Скачать файл Florida Role Play | (Бонусный)
      Список доработок/изменений:

      1. Исправлены дыры с рублями, падением мода
      2. Новый античит(/ac)
      3. Аренда вертолетов (/gps - аренда транспорта - аренда вертолетов)
      4. Добавлена система /goadminka (раздача админки при определённом онлайне)
      5. Обновленны интерьеры банд, СМИ, ПД, выбор скина, домов, магазинов
      6. Изменён экстерьер парка у мэрии, на против больницы
      7. Изменен текстдрав Логотипа, выбор скина, спидометра, дм арены, капта
      8. Вместо мопедов сделаны пикапы аренды
      9. Добавлена система VIP (Бронза, Серебро, Золото и Верона)
      10. Изменена система семей
      11. Добавлен чат для випов (/vc)
      12. При попытки проследить за ботом, перекидывает за игрока
      13. Добавлено казино, в котром можно играть на донат и рубли
      14. Добавлена система дуэлей
      15. Добавлены команды: /security, /checkfull и /fonline
      16. Изменён бот для авто-инвайта
      17. Изменена система дм зон (отличается от дуэлей)
      18. Доработана система статистики администратора, добавлено время администрирования в /admins
      19. Добавлен премиум меню для Verona PREMIUM
      20. Добавлены карты для /tp - Мероприятия
      21. Добавлена статистика лидера, изменена /lmenu
      22. Добавлена покупка аксессуаров в /donate
      23. Добавлена команда /obj
      24. Перераспределил команды для админов
      25. При наличии 1000 рублей или большой суммы виртов у игрока появляется кейс
      26. Исправлены баги со спавном банд
      27. Исправлены баги с падением под текстуры
      28. Исправлен баг с виртуальными мирами
      29. Добавлен NPC авто-инвайт на спавн
      30. Добавлен NPC проведения дуэлей
      31. Исправлена команда /banip
      32. Изменена и доделана система от сливов
      33. Возможность добавить своих ботов (+ уже встроены в мод)
      34. Доработана система мероприятий
      35. Переработана система доната (/donaterub and /donate)
      36. Обновлены плагины, почищена БД
      37. Новые артефакты
      38. Новый спавн
      39. Новая аренда
      40. Автоинвайт в мэрии
       
      UPD: Понизил ценник на мод
      Добавил angel_sinvays Добавлено 14.02.2022 Категория Моды Автор Angel Sinvays  
    • angel_sinvays
      От angel_sinvays
      Список доработок/изменений:

      1. Исправлены дыры с рублями, падением мода
      2. Новый античит(/ac)
      3. Аренда вертолетов (/gps - аренда транспорта - аренда вертолетов)
      4. Добавлена система /goadminka (раздача админки при определённом онлайне)
      5. Обновленны интерьеры банд, СМИ, ПД, выбор скина, домов, магазинов
      6. Изменён экстерьер парка у мэрии, на против больницы
      7. Изменен текстдрав Логотипа, выбор скина, спидометра, дм арены, капта
      8. Вместо мопедов сделаны пикапы аренды
      9. Добавлена система VIP (Бронза, Серебро, Золото и Верона)
      10. Изменена система семей
      11. Добавлен чат для випов (/vc)
      12. При попытки проследить за ботом, перекидывает за игрока
      13. Добавлено казино, в котром можно играть на донат и рубли
      14. Добавлена система дуэлей
      15. Добавлены команды: /security, /checkfull и /fonline
      16. Изменён бот для авто-инвайта
      17. Изменена система дм зон (отличается от дуэлей)
      18. Доработана система статистики администратора, добавлено время администрирования в /admins
      19. Добавлен премиум меню для Verona PREMIUM
      20. Добавлены карты для /tp - Мероприятия
      21. Добавлена статистика лидера, изменена /lmenu
      22. Добавлена покупка аксессуаров в /donate
      23. Добавлена команда /obj
      24. Перераспределил команды для админов
      25. При наличии 1000 рублей или большой суммы виртов у игрока появляется кейс
      26. Исправлены баги со спавном банд
      27. Исправлены баги с падением под текстуры
      28. Исправлен баг с виртуальными мирами
      29. Добавлен NPC авто-инвайт на спавн
      30. Добавлен NPC проведения дуэлей
      31. Исправлена команда /banip
      32. Изменена и доделана система от сливов
      33. Возможность добавить своих ботов (+ уже встроены в мод)
      34. Доработана система мероприятий
      35. Переработана система доната (/donaterub and /donate)
      36. Обновлены плагины, почищена БД
      37. Новые артефакты
      38. Новый спавн
      39. Новая аренда
      40. Автоинвайт в мэрии
       
      UPD: Понизил ценник на мод
    • angel_sinvays
      От angel_sinvays
      Attractive RP
      Скачать файл Давно не было сливов , сейчас я вам готов продемонстрировать копию проекта Attractive RolePlay
      Изначально слив был выложен на моём канале, но после я хочу выложить его сюда.
      Добавил angel_sinvays Добавлено 01.05.2024 Категория Моды Автор Angel Sinvays  
    • KAIF
      От KAIF
      !!!!!ВСЕГО ОДНА КОПИЯ!!!! 
      Единственный мод GTA RP.
       
      Фракции:
      Правительство
      ГИБДД
      Полиция Южного
      ФСБ
      ЦГБ-А
      Автошкола
      Китайская мафия
      Русская Мафия
      Итальянская Мафия
      Американская Мафия
      Чеченская Мафия
      ВВС
      МЧС
      ОПГ Тяп-Ляп
      ОПГ Хади-Такташ
      СМИ Южного
      ФСИН
      В комплекте идёт СБОРКА И МОД.
      Также после покупки вы отправляете мне свой айпи сервера и я привязываю вам сборку под ваш айпи (единоразово) 
      Единственный мод GTA RP.
    • Demon7
      От Demon7
      Как исправить эту ошибку? Попытался залить на мод данный код и при компиляции происходит данная ошибка. Эта ошибка находится на строчке if(GetPlayerData(targetid, "friend_request") == playerid)
      CMD:frien(playerid, params[]) {     new targetid = strval(params);     if(!IsPlayerConnected(targetid))     {         SendClientMessage(playerid, COLOR_RED, "Целевой игрок не подключен к серверу.");         return 0;     }     if(targetid == playerid)     {         SendClientMessage(playerid, COLOR_RED, "Вы не можете предложить себе подружиться.");         return 0;     }     if(IsPlayerInRangeOfPlayer(playerid, targetid, 2.0))     {         if(GetPlayerData(targetid, "friend_request") == playerid)         {             SendClientMessage(playerid, COLOR_RED, "У вас уже есть ожидающий запрос на дружбу от этого игрока.");             return 0;         }         SendClientMessage(playerid, COLOR_YELLOW, "Вы предложили игроку подружиться. Ожидайте ответа...");         SendClientMessage(targetid, COLOR_YELLOW, "Игрок предлагает вам подружиться. Используйте /accept или /reject.");         SetPlayerData(playerid, "friend_request", targetid);         SetPlayerData(targetid, "friend_request", playerid);     }     else     {         SendClientMessage(playerid, COLOR_RED, "Игрок находится слишком далеко.");     }     return 1; }