SA-MP Forums Archive
Загрузка домов - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Загрузка домов (/showthread.php?tid=558771)



Загрузка домов - DeViLsS - 18.01.2015

Всем привет. Почему не загружаются дома, в чем ошибка?
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;




Re: Загрузка домов - [NS]Noobie - 18.01.2015

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... Ностальгия прям.
Что за проект?
Прости что не в тему, но я пока сам не разобрался.


Re: Загрузка домов - DeViLsS - 18.01.2015

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


Re: Загрузка домов - [NS]Noobie - 18.01.2015

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


Re: Загрузка домов - DeViLsS - 18.01.2015

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


Re: Загрузка домов - [NS]Noobie - 19.01.2015

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


Re: Загрузка домов - OKStyle - 19.01.2015

ini_getString(file,str,STR); -> ini_getString(file,str,STR, sizeof(STR));


Re: Загрузка домов - DeViLsS - 19.01.2015

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


Re: Загрузка домов - k3dr - 19.01.2015

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


Re: Загрузка домов - Stepashka - 19.01.2015

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


Re: Загрузка домов - OKStyle - 19.01.2015

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


Re: Загрузка домов - k3dr - 20.01.2015

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


Re: Загрузка домов - eakwarp - 20.01.2015

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


Re: Загрузка домов - ZiGGi - 21.01.2015

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


Re: Загрузка домов - OKStyle - 21.01.2015

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


Re: Загрузка домов - ZiGGi - 21.01.2015

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)); нету.
Вот тут началось обсуждение этого всего.