• 0
Sign in to follow this  
Followers 0
Mason

2 errors, и перевод функций на новую версию MySQL

Question

Приветствую всех! Перевел свой мод с MySQL R5 на R41-4. Перевел почти все, но осталось перевести 7 функций, которые я не знаю уже как перевести под новую версию, так же выбивает две ошибки при компиляции
 

Спойлер

warning 209: function "GetAccount" should return a value
warning 209: function "GetAccount" should return a value

stock GetAccount(const username[], const obtaining[])
{
    new Query[128];
    format(Query, 128"SELECT %s FROM "TABLE_ACCOUNT" WHERE name = '%s' LIMIT 1", obtaining, username);
    new Cache:result = mysql_query(dbHandle, Query);
    if(!result)
    {
        return;//Вот здесь
    }
    cache_set_active(result);
    new const nRows = cache_num_rows();
    if(nRows == 0)
    {
        cache_delete(result);
        return;//и здесь
    }
    cache_get_value_name(0, obtaining, Query);
    cache_get_value_index(00, Query);
    cache_delete(result);
    return Query;
}

 

Ну и вот функции, мне нужно лишь одно, как заменить этакое как я понял условие не существование аккаунта в базе данных  с версии R5 на R41-4?
Вот к примеру "ShowLogin"
 

Спойлер

public ShowLogin(playerid)
{
    format(query, sizeof(query), "SELECT * FROM "TABLE_ACCOUNT" WHERE name = '%s'", PlayerInfo[playerid][pSendername]);
    mysql_query(dbHandle, query);
    mysql_store_result();
    if(mysql_fetch_row_format(query))
    {
        format(totalstring, 256" {ffffff}- Добро пожаловать, Вы зашли как {1E90FF}%s\n {ffffff}- У Вас есть 2 минуты, чтобы войти в аккаунт.\n - Портал сервера: {DC143C}"PORTAL"\n\n{ffffff}Введите Ваш пароль:",PlayerInfo[playerid][pSendername]);
        ShowPlayerDialog(playerid, D_LOGIN, 3"Авторизация", totalstring, "Логин","Выход");
    }
    else
    {
        format(totalstring, 500"{ffffff}Приветствуем Вас на {DC143c}Revent Role Play{ffffff}.\n{ffffff}Для начала игры, Вам требуется пройти регистрацию.\n \n{1E90FF}Примечания:{F5DEB3}\n - Не советуем Вам использовать легкие пароли.\n - Пароль должен содержать от 6 до 17 символов.\n - Пароль должен содержать только буквы латинского алфавита.\n\n{ffffff}- Регистрируя аккаунт, Вы автоматически соглашаетесь с правилами сервера.",PlayerInfo[playerid][pSendername]);
        ShowPlayerDialog(playerid, D_REGISTER, DIALOG_STYLE_INPUT, "{33CCFF}Регистрация", totalstring, "Регистрация","Выход");
    }
    mysql_free_result();
}

 

 

Share this post


Link to post

19 answers to this question

  • 0

@Mason,

Спойлер

stock GetAccount(const username[], const obtaining[])
{
    new Query[128];
    format(Query, 128"SELECT %s FROM "TABLE_ACCOUNT" WHERE name = '%s' LIMIT 1", obtaining, username);
    new Cache:result = mysql_query(dbHandle, Query);
    if(!result)
    {
        Query[0] = '\0';
        return Query;
    }
    cache_set_active(result);
    new const nRows = cache_num_rows();
    if(nRows == 0)
    {
        cache_delete(result);
        Query[0] = '\0';
        return Query;
    }
    cache_get_value_name(0, obtaining, Query);
    cache_get_value_index(00, Query);
    cache_delete(result);
    return Query;
}

 

 

Share this post


Link to post
  • 0

@Mason, что за компилятор у вас? Было бы хорошо, если бы вы скинули каталог pawno свой (подкаталог include можете не прикреплять). Согласен, при текущей реализации формируемое компилятором предупреждение вполне оправдано. Но почему оно формировалось при прежних реализациях мне непонятно. Более того, мой компилятор не формирует никаких предупреждений и сейчас (когда вы при одних обстоятельствах возвращаете какое-то значение, а при других – нет).

 

