Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 16 из 16
  1. #11
    Аватар для adamand
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2017
    Сообщений
    8
    Репутация:
    1 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    мой вариант проверь, должно работать
    Он срабатывает почти как надо. Берётся одна зона, но последний дом не работает, пикап крутится, но зона не берётся.

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

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от adamand Посмотреть сообщение
    Он срабатывает почти как надо. Берётся одна зона, но последний дом не работает, пикап крутится, но зона не берётся.
    ах ну да, еще цикл кривой в загрузке домов
    PHP код:
    publicsHouseLoading()
    {
        new 
    rowsfields;
        
    cache_get_data(rows,fields,MYSQL_CONNECT);
        if(
    rows)
        {
            for(new 
    0rowsi++)
            {
                
    House[i][ID] = cache_get_field_content_int(i-1"ID"MYSQL_CONNECT);
                
    House[i][Owned] = cache_get_field_content_int(i-1"Owned"MYSQL_CONNECT);
                
    cache_get_field_content(i-1"Owner"House[i][Owner], MYSQL_CONNECT24);
                
    House[i][HEnter][0] = cache_get_field_content_float(i-1"PosX"MYSQL_CONNECT);
                
    House[i][HEnter][1] = cache_get_field_content_float(i-1"PosY"MYSQL_CONNECT);
                
    House[i][HEnter][2] = cache_get_field_content_float(i-1"PosZ"MYSQL_CONNECT);

                
    House[i][Price] = cache_get_field_content_int(i-1"Price"MYSQL_CONNECT);
                
    House[i][Class] = cache_get_field_content_int(i-1"Class"MYSQL_CONNECT);
                
    House[i][Lock] = cache_get_field_content_int(i-1"Lock"MYSQL_CONNECT);
                
                   
    TOTAL_HOUSE++;
                if(!
    House[i][Owned])
                {
                       
    House[i][EnterPickup] = CreatePickup(127323House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2],-1);
                    
    House[i][MapIcons] = CreateDynamicMapIcon(House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2], 31CWHITE0, -1, -1200.0);
                   }
                   else
                   {
                       
    House[i][EnterPickup] = CreatePickup(1952223House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2],-1);
                    
    House[i][MapIcons] = CreateDynamicMapIcon(House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2], 32CWHITE0, -1, -1100.0);
                   }
                   
    House[i][Area] = CreateDynamicSphere(House[i][HEnter][0],House[i][HEnter][1],House[i][HEnter][2],1.0,0,0,-1);
            }
        }
        
    printf("[Система домов]: %i домов было загружено."TOTAL_HOUSE);
        return 
    true;


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

    Статус
    Оффлайн
    Регистрация
    24.08.2017
    Сообщений
    8
    Репутация:
    1 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    ах ну да, еще цикл кривой в загрузке домов
    PHP код:
    publicsHouseLoading()
    {
        new 
    rowsfields;
        
    cache_get_data(rows,fields,MYSQL_CONNECT);
        if(
    rows)
        {
            for(new 
    0rowsi++)
            {
                
    House[i][ID] = cache_get_field_content_int(i-1"ID"MYSQL_CONNECT);
                
    House[i][Owned] = cache_get_field_content_int(i-1"Owned"MYSQL_CONNECT);
                
    cache_get_field_content(i-1"Owner"House[i][Owner], MYSQL_CONNECT24);
                
    House[i][HEnter][0] = cache_get_field_content_float(i-1"PosX"MYSQL_CONNECT);
                
    House[i][HEnter][1] = cache_get_field_content_float(i-1"PosY"MYSQL_CONNECT);
                
    House[i][HEnter][2] = cache_get_field_content_float(i-1"PosZ"MYSQL_CONNECT);

                
    House[i][Price] = cache_get_field_content_int(i-1"Price"MYSQL_CONNECT);
                
    House[i][Class] = cache_get_field_content_int(i-1"Class"MYSQL_CONNECT);
                
    House[i][Lock] = cache_get_field_content_int(i-1"Lock"MYSQL_CONNECT);
                
                   
    TOTAL_HOUSE++;
                if(!
    House[i][Owned])
                {
                       
    House[i][EnterPickup] = CreatePickup(127323House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2],-1);
                    
    House[i][MapIcons] = CreateDynamicMapIcon(House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2], 31CWHITE0, -1, -1200.0);
                   }
                   else
                   {
                       
    House[i][EnterPickup] = CreatePickup(1952223House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2],-1);
                    
    House[i][MapIcons] = CreateDynamicMapIcon(House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2], 32CWHITE0, -1, -1100.0);
                   }
                   
    House[i][Area] = CreateDynamicSphere(House[i][HEnter][0],House[i][HEnter][1],House[i][HEnter][2],1.0,0,0,-1);
            }
        }
        
    printf("[Система домов]: %i домов было загружено."TOTAL_HOUSE);
        return 
    true;

    Стало только хуже :D
    Создал 3 дома, ни один из них не "поднимается".
    Сделал рестарт - загрузились 3 дома, но пикапа только 2, но каждый пикап имеет в себе еще по 2 дома.
    1 пикап = 1 и 2 дома.
    2 пикап = 3 и 4 дома.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Покажи как объявлен массив House

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

    Система крайне криво реализована. Четвертовать нужно того, что придумал делать загрузку данных не в нулевую ячейку, а в первую. Лучше бы всё переписать в нормальный вид, но нужно и остальной код системы домов переписывать.


    Вот так всё должно работать. Только возможен выход за пределы массива для House (его значение должно быть на один больше, чем общее количество домов).
    PHP код:
    publicsHouseLoading()
    {
        new 
    fields;
        
    cache_get_data(TOTAL_HOUSEfieldsMYSQL_CONNECT);
        if(
    rows)
        {
            for(new 
    10TOTAL_HOUSEi++, j++)
            {
                
    House[i][ID] = cache_get_field_content_int(j"ID"MYSQL_CONNECT);
                
    House[i][Owned] = cache_get_field_content_int(j"Owned"MYSQL_CONNECT);
                
    cache_get_field_content(j"Owner"House[i][Owner], MYSQL_CONNECT24);
                
    House[i][HEnter][0] = cache_get_field_content_float(j"PosX"MYSQL_CONNECT);
                
    House[i][HEnter][1] = cache_get_field_content_float(j"PosY"MYSQL_CONNECT);
                
    House[i][HEnter][2] = cache_get_field_content_float(j"PosZ"MYSQL_CONNECT);

                
    House[i][Price] = cache_get_field_content_int(j"Price"MYSQL_CONNECT);
                
    House[i][Class] = cache_get_field_content_int(j"Class"MYSQL_CONNECT);
                
    House[i][Lock] = cache_get_field_content_int(j"Lock"MYSQL_CONNECT);
                
                if(!
    House[i][Owned])
                {
                    
    House[i][EnterPickup] = CreatePickup(127323House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2],-1);
                    
    House[i][MapIcons] = CreateDynamicMapIcon(House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2], 31CWHITE0, -1, -1200.0);
                }
                else
                {
                    
    House[i][EnterPickup] = CreatePickup(1952223House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2],-1);
                    
    House[i][MapIcons] = CreateDynamicMapIcon(House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2], 32CWHITE0, -1, -1100.0);
                }
                
    House[i][Area] = CreateDynamicSphere(House[i][HEnter][0], House[i][HEnter][1], House[i][HEnter][2], 1.000, -1);
            }
        }
        
    printf("[Система домов]: %i домов было загружено."TOTAL_HOUSE);
        return 
    true;
    }


    public 
    OnPlayerEnterDynamicArea(playeridareaid)
    {
        if(
    areaid >= House[1][Area] && areaid <= House[TOTAL_HOUSE][Area])
        {
            new 
    house_class[15], 
                
    mes[128],
                
    houseid areaid House[1][Area];
            if(
    houseid == -1
                return 
    true;
            switch(
    House[houseid][Class])
            {
                case 
    1house_class "Эконом";
                case 
    2house_class "Средний";
                case 
    3house_class "Люкс";
            }
            if(!
    House[houseid][Owned])
            {
                
    f(mes"Номер дома: %i\nДом продаётся!\n\nКласс: %s\nСтоимость: %i$"houseidhouse_classHouse[houseid][Price]);
                
    ShowPlayerDialog(playeriddBuyHouse,DIALOG_STYLE_MSGBOX,"Дом свободен",mes,"Купить","Отмена");
            }
            else
            {
                
    f(mes"Номер дома: %i\n\nВладелец: %s\n\nКласс: %s"houseidHouse[houseid][Owner], house_class);
                
    ShowPlayerDialog(playeriddHouseEnter,DIALOG_STYLE_MSGBOX,"Дом занят",mes,"Войти","Отмена");
            }
            
    PlayerInfo[playerid][SelectedHouseID] = houseid;
        }
        return 
    1;

    Последний раз редактировалось DeimoS; 01.09.2017 в 13:28.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    0 дом - скорее всего обозначает, что его нет, но это все равно не дает поощрение кто это писал, ибо для таких случаев есть -1
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    0 дом - скорее всего обозначает, что его нет, но это все равно не дает поощрение кто это писал, ибо для таких случаев есть -1
    Чаще всего сдвиг делают лишь затем, чтоб в статистике и в 3d текстах перед домом писало красивую цифру для самого первого дома (не 0, а 1)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 
Страница 2 из 2 ПерваяПервая 1 2

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

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

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

Ваши права

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