Загрузка домов -
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 = 1; idx < 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(string, sizeof(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(1273, 23, HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 31, COLOR_WHITE, 0, -1, -1, 400.0);
}
if(HouseInfo[idx][hOwned] == 1)
{
if(HouseInfo[idx][hRentabil] == 0) format(string, sizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nВладелец: {7CFC00}%s{FFFFFF}", HouseInfo[idx][hID], HouseInfo[idx][hOwner]);
else if(HouseInfo[idx][hRentabil] == 1) format(string, sizeof(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], 32, COLOR_WHITE, 0, -1, -1, 400.0);
HouseInfo[idx][hPickup] = CreatePickup(1272, 23, HouseInfo[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 = 1; idx < 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(string, sizeof(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(1273, 23, HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ],-1);
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEnterX], HouseInfo[idx][hEnterY], HouseInfo[idx][hEnterZ], 31, COLOR_WHITE, 0, -1, -1, 400.0);
}
if(HouseInfo[idx][hOwned] == 1)
{
if(HouseInfo[idx][hRentabil] == 0) format(string, sizeof(string), "{FF6347}* Дом *{FFFFFF}\nАдрес: {7CFC00}Diamond City %i{FFFFFF}\nВладелец: {7CFC00}%s{FFFFFF}", HouseInfo[idx][hID], HouseInfo[idx][hOwner]);
else if(HouseInfo[idx][hRentabil] == 1) format(string, sizeof(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], 32, COLOR_WHITE, 0, -1, -1, 400.0);
HouseInfo[idx][hPickup] = CreatePickup(1272, 23, HouseInfo[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)); нету.
Вот
тут началось обсуждение этого всего.