• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Как сделать команду для назначения охранника /security

elishansky

Умник
Приветствую. Я новичок. Помогите пожалуйста. Суть в чем:
Если игрок вёл /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;
                }
 
Последнее редактирование модератором:
Сверху Снизу