Перейти к содержанию
Авторизация  
Demonics

Сохранение домов MySQL

Рекомендуемые сообщения

Demonics

Здравствуйте, я хотел бы узнать как решить проблему с сохранением домов, проблема в том что когда игрок покупает дом рядом с другим домом другого игрока, то после рестарта сервера меняются id домов, бывает сразу у обоих, а бывает у одного, но не суть у кого именно факт в том что id домов меняются и игрок после рестарта оказывается в совсем другом доме, не тот который он покупал изначально, косяк я так понял это в самом сохранении домов.

Помогите решить данную проблему пожалуйста

 

Вроде проблема идёт из stock"a, если нет, то могу скинуть другой кусок кода

stock GetHome()
{
	new htax, bank, texts[16], text[3];
	for(new i = 1; i <= TOTALHOUSE; i++)
	{
		if(HouseInfo[i][hDonate])continue;
		if(!strcmp("None",HouseInfo[i][hOwner],true)) continue;
		else if(!strcmp("E",HouseInfo[i][hDiscript],true)) htax = 300;
		else if(!strcmp("D",HouseInfo[i][hDiscript],true)) htax = 400;
		else if(!strcmp("C",HouseInfo[i][hDiscript],true)) htax = 500;
		else if(!strcmp("B",HouseInfo[i][hDiscript],true)) htax = 600;
		else if(!strcmp("A",HouseInfo[i][hDiscript],true)) htax = 700;
		else continue;
		if(HouseInfo[i][hOplata] < htax)
		{
			new playd = GetPlayerID(HouseInfo[i][hOwner]);
		    if(playd != INVALID_PLAYER_ID)
			{
				PlayerInfo[playd][pBank] += (HouseInfo[i][hBuyPrice] * 70 / 100);
			    SetPVarInt(playd, "GetHome", 1);
			}
			else
			{
			    mysql_format(ConBD, query, sizeof(query), "SELECT * FROM "TABLE_ACCOUNT" WHERE name = '%s'", HouseInfo[i][hOwner]);
				new Cache:result = mysql_query(ConBD, query);
				if(cache_num_rows())
				{
					bank = cache_get_field_content_int(0, "bank");
					cache_get_field_content(0, "text", texts, ConBD, sizeof text);
				}
				sscanf(texts, "p<,>a<i>[3]", text);
				format(texts, sizeof(texts),"1, %i, %i", text[1], text[2]);
				bank += (HouseInfo[i][hBuyPrice] * 70 / 100);
				cache_delete(result, ConBD);
				mysql_format(ConBD, query,sizeof(query), "UPDATE "TABLE_ACCOUNT"  SET text = '%e', bank = %i WHERE name = '%e'",texts,bank, HouseInfo[i][hOwner]);
				mysql_function_query(ConBD, query, true, "", "");
			}
			SetHouseStr(i, "hOwner", "None");
			SetHouseInt(i, "hOplata", 0);
			SetHouseInt(i, "buyprice", 0);
			HouseInfo[i][hBuyPrice] = 0;
			HouseInfo[i][hOplata] = 0;
			strmid(HouseInfo[i][hOwner],"None",0,strlen("None"),MAX_PLAYER_NAME);
			HouseInfo[i][hLock] = 0;
			SetHouseInt(i, "hLock", HouseInfo[i][hLock]);
			UpdateHouse(i);
		}
		else
		{
			HouseInfo[i][hOplata] -= htax;
			SetHouseInt(i, "hOplata", HouseInfo[i][hOplata]);
			Exchequer+=htax;
		}
		HouseInfo[i][hRob] = false;
	}
	format(query, 256, "UPDATE "TABLE_MAYOR" SET exchequer = %d", Exchequer);
	mysql_function_query(ConBD, query, true, "", "");
	return true;
} 

p.s в скриптенге я новичок, но на уровне Middle если что

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
gegelo

Логи мускула посмотри и сюда выложи, поиграйся с сохранением/загрузкой, выводя в логи сохранение/загрузку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.