Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 34
  1. #1
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±

    Вопрос по /top

    Здравствуйте Ув.Форумчане.

    Вот такая проблема, попытался сделать команду /top(показывает 10 тех у кого больше всех убийств) и столкнулся с такой проблемой.

    Введя команду /top мне показывается 10 тех у кого первая цифра больше. Т.е. если у меня 800 килов, а у Вани 3000, я буту стоять первым.

    Как исправить данную проблему? БД SQliteю

    Вот команда и скрин.

    PHP код:
    if(strcmp(cmd"/top"true) == 0)
       {
       new 
    Query[100], DBResultResult;
       
    format(Querysizeof(Query), "SELECT * FROM `USERS` WHERE `KILLS` > 0 ORDER BY `KILLS` DESC LIMIT 10");
       
    Result db_query(DatabaseQuery);
       static const 
    fmt_string[] = "Ник: %s || Kills: %d";
       new 
    string[sizeof(fmt_string)-4+11+MAX_PLAYER_NAME];
       new 
    name[MAX_PLAYER_NAME+1],kills[11];
       while(
    db_next_row(Result))
       {
            
    db_get_field_assoc(Result,"Name"nameMAX_PLAYER_NAME);
            
    db_get_field_assoc(Result,"Kills"kills,11);
            
    format(stringsizeof(string), fmt_stringnamestrval(kills));
            
    SendClientMessage(playerid0xFFFFFFAAstring);
       }
       
    db_free_result(Result);
       return 
    1;
       } 


    У кого не грузить вот - http://i024.radikal.ru/1407/94/28d2aef64d0c.jpg

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

    Статус
    Оффлайн
    Регистрация
    10.01.2014
    Сообщений
    110
    Репутация:
    29 ±
    Нужно что-то вроде сортировки, по убийствам. Если у i-1 игрока убийств больше, чем у i игрока, меняем их местами.

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

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±
    Цитата Сообщение от MR_BEN Посмотреть сообщение
    Нужно что-то вроде сортировки, по убийствам. Если у i-1 игрока убийств больше, чем у i игрока, меняем их местами.
    Ну это понятно, а как это сделать?

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

    Статус
    Оффлайн
    Регистрация
    14.04.2014
    Адрес
    Omsk, Russia
    Сообщений
    351
    Репутация:
    49 ±
    Цитата Сообщение от Дёня Посмотреть сообщение
    Ну это понятно, а как это сделать?
    с помощью логических символов >, <, =
    допустим if(Kills > 1000) return SendClientMessage(-1, Все бабы твои, у тебя больше тысячи киллов);
    Skype: sp3ctrum_attack

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

    Статус
    Оффлайн
    Регистрация
    10.01.2014
    Сообщений
    110
    Репутация:
    29 ±
    Цитата Сообщение от Spectrum Посмотреть сообщение
    с помощью логических символов >, <, =
    допустим if(Kills > 1000) return SendClientMessage(-1, Все бабы твои, у тебя больше тысячи киллов);
    нет, с помощью сортировки

    Вот алгоритмы сортировок, сделай по примерам
    Последний раз редактировалось MR_BEN; 16.07.2014 в 15:10.

  7. Пользователь сказал cпасибо:
    Дёня (16.07.2014)
  8. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    А если как-то так
    PHP код:
    if(strcmp(cmd"/top"true) == 0)
    {
       new 
    Query[100], DBResultResult;
       
    format(Querysizeof(Query), "SELECT Name, Kills FROM `USERS` WHERE Kills > 0 ORDER BY Kills DESC LIMIT 10");
       
    Result db_query(DatabaseQuery);
       static const 
    fmt_string[] = "Ник: %s || Kills: %d";
       new 
    string[sizeof(fmt_string)-4+11+MAX_PLAYER_NAME];
       new 
    name[MAX_PLAYER_NAME],kills[11];
       while(
    db_next_row(Result))
       {
       
            
    db_get_field_assoc(Result,"Name"nameMAX_PLAYER_NAME);
            
    db_get_field_assoc(Result,"Kills"kills11);
            
    format(stringsizeof(string), fmt_stringnamestrval(kills));
            
    SendClientMessage(playerid0xFFFFFFAAstring);
       }
       
    db_free_result(Result);
       return 
    1;

    Если не получится - придётся результат запроса сохранять и вручную сортировать
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. Пользователь сказал cпасибо:
    Дёня (16.07.2014)
  10. #7
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А если как-то так
    PHP код:
    if(strcmp(cmd"/top"true) == 0)
    {
       new 
    Query[100], DBResultResult;
       
    format(Querysizeof(Query), "SELECT Name, Kills FROM `USERS` WHERE Kills > 0 ORDER BY Kills DESC LIMIT 10");
       
    Result db_query(DatabaseQuery);
       static const 
    fmt_string[] = "Ник: %s || Kills: %d";
       new 
    string[sizeof(fmt_string)-4+11+MAX_PLAYER_NAME];
       new 
    name[MAX_PLAYER_NAME],kills[11];
       while(
    db_next_row(Result))
       {
       
            
    db_get_field_assoc(Result,"Name"nameMAX_PLAYER_NAME);
            
    db_get_field_assoc(Result,"Kills"kills11);
            
    format(stringsizeof(string), fmt_stringnamestrval(kills));
            
    SendClientMessage(playerid0xFFFFFFAAstring);
       }
       
    db_free_result(Result);
       return 
    1;

    Если не получится - придётся результат запроса сохранять и вручную сортировать
    Все по по прежнему, считывает только первые цифры.

    А можно поподробнее, как это? Сохранять результат запроса и в ручную сортировать?

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

    Статус
    Оффлайн
    Регистрация
    10.01.2014
    Сообщений
    110
    Репутация:
    29 ±
    Цитата Сообщение от Дёня Посмотреть сообщение
    Все по по прежнему, считывает только первые цифры.

    А можно поподробнее, как это? Сохранять результат запроса и в ручную сортировать?
    Это значит, записать все убийства, допустим в массив, и отсортировать его.

  12. Пользователь сказал cпасибо:
    Дёня (16.07.2014)
  13. #9
    Аватар для Дёня
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    152
    Репутация:
    13 ±
    Цитата Сообщение от MR_BEN Посмотреть сообщение
    Это значит, записать все убийства, допустим в массив, и отсортировать его.
    Хм.... а можно пример или объяснить, как это сделать.

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

    Статус
    Оффлайн
    Регистрация
    10.01.2014
    Сообщений
    110
    Репутация:
    29 ±
    Цитата Сообщение от Дёня Посмотреть сообщение
    Хм.... а можно пример или объяснить, как это сделать.
    Посмотри, там наверху есть алгоритмы сортировок, запишешь всё в массив и по любому из этих отсортируешь.

 

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

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

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

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

Ваши права

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