Вопросы

Всем привет! Опять встретился с ошибкой sscanf в консоле(

Помогите исправить пожалуйста :$

Консоль:

Спойлер

----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3e, (C)2005-2012 SA-MP Team

[20:50:04] weburl = "www.sa-mp.com"  (string)
[20:50:04] password = ""  (string)
[20:50:04] 
[20:50:04] Server Plugins
[20:50:04] --------------
[20:50:04]  Loading plugin: streamer
[20:50:04] 

*** Streamer Plugin v2.6.1 by Incognito loaded ***

[20:50:04]   Loaded.
[20:50:04]  Loading plugin: sscanf
[20:50:04] 

[20:50:04]  ===============================

[20:50:04]       sscanf plugin loaded.     

[20:50:04]    (c) 2009 Alex "Y_Less" Cole

[20:50:04]    0.3d-R2 500 Players "dnee"

[20:50:04]  ===============================

[20:50:04]   Loaded.
[20:50:04]  Loading plugin: mysql
[20:50:04] 

  > MySQL plugin R5 successfully loaded.

[20:50:04]   Loaded.
[20:50:04]  Loaded 3 plugins.

[20:50:04] 
[20:50:04] Filterscripts
[20:50:04] ---------------
[20:50:04]   Loaded 0 filterscripts.

[20:50:04] password = ""  (string)
[20:50:04] MySQL: Подключение к базе данных установлено.
[20:50:04] ARPLOAD: Успешная загрузка 'LoadHouses' - загружено 0 за 2 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadBizz' - загружено 0 за 2 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadVehicle' - загружено 22 за 38 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadEnters' - загружено 54 пикапов за 39 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadATM' - загружено 0 банкоматов за 2 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadPodezd' - загружено 0 подьездов за 3 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadRooms' - загружено 0 квартир за 2 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadMayor' за 3 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadOther' за 3 м.с
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] sscanf warning: String buffer overflow.
[20:50:04] ARPLOAD: Успешная загрузка 'LoadFrac' - загружено 20 за 24 м.с
[20:50:04] ARPLOAD: Успешная загрузка 'LoadPromo' - загружено 0 за 2 м.с
[20:50:04] ==============================================
[20:50:04] Author - Jack_Yermolov Server - Old RolePlay©
[20:50:04]  Подключение к базе `rrp2` успешно
[20:50:04] ==============================================
[20:50:04] Number of vehicle models: 40

 

 

Возможная строка:

 

stock LoadOther()
{
	new time = GetTickCount();
	format(query,sizeof(query), "SELECT * FROM `"TABLE_OTHER"`");
	mysql_query(query);
	mysql_store_result();
	if(mysql_fetch_row(query) == 1)
	{
		mysql_fetch_row(query);
		sscanf(query, "p<|>iiiiiiiiiiiiis[40]iiiiiiiiiiiiiiiiiiiiiiiiiii",
		FracBank[0],
		FracBank[1],
		FracBank[3],
		FracBank[4],
		FracBank[5],
		FracBank[6],
		FracBank[7],
		FracBank[8],
		FracBank[9],
		sklads,
		ugol,
		drev,
		ed,
		NewsPrice,
		Mats[1],//Police
		Mats[2],//DPC
		Mats[0],///Army
		Mats[4],//FSB
		Mats[5],//GOP
		Mats[6],//LB
		Mats[8],//BB
		Mats[9],//UGBRATVA
		Mineral[0],//mineral
		Metal,
		Mineral[1],
//		FracBank[11],
		Mats[16],
		Mats[12],
		Mats[18],
		MafiaMineral[0],
		MafiaMineral[1],
		MafiaMineral[2],
		DrugsBank[F_GOPOTA],
		DrugsBank[F_LYTBRATVA],
		DrugsBank[F_BATBRATVA],
		DrugsBank[F_UGBRATVA],
		DrugsBank[F_YAKUZA],
		DrugsBank[F_LCN],
		DrugsBank[F_RM],
		FuelBank,
		Plavnya,
		TOTALPRIZ);
		sscanf(NewsPrice, "p<,>iiiiii",SmsPrice[0], SmsPrice[1], CallPrice[0], CallPrice[1], AdvertPrice[0], AdvertPrice[1]);
	}
	mysql_free_result();
	printf("ARPLOAD: Успешная загрузка 'LoadOther' за %d м.с",GetTickCount() - time);
	return true;
}

 

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


Ссылка на сообщение

7 ответов на этот вопрос

  • 0

@Zishka, а так:

Спойлер

 


stock LoadOther()
{
	new time = GetTickCount();
	format(query,sizeof(query), "SELECT * FROM `"TABLE_OTHER"`");
	mysql_query(query);
	mysql_store_result();
	if(mysql_fetch_row(query) == 1)
	{
		mysql_fetch_row(query);
		sscanf(query, "p<|>iiiiiiiiiiiiis[40]iiiiiiiiiiiiiiiiiiiiiiiiiiii",
		FracBank[0],
		FracBank[1],
		FracBank[3],
		FracBank[4],
		FracBank[5],
		FracBank[6],
		FracBank[7],
		FracBank[8],
		FracBank[9],
		sklads,
		ugol,
		drev,
		ed,
		NewsPrice,
		Mats[1],//Police
		Mats[2],//DPC
		Mats[0],///Army
		Mats[4],//FSB
		Mats[5],//GOP
		Mats[6],//LB
		Mats[8],//BB
		Mats[9],//UGBRATVA
		Mineral[0],//mineral
		Metal,
		Mineral[1],
//		FracBank[11],
		Mats[16],
		Mats[12],
		Mats[18],
		MafiaMineral[0],
		MafiaMineral[1],
		MafiaMineral[2],
		DrugsBank[F_GOPOTA],
		DrugsBank[F_LYTBRATVA],
		DrugsBank[F_BATBRATVA],
		DrugsBank[F_UGBRATVA],
		DrugsBank[F_YAKUZA],
		DrugsBank[F_LCN],
		DrugsBank[F_RM],
		FuelBank,
		Plavnya,
		TOTALPRIZ);
		sscanf(NewsPrice, "p<,>iiiiii",SmsPrice[0], SmsPrice[1], CallPrice[0], CallPrice[1], AdvertPrice[0], AdvertPrice[1]);
	}
	mysql_free_result();
	printf("ARPLOAD: Успешная загрузка 'LoadOther' за %d м.с",GetTickCount() - time);
	return true;
}

 

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


Ссылка на сообщение
  • 0

Тоже-самое

19 часов назад, odosenok сказал:

@Zishka, а так:

  код (закрыть спойлер)

 



stock LoadOther()
{
	new time = GetTickCount();
	format(query,sizeof(query), "SELECT * FROM `"TABLE_OTHER"`");
	mysql_query(query);
	mysql_store_result();
	if(mysql_fetch_row(query) == 1)
	{
		mysql_fetch_row(query);
		sscanf(query, "p<|>iiiiiiiiiiiiis[40]iiiiiiiiiiiiiiiiiiiiiiiiiiii",
		FracBank[0],
		FracBank[1],
		FracBank[3],
		FracBank[4],
		FracBank[5],
		FracBank[6],
		FracBank[7],
		FracBank[8],
		FracBank[9],
		sklads,
		ugol,
		drev,
		ed,
		NewsPrice,
		Mats[1],//Police
		Mats[2],//DPC
		Mats[0],///Army
		Mats[4],//FSB
		Mats[5],//GOP
		Mats[6],//LB
		Mats[8],//BB
		Mats[9],//UGBRATVA
		Mineral[0],//mineral
		Metal,
		Mineral[1],
//		FracBank[11],
		Mats[16],
		Mats[12],
		Mats[18],
		MafiaMineral[0],
		MafiaMineral[1],
		MafiaMineral[2],
		DrugsBank[F_GOPOTA],
		DrugsBank[F_LYTBRATVA],
		DrugsBank[F_BATBRATVA],
		DrugsBank[F_UGBRATVA],
		DrugsBank[F_YAKUZA],
		DrugsBank[F_LCN],
		DrugsBank[F_RM],
		FuelBank,
		Plavnya,
		TOTALPRIZ);
		sscanf(NewsPrice, "p<,>iiiiii",SmsPrice[0], SmsPrice[1], CallPrice[0], CallPrice[1], AdvertPrice[0], AdvertPrice[1]);
	}
	mysql_free_result();
	printf("ARPLOAD: Успешная загрузка 'LoadOther' за %d м.с",GetTickCount() - time);
	return true;
}

 

 

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


Ссылка на сообщение
  • 0

Так? 

Спойлер

