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

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    30
    Репутация:
    1 ±

    Проблемка с загрузкой домов

    Загрузка домов вызывается в ongamemodeinit:
    PHP код:
    mysql_function_query(MYSQL_ARG"SELECT * FROM `"TABLE_HOUSES"`"true"OnHousesLoad",""); 
    PHP код:
    public OnHousesLoad() // Коллбэк загрузки
    {
        new 
    time GetTickCount();
        new 
    string[128],klass[2];
        new 
    temp[32],rows,fieldsconnectionHandle;
        
    cache_get_data(rows,fields,connectionHandle);
        if(
    rows)
        {
            for(new 
    idx 1idx <= rowsidx++)
            {
                
    cache_get_field_content(idx-1,"hID",temp,connectionHandle), HouseInfo[idx][hID] = strval(temp);
                
    cache_get_field_content(idx-1,"hOwned",temp,connectionHandle), HouseInfo[idx][hOwned] = strval(temp);
                
    cache_get_field_content(idx-1,"hOwner",HouseInfo[idx][hOwner],connectionHandle,24);
                
    cache_get_field_content(idx-1,"hEnterX",temp,connectionHandle), HouseInfo[idx][hEnterX] = floatstr(temp);
                
    cache_get_field_content(idx-1,"hEnterY",temp,connectionHandle), HouseInfo[idx][hEnterY] = floatstr(temp);
                
    cache_get_field_content(idx-1,"hEnterZ",temp,connectionHandle), HouseInfo[idx][hEnterZ] = floatstr(temp);
                
    cache_get_field_content(idx-1,"hExitX",temp,connectionHandle), HouseInfo[idx][hExitX] = floatstr(temp);
                
    cache_get_field_content(idx-1,"hExitY",temp,connectionHandle), HouseInfo[idx][hExitY] = floatstr(temp);
                
    cache_get_field_content(idx-1,"hExitZ",temp,connectionHandle), HouseInfo[idx][hExitZ] = floatstr(temp);
                
    cache_get_field_content(idx-1,"hLevel",temp,connectionHandle), HouseInfo[idx][hLevel] = strval(temp);
                
    cache_get_field_content(idx-1,"hPrice",temp,connectionHandle), HouseInfo[idx][hPrice] = strval(temp);
                
    cache_get_field_content(idx-1,"hLock",temp,connectionHandle), HouseInfo[idx][hLock] = strval(temp);
                
    cache_get_field_content(idx-1,"hTakings",temp,connectionHandle), HouseInfo[idx][hTakings] = strval(temp);
                
    cache_get_field_content(idx-1,"hInt",temp,connectionHandle), HouseInfo[idx][hInt] = strval(temp);
                
    cache_get_field_content(idx-1,"hHel",temp,connectionHandle), HouseInfo[idx][hHel] = strval(temp);
                
    cache_get_field_content(idx-1,"hClass",temp,connectionHandle), HouseInfo[idx][hClass] = strval(temp);
                
    TOTALHOUSES++;
                if(
    HouseInfo[idx][hOwned] == 0)
                {
                    
    HouseInfo[idx][hPickupID] = CreatePickup(127323HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
                    
    HouseInfo[idx][hIconID] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 31COLOR_WHITE0, -1, -1200.0);
                    switch(
    HouseInfo[idx][hClass])
                    {
                    case 
    0klass "E";
                    case 
    1klass "D";
                    case 
    2klass "C";
                    case 
    3klass "B";
                    case 
    4klass "A";
                    case 
    5klass "S";
                    }
                    
    format(string,256,"Номер дома: %i\nЦена: %i долларов\nКласс: %s",idx,HouseInfo[idx][hPrice],klass);
                    
    HouseInfo[idx][hTextID] = Create3DTextLabel(string,COLOR_SEND,HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],20.0,0,1);
                }
                else
                {
                    
    HouseInfo[idx][hPickupID] = CreatePickup(127223HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
                    
    HouseInfo[idx][hIconID] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 32COLOR_WHITE0, -1, -1200.0);
                    switch(
    HouseInfo[idx][hClass])
                    {
                    case 
    0klass "E";
                    case 
    1klass "D";
                    case 
    2klass "C";
                    case 
    3klass "B";
                    case 
    4klass "A";
                    case 
    5klass "S";
                    }
                    
    format(string,256,"Номер дома: %i\nВладелец: %s\nКласс: %s",idx,HouseInfo[idx][hOwner],klass);
                    
    HouseInfo[idx][hTextID] = Create3DTextLabel(string,COLOR_LIGHTRED,HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],20.0,0,1);
                }
            }
        }
        
    printf("[Загружено домов]: <%i>. Времени затрачено: <%i мс>",TOTALHOUSES,GetTickCount()-time);
        return 
    true;

    Проблема в том, что всегда загружается 0 домов.


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

    Версия MySQL R34

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    30
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Включите логирование при отсылке запроса (mysql_debug) и плагин вам сам всё расскажет
    Включил логирование...
    PHP код:
    [20:17:46] [DEBUGmysql_tquery connection1query"SELECT * FROM `house`"callback"OnHousesLoad"format"(null)"
    [20:17:46] [DEBUGCMySQLQuery::CMySQLQuery() - constructor called
    [20:17:46] [DEBUGmysql_tquery scheduling query "SELECT * FROM `house`"..
    [
    20:17:46] [DEBUGCMySQLQuery::Execute[OnHousesLoad()] - starting query execution
    [20:17:46] [DEBUGCMySQLQuery::Execute[OnHousesLoad()] - query was successful
    [20:17:46] [DEBUGCMySQLResult::CMySQLResult() - constructor called
    [20:17:46] [DEBUGCMySQLQuery::Execute[OnHousesLoad()] - data being passed to ProcessCallbacks()
    [
    20:17:46] [DEBUGCalling callback "OnHousesLoad"..
    [
    20:17:46] [DEBUGcache_get_data connection0
    [20:17:46] [ERROR"cache_get_data" invalid connection handle (ID 0)
    [
    20:17:46] [DEBUGCMySQLResult::~CMySQLResult() - deconstructor called
    [20:17:46] [DEBUGCMySQLQuery::~CMySQLQuery() - deconstructor called 
    И... что это значит?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    cache_get_data(rows,fields,connectionHandle); 
    На
    PHP код:
    cache_get_data(rows,fields); 
    Как и в остальных случаях. На месте этой переменной должна быть та, в которую записывается результат подключения к бд (mysql_connect)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    18.05.2014
    Сообщений
    30
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    cache_get_data(rows,fields,connectionHandle); 
    На
    PHP код:
    cache_get_data(rows,fields); 
    Как и в остальных случаях. На месте этой переменной должна быть та, в которую записывается результат подключения к бд (mysql_connect)
    Исправил как вы сказали, помогло. Большое спасибо.

  7. #6
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Closed.

 

 

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

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

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

Ваши права

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