Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 15
  1. #1
    Аватар для Vano_Glad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.07.2015
    Адрес
    Хабаровск
    Сообщений
    142
    Репутация:
    0 ±

    Как реализовать /offmembers на MySQL?

    Всем привет. Решил сделать команду у себя в моде на перечисление игроков, состоящих во фракции, оффлайн. Честно говоря недопонимаю как сделать всё это. В принципе основу я сделал и вроде бы как что-то сообразил, но система как вы поняли не работает должным образом. Вот перебор:

    PHP код:
    fpublic OffMembers(playerid)
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        new 
    Names[24];
        for(new 
    0rowsi++)
        {
             
    cache_get_field_content(0"Name"Namesconnect_mysql24);
             static const 
    fmt_str_2[] = "OFFLINE %s";
            new 
    string_2[sizeof(fmt_str_2)-2+MAX_PLAYER_NAME];
            
    format(string_2sizeof(string_2), fmt_str_2
            
    ,
                
    Names
            
    );
            
    SCM(iCOLOR_GREENstring_2);
        }
        return 
    true;

    Я честно говоря множество вариантов перепробовал, но всё без толку. Выводит только первого игрока по счете в таблице, а остальных нет. Мне кажется этот вариант самый правильный, но немного не правильно написанный. Что скажете? Как эту гребанную систему сделать :)
    Последний раз редактировалось DeimoS; 22.08.2016 в 16:08.
    ______________________________________________
    Услуги Pawn

  2. #2
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Цитата Сообщение от Vano_Glad Посмотреть сообщение
    Всем привет. Решил сделать команду у себя в моде на перечисление игроков, состоящих во фракции, оффлайн. Честно говоря недопонимаю как сделать всё это. В принципе основу я сделал и вроде бы как что-то сообразил, но система как вы поняли не работает должным образом. Вот перебор:

    PHP код:
    fpublic OffMembers(playerid)
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        new 
    Names[24];
        for(new 
    0rowsi++)
        {
             
    cache_get_field_content(0"Name"Namesconnect_mysql24);
             static const 
    fmt_str_2[] = "OFFLINE %s";
            new 
    string_2[sizeof(fmt_str_2)-2+MAX_PLAYER_NAME];
            
    format(string_2sizeof(string_2), fmt_str_2
            
    ,
                
    Names
            
    );
            
    SCM(iCOLOR_GREENstring_2);
        }
        return 
    true;

    Я честно говоря множество вариантов перепробовал, но всё без толку. Выводит только первого игрока по счете в таблице, а остальных нет. Мне кажется этот вариант самый правильный, но немного не правильно написанный. Что скажете? Как эту гребанную систему сделать :)
    Я все понял :D Топ подпись
    http://imgur.com/a/DHoRd
    И зачем создавать массив внутри цикла?
    Up: должно быть как-то так
    PHP код:
    fpublic OffMembers(playerid)
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        new 
            
    Names[24],
            
    string_2[sizeof(fmt_str_2)-2+MAX_PLAYER_NAME];
        static const 
    fmt_str_2[] = "OFFLINE %s";
        for(new 
    0rowsi++)
        {
            
    cache_get_field_content(i"Name"Namesconnect_mysql24);
            
    format(string_2sizeof(string_2), fmt_str_2
            
    ,
                
    Names
            
    );
            
    SCM(playeridCOLOR_GREENstring_2);
        }
        return 
    true;

    Последний раз редактировалось Sp1ke; 22.08.2016 в 14:33.

  3. Пользователь сказал cпасибо:
    Vano_Glad (22.08.2016)
  4. #3
    Аватар для Vano_Glad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.07.2015
    Адрес
    Хабаровск
    Сообщений
    142
    Репутация:
    0 ±
    Я все понял :D
    http://imgur.com/c0k9Jup
    И зачем создавать статический массив внутри цикла?
    Это я так, создавал на скорую руку, чтобы тестировать. Мне главное основной принцип понять. Я действительно могу сделать практически любую систему в SA:MP, НО запросы MySQL и всю эту среду изучаю всего год. Здесь я не на 100% силен, пока еще есть некоторые пробелы, а за ответ спасибо. Сейчас затестим
    ______________________________________________
    Услуги Pawn

  5. #4
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Цитата Сообщение от Vano_Glad Посмотреть сообщение
    Это я так, создавал на скорую руку, чтобы тестировать. Мне главное основной принцип понять
    Обновил пост выше, попробуй, должно работать

  6. #5
    Аватар для HarrWe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.05.2016
    Сообщений
    144
    Репутация:
    11 ±
    О Vano Glad, чувствую скоро будет урок)
    А по теме, вот попробуй

    Это вызов
    PHP код:
    mysql_format(1querysizeof(query),"SELECT `Name` FROM `Таблица` WHERE `Member` = '%d'",Player[playerid][pMember]);
    mysql_query(1query"OffMembers""d",playerid); 
    PHP код:
    ppublic OffMembers(playerid)
    {
        new 
    rows,fields,str[2048];
        
    cache_get_data(rows,fields);
        if(!
    rows) return true;
        new 
    nicks[25];
        new 
    string2[2048];
        
    strcat(str,"Игроки вашей организации");
         for(new 
    0rowsi++)
        {
            
    cache_get_field_content(i"Name"nicks1sizeof nicks ));
            
    format(string2,sizeof(string2), "%s - %s",(IsPlayerConnected(i))?("Онлайн"):("Офлайн"), nicks);
            
    strcat(str,string2);
        }
        
    ShowPlayerDialog(playerid0DIALOG_STYLE_MSGBOX"{FF6F00}Все игроки в Вашей организации"string2"Принять""Отмена");
        return 
    true;


  7. #6
    Аватар для Vano_Glad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.07.2015
    Адрес
    Хабаровск
    Сообщений
    142
    Репутация:
    0 ±
    Нет, не помогло. Все так же выводит только первый никнейм из таблицы с указанным ID фракции. В таблице несколько аккаунтов с одинаковым ID фракции. Если это как-то поможет, то вот ещё и команда:

    PHP код:
    CMD:aoffmembers(playeridparams[])
    {
        if(
    player[playerid][padmin] < 5) return true;
        if(
    player[playerid][padmin] < 5) return
            
    SCM(playeridCOLOR_GREY"Вы не уполномочены использовать данную команду!");
        if(
    access_check[playerid] == false && player[playerid][padmin] > 0) return
            
    SPD(playerid37DSP"Админ-авторизация""{FFFFFF}Пожалуйста, введите свой админ-пароль для авторизации:""Далее""Выход");
        if(
    sscanf(params"i"params[0])) return
            
    SCM(playeridCOLOR_WHITE"Введите: /aoffmembers [id фракции]");
        if(
    params[0] < || params[0] > 18) return
            
    SCM(playeridCOLOR_GREY"ID фракции должен быть от 1 до 18!");
        new 
    offmembers;
        
    SCM(playeridCOLOR_RED"Список игроков OFFLINE:");
        static 
    fmt_str[] = "SELECT * FROM `accounts` WHERE `Member` = '%d'";
        new 
    string[sizeof(fmt_str)-2+2];
        
    mysql_format(connect_mysqlstringsizeof(string), fmt_str
        
    ,
            
    params[0]
        );
        
    mysql_function_query(connect_mysqlstringtrue"OffMembers""i"playerid);
        return 
    true;

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

    О Vano Glad, чувствую скоро будет урок)
    А по теме, вот попробуй
    Твой код я вообще боюсь вставлять в мод :)
    ______________________________________________
    Услуги Pawn

  8. #7
    Аватар для HarrWe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.05.2016
    Сообщений
    144
    Репутация:
    11 ±
    Цитата Сообщение от Vano_Glad Посмотреть сообщение
    Твой код я вообще боюсь вставлять в мод :)
    Не мой, но как я знаю работает)

  9. #8
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Цитата Сообщение от Vano_Glad Посмотреть сообщение
    Нет, не помогло. Все так же выводит только первый никнейм из таблицы с указанным ID фракции. В таблице несколько аккаунтов с одинаковым ID фракции. Если это как-то поможет, то вот ещё и команда:

    PHP код:
    CMD:aoffmembers(playeridparams[])
    {
        if(
    player[playerid][padmin] < 5) return true;
        if(
    player[playerid][padmin] < 5) return
            
    SCM(playeridCOLOR_GREY"Вы не уполномочены использовать данную команду!");
        if(
    access_check[playerid] == false && player[playerid][padmin] > 0) return
            
    SPD(playerid37DSP"Админ-авторизация""{FFFFFF}Пожалуйста, введите свой админ-пароль для авторизации:""Далее""Выход");
        if(
    sscanf(params"i"params[0])) return
            
    SCM(playeridCOLOR_WHITE"Введите: /aoffmembers [id фракции]");
        if(
    params[0] < || params[0] > 18) return
            
    SCM(playeridCOLOR_GREY"ID фракции должен быть от 1 до 18!");
        new 
    offmembers;
        
    SCM(playeridCOLOR_RED"Список игроков OFFLINE:");
        static 
    fmt_str[] = "SELECT * FROM `accounts` WHERE `Member` = '%d'";
        new 
    string[sizeof(fmt_str)-2+2];
        
    mysql_format(connect_mysqlstringsizeof(string), fmt_str
        
    ,
            
    params[0]
        );
        
    mysql_function_query(connect_mysqlstringtrue"OffMembers""i"playerid);
        return 
    true;

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



    Твой код я вообще боюсь вставлять в мод :)
    Я делал еще правку, попробуй еще раз

  10. #9
    Аватар для Vano_Glad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.07.2015
    Адрес
    Хабаровск
    Сообщений
    142
    Репутация:
    0 ±
    Неа, один хер. Сейчас попробую код этого типа, только в нормальном виде)

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

    Фиг. Оба варианта не робят
    ______________________________________________
    Услуги Pawn

  11. #10
    Аватар для HarrWe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.05.2016
    Сообщений
    144
    Репутация:
    11 ±
    Ща код дам, у меня работает
    PHP код:
    CMD:offmembers(playerid)
    {
        new 
    query[200];
        
    format(querysizeof(query),"SELECT `Name` FROM `acc` WHERE `Member` = '%d'",Player[playerid][pMember]);
        
    mysql_function_query(1querytrue"OffMembers""d"playerid);
        return 
    true;
    }
    ppublic OffMembers(playerid)
    {
        new 
    nicks[25];
        new 
    string2[2048];
        new 
    rows,fields;
        
    cache_get_data(rows,fields);
        if(!
    rows) return true;
         for(new 
    0rowsi++)
        {
            
    cache_get_field_content(i,"Name",nicks,1,sizeof(nicks));
            
    format(string2,sizeof(string2), "%s %s\n",string2,nicks);
        }
        
    SPD(playerid0DIALOG_STYLE_MSGBOX"123"string2"Принять""");
        return 
    true;


    Последний раз редактировалось HarrWe; 22.08.2016 в 14:58.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •