elishansky
Умник
Приветствую. Я новичок. Помогите пожалуйста. Суть в чем:
Если игрок вёл /security открывается диалог пунк Назначить охранника, а если есть уже назначенные охранники, то ниже пунктов идут ники и номера.
И если нажал на ник в списке, то должен уволить охранника. Помогите исправить эту хрень.
Версия mysql вроде r43
При назначении сохраняется старая работа - чтобы при увольнении вернулась обратно.
Уволить хочу и онлайн игрока и оффлайн, ну по идее должныи оффлайн охранники отобразится в /security, но не отображаются и в БД не правильно ник записывает. остальное норм
Если игрок вёл /security открывается диалог пунк Назначить охранника, а если есть уже назначенные охранники, то ниже пунктов идут ники и номера.
И если нажал на ник в списке, то должен уволить охранника. Помогите исправить эту хрень.
Версия mysql вроде r43
При назначении сохраняется старая работа - чтобы при увольнении вернулась обратно.
Уволить хочу и онлайн игрока и оффлайн, ну по идее должныи оффлайн охранники отобразится в /security, но не отображаются и в БД не правильно ник записывает. остальное норм
PHP:
CMD:security(playerid, params[])
{
strcat(string, "Назначить охранника\n");
new Cache:result = mysql_query(base,"SELECT Name, new_job FROM security_mans WHERE is_active = 1",false);
new rows = cache_num_rows();
for (new i = 0; i < rows; i++)
{
new name[24], frac;
cache_get_value_name(i, "username", name, sizeof(name));
cache_get_value_name_int(i, "new_job", job);
format(strings, sizeof(szDialog), "%s%s - %d\n",strings, name, job);
}
cache_delete(result);
ShowPlayerDialog(playerid, 6969, DIALOG_STYLE_LIST, "Security Info", string, "Далее", "Закрыть");
return 1;
}
PHP:
ase 6969:
{
if(!response) return true;
if (listitem == 0)
{
ShowPlayerDialog(playerid, 6690, DIALOG_STYLE_INPUT, "Назначение охраны","\nВведите ИД игрока и через пробел номер охранны");
return 1;
}
new index = listitem - 1;
new query[128];
format(query, sizeof(query), "SELECT Name, old_job FROM security_mans WHERE is_active =1 LIMIT 1 OFFSET %d",index);
new Cache:result = mysql_query(base, query, false);
if (cache_num_rows() > 0)
{
new name[24];
cache_get_value_name(0, "username", name, sizeof(name));
cache_get_value_name_int(0, "old_job", old_job);
cache_delete(result);
format(query, sizeof(query), "UPDATE spy_users SET is_active = 0 WHERE Name = '%e'",PlayerInfo[playerid][pNick]);
mysql_tquery(base, query);
new id = PlayerInfo[id][pNick];
if (id != INVALID_PLAYER_ID)
{
User[id][pRang] = 0;
User[id][pJob] = old_job;
SetPlayerSkin(id, PlayerInfo[playerid][pJobSkin]);
SendClientMessage(id, -1, "Вы были уволены и возвращены на старую работу");
}
SendClientMessage(playerid, -1, "Выбранный игрок уволен");
}
else
{
cache_delete(result);
SendClientMessage(playerid, -1, "Ошибка");
}
return 1;
}
PHP:
case 6690:
{
if (!response) return 1;
new giveplayerid, number;
if (sscanf(inputtext, "p<,>dd", giveplayerid, number)) return SendClientMessage(playerid, -1, "Неверный формат");
if (!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1, "Игрок в оффлайне");
new query[128];
format(query, sizeof(query), "SELECT id FROM security_mans WHERE Name =' %e' AND active =1", PlayerInfo[giveplayerid][pNick]);
new Cache:result = mysql_query(base, query, false);
if (cache_num_rows() > 0)
{
cache_delete(result); return SendClientMessage(playerid, -1, "Этот уже работает охранником");
}
cache_delete(result);
new old_job = PlayerInfo[id][pJob];
PlayerInfo[id][pRang] = 1;
PlayerInfo[id][pJob] = number;
format(query, sizeof(query), "INSERT INTO spy_users (Name, old_job,new_job, is_active) VALUES ('%e', %d, %d, 1)",User[giveplayerid][pNick], old_job,number);
mysql_tquery(base, query);
SendClientMessage(playerid, -1, "Игрок принят");
return 1;
}
Последнее редактирование модератором:
