Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система домов

Статус
В этой теме нельзя размещать новые ответы.

Vano-Glad

Умник
Всем привет. Вообщем столкнулся с такой проблемой, когда писал систему домов, о ней чуть позже... По коду вроде все нормально. 100 раз все перепроверял и переделывал, но тщетно. Кто поможет с меня +.

Суть: Вроде все ок, ставлю дом, через команду /setpos, покупаю его - Все нормально. Делаю релог - все нормально. Как только выключаю samp-server, включаю и захожу на сервер. Дома все пропадают с того места, где они были. Снова ставлю через /setpos тот дом, что покупал. И он уже зеленый горит, то есть продан ну и все в этом духе... Как бы я не пытался что-то исправить - ничего не помогло, решил натощак к вам обратиться, надеюсь поможете. Пишите в комментариях, какой код вам скинуть.


Загрузка домов:

PHP:
stock LoadHouse()
{
	new allhouse[16][64];
	new strhouse[350];
	new File: file = fopen("House/House.cfg", io_read);
	if(file)
	{
	    new id;
	    while(id < sizeof(HouseInfo))
	    {
	    	fread(file, strhouse);
	    	split(strhouse, allhouse, '|');
	    	HouseInfo[id][hHouseX] = floatstr(allhouse[0]);
	    	HouseInfo[id][hHouseY] = floatstr(allhouse[1]);
	    	HouseInfo[id][hHouseZ] = floatstr(allhouse[2]);
	    	HouseInfo[id][hHouseexitX] = floatstr(allhouse[3]);
	    	HouseInfo[id][hHouseexitY] = floatstr(allhouse[4]);
	    	HouseInfo[id][hHouseexitZ] = floatstr(allhouse[5]);
	    	HouseInfo[id][hCarX] = floatstr(allhouse[6]);
	    	HouseInfo[id][hCarY] = floatstr(allhouse[7]);
	    	HouseInfo[id][hCarZ] = floatstr(allhouse[8]);
	    	HouseInfo[id][hCarC] = floatstr(allhouse[9]);
	    	strmid(HouseInfo[id][hPlayer], allhouse[10], 0, strlen(allhouse[10]), 999);
	    	HouseInfo[id][hCena] = strval(allhouse[11]);
	    	HouseInfo[id][hInt] = strval(allhouse[12]);
	    	HouseInfo[id][hOpen] = strval(allhouse[13]);
	    	HouseInfo[id][hHouse] = strval(allhouse[14]);
	    	HouseInfo[id][hKlass] = strval(allhouse[15]);
			id++;
		}
		fclose(file);
	}
    return 1;
}
Сохранение домов:

PHP:
stock SaveHouse()
{
	new id;
	new File: file;
	new strhouse[350];
	while(id < sizeof(HouseInfo))
	{
		format(strhouse, sizeof(strhouse), "Dom X: %f | Dom Y: %f | Dom Z: %f | Exit X: %f | Exit Y: %f | Exit Z: %f | Car X: %f | Car Y: %f | Car Z: %f | Car C: %f | Player: %s | Cena: %d | Int: %d | Open: %d | House: %d | Klass: %d  ||  \n",
		HouseInfo[id][hHouseX],
		HouseInfo[id][hHouseY],
		HouseInfo[id][hHouseZ],
		HouseInfo[id][hHouseexitX],
		HouseInfo[id][hHouseexitY],
		HouseInfo[id][hHouseZ],
		HouseInfo[id][hCarX],
		HouseInfo[id][hCarY],
		HouseInfo[id][hCarZ],
		HouseInfo[id][hCarC],
		HouseInfo[id][hPlayer],
		HouseInfo[id][hCena],
		HouseInfo[id][hInt],
		HouseInfo[id][hOpen],
		HouseInfo[id][hHouse],
		HouseInfo[id][hKlass]);
		if(id == 0) file = fopen("House/House.cfg", io_write);
		else file = fopen("House/House.cfg", io_append);
		fwrite(file, strhouse);
		id++;
		fclose(file);
	}
	return 1;
}
Обновление домов:

PHP:
for(new h = 0; h < sizeof(HouseInfo); h++)
	{
	    if(HouseInfo[h][hHouse] == 0)
	    {
	        HouseInfo[h][hPickup] = CreatePickup(1273, 23, HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ], -1);
	        HouseInfo[h][hIcon] = CreateDynamicMapIcon(HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ], 31, COLOR_WHITE, 0, -1, -1, 1000);
	    }
	    if(HouseInfo[h][hHouse] == 1)
	    {
	        HouseInfo[h][hPickup] = CreatePickup(1272, 23, HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ], -1);
	        HouseInfo[h][hIcon] = CreateDynamicMapIcon(HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ], 32, COLOR_WHITE, 0, -1, -1, 1000);
	    }
	}
Обновление домов при покупке дома:

PHP:
stock BuyHouse()
{
	for(new h = 0; h < sizeof(HouseInfo); h++)
	{
	    if(HouseInfo[h][hHouse] == 0)
	    {
	        DestroyDynamicMapIcon(HouseInfo[h][hIcon]);
	        DestroyPickup(HouseInfo[h][hPickup]);
	        AddStaticPickup(1273, 23, HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ]);
	        HouseInfo[h][hIcon] = CreateDynamicMapIcon(HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ], 31, COLOR_WHITE, 0, -1, -1, 1000);
	    }
	    if(HouseInfo[h][hHouse] == 1)
	    {
	        DestroyDynamicMapIcon(HouseInfo[h][hIcon]);
	        DestroyPickup(HouseInfo[h][hPickup]);
	        AddStaticPickup(1272, 23, HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ]);
	        HouseInfo[h][hIcon] = CreateDynamicMapIcon(HouseInfo[h][hHouseX], HouseInfo[h][hHouseY], HouseInfo[h][hHouseZ], 32, COLOR_WHITE, 0, -1, -1, 1000);
	    }
	}
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу