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

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±

    Загрузка домов.

    Всем привет.

    Пишу систему домов, и меня мучает данная ошибка с mysql.log:
    PHP код:
    [21:08:13] [WARNINGcache_get_data no active cache 
    Собственно сам код:
    PHP код:
    fpublic LoadHouse()
    {
        
    LoadAllHouse 0;
        new
            
    rows,
            
    fields,
            
    time GetTickCount();
        
    cache_get_data(rowsfieldsmysql_connBD);
        if(
    rows)
        {
            for(new 
    1rowsh++)
            {
                
    hInfo[h][hID] = cache_get_field_content_int(h"ID"mysql_connBD);
                
    hInfo[h][hOwner] = cache_get_field_content_int(h"OWNER"mysql_connBD);
                
    hInfo[h][hSell] = cache_get_field_content_int(h"SELL"mysql_connBD);
                
    hInfo[h][hEnterX] = cache_get_field_content_float(h"ENTERX"mysql_connBD);
                
    hInfo[h][hEnterY] = cache_get_field_content_float(h"ENTERY"mysql_connBD);
                
    hInfo[h][hEnterZ] = cache_get_field_content_float(h"ENTERZ"mysql_connBD);
                    
    hInfo[h][hExitX] = cache_get_field_content_float(h"EXITX"mysql_connBD);
                
    hInfo[h][hExitY] = cache_get_field_content_float(h"EXITY"mysql_connBD);
                
    hInfo[h][hExitZ] = cache_get_field_content_float(h"EXITZ"mysql_connBD);
                
    hInfo[h][hInterier] = cache_get_field_content_int(h"INTERIER"mysql_connBD);
                
    hInfo[h][hPrice] = cache_get_field_content_int(h"PRICE"mysql_connBD);
                
    hInfo[h][hClass] = cache_get_field_content_int(h"CLASS"mysql_connBD);
                
    hInfo[h][hLock] = cache_get_field_content_int(h"LOCK"mysql_connBD);

                
    LoadAllHouse++;

                if(
    hInfo[h][hSell] == 0)
                {
                    static const 
    h_null[] = "Номер дома: %d\nКласс дома: %s\nСтоимость: %d";
                    new 
    h_buff[sizeof(h_null) + ((3-2) + (10-2) + (20-2))];
                    
    format(h_buffsizeof(h_buff), h_nullhInfo[h][hID], house_class[hInfo[h][hClass]], hInfo[h][hPrice]);

                    
    hInfo[h][hPickup] = CreatePickup(194711hInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], -1);
                    
    hInfo[h][hText] = Create3DTextLabel(h_buff0xFFFFFFhInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], 10.00);
                }
                else
                {
                    static const 
    h_null[] = "Номер дома: %d\nВладелец: %s\n";
                    new 
    h_buff[sizeof(h_null) + ((3-2) + (MAX_PLAYER_NAME-2))];
                    
    format(h_buffsizeof(h_buff), h_nullhInfo[h][hID], hInfo[h][hOwner]);

                    
    hInfo[h][hPickup] = CreatePickup(12721hInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], -1);
                    
    hInfo[h][hText] = Create3DTextLabel(h_buff0xFFFFFFhInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], 10.00);
                }
            }
            
    printf("[LOADING HOUSES]: <%d>. [TIME LOADING]: <%d>"LoadAllHouseGetTickCount()-time);
        }
        return 
    true;


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

    Статус
    Оффлайн
    Регистрация
    26.01.2016
    Сообщений
    31
    Репутация:
    1 ±
    в этой строке
    cache_get_data(rows, fields, mysql_connBD);
    лишний mysql_connBD
    наверно :D
    cache_get_data(rows, fields);
    а царь то ненастоящий

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от wea Посмотреть сообщение
    в этой строке
    cache_get_data(rows, fields, mysql_connBD);
    лишний mysql_connBD
    наверно :D
    cache_get_data(rows, fields);
    RTFM!!!


    Ошибка говорит, что ты либо не отправляешь запрос, но пытаешься работать с данными (которых нет), либо в запросе есть ошибка. Покажи код запроса
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    Их действительно нет. о-о
    БД пустая, поля созданы.

    запроса нет.

    есть паблик загрузки, и сток сохранения домов.
    Последний раз редактировалось BadPawn; 11.02.2016 в 15:07.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так напиши этот запрос, с помощью которого БД поймёт, что её нужно отослать данные серверу.
    Ну или, если не знаешь как, покажи структуру БД
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    BadPawn (11.02.2016)
  8. #6
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    честно сказать, еще нет достаточных знаний, поэтому не понимаю с чего начать.

    если сравнить с игроками, удалю например все аккаунты, ошибки ведь нет.
    чет срастить не могу.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Эмм, как-то так
    PHP код:
    mysql_function_query(mysql_connBD"SELECT * FROM `имя_бд`"true"LoadHouse",""); 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  10. Пользователь сказал cпасибо:
    BadPawn (11.02.2016)
  11. #8
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    допер. сделал запрос))

    в OnGameModeInit()
    PHP код:
        mysql_function_query(mysql_connBD"SELECT * FROM `house`"true"LoadHouse",""); 
    - - - Добавлено - - -

    спасибо DemioS)))

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

    Кхм.. После запроса, нужно же ниже вызывать паблик с загрузкой домов или же он по запросу дойдет? загрузка не происходит. домов 0, но до этого момента писало, мол загружено домов: 0

    Это скорее всего из-за проверки. if(rows)

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    И ещё, я бы сделал так:
    PHP код:
    fpublic LoadHouse()
    {
        new 
    h,
            
    time GetTickCount();
        
    cache_get_data(LoadAllHousehmysql_connBD);
        if(!
    rows) return print("LOADING HOUSES] Ошибка: База данных с домами пуста");
        
        static const 
    h_null[] = "Номер дома: %d\nКласс дома: %s\nСтоимость: %d";
        static const 
    h_not_null[] = "Номер дома: %d\nВладелец: %s\n";
        new 
    h_buff[sizeof(h_null) + ((3-2) + (10-2) + (20-2))];
        for(
    1LoadAllHouseh++)
        {
            
    hInfo[h][hID] = cache_get_field_content_int(h"ID"mysql_connBD);
            
    hInfo[h][hOwner] = cache_get_field_content_int(h"OWNER"mysql_connBD);
            
    hInfo[h][hSell] = cache_get_field_content_int(h"SELL"mysql_connBD);
            
    hInfo[h][hEnterX] = cache_get_field_content_float(h"ENTERX"mysql_connBD);
            
    hInfo[h][hEnterY] = cache_get_field_content_float(h"ENTERY"mysql_connBD);
            
    hInfo[h][hEnterZ] = cache_get_field_content_float(h"ENTERZ"mysql_connBD);
            
    hInfo[h][hExitX] = cache_get_field_content_float(h"EXITX"mysql_connBD);
            
    hInfo[h][hExitY] = cache_get_field_content_float(h"EXITY"mysql_connBD);
            
    hInfo[h][hExitZ] = cache_get_field_content_float(h"EXITZ"mysql_connBD);
            
    hInfo[h][hInterier] = cache_get_field_content_int(h"INTERIER"mysql_connBD);
            
    hInfo[h][hPrice] = cache_get_field_content_int(h"PRICE"mysql_connBD);
            
    hInfo[h][hClass] = cache_get_field_content_int(h"CLASS"mysql_connBD);
            
    hInfo[h][hLock] = cache_get_field_content_int(h"LOCK"mysql_connBD);

            if(
    hInfo[h][hSell] == 0)
            {
                
    format(h_buffsizeof(h_buff), h_nullhInfo[h][hID], house_class[hInfo[h][hClass]], hInfo[h][hPrice]);

                
    hInfo[h][hPickup] = CreatePickup(194711hInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], -1);
                
    hInfo[h][hText] = Create3DTextLabel(h_buff0xFFFFFFhInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], 10.00);
            }
            else
            {
                
    format(h_buffsizeof(h_buff), h_not_nullhInfo[h][hID], hInfo[h][hOwner]);
                
                
    hInfo[h][hPickup] = CreatePickup(12721hInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], -1);
                
    hInfo[h][hText] = Create3DTextLabel(h_buff0xFFFFFFhInfo[h][hEnterX], hInfo[h][hEnterY], hInfo[h][hEnterZ], 10.00);
            }
        }
        
    printf("[LOADING HOUSES]: <%d>. [TIME LOADING]: <%d>"LoadAllHouseGetTickCount()-time);
        return 
    true;

    Так ты чуть меньше будешь насиловать стэк при вызове этого паблика

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

    Цитата Сообщение от BadPawn Посмотреть сообщение
    Кхм.. После запроса, нужно же ниже вызывать паблик с загрузкой домов или же он по запросу дойдет? загрузка не происходит. домов 0, но до этого момента писало, мол загружено домов: 0
    Паблик вызывается сам.
    mysql_function_query(mysql_connBD, "SELECT * FROM `имя_бд`", true, "LoadHouse","");
    В том участке, что я выделил красным, ты указываешь на то, какой паблик будет вызван, а с помощью "true" ты указываешь то, нужно ли кэшировать запрос (нужно ли, чтоб БД отправляло какие-то данные обратно на сервер или нет). Если кэширование не нужно, то и паблик указывать так же не нужно
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  13. Пользователь сказал cпасибо:
    BadPawn (11.02.2016)
  14. #10
    Аватар для BadPawn
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.01.2016
    Адрес
    Приморье, Спасск-Дальний
    Сообщений
    165
    Репутация:
    7 ±
    DeimoS, у тебя просто блестящие знания. Спасибо огромное. Сейчас буду сравнивать и анализировать, что не так сделал.
    Спасибо.

 

 

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

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

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

Ваши права

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