Касаемо второго, все аналогично первому пункту.

Спойлер

new Cache:result = mysql_query(dbHandle, Query);
if(!result)
{
    // что будем делать, если не удалось отправить SQL-запрос?
    // например, не установлено (или потеряно) соединение с сервером БД
}
cache_set_active(result);
new const nRows = cache_num_rows();
if(nRows == 0)
{
    // что будем делать, если сервер базы данных вернул пустой результат?
    // это означает, что аккаунта в базе данных нет
}
else {
    // что будем делать, если сервер базы данных вернул какие-то строки?
    cache_delete(result);
}

 



 

Share this post


Link to post
  • 0

@Cawfee У меня стоит улучшений компилятор от Zeex'а 3.10.10(последняя версия на данный момент)(На всякий случай прикрепил еще инклуды вдруг все таки понадобятся)
 

Compiler.rar

Edited by Mason

Share this post


Link to post
  • 0

@Cawfee Спасибо огромное теперь всё работает как надо. Теперь появилась еще одна проблема, с которой я столкнулся во время обновления. Связанна она с загрузкой всяких штук(бизнесов, домов и так далее). У меня в моде вроде как что-то грузиться но криво. Машины фракций например грузятся как надо и ими можно пользоваться, а вот бизнесы, дома, ганг зоны вроде как грузятся а вроде как и нет, и что с этим делать я не знаю. Пикап, лэйблтекст появляется но с пикапами взаимодействовать нельзя. Гангзоны тупо не появляются.
Вот скину код загрузки машин и загрузки бизнесов может что не так сделал а вы подправите буду очень благодарен вам!
 

Спойлер

//Загрузка машин
stock LoadVeh()
{
    new time = GetTickCount();
    new idveh = 1;
    mysql_query(dbHandle, "SELECT * FROM `"TABLE_VEH"`");
    for(new idx = 0; idx < cache_num_rows(); idx++)
    {
        if(cache_num_rows())
        {
            cache_get_value_name_int(idx, "id", VehInfo[idveh][id]);
            cache_get_value_name_int(idx, "model", VehInfo[idveh][vModel]);
            cache_get_value_name_float(idx, "x", VehInfo[idveh][vX]);
            cache_get_value_name_float(idx, "y", VehInfo[idveh][vY]);
            cache_get_value_name_float(idx, "z", VehInfo[idveh][vZ]);
            cache_get_value_name_float(idx, "fa", VehInfo[idveh][vFa]);
            cache_get_value_name_int(idx, "vint", VehInfo[idveh][vInt]);
            cache_get_value_name_int(idx, "world", VehInfo[idveh][vWorld]);
            cache_get_value_name(idx, "colors", VehInfo[idveh][vColors]);
            cache_get_value_name_int(idx, "fraction", VehInfo[idveh][vFr]);
            cache_get_value_name_int(idx, "status", VehInfo[idveh][vStatus]);
            cache_get_value_name_int(idx, "cost", VehInfo[idveh][vCost]);
            sscanf(VehInfo[idveh][vColors], "p<,>a<i>[2]",VehInfo[idveh][vColor]);
            if(VehInfo[idveh][vStatus] == 0 || VehInfo[idveh][vStatus] == 2)
            {
                VehInfo[idveh][vVehicle] = CreateVehicle(VehInfo[idveh][vModel], VehInfo[idveh][vX], VehInfo[idveh][vY], VehInfo[idveh][vZ], VehInfo[idveh][vFa], VehInfo[idveh][vColor][0], VehInfo[idveh][vColor][1], 300);
                LinkVehicleToInterior(VehInfo[idveh][vVehicle], VehInfo[idveh][vInt]);
                SetVehicleVirtualWorld(VehInfo[idveh][vVehicle], VehInfo[idveh][vWorld]);
                Fuel[VehInfo[idveh][vVehicle]] = 100;
                Engine[VehInfo[idveh][vVehicle]] = false;
                Lights[VehInfo[idveh][vVehicle]] = false;
            }
        }
    }
    print("===============================");
    print("Результат загрузки МАШИН:");
    printf("Всего машин [%d]",cache_num_rows());
    printf("Загружено за [%d](ms)",GetTickCount() - time);
}
//Загрузка бизнесов
stock LoadBizz()
{
    new time = GetTickCount();
    new string[256];
    new idbizz = 1;
    mysql_query(dbHandle, "SELECT * FROM `"TABLE_BIZZ"` ORDER BY  `"TABLE_BIZZ"`.`id` ASC ");
    for(new i; i < cache_num_rows(); i++)
    {
        strmid(BizzInfo[i][bOwner],"None_Nones",0,strlen("None_Nones"),32);
    }
    for(new idx = 0; idx < cache_num_rows(); idx++)
    {
        if(cache_num_rows())
        {
            cache_get_value_name_int(idx, "id", BizzInfo[idbizz][id]);
            cache_get_value_name(idx, "owner", BizzInfo[idbizz][bOwner]);
            cache_get_value_name_int(idx, "type", BizzInfo[idbizz][bType]);
            cache_get_value_name_int(idx, "price", BizzInfo[idbizz][bPrice]);
            cache_get_value_name_int(idx, "buyprice", BizzInfo[idbizz][bBuyPrice]);
            cache_get_value_name_int(idx, "money", BizzInfo[idbizz][bMoney]);
            cache_get_value_name_int(idx, "lic", BizzInfo[idbizz][bLic]);
            cache_get_value_name_float(idx, "x", BizzInfo[idbizz][bEntrx]);
            cache_get_value_name_float(idx, "y", BizzInfo[idbizz][bEntry]);
            cache_get_value_name_float(idx, "z", BizzInfo[idbizz][bEntrz]);
            cache_get_value_name_float(idx, "xt", BizzInfo[idbizz][bExitx]);
            cache_get_value_name_float(idx, "yt", BizzInfo[idbizz][bExity]);
            cache_get_value_name_float(idx, "zt", BizzInfo[idbizz][bExitz]);
            cache_get_value_name_float(idx, "menux", BizzInfo[idbizz][bMenux]);
            cache_get_value_name_float(idx, "menuy", BizzInfo[idbizz][bMenuy]);
            cache_get_value_name_float(idx, "menuz", BizzInfo[idbizz][bMenuz]);
            cache_get_value_name_int(idx, "vint", BizzInfo[idbizz][bInt]);
            cache_get_value_name_int(idx, "virt", BizzInfo[idbizz][bVirtual]);
            cache_get_value_name_int(idx, "icon", BizzInfo[idbizz][bMIcon]);
            cache_get_value_name(idx, "name", BizzInfo[idbizz][bName]);
            cache_get_value_name_int(idx, "penter", BizzInfo[idbizz][bEnter]);
            cache_get_value_name_int(idx, "block", BizzInfo[idbizz][bLock]);
            cache_get_value_name_int(idx, "product", BizzInfo[idbizz][bProduct]);
            cache_get_value_name_int(idx, "till", BizzInfo[idbizz][bTill]);
            cache_get_value_name_int(idx, "locktime", BizzInfo[idbizz][bLockTime]);
            BizzInfo[idbizz][bIcon] = CreateDynamicMapIcon(BizzInfo[idbizz][bEntrx],BizzInfo[idbizz][bEntry],BizzInfo[idbizz][bEntrz], BizzInfo[idbizz][bMIcon]0,-1,-1,-1,300.0);
            if(BizzInfo[idbizz][bType] != 2 && BizzInfo[idbizz][bType] != 7)
            {
                BizzInfo[idbizz][bPickupExit] = CreatePickup(1318,1,BizzInfo[idbizz][bExitx],BizzInfo[idbizz][bExity],BizzInfo[idbizz][bExitz],BizzInfo[idbizz][bVirtual]);
                BizzInfo[idbizz][bMenu] = CreateDynamicCP(BizzInfo[idbizz][bMenux],BizzInfo[idbizz][bMenuy],BizzInfo[idbizz][bMenuz], 1.0,BizzInfo[idbizz][bVirtual],BizzInfo[idbizz][bInt]);
                if(!strcmp(BizzInfo[idbizz][bOwner],"None",true))
                {
                    BizzInfo[idbizz][bPickup] = CreatePickup(1274,1, BizzInfo[idbizz][bEntrx],BizzInfo[idbizz][bEntry],BizzInfo[idbizz][bEntrz]);
                    format(string, 128"[Бизнес продаётся]\n[%s]\n[Стоимость: $%d]\n[Чтобы купить бизнес, введите /buybiz]", BizzInfo[idbizz][bName], BizzInfo[idbizz][bPrice]);
                    LABELBIZZ[idbizz] = Create3DTextLabel(string,0xE4E161FF,BizzInfo[idbizz][bEntrx], BizzInfo[idbizz][bEntry], BizzInfo[idbizz][bEntrz],6.0000,0,0);
                }
                else
                {
                    BizzInfo[idbizz][bPickup] = CreatePickup(19132,1, BizzInfo[idbizz][bEntrx],BizzInfo[idbizz][bEntry],BizzInfo[idbizz][bEntrz]);
                    format(string, 128"[%s]\n[Владелец: %s]\n[Совладелец: 0]\n[Стоимость входа: $0]",BizzInfo[idbizz][bName], BizzInfo[idbizz][bOwner]);
                    LABELBIZZ[idbizz] = Create3DTextLabel(string,0xE4E161FF,BizzInfo[idbizz][bEntrx], BizzInfo[idbizz][bEntry], BizzInfo[idbizz][bEntrz],6.0000,0,0);
                }
            }
        }
    }
    print("===============================");
    print("Результат загрузки БИЗНЕСОВ:");
    printf("Всего бизнесов [%d]",cache_num_rows());
    printf("Загружено за [%d](ms)",GetTickCount() - time);
}

 

 

