shape1
shape2
shape3
shape4
shape7
shape8

/makeadmin


dengrand

Новичок
Пользователь
03.08.2021
19
0
0
Помогите, команда срабатывает, но не изменяет в бд, следовательно не выдает админку, помогите пожалуйста разобраться. 

Код:
CMD:makeadmin(playerid, params[])
{
        if(player[playerid][pAdmin] < 5) return true;
        {
                new Name[24],Level,apass;
                if(sscanf(params, "s[24]df",Name,Level,apass)) return SendClientMessage(playerid, -1, "[Подсказка]: Используйте /makeadmin [ИМЯ] [УРОВЕНЬ] [ПАРОЛЬ]");
                //if((!strcmp(Name, FD1, true) || !strcmp(Name, FD2, true)) && Level < 1) return SCM(playerid, -1, "[Ошибка]: Запрещено снять разработчика!");
                if(Level > 5 || Level < 0) return SCM(playerid, -1, "[Подсказка]: Значение не должно быть меньше 0 и больше 5!");
                new query_string[205], query[65];
                SCM(playerid, -1, "SENDED");
                
                format ( query_string, sizeof query_string, "UPDATE `users` SET `admin` = '%d' WHERE `name` = '%s' UPDATE `users` SET `apass` = '%f'",Level, Name, apass);
                SCM(playerid, -1, query_string);
                  mysql_function_query ( handle, query_string, false, "", "" ) ;
        }
        return 1;
}
 
Последнее редактирование модератором:

Vestorn

Новичок
Пользователь
26.12.2016
31
1
5
0
Помогите, команда срабатывает, но не изменяет в бд, следовательно не выдает админку, помогите пожалуйста разобраться. 

CMD:makeadmin(playerid, params[])
{
        if(player[playerid][pAdmin] < 5) return true;
        {
                new Name[24],Level,apass;
                if(sscanf(params, "s[24]df",Name,Level,apass)) return SendClientMessage(playerid, -1, "[Подсказка]: Используйте /makeadmin [ИМЯ] [УРОВЕНЬ] [ПАРОЛЬ]");
                //if((!strcmp(Name, FD1, true) || !strcmp(Name, FD2, true)) && Level < 1) return SCM(playerid, -1, "[Ошибка]: Запрещено снять разработчика!");
                if(Level > 5 || Level < 0) return SCM(playerid, -1, "[Подсказка]: Значение не должно быть меньше 0 и больше 5!");
                new query_string[205], query[65];
                SCM(playerid, -1, "SENDED");
                
                format ( query_string, sizeof query_string, "UPDATE `users` SET `admin` = '%d' WHERE `name` = '%s' UPDATE `users` SET `apass` = '%f'",Level, Name, apass);
                SCM(playerid, -1, query_string);
                  mysql_function_query ( handle, query_string, false, "", "" ) ;
        }
        return 1;
}
Оптимизация плачет конечно.
1. Вынеси обновление в отдельный паблик, так в будущем будет легче работать
2. Использование лишней памяти query_string[205], query[65]. То есть, каждый раз ты будешь создавать стринг, выделяя память, которая не будет полностью использована, тем самым не используешь до конца выделенные ресуры.

3. 

format ( query_string, sizeof query_string, "UPDATE `users` SET `admin` = '%d' WHERE `name` = '%s' UPDATE `users` SET `apass` = '%f'",Level, Name, apass);
Очень странно написано, попробуй сделать так:

Код:
format ( query_string, sizeof query_string, "UPDATE `users` SET `admin` = '%d',`apass` = '%f' WHERE `name` = '%s'",Level, apass, Name);
 
Последнее редактирование модератором: