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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от wea Посмотреть сообщение
    в этой строке
    cache_get_data(rows, fields, mysql_connBD);
    лишний mysql_connBD
    наверно :D
    cache_get_data(rows, fields);
    RTFM!!!


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

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Так напиши этот запрос, с помощью которого БД поймёт, что её нужно отослать данные серверу.
    Ну или, если не знаешь как, покажи структуру БД
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Эмм, как-то так
    PHP код:
    mysql_function_query(mysql_connBD"SELECT * FROM `имя_бд`"true"LoadHouse",""); 
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    И ещё, я бы сделал так:
    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" ты указываешь то, нужно ли кэшировать запрос (нужно ли, чтоб БД отправляло какие-то данные обратно на сервер или нет). Если кэширование не нужно, то и паблик указывать так же не нужно
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

 

 

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

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

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

Ваши права

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