Share this post


Link to post
  • 0

up

Share this post


Link to post
  • 0

попробуй это

stock LoadBizz()
{
    new time = GetTickCount();
    mysql_query(dbHandle, "SELECT * FROM `"TABLE_BIZZ"` ORDER BY `id` ASC ");
    
    for(new idx = 0; idx < cache_num_rows(); idx++)
    {
        cache_get_value_name_int(idx, "id", BizzInfo[idx][id]);
        cache_get_value_name(idx, "owner", BizzInfo[idx][bOwner]);
        cache_get_value_name_int(idx, "type", BizzInfo[idx][bType]);
        cache_get_value_name_int(idx, "price", BizzInfo[idx][bPrice]);
        cache_get_value_name_int(idx, "buyprice", BizzInfo[idx][bBuyPrice]);
        cache_get_value_name_int(idx, "money", BizzInfo[idx][bMoney]);
        cache_get_value_name_int(idx, "lic", BizzInfo[idx][bLic]);
        cache_get_value_name_float(idx, "x", BizzInfo[idx][bEntrx]);
        cache_get_value_name_float(idx, "y", BizzInfo[idx][bEntry]);
        cache_get_value_name_float(idx, "z", BizzInfo[idx][bEntrz]);
        cache_get_value_name_float(idx, "xt", BizzInfo[idx][bExitx]);
        cache_get_value_name_float(idx, "yt", BizzInfo[idx][bExity]);
        cache_get_value_name_float(idx, "zt", BizzInfo[idx][bExitz]);
        cache_get_value_name_float(idx, "menux", BizzInfo[idx][bMenux]);
        cache_get_value_name_float(idx, "menuy", BizzInfo[idx][bMenuy]);
        cache_get_value_name_float(idx, "menuz", BizzInfo[idx][bMenuz]);
        cache_get_value_name_int(idx, "vint", BizzInfo[idx][bInt]);
        cache_get_value_name_int(idx, "virt", BizzInfo[idx][bVirtual]);
        cache_get_value_name_int(idx, "icon", BizzInfo[idx][bMIcon]);
        cache_get_value_name(idx, "name", BizzInfo[idx][bName]);
        cache_get_value_name_int(idx, "penter", BizzInfo[idx][bEnter]);
        cache_get_value_name_int(idx, "block", BizzInfo[idx][bLock]);
        cache_get_value_name_int(idx, "product", BizzInfo[idx][bProduct]);
        cache_get_value_name_int(idx, "till", BizzInfo[idx][bTill]);
        cache_get_value_name_int(idx, "locktime", BizzInfo[idx][bLockTime]);

        BizzInfo[idx][bIcon] = CreateDynamicMapIcon(BizzInfo[idx][bEntrx], BizzInfo[idx][bEntry], BizzInfo[idx][bEntrz], BizzInfo[idx][bMIcon], 0, -1, -1, -1300.0);

        BizzInfo[idx][bPickup] = CreatePickup(12741, BizzInfo[idx][bEntrx], BizzInfo[idx][bEntry], BizzInfo[idx][bEntrz]);

        if(!strcmp(BizzInfo[idx][bOwner], "None"true))
        {
            format(string, sizeof(string), "[Бизнес продаётся]\n[%s]\n[Стоимость: $%d]\n[Чтобы купить бизнес, введите /buybiz]", BizzInfo[idx][bName], BizzInfo[idx][bPrice]);
            LABELBIZZ[idx] = Create3DTextLabel(string, 0xE4E161FF, BizzInfo[idx][bEntrx], BizzInfo[idx][bEntry], BizzInfo[idx][bEntrz], 6.000000);
        }
        else
        {
            format(string, sizeof(string), "[%s]\n[Владелец: %s]\n[Совладелец: 0]\n[Стоимость входа: $0]", BizzInfo[idx][bName], BizzInfo[idx][bOwner]);
            LABELBIZZ[idx] = Create3DTextLabel(string, 0xE4E161FF, BizzInfo[idx][bEntrx], BizzInfo[idx][bEntry], BizzInfo[idx][bEntrz], 6.000000);
        }

        BizzInfo[idx][bPickupExit] = CreatePickup(13181, BizzInfo[idx][bExitx], BizzInfo[idx][bExity], BizzInfo[idx][bExitz], BizzInfo[idx][bVirtual]);
        BizzInfo[idx][bMenu] = CreateDynamicCP(BizzInfo[idx][bMenux], BizzInfo[idx][bMenuy], BizzInfo[idx][bMenuz], 1.0, BizzInfo[idx][bVirtual], BizzInfo[idx][bInt]);
    }

    print("===============================");
    print("Результат загрузки БИЗНЕСОВ:");
    printf("Всего бизнесов [%d]", cache_num_rows());
    printf("Загружено за [%d](ms)", GetTickCount() - time);
}

