PDA

Просмотр полной версии : [Вопрос] Unban



Skyline
04.02.2019, 17:39
Здравствуйте. Вопрос при unbane не удаляет игрока с базы, т.е. всегда пишет ник не того игрока которого разбаниваю, и того кто разбанивает

forward OnPlayerUnban(playerid);
public OnPlayerUnban(playerid)
{
new rows,
target_name[MAX_PLAYER_NAME];

cache_get_row_count(rows);

if(!rows)
return SendClientMessage(playerid, COLOR_GREY, !"Аккаунт не найден.");

new query_string[70 - 2 + MAX_PLAYER_NAME + 1];

GetPVarString(playerid, "target_name", target_name, sizeof(target_name));

format(query_string, sizeof(query_string), "DELETE FROM `banlist` WHERE `Name` = '%s'", target_name);
mysql_tquery(mysql_connect_ID, query_string, "", "");

format(query_string, sizeof(query_string), "Ты удалил игрока %s из списка временных банов.",target_name);
SendClientMessage(playerid, -1, query_string);

format(query_string, sizeof(query_string), "Пользователь %s был удален из списка временных банов админом %s.",target_name, pInfo[playerid][pName]);
SendAdminMessage(query_string, COLOR_HRED);
return 1;
}

Skyline
06.02.2019, 12:20
Все еще актуально, проблема нерешена.

m1n1vv
06.02.2019, 12:39
Скорей всего в SetPVarString записываешь GetPlayerName на свой ид

Skyline
06.02.2019, 12:46
CMD:unban(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 4)
return SendClientMessage(playerid, COLOR_WHITE, !"Неизвестная команда.");

if(!player_is_authorized{playerid})
return SendClientMessage(playerid, COLOR_GREY, !"Вы не авторизировались.");

if(isnull(params))
return SendClientMessage(playerid, COLOR_GREY, !"Использование: /unban [Ник]");

if(strlen(params) > MAX_PLAYER_NAME)
return SendClientMessage(playerid, COLOR_GREY, !"Длина ника не должна превышать 24х символов.");

new string[50 - 2 + MAX_PLAYER_NAME + 1];

SetPVarString(playerid, "target_name", params);

format(string, sizeof string, "SELECT * FROM `banlist` WHERE `Name` = '%s'", params);
mysql_tquery(mysql_connect_ID, string, !"OnPlayerUnban", "");
return 1;
}

m1n1vv
06.02.2019, 12:58
mysql_tquery(mysql_connect_ID, string, !"OnPlayerUnban", "i", playerid);

- - - Добавлено - - -

А можно вообще без PVar


CMD:unban(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 4)
return SendClientMessage(playerid, COLOR_WHITE, !"Неизвестная команда.");

if(!player_is_authorized{playerid})
return SendClientMessage(playerid, COLOR_GREY, !"Вы не авторизировались.");

if(isnull(params))
return SendClientMessage(playerid, COLOR_GREY, !"Использование: /unban [Ник]");

if(strlen(params) > MAX_PLAYER_NAME)
return SendClientMessage(playerid, COLOR_GREY, !"Длина ника не должна превышать 24х символов.");

new string[50 - 2 + MAX_PLAYER_NAME + 1];

format(string, sizeof string, "SELECT * FROM `banlist` WHERE `Name` = '%s'", params);
mysql_tquery(mysql_connect_ID, string, !"OnPlayerUnban", "is[24]", playerid, params);
return 1;
}


forward OnPlayerUnban(playerid, const target_name[]);
public OnPlayerUnban(playerid, const target_name[])
{
new rows,
target_name[MAX_PLAYER_NAME];

cache_get_row_count(rows);

if(!rows)
return SendClientMessage(playerid, COLOR_GREY, !"Аккаунт не найден.");

new query_string[70 - 2 + MAX_PLAYER_NAME + 1];

format(query_string, sizeof(query_string), "DELETE FROM `banlist` WHERE `Name` = '%s'", target_name);
mysql_tquery(mysql_connect_ID, query_string, "", "");

format(query_string, sizeof(query_string), "Ты удалил игрока %s из списка временных банов.",target_name);
SendClientMessage(playerid, -1, query_string);

format(query_string, sizeof(query_string), "Пользователь %s был удален из списка временных банов админом %s.",target_name, pInfo[playerid][pName]);
SendAdminMessage(query_string, COLOR_HRED);
return 1;
}