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

Реклама


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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±

    По команде /top SQlite

    PHP код:
    CMD:top(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Login") != 2) return 1;
        
    u_result db_query(users_base"SELECT * FROM USERS WHERE KILL > 0 BY KILL DESC LIMIT 10");
        
    SCM(playerid,0xAFAFAFAA,"Топ 10 лучших игроков:");
        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(u_result))
        {
            
    db_get_field_assoc(u_result,"Name"nameMAX_PLAYER_NAME);
            
    db_get_field_assoc(u_result,"Kill"kills,11);
            
    format(stringsizeof(string), fmt_stringnamestrval(kills));
            
    SCM(playerid0xFFFFFFAAstring);
        }
        
    db_free_result(u_result);
        return 
    1;

    Что-то не работает... По коду вроде верно. Не могу понять в чем ошибка..
    Вот что выводит
    Последний раз редактировалось Flime; 28.06.2014 в 19:15. Причина: Отредактировал команду

  2. #2
    Аватар для Zeror_Dalglish
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    04.06.2014
    Сообщений
    224
    Репутация:
    -1 ±
    Цитата Сообщение от Flime Посмотреть сообщение
    PHP код:
    CMD:top(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Login") != 2) return 1;
        
    u_result db_query(users_base"SELECT * FROM USERS WHERE KILL > 0 BY KILL DESC");
        
    SCM(playerid,0xAFAFAFAA,"Топ 10 лучших игроков:");
        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];
        for(new 
    i10i++)
        {
            
    db_get_field_assoc(u_result,"Name"nameMAX_PLAYER_NAME);
            
    db_get_field_assoc(u_result,"Kill"kills,11);
            
    format(stringsizeof(string), fmt_stringname,kills);
            
    SCM(playerid0xFFFFFFAAstring);
            
    db_next_row(u_result);
        }
        
    db_free_result(u_result);
        return 
    1;

    Что-то не работает... По коду вроде верно. Не могу понять в чем ошибка..
    Прологирую и посмотри где оканчивается работоспособность кода

  3. #3
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    Команда выполняется полностью. Но не верно. Вместо топа 10 игроков. Выводит бред..

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Что именно не так? Пока я вижу лишь то, что kills имеет формат строки, а выгружаете вы её значение в целочисленный заполнитель

    И почему бы не использовать LIMIT в запросе?

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

    Как-нибудь так
    PHP код:
    CMD:top(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Login") != 2) return 1;
        
    u_result db_query(users_base"SELECT * FROM USERS WHERE KILL > 0 BY KILL DESC LIMIT 10");
        
    SCM(playerid,0xAFAFAFAA,"Топ 10 лучших игроков:");
        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(u_result))
        {
            
    db_get_field_assoc(u_result,"Name"nameMAX_PLAYER_NAME);
            
    db_get_field_assoc(u_result,"Kill"kills,11);
            
    format(stringsizeof(string), fmt_stringnamestrval(kills));
            
    SCM(playerid0xFFFFFFAAstring);
        }
        
    db_free_result(u_result);
        return 
    1;

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    Вот что выводит. Отредактировал команду. Не заметил...

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    PHP код:
    CMD:top(playeridparams[])
    {
        if(
    GetPVarInt(playerid"Login") != 2) return 1;
        
    u_result db_query(users_base"SELECT * FROM USERS WHERE KILL > 0 BY KILL DESC");
        if(!
    db_num_rows(u_result)) return SendClientMessage(playerid0xFF0000FF"Данные не найдены");
        
    SCM(playerid,0xAFAFAFAA,"Топ 10 лучших игроков:");
        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(u_result))
        {
            
    db_get_field_assoc(u_result,"Name"nameMAX_PLAYER_NAME);
            
    db_get_field_assoc(u_result,"Kill"kills,11);
            
    format(stringsizeof(string), fmt_stringnamestrval(kills));
            
    SCM(playerid0xFFFFFFAAstring);
        }
        
    db_free_result(u_result);
        return 
    1;

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

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    Flime (28.06.2014)
 

 

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

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

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

Ваши права

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