stock LoadVeh()
{
    new time = GetTickCount();
    mysql_query(dbHandle, "SELECT * FROM `"TABLE_VEH"`");
    
    if(cache_num_rows())
    {
        for(new idx = 0; idx < cache_num_rows(); idx++)
        {
            cache_get_value_name_int(idx, "id", VehInfo[idx][id]);
            cache_get_value_name_int(idx, "model", VehInfo[idx][vModel]);
            cache_get_value_name_float(idx, "x", VehInfo[idx][vX]);
            cache_get_value_name_float(idx, "y", VehInfo[idx][vY]);
            cache_get_value_name_float(idx, "z", VehInfo[idx][vZ]);
            cache_get_value_name_float(idx, "fa", VehInfo[idx][vFa]);
            cache_get_value_name_int(idx, "vint", VehInfo[idx][vInt]);
            cache_get_value_name_int(idx, "world", VehInfo[idx][vWorld]);
            cache_get_value_name(idx, "colors", VehInfo[idx][vColors]);
            cache_get_value_name_int(idx, "fraction", VehInfo[idx][vFr]);
            cache_get_value_name_int(idx, "status", VehInfo[idx][vStatus]);
            cache_get_value_name_int(idx, "cost", VehInfo[idx][vCost]);
            sscanf(VehInfo[idx][vColors], "p<,>a<i>[2]", VehInfo[idx][vColor]);
            if(VehInfo[idx][vStatus] == 0 || VehInfo[idx][vStatus] == 2)
            {
                VehInfo[idx][vVehicle] = CreateVehicle(VehInfo[idx][vModel], VehInfo[idx][vX], VehInfo[idx][vY], VehInfo[idx][vZ], VehInfo[idx][vFa], VehInfo[idx][vColor][0], VehInfo[idx][vColor][1], 300);
                LinkVehicleToInterior(VehInfo[idx][vVehicle], VehInfo[idx][vInt]);
                SetVehicleVirtualWorld(VehInfo[idx][vVehicle], VehInfo[idx][vWorld]);
                Fuel[VehInfo[idx][vVehicle]] = 100;
                Engine[VehInfo[idx][vVehicle]] = false;
                Lights[VehInfo[idx][vVehicle]] = false;
            }
        }
    }

    print("===============================");
    print("Результат загрузки МАШИН:");
    printf("Всего машин [%d]", cache_num_rows());
    printf("Загружено за [%d](ms)", GetTickCount() - time);
}

 

Share this post


Link to post
  • 0

сталкивался с абсолютно такой же проблемой, но исправить её так и не смог и вернул прежнюю версию mysql

лично у меня не записывались данные из "id" - cache_get_value_name_int(idx, "id", VehInfo[idveh][id]); 

возможно у тебя такая же проблема, попробуй при каждой загрузки выводить значение 

например: printf("%d | %d машина загрузилась", idveh, VehInfo[idveh][id]);

у меня при такой же проверки выводилось: 1 | 0 машина загрузилась, 2 | 0 машина загрузилась, 3 | 0 машина загрузилась и так далее

Edited by trevison

Share this post


Link to post
  • 0

@angel_sinvays Не помогло(

@trevison Ну лично у меня всё с ID грузит 1 | 184 машина загрузилась, то же самое пишет и в прогрузке домов, бизнесов, и.т.д. Я проверял логи mysql но там ничего нет. А загрузку всего имущества я взял с одного мода ранее слитого в интернет.

Share this post


Link to post
  • 0

@Mason, что значит "вроде грузятся, а вроде и нет"? Если от сервера база данных пришли запрошенные данные, значит все грузится, а вот корректно ли все эти данные обрабатываются на стороне вашего играло сервера – вопрос. В любом случае через отладочный вывод проверьте, все ли запрошенные данные пришли, совпадают ли они с тем, что хранится реально на сервере базы данных.

Share this post


Link to post
  • 0

@Cawfee Делал дебаг в функции когда встаешь на пикап ничего не пройсходит, а вот как делать дебаг как вы описали я не знаю.

Share this post


Link to post
  • 0
printf("%d %d %d %d %d %s %d %d %d ", idveh, VehInfo[idveh][id], VehInfo[idveh][vModel], VehInfo[idveh][vInt], VehInfo[idveh][vWorld], VehInfo[idveh][vColors], VehInfo[idveh][vFr], VehInfo[idveh][vStatus], VehInfo[idveh][vCost]);

можешь так

или через mysql_log(ALL);

и в логах смотреть - всё ли правильно загружается

Share this post


Link to post
  • 0

@Mason, через printf выводите все поля, что подлежат загрузке.

Share this post


Link to post
  • 0

@trevison Вот как-то так

mysql.txt

Share this post


Link to post
  • 0

сделай через printf, как я выше скинул

Share this post


Link to post
  • 0

@trevison Вот что выводит лог
1 ←C)__
@►з@None 78 1 1300000  0 0 C)__
@►з@None )__
@►з@None __
@►з@None _
@►з@None
@►з@None @►з@None ►з@None з@None @None 6 27 56 Бизнес 100 0 0 50 0

Вот как я сделал это в моде:
 

Спойлер

printf("%d %s %d %d %d %s %d %d %s %s %s %s %s %s %s %s %s %d %d %d %s %d %d %d %d %d", idbizz, BizzInfo[idbizz][id], BizzInfo[idbizz][bOwner], BizzInfo[idbizz][bType], BizzInfo[idbizz][bPrice], BizzInfo[idbizz][bBuyPrice], BizzInfo[idbizz][bMoney], BizzInfo[idbizz][bLic], BizzInfo[idbizz][bEntrx], BizzInfo[idbizz][bEntry], BizzInfo[idbizz][bEntrz], BizzInfo[idbizz][bExitx], BizzInfo[idbizz][bExity], BizzInfo[idbizz][bExitz], BizzInfo[idbizz][bMenux], BizzInfo[idbizz][bMenuy], BizzInfo[idbizz][bMenuz], BizzInfo[idbizz][bInt], BizzInfo[idbizz][bVirtual], BizzInfo[idbizz][bMIcon], BizzInfo[idbizz][bName], BizzInfo[idbizz][bEnter], BizzInfo[idbizz][bLock], BizzInfo[idbizz][bProduct], BizzInfo[idbizz][bTill], BizzInfo[idbizz][bLockTime]);

 

Мне кажется или я что то сделал не так..

Edited by Mason

Share this post


Link to post
  • 0

UP, проблему решил, но появилась другая проблема... В диалогах с инфой о бизнесе/заправке(то бишь это тот самый диалог который появляется когда встаешь на пикап, и кстати еще самое странное что с домами всё отлично такой казус только с бизом заправкой и гангзоной) баг с ID-шником у 1 ид отображается ID последнего элемента в базе, но по остальным параметрам никаких проблем нет. В остальном всё отлично! С гангзоной у которой 1 ид такая беда, у нее стоит дефолтный цвет, и когда я через команду передаю ее определённой банде, то после рестарта всё сбивается и снова стоит дефолтный цвет...

Прилагаю код загрузки гангзон чтобы рассказать остальную суть

 

Спойлер

stock LoadGZ()
{
    new time = GetTickCount();
    mysql_query(dbHandle, "SELECT * FROM `"TABLE_GANGZONE"`");
    TOTALGZ = cache_num_rows();
    for(new idx = 0; idx < TOTALGZ; idx++)
    {
        cache_get_value_name_int(idx, "id", GZInfo[idx][id]);
        cache_get_value_name_float(idx, "ginfo1", GZInfo[idx][gCoords][0]);
        cache_get_value_name_float(idx, "ginfo2", GZInfo[idx][gCoords][1]);
        cache_get_value_name_float(idx, "ginfo3", GZInfo[idx][gCoords][2]);
        cache_get_value_name_float(idx, "ginfo4", GZInfo[idx][gCoords][3]);
        cache_get_value_name_int(idx, "fraction", GZInfo[idx][gFrak]);
        GZInfo[idx][id] = GangZoneCreate(GZInfo[idx][gCoords][0],GZInfo[idx][gCoords][1],GZInfo[idx][gCoords][2],GZInfo[idx][gCoords][3]);
        ZoneOnBattle[idx] = 0;
        GZSafeTime[idx] = 0;
    }
    print("===============================");
    print("Результат загрузки ГАНГЗОН:");
    printf("Всего гангзон [%d]",TOTALGZ);
    printf("Загружено за [%d](ms)",GetTickCount() - time);
    return 1;
}

 


Там где "idx = 0" я проставил эту фишку везде(загрузка, взаимодействие с пикапом, и так далее) если вместо 0 поставить 1 то пикап имущества(дом/биз/заправка) вообще пропадет, и гангзона тоже(кстати что самое интересное дефолтный цвет применит гангзона которая находится слева..)

Share this post


Link to post
  • 0
В 26.05.2024 в 22:38, Mason сказал:

у 1 ид отображается ID последнего элемента в базе

 

Где отображается?

Share this post


Link to post
  • 0

@Cawfee Ну, уже у бизнесов с домами всё отлично в диалогах с информацией ID отсчитывает от 1. А у заправок в том же диалоге уже отсчёт ид идёт от 0, и это при всём том что код идентичен, в нём нет отличий, что код загрузки, что код диалога с информацией и.т.д. У гангзон проблема описана в прошлом сообщении. И вот еще тоже прикол у игрока почему-то числится что у него дом и бизнес есть но на самом деле нет, тоесть в выборе спавна отображается вариант в доме, в банке можно положить деньги на домашний счёт и счёт бизнеса.

Edited by Mason

Share this post


Link to post
  • 0

Закрыто. Разобрался сам. Всем огромное спасибо за внимание!!:)

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • JR_Junior
      By JR_Junior
      Здравствуйте, прошу прощения, если я плохо пишу, я не очень хорошо говорю по-русски!
       
      Мне нужно отсортировать массив по возрастанию, но у меня возникли проблемы!
       
      #define Loop(%0,%1,%2) for(new %0 = %2; %0 < %1; %0++) stock SortRandomEventRank(ordem_crescente=1) {     new total;     if(ordem_crescente)     {         Loop(i, MAX_PLAYERS, 0)         {             if(RandomEventRank[i][RER_Total])             {                 Loop(s, MAX_PLAYERS, 0)                 {                     if(RandomEventRank[i][RER_Total] < RandomEventRank[s][RER_Total])                     {                         total = RandomEventRank[i][RER_Total];                         RandomEventRank[i][RER_Total] = RandomEventRank[s][RER_Total];                                                RandomEventRank[s][RER_Total] = total;                     }                 }             }         }     } }  
    • bogdan@gmail
      By bogdan@gmail
      Здраствуйте, я начинающий скриптер! Не работает покупка и не показывает количество каинов.
       
      Сама команда.
      CMD:acoins(playerid) {     if(PlayerInfo[playerid][pAlcoInvenxua] < 1) return true;     format(stringer1, sizeof(stringer1), "{ffffff}Админ-магазин | {FFD700}%d а-монет", PlayerInfo[playerid][pAcoins]);     ShowPlayerDialog(playerid, 7445, DIALOG_STYLE_LIST, stringer1, "\     {FF0000}1. Снять выговор\t\t{9994EB}350 А-монет\      \n2. Админский infernus (/acar)\t{9994EB} 560 А-монет\      \n{FFD700}Информация", "Выбрать", "Назад");     return true; } Кейсы
      case 7445: {             if(!response) return true;             switch(listitem) {                 case 0: {//unavig                     if(PlayerInfo[playerid][pVigs] < 1) return SendClientMessage(playerid, COLOR_WHITE, "У вас нету выговоров!");                     if(PlayerInfo[playerid][pAcoins] < 350) return SendClientMessage(playerid, COLOR_GREY, "У Вас недостаточно админ монет!");                     new query[100];                     PlayerInfo[playerid][pVigs]--;                     PlayerInfo[playerid][pAcoins] -= 350;                     UpdatePlayerData(playerid, "pAcoins", PlayerInfo[playerid][pAcoins]);                     format(query, sizeof(query), "UPDATE `"TABLE_ACCOUNT"` SET `vigs` = '%d' WHERE `pID` = '%d'",PlayerInfo[playerid][pVigs],PlayerInfo[playerid][pID]);                     mysql_function_query(connects, query, false, "", "");                     SendClientMessage(playerid, COLOR_WHITE, "Вы успешно сняли выговор!");                 }                 case 1: {//acar                     if(PlayerInfo[playerid][pAcoins] < 560) return SendClientMessage(playerid, COLOR_GREY, "У Вас недостаточно админ монет!");                     new string[144];                     format(string, sizeof(string), "Вы действительно хотите купить команду /acar?\n- Вы получите возможность:\n%s", CMD_desc[4]);                     ShowPlayerDialog(playerid, 7491, DIALOG_STYLE_MSGBOX, "Покупка команды /acar", string, "Купить", "Отмена");                                }                         }             return true;         }         case 7498: {             if(!response) return true;             new query[200];             PlayerInfo[playerid][pAcoins] -= 350;             UpdatePlayerData(playerid, "pAcoins", PlayerInfo[playerid][pRub]);             mysql_format(connects, query, sizeof query, "SELECT * FROM `accounts` WHERE `Name` = '%e'", PlayerInfo[playerid][pNames]);             mysql_function_query(connects, query, true, "BuyCmdCallback", "dd", playerid, 4);             return true;         } фото mysql