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

    Статус
    Оффлайн
    Регистрация
    09.03.2014
    Сообщений
    17
    Репутация:
    0 ±

    Не загружаются дома

    Привет всем. В моде стоит система домов, которые при создании сохраняются в файл, но после перезапуска сервера они не загружаются. (нету пикапов, текстов)
    PHP код:
    //==========Дома==========
    SaveHouseAmount() // кол.во домов
    {
        new 
    f=ini_openFile("houses/m_h.ini"); // открываем
        
    ini_setInteger(f,"Amount",m_h); // Записываем m_h в amount
        
    return ini_closeFile(f); // закрываем
    }

    LoadHouses()//загрузка домов
    {
            if(!
    fexist("houses/m_h.ini"))return print("[Ошибка] Файл houses/m_h.ini не найден"); 
            new 
    f=ini_openFile("houses/m_h.ini");
            
    ini_getInteger(f,"Amount",m_h);
            
    ini_closeFile(f);
            if(!
    fexist("houses/houses.ini"))return print("[Ошибка] Файл houses/houses.ini не найден");
            
    f=ini_openFile("houses/houses.ini");
            new 
    str[8];
            for(new 
    h=1;h<=m_h;h++)\
            {
                    
    format(str,sizeof(str),"ID %d",h);
                    
    ini_getString(f,str,STR);
                    
    sscanf(STR,"p<|>s[32]s[24]fffiiii",House[h][hDesc],House[h][hOwner],House[h][hX],House[h][hY],House[h][hZ],House[h][hInterior],
                    
    House[h][hVirtWorld],House[h][hPrice],House[h][hLock]);
                    if(!
    strcmp(House[h][hOwner],"None",true))
                    {
                            
    House[h][hPick]=CreatePickup(1273,23,House[h][hX],House[h][hY],House[h][hZ],0);
                            
    format(STR,128,"[Дом продается]\nОписание: %s\nЦена: $%d",House[h][hDesc],House[h][hPrice]);
                            
    House[h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,House[h][hX],House[h][hY],House[h][hZ]+0.5,10.0,0,0);
                    }
                    else 
                    {
                            
    House[h][hPick]=CreatePickup(1239,23,House[h][hX],House[h][hY],House[h][hZ],0);
                            
    format(STR,128,"[Дом]\nОписание: %s\nВладелец: %s",House[h][hDesc],House[h][hOwner]);
                            
    House[h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,House[h][hX],House[h][hY],House[h][hZ]+0.5,10.0,0,0);
                    }
            }
            
    ini_closeFile(f);
            return 
    printf("Loaded %d houses",m_h);
    }

    SaveHouse(h)//сохранение дома
    {
            new 
    f=ini_openFile("houses/houses.ini");
            new 
    str[8]; 
            
    format(str,8,"ID %d",h); 
            
    format(STR,sizeof(STR),"%s|%s|%f|%f|%f|%d|%d|%d|%d",House[h][hDesc],House[h][hOwner],House[h][hX],House[h][hY],House[h][hZ],House[h][hInterior],
            
    House[h][hVirtWorld],House[h][hPrice],House[h][hLock]
    ); 
            
    ini_setString(f,str,STR); 
            
    ini_closeFile(f); 
            return 
    1;
    }

    UpdateHouse(h// обновление дома
    {
            
    DestroyPickup(House[h][hPick]); 
            if(!
    strcmp(House[h][hOwner],"None",true))
               {
            
    House[h][hPick]=CreatePickup(1273,23,House[h][hX],House[h][hY],House[h][hZ],0); 
            
    format(STR,128,"[Дом продается]\nОписание: %s\nЦена: $%d",House[h][hDesc],House[h][hPrice]);
            
    Update3DTextLabelText(House[h][hText],0xFFFFFFFF,STR);
            }
            else
            {
            
    House[h][hPick]=CreatePickup(1239,23,House[h][hX],House[h][hY],House[h][hZ],0); 
            
    format(STR,128,"[Дом]\nОписание: %s\nВладелец: %s",House[h][hDesc],House[h][hOwner]);
            
    Update3DTextLabelText(House[h][hText],0xFFFFFFFF,STR);
            }
    }
    //======================== 
    Последний раз редактировалось MarioORG; 30.11.2014 в 21:35.

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Как производите рестарт сервера?
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    09.03.2014
    Сообщений
    17
    Репутация:
    0 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Как производите рестарт сервера?
    Я просто выключаю и включаю.

  4. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Ну тогда, конечно, если сразу закрыть консоль, ничего не сохранится - Вы просто останавливаете сервер, не давая ему даже времени на сохранение данных. В лучшем случае сохраниться успеет только какая-то их часть.

    На сервере под такие цели должна быть специальная команда, поищите. Обычно это что-то вроде /restart или /gmx (не путать с /rcon gmx).
    Если не найдёте, лучше написать свою. Принцип действия такой:
    • Выполняется сохранение данных.
    • Ставится таймер на 5-10 секунд.
    • В таймерной функции производится рестарт сервера (SendRconCommand("gmx")).
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 

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

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

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

Ваши права

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