Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Запись - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Запись

#1
Пользователь офлайн   D.Phantom 

  • Местный
  • Вставить ник
  • Раскрыть информацию
Не могу записать данные в переменную. Сделал загрузку авто, авто загружается. В логах все прописал, сколько авто найдено, их данные. Все это отображается, и параметры у каждого авто стоят правильные. Если укажу номер авто, и выведу в консоль информацию, то тоже все правильно. Как я понял данные должны были сохраниться в переменные. Но когда выдаю информацию о авто в игре, везде стоят нули.

public LoadVehiclesMarket()
{
	mysql_query("SELECT * FROM `cars_market`");
	mysql_store_result();
	new rows = mysql_num_rows();
	new result[192];
	for(new cars = 1; cars <= rows; cars++)
	{
	    if(mysql_fetch_row_format(result))
	    {
		    sscanf(result, "p<|>iiiiiffff", CarsMarket[cars][vID], CarsMarket[cars][vModel], CarsMarket[cars][vColor1], CarsMarket[cars][vColor2], CarsMarket[cars][vPrice], CarsMarket[cars][vX], CarsMarket[cars][vY], CarsMarket[cars][vZ], CarsMarket[cars][vAngle]);
			print("=========================================================================================="
);
			printf("Обнаружено %i машин", cars);
			printf("Машина %i: %i | %i | %i | %i | %f | %f | %f | %f", CarsMarket[cars][vID], CarsMarket[cars][vModel], CarsMarket[cars][vColor1], CarsMarket[cars][vColor2], CarsMarket[cars][vPrice], CarsMarket[cars][vX], CarsMarket[cars][vY], CarsMarket[cars][vZ], CarsMarket[cars][vAngle]);
			print("=========================================================================================="
);
			AddStaticVehicleEx(CarsMarket[cars][vModel], CarsMarket[cars][vX], CarsMarket[cars][vY], CarsMarket[cars][vZ], CarsMarket[cars][vAngle], CarsMarket[cars][vColor1], CarsMarket[cars][vColor2], -15);
		}
	}
	mysql_free_result();
	return 1;
}


Лог:

[11:00:21] ==========================================================================================
[11:00:21] Обнаружено 1 машин
[11:00:21] Машина 1: 541 | 0 | 0 | 100000 | 1561.050048 | -2318.729980 | 13.173500 | 90.212898
[11:00:21] ==========================================================================================
[11:00:21] ==========================================================================================
[11:00:21] Обнаружено 2 машин
[11:00:21] Машина 2: 411 | 0 | 0 | 500000 | 1560.880004 | -2315.489990 | 13.275300 | 90.389503
[11:00:21] ==========================================================================================



Если поставить опр. машину:

printf("Машина 2 - %i", CarsMarket[2][vID]);


Лог:

[11:03:50] Машина 2 - 2


И наоборот для теста

printf("Машина 2 - %i", CarsMarket[1][vID]);


Лог:

[11:05:33] Машина 2 - 1

0

#2
Пользователь офлайн   punkochel 

  • Местный
  • Вставить ник
  • Раскрыть информацию
Честно говоря я даже не никогда не пользовался таким способом, который описан у тебя.
public LoadVehiclesMarket()
{
    mysql_query("SELECT * FROM `cars_market`");
    new rows;
    cache_get_row_count(rows);
    if(rows) {

    	new buffer[144];
    	for(new i; i < rows; i++) {

    	    cache_get_value_name(i, const column_name[], buffer);
	    sscanf(buffer, "p<|>iiiiiffff", 
		CarsMarket[cars][vID], 
		CarsMarket[cars][vModel], 
		CarsMarket[cars][vColor1], 
		CarsMarket[cars][vColor2], 
		CarsMarket[cars][vPrice], 
		CarsMarket[cars][vX], 
		CarsMarket[cars][vY], 
		CarsMarket[cars][vZ], 
		CarsMarket[cars][vAngle]);
	    AddStaticVehicleEx(CarsMarket[cars][vModel], CarsMarket[cars][vX], CarsMarket[cars][vY], CarsMarket[cars][vZ], CarsMarket[cars][vAngle], CarsMarket[cars][vColor1], CarsMarket[cars][vColor2], 0);
    	}
    }
    return 1;
}



UPD: И еще, куда ты отправляешь запрос?
mysql_query(MySQL:handle, const query[], bool:use_cache = true)

Сообщение отредактировал punkochel: 12 октября 2020 - 09:59

0

#3
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Так а с чего ты решил, что ID авто обязательно будет совпадать с ID ячейки? Твой код в текущем виде совершенно никаких гарантий на это не даёт.

Я же описывал тебе как делать правильно: https://pawn-wiki.ru...post__p__245618

Сообщение отредактировал DeimoS: 12 октября 2020 - 11:05

0

#4
Пользователь офлайн   Sonic X 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Если ты хочешь привязаться к ID ячейки, то есть ID авто = номеру ячейки, то делаешь массив на MAX_VEHICLES + 1. Далее, когда создаёшь машину, начинаешь всегда работать с единицы vInfo[1][vehicleid] = CreateVehcle(). Делаешь доп массив создаешь по "валидности" авто. То есть, создаёшь авто, проверяешь переменную, если 1 - помещаешь в виртуальный мир 0, иначе в любой другой, так сказать, прячешь её. Если тебе нужно поменять модель машины, делаешь это так - удаляешь авто и сразу создаёшь. Советую работать с CreateVehicle, а не AddStaticVehicle. Если тебе нужно "удалить" машину, ставишь валидность 0 и перемещаешь в другой мир.

Сообщение отредактировал Sonic X: 12 октября 2020 - 16:49

0

#5
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSonic X (12 октября 2020 - 16:35) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


А к чему такие извращения?
0

#6
Пользователь офлайн   Sonic X 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияDeimoS (12 октября 2020 - 17:03) писал:

А к чему такие извращения?

Чтобы ID транспорта не изменялся при рестарте сервера. Нужно это всё, если все привязано к ID машины, который видно через /dl
0

#7
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSonic X (18 октября 2020 - 04:07) писал:

Чтобы ID транспорта не изменялся при рестарте сервера. Нужно это всё, если все привязано к ID машины, который видно через /dl


Всё ещё непонятно зачем это делать) Этим ты только вносишь кучу ограничений: начиная от количества автомобилей и заканчивая тем, что автомобили должны будут загружаться в определённом порядке (при том, не только автомобили этой системы, но и вообще все). Тот способ, что я дал выше, наиболее оптимален: обращение к массиву будет всё так же через ID авто, но каких-либо ограничений, при этом, не будет, кроме ограничений сервера.
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика