Помогите не работает функция

sdkfhjsdjlhfsdjkfhijkdshf

Новичок
Автор темы
11
0
В общем в этом коде не отключается выдача бонуса почему то.
case 5254:
{
if(!response) return true;
switch(listitem)
{
case 0..2:
{
SetPVarInt(playerid, "serverBonus", listitem);
ShowPlayerDialog(playerid, 5255, DIALOG_STYLE_INPUT, "Ввод параметра", "Введите значение", "Далее", "Назад");
return true;
}
case 3: // pDirectory
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pDirectory'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pDirectory` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу телефонного справочника при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pDirectory` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу телефонного справочника при регистрации");
return true;
}
}
}
return true;
}
case 4: // pCarLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pCarLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pCarLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу водительских прав при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pCarLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу водительских прав при регистрации");
return true;
}
}
}
return true;
}
case 5: // pFlyLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pFlyLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFlyLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на полёты при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFlyLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на полёты при регистрации");
return true;
}
}
}
return true;
}
case 6: // pBoatLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pBoatLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pBoatLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на водный транспорт при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pBoatLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на водный транспорт при регистрации");
return true;
}
}
}
return true;
}
case 7: // pFishLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pFishLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFishLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на рыболовлю при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFishLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на рыболовлю при регистрации");
return true;
}
}
}
return true;
}
case 8: // pGunLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pGunLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на оружие при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на оружие при регистрации");
return true;
}
}
}
return true;
}
case 9: // pGunSkills
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pGunSkills'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
if(!strcmp(def, "0, 0, 0, 0, 0, 0"))
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunSkills` SET DEFAULT '100, 100, 100, 100, 100, 100'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу навыка владения оружием при регистрации");
}
else if(!strcmp(def, "100, 100, 100, 100, 100, 100"))
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunSkills` SET DEFAULT '0, 0, 0, 0, 0, 0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу навыка владения оружием при регистрации");
}
}
return true;
}
}
CallLocalFunction("OnPlayerCommandText", "is", playerid, "/serverbonus");
}
может кто знает как исправить? буду очень благодарен

хотя бы как в самом первом кейсе сделать что бы норм работало дальше разберусь.
 
Последнее редактирование:

Willy4ka

вилличка
Модератор
483
798
1733425147893.png
 

sdkfhjsdjlhfsdjkfhijkdshf

Новичок
Автор темы
11
0
исходный код:
case 5254:
{
    if(!response) return true;
    switch(listitem)
    {
        case 0..2:
        {
            SetPVarInt(playerid, "serverBonus", listitem);
            ShowPlayerDialog(playerid, 5255, DIALOG_STYLE_INPUT, "Ввод параметра", "Введите значение", "Далее", "Назад");
            return true;
        }
        case 3: // pDirectory
        {
            mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pDirectory'");
            mysql_query(DATABASE, QUERY);
            new r = cache_num_rows();
            if(r)
            {
                new def[64];
                cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
                switch(strval(def))
                {
                    case 0:
                    {
                        mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pDirectory` SET DEFAULT '1'", false, "", "");
                        SCM(playerid, -1, " Вы включили выдачу телефонного справочника при регистрации");
                        return true;
                    }
                    case 1:
                    {
                        mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pDirectory` SET DEFAULT '0'", false, "", "");
                        SCM(playerid, -1, " Вы отключили выдачу телефонного справочника при регистрации");
                        return true;
                    }
                }
            }
            return true;
        }
вот код. поможешь? вообще ничего не получается сколько бы не пытался
только включается и все
 

nonelike

Известный
50
2
В общем в этом коде не отключается выдача бонуса почему то.
case 5254:
{
if(!response) return true;
switch(listitem)
{
case 0..2:
{
SetPVarInt(playerid, "serverBonus", listitem);
ShowPlayerDialog(playerid, 5255, DIALOG_STYLE_INPUT, "Ввод параметра", "Введите значение", "Далее", "Назад");
return true;
}
case 3: // pDirectory
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pDirectory'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pDirectory` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу телефонного справочника при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pDirectory` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу телефонного справочника при регистрации");
return true;
}
}
}
return true;
}
case 4: // pCarLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pCarLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pCarLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу водительских прав при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pCarLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу водительских прав при регистрации");
return true;
}
}
}
return true;
}
case 5: // pFlyLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pFlyLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFlyLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на полёты при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFlyLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на полёты при регистрации");
return true;
}
}
}
return true;
}
case 6: // pBoatLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pBoatLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pBoatLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на водный транспорт при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pBoatLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на водный транспорт при регистрации");
return true;
}
}
}
return true;
}
case 7: // pFishLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pFishLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFishLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на рыболовлю при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pFishLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на рыболовлю при регистрации");
return true;
}
}
}
return true;
}
case 8: // pGunLic
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pGunLic'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
switch(strval(def))
{
case 0:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunLic` SET DEFAULT '1'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу лицензии на оружие при регистрации");
return true;
}
case 1:
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunLic` SET DEFAULT '0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу лицензии на оружие при регистрации");
return true;
}
}
}
return true;
}
case 9: // pGunSkills
{
mysql_format(DATABASE, QUERY, sizeof(QUERY), "SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.columns WHERE `TABLE_name` = 'accounts' AND `COLUMN_NAME` = 'pGunSkills'");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
new def[64];
cache_get_field_content(1, "COLUMN_DEFAULT", def, DATABASE, sizeof(def));
if(!strcmp(def, "0, 0, 0, 0, 0, 0"))
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunSkills` SET DEFAULT '100, 100, 100, 100, 100, 100'", false, "", "");
SCM(playerid, -1, " Вы включили выдачу навыка владения оружием при регистрации");
}
else if(!strcmp(def, "100, 100, 100, 100, 100, 100"))
{
mysql_function_query(DATABASE, "ALTER TABLE `accounts` ALTER COLUMN `pGunSkills` SET DEFAULT '0, 0, 0, 0, 0, 0'", false, "", "");
SCM(playerid, -1, " Вы отключили выдачу навыка владения оружием при регистрации");
}
}
return true;
}
}
CallLocalFunction("OnPlayerCommandText", "is", playerid, "/serverbonus");
}
может кто знает как исправить? буду очень благодарен

хотя бы как в самом первом кейсе сделать что бы норм работало дальше разберусь.
попробуй заменить на мою строчку у себя
павн:
SetPVarInt(playerid, "serverBonus", 0);
 

Tectrex

Известный
136
157
тут дело в том, что listitem может не доходить до 3, либо SQL-запрос не возвращает данные. Добавь логирование, чтобы понять, где косяк. Еще проверь, что def действительно 0 или 1, и что ALTER TABLE выполняется. Если всё ок, но не работает, то либо права на БД кривые, либо кэш запросов не чистится. Лог в консоль выведи, сразу увидишь, где затык. Если поменять cache_get_field_content(1, ...) на cache_get_field_content(0, ...), то ты будешь брать данные из первой строки результата, а не второй. Это может помочь, если у тебя в кэше только одна строка. А насчёт смены порядка case да, это хорошая идея. Если чаще выпадает значение 1, то логично поставить его первым, чтобы меньше проверок делать. Но это больше оптимизация, чем фикс. Главное убедись, что данные из SQL вообще приходят, и что listitem доходит до 3