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

Тема: Топы

  1. #1
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±

    Топы

    Функция, позволяющая построить топ лист как по возрастанию, так и по убыванию.
    Данные берутся из базы данных( SQLite, под MySQL можете подстроить сами, основную логику системы я написал ).
    Аргументы функции:
    PHP код:

    str[], // строка, в которую будут записываться значения
    DBdatabase// база данных, из которой берутся значения
    tableName[],  // название таблицы, в которой производится поиск
    name[], // название столбца, значение которого будет записываться и показывать например имя игрока, который в топе
    order[],  //название столбца, по которому производится построение списка
    limit//максимальное количество значений топа
    boolmaxToMin true// необязательный аргумент. перестраивает список от меньшего к большему
    len sizeof str // так же необязательный аргумент. указывает на максимальное количество символов в форматируемой строке

    Пример использования функции:
    PHP код:
        new DBplayers db_open"players.db" ) ; //отрыли базу данных
        
    new str256 ]; // будем сюда записывать
        
    CreateTopFromBase(
                            
    str//строка, в которую записываются значения
                            
    players// БД
                            
    "PLAYERS"// название таблицы
                            
    "NAME",   // идентификатор
                            
    "MONEY",  // топовое значение
                            
    // максимальное кол-во значений в топе
                          
    );
        
    ShowPlayerDialogplayerid1DIALOG_STYLE_MSGBOX"Top list"str"Ok","" );// покажем топ лист 
    Мне лень было заходить в игру, дабы делать скриншот, тестировал в консольке ^_^.
    Результат запроса, показанного в примере:


    Сама функция:
    PHP код:
    stock CreateTopFromBasestr[], DBdatabasetableName[], name[], order[], limitboolmaxToMin truelen sizeof str ){
        new
            
    query_str70 ], // запрос
            
    name_saveMAX_PLAYER_NAME ], //имя юзера в выходной строке
            
    DBResulttopResult // запрос в таблицу
        
    ;
        
        
    formatquery_strsizeof query_str"SELECT %s, %s FROM %s ORDER BY %s %s LIMIT %i"nameordertableNameorder, ( maxToMin == true ? ( "DESC" ) : ( "ASC" ) ), limit );
        
    topResult db_querydatabasequery_str ) ; // произведи запрос в таблицу
        
        
    do {
            
    db_get_field_assoctopResultnamename_saveMAX_PLAYER_NAME ) ; // получим имя для вывода
            
    db_get_field_assoctopResultorderquery_strsizeof query_str ) ; // получим значение игрока
            
            
    formatstrlen"%s%s : %s\n"strname_savequery_str ); // добавим в строку
        
    } while( db_next_rowtopResult ) ) ; //пойдем к следующему результату

        
    db_free_resulttopResult ); // очистим результат

    Автор: единственный идиот, которому понадобилась эта бредофункция, т.е. я.

  2. 4 пользователя(ей) сказали cпасибо:
    Astrakhan30 (14.06.2016) Desulaid (15.03.2015) Unreal (12.11.2014) [ForD] (03.10.2014)
  3. #2
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    688
    Репутация:
    103 ±
    Примного благодарен,в будущем пригодится,так что эти похвалы и бурные аплодисменты заранее вам!
    P.S. Видимо нас 2 идиотов
    Последний раз редактировалось [ForD]; 13.10.2014 в 00:29.
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

 

 

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

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

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

Ваши права

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