Вопросы

Всем привет! Опять встретился с ошибкой 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 пользователей онлайн

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

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

    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите 
       
    • nazpol9
      От nazpol9
      Привет всем.

      У меня имеется мод для самп сервера и VPS с Ubuntu, на котором я пытаюсь его запустить.

      В чем суть проблемы: при запуске samp03svr, сервер запускается, но на версии 0.3.DL R-1. Когда я пытаюсь запустить этот же мод локально на Windows, сервер работает на версии 0.3.7 и я могу зайти на него без клиента 0.3.DL.

      Для решения этой проблемы я уже пробовал заменять инклуды и исполнительные файлы теми, что есть в архивах на официальном сайте сампа, перекомпилировал мод, и ничего не изменилось.
       
      #include <a_samp> #include <a_mysql> #include <foreach> #include <Pawn.RakNet> #include <streamer> #include <sscanf2> #include <float2> #include <crashdetect> #include <fmt> #include <a_http> #include <Pawn.CMD> #include <Pawn.Regex> #include <requests> #include <callbacks> #include <MD5> #include <mxdate> #include <TOTP> #include <gvar> #include <md-sort> #include <nex-ac> #include <weapon-config> #include <discord-connector> #include <3DTryg> #include <textdraw-streamer>  
      plugins crashdetect.so streamer.so textdraw-streamer.so sscanf.so pawnraknet.so pawncmd.so mysql.so requests.so profiler.so pawnregex.so TOTP.so gvar.so discord-connector.so

      Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.