stock LoadOther()
{
	new time = GetTickCount();
	format(query,sizeof(query), "SELECT * FROM `"TABLE_OTHER"`");
	mysql_query(query);
	mysql_store_result();
	if(mysql_fetch_row(query) == 1)
	{
		mysql_fetch_row(query);
		sscanf(query, "p<|>iiiiiiiiiiiiis[128]iiiiiiiiiiiiiiiiiiiiiiiiiii", //41
		FracBank[0],
		FracBank[1],
		FracBank[3],
		FracBank[4],
		FracBank[5],
		FracBank[6],
		FracBank[7],
		FracBank[8],
		FracBank[9],
		sklads,
		ugol,
		drev,
		ed,
		NewsPrice,
		Mats[1],//Police
		Mats[2],//DPC
		Mats[0],///Army
		Mats[4],//FSB
		Mats[5],//GOP
		Mats[6],//LB
		Mats[8],//BB
		Mats[9],//UGBRATVA
		Mineral[0],//mineral
		Metal,
		Mineral[1],
//		FracBank[11],
		Mats[16],
		Mats[12],
		Mats[18],
		MafiaMineral[0],
		MafiaMineral[1],
		MafiaMineral[2],
		DrugsBank[F_GOPOTA],
		DrugsBank[F_LYTBRATVA],
		DrugsBank[F_BATBRATVA],
		DrugsBank[F_UGBRATVA],
		DrugsBank[F_YAKUZA],
		DrugsBank[F_LCN],
		DrugsBank[F_RM],
		FuelBank,
		Plavnya,
		TOTALPRIZ);
		sscanf(NewsPrice, "p<,>iiiiii",SmsPrice[0], SmsPrice[1], CallPrice[0], CallPrice[1], AdvertPrice[0], AdvertPrice[1]);
	}
	mysql_free_result();
	printf("ARPLOAD: Успешная загрузка 'LoadOther' за %d м.с",GetTickCount() - time);
	return true;
}

 

 

Отредактировано пользователем SCRIPTMAN

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


Ссылка на сообщение
  • 0

@Zishka Конечно совет - это избавляться от такого рода кода. Лучше сделайте key-value таблицу и будет намного удобней

key value
FracBank0 ...
FracBank1 ...
Metal ...
... ...

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


Ссылка на сообщение
  • 0
1 час назад, SCRIPTMAN сказал:

Так? 

  Код (открыть спойлер)


stock LoadOther()
{
	new time = GetTickCount();
	format(query,sizeof(query), "SELECT * FROM `"TABLE_OTHER"`");
	mysql_query(query);
	mysql_store_result();
	if(mysql_fetch_row(query) == 1)
	{
		mysql_fetch_row(query);
		sscanf(query, "p<|>iiiiiiiiiiiiis[128]iiiiiiiiiiiiiiiiiiiiiiiiiii", //41
		FracBank[0],
		FracBank[1],
		FracBank[3],
		FracBank[4],
		FracBank[5],
		FracBank[6],
		FracBank[7],
		FracBank[8],
		FracBank[9],
		sklads,
		ugol,
		drev,
		ed,
		NewsPrice,
		Mats[1],//Police
		Mats[2],//DPC
		Mats[0],///Army
		Mats[4],//FSB
		Mats[5],//GOP
		Mats[6],//LB
		Mats[8],//BB
		Mats[9],//UGBRATVA
		Mineral[0],//mineral
		Metal,
		Mineral[1],
//		FracBank[11],
		Mats[16],
		Mats[12],
		Mats[18],
		MafiaMineral[0],
		MafiaMineral[1],
		MafiaMineral[2],
		DrugsBank[F_GOPOTA],
		DrugsBank[F_LYTBRATVA],
		DrugsBank[F_BATBRATVA],
		DrugsBank[F_UGBRATVA],
		DrugsBank[F_YAKUZA],
		DrugsBank[F_LCN],
		DrugsBank[F_RM],
		FuelBank,
		Plavnya,
		TOTALPRIZ);
		sscanf(NewsPrice, "p<,>iiiiii",SmsPrice[0], SmsPrice[1], CallPrice[0], CallPrice[1], AdvertPrice[0], AdvertPrice[1]);
	}
	mysql_free_result();
	printf("ARPLOAD: Успешная загрузка 'LoadOther' за %d м.с",GetTickCount() - time);
	return true;
}

 

 

Так-же :(

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


Ссылка на сообщение
  • 0

А как вообщем sscanf пользоваться? Что за символы

"p<|>iiiiiiiiiiiiis[128]iiiiiiiiiiiiiiiiiiiiiiiiiii"

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


Ссылка на сообщение
  • 0

@Zishka, порядок типов аргументов. i - целочисленное значение, s[длина] - строковое (массив). p<> - тип разделителя, и в угловых скобках сам разделитель (|).

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

  • Похожий контент

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };