Загрузка домов
#1

Всем привет. Почему не загружаются дома, в чем ошибка?
PHP код:
stock LoadHouse()
{
    
    if(!
fexist("System/Houses.ini"))return print("[Ошибка] Файл System/Houses.ini не найден");
    new 
file ini_openFile("System/Houses.ini");
    new 
STR[158]; new str[8]; new string[170];
    for(new 
idx 1idx sizeof(HouseInfo); idx++)
    {
        
format(str,sizeof(str),"ID %d"idx);
        
ini_getString(file,str,STR);
        
sscanf(STR,"p<|>is[24]iffffffiiiiii"idx,
        
HouseInfo[idx][hOwner],
        
HouseInfo[idx][hOwned],
        
HouseInfo[idx][hEnterX],
        
HouseInfo[idx][hEnterY],
        
HouseInfo[idx][hEnterZ],
        
HouseInfo[idx][hExitX],
        
HouseInfo[idx][hExitY],
        
HouseInfo[idx][hExitZ],
        
HouseInfo[idx][hInt],
        
HouseInfo[idx][hWirtMir],
        
HouseInfo[idx][hPrice],
        
HouseInfo[idx][hLevel],
        
HouseInfo[idx][hRent],
        
HouseInfo[idx][hRentabil]);
        
printf("%i %s %i %f %f %f %f %f %f %i %i %i %i %i %i"idx,
        
HouseInfo[idx][hOwner],
        
HouseInfo[idx][hOwned],
        
HouseInfo[idx][hEnterX],
        
HouseInfo[idx][hEnterY],
        
HouseInfo[idx][hEnterZ],
        
HouseInfo[idx][hExitX],
        
HouseInfo[idx][hExitY],
        
HouseInfo[idx][hExitZ],
        
HouseInfo[idx][hInt],
        
HouseInfo[idx][hWirtMir],
        
HouseInfo[idx][hPrice],
        
HouseInfo[idx][hLevel],
        
HouseInfo[idx][hRent],
        
HouseInfo[idx][hRentabil]);
        
        if(
HouseInfo[idx][hOwned] == 0)
        {
            
format(stringsizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nЦена: {7CFC00}$%i{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}"HouseInfo[idx][hID], HouseInfo[idx][hPrice], HouseInfo[idx][hLevel]);
            
HouseInfo[idx][hPickup] = CreatePickup(127323HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
            
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 31COLOR_WHITE0, -1, -1400.0);
        }
        if(
HouseInfo[idx][hOwned] == 1)
        {
            if(
HouseInfo[idx][hRentabil] == 0format(stringsizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nВладелец: {7CFC00}%s{FFFFFF}"HouseInfo[idx][hID], HouseInfo[idx][hOwner]);
            else if(
HouseInfo[idx][hRentabil] == 1format(stringsizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nВладелец: {7CFC00}%s{FFFFFF}\nАренда: {7CFC00}$%d{FFFFFF}"HouseInfo[idx][hID], HouseInfo[idx][hOwner], HouseInfo[idx][hRent]);
            
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 32COLOR_WHITE0, -1, -1400.0);
            
HouseInfo[idx][hPickup] = CreatePickup(127223HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
        }
        
HouseInfo[idx][hLabel] = Create3DTextLabel(string,0xFFFFFFFF,HouseInfo[idx][hEnterX],HouseInfo[idx][hEnterY],HouseInfo[idx][hEnterZ]+1,20.0,0,1);
    }
    
    
ini_closeFile(file);
    
    return 
1;

Reply
#2

Quote:
Originally Posted by DeViLsS
Посмотреть сообщение
Всем привет. Почему не загружаются дома, в чем ошибка?
PHP код:
stock LoadHouse()
{
    
    if(!
fexist("System/Houses.ini"))return print("[Ошибка] Файл System/Houses.ini не найден");
    new 
file ini_openFile("System/Houses.ini");
    new 
STR[158]; new str[8]; new string[170];
    for(new 
idx 1idx sizeof(HouseInfo); idx++)
    {
        
format(str,sizeof(str),"ID %d"idx);
        
ini_getString(file,str,STR);
        
sscanf(STR,"p<|>is[24]iffffffiiiiii"idx,
        
HouseInfo[idx][hOwner],
        
HouseInfo[idx][hOwned],
        
HouseInfo[idx][hEnterX],
        
HouseInfo[idx][hEnterY],
        
HouseInfo[idx][hEnterZ],
        
HouseInfo[idx][hExitX],
        
HouseInfo[idx][hExitY],
        
HouseInfo[idx][hExitZ],
        
HouseInfo[idx][hInt],
        
HouseInfo[idx][hWirtMir],
        
HouseInfo[idx][hPrice],
        
HouseInfo[idx][hLevel],
        
HouseInfo[idx][hRent],
        
HouseInfo[idx][hRentabil]);
        
printf("%i %s %i %f %f %f %f %f %f %i %i %i %i %i %i"idx,
        
HouseInfo[idx][hOwner],
        
HouseInfo[idx][hOwned],
        
HouseInfo[idx][hEnterX],
        
HouseInfo[idx][hEnterY],
        
HouseInfo[idx][hEnterZ],
        
HouseInfo[idx][hExitX],
        
HouseInfo[idx][hExitY],
        
HouseInfo[idx][hExitZ],
        
HouseInfo[idx][hInt],
        
HouseInfo[idx][hWirtMir],
        
HouseInfo[idx][hPrice],
        
HouseInfo[idx][hLevel],
        
HouseInfo[idx][hRent],
        
HouseInfo[idx][hRentabil]);
        
        if(
HouseInfo[idx][hOwned] == 0)
        {
            
format(stringsizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nЦена: {7CFC00}$%i{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}"HouseInfo[idx][hID], HouseInfo[idx][hPrice], HouseInfo[idx][hLevel]);
            
HouseInfo[idx][hPickup] = CreatePickup(127323HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
            
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 31COLOR_WHITE0, -1, -1400.0);
        }
        if(
HouseInfo[idx][hOwned] == 1)
        {
            if(
HouseInfo[idx][hRentabil] == 0format(stringsizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nВладелец: {7CFC00}%s{FFFFFF}"HouseInfo[idx][hID], HouseInfo[idx][hOwner]);
            else if(
HouseInfo[idx][hRentabil] == 1format(stringsizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nВладелец: {7CFC00}%s{FFFFFF}\nАренда: {7CFC00}$%d{FFFFFF}"HouseInfo[idx][hID], HouseInfo[idx][hOwner], HouseInfo[idx][hRent]);
            
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 32COLOR_WHITE0, -1, -1400.0);
            
HouseInfo[idx][hPickup] = CreatePickup(127223HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
        }
        
HouseInfo[idx][hLabel] = Create3DTextLabel(string,0xFFFFFFFF,HouseInfo[idx][hEnterX],HouseInfo[idx][hEnterY],HouseInfo[idx][hEnterZ]+1,20.0,0,1);
    }
    
    
ini_closeFile(file);
    
    return 
1;

Ух ты, старый добрый мод Diamond City... Ностальгия прям.
Что за проект?
Прости что не в тему, но я пока сам не разобрался.
Reply
#3

Quote:
Originally Posted by [NS]Noobie
Посмотреть сообщение
Ух ты, старый добрый мод Diamond City... Ностальгия прям.
Что за проект?
Прости что не в тему, но я пока сам не разобрался.
Причем тут Diamond City?
Reply
#4

Quote:
Originally Posted by DeViLsS
Посмотреть сообщение
Причем тут Diamond City?
Код знакомый.
Reply
#5

Quote:
Originally Posted by [NS]Noobie
Посмотреть сообщение
Код знакомый.
Какой код? Может быть текст? Текст взял от туда.
Reply
#6

Quote:
Originally Posted by DeViLsS
Посмотреть сообщение
Какой код? Может быть текст? Текст взял от туда.
Код, текст... Утомил.
Reply
#7

ini_getString(file,str,STR); -> ini_getString(file,str,STR, sizeof(STR));
Reply
#8

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
ini_getString(file,str,STR); -> ini_getString(file,str,STR, sizeof(STR));
Все равно не чего не грузит.
Reply
#9

Quote:
Originally Posted by DeViLsS
Посмотреть сообщение
Все равно не чего не грузит.
Конечно не грузит, ведь ничего не изменилось sizeof(STR) идет в дефолте.
Reply
#10

А зачем ты индекс перетираешь при чтении файла?
Reply
#11

Quote:
Originally Posted by DeViLsS
Посмотреть сообщение
Все равно не чего не грузит.
Значит не только здесь ошибка. Не слушай k3dr'а, у него просто месячные. Когда был обнаружен и исправлен баг, что при получении строкового значения неверно в mxini получал размер массива, он ещё соску сосал.
Reply
#12

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Значит не только здесь ошибка. Не слушай k3dr'а, у него просто месячные. Когда был обнаружен и исправлен баг, что при получении строкового значения неверно в mxini получал размер массива, он ещё соску сосал.
Все понятно с тобой. Приплел неизвестные большинству баги
Reply
#13

Quote:
Originally Posted by k3dr
Посмотреть сообщение
Все понятно с тобой. Приплел неизвестные большинству баги
Эм, проблемы mxini известны всем местным форумчанам, кто по умнее - никогда не будет использовать данный код.
Reply
#14

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Значит не только здесь ошибка. Не слушай k3dr'а, у него просто месячные. Когда был обнаружен и исправлен баг, что при получении строкового значения неверно в mxini получал размер массива, он ещё соску сосал.
k3dr прав, твой код лишён смысла. Это не работало только с массивом со строкой в enum. И это не баг mxINI, Pawn так устроен.
По теме: автор, убери idx из sscanf. Если это не исправит проблему, попробуй ещё убрать пробел в имени ключа.
И вообще, для твоей цели никакие ini ридеры/райтеры не нужны, прежде чем использовать какой-то инструмент нужно понять для чего он предназначен (формат ini). Для твоей цели будет проще использовать обычный while (fread(...)).
Reply
#15

Это не работало со всеми строками.
Reply
#16

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Это не работало со всеми строками.
Мде, вот заголовок ini_getString в mxINI:
pawn Код:
stock ini_getString ( nFilePointer, szKeyName[], szReturnValue[], nSizeOfReturn = sizeof(szReturnValue) )
Очевидно, что разницы между ini_getString(file,str,STR); и ini_getString(file,str,STR,sizeof(STR)); нету.
Вот тут началось обсуждение этого всего.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)