Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Ошибка диалога - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

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

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

[ Server ]
Ошибка диалога

#1
Пользователь офлайн   x4ml0 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
При вызове:
if(dialogid == 8628)
	{
		if(response&&PlayerInfo[playerid][pAdmin]<9) return 1;
		new query[60];
		new string[700], info[80];
		new l[3], lname[32], lown[32], lrk[24], lst[15], lls[15], lrs[32], liv[32];
		new lr[2];
		f(query, "SELECT * FROM `leaders` WHERE `id` = '%d'", listitem+1);
		mysql_query(query), mysql_store_result();
		if(mysql_fetch_row_format(query)) 
		{
			BaseGetInt("id", l[0]);
			BaseGet("name", lname);
			BaseGet("owner", lown);
			BaseGet("rank", lrk);
			BaseGet("last", lls);
			BaseGet("status", lst);
			BaseGet("reason", lrs);
			BaseGet("invite", liv);
			BaseGetInt("warn", l[1]);
			BaseGetInt("online", l[2]);
			mysql_free_result();
		}
		f(info, "\t\t{FFFFFF}- Организация: {FF7F50}%s {FFFFFF}-\n\n", lname), strcat(string, info);
		f(info, "{FFFFFF}Руководитель: \t{20B2AA}%s\n", lown), strcat(string, info);
		f(info, "{FFFFFF}Должность: \t\t{20B2AA}%s\n", lrk), strcat(string, info);
		f(info, "{FFFFFF}Предупреждений: \t{20B2AA}%d\n", l[1]), strcat(string, info);
		sscanf(lrs, "p<|>s[16]s[16]", lr[0], lr[1]);
		if(l[1]==1) f(info, "Причина: \t\t{20B2AA}%s", lr[0]), strcat(string, info);
		if(l[2]==2) f(info, "Причина: \t\t{20B2AA}%s\nПричина: \t\t{20B2AA}%s", lr[0], lr[1]), strcat(string, info);
		if(!strcmp(lst, "online", false)) strcat(string, "\n{3CB371}Сейчас онлайн\n\n");
		else f(info, "\nБыл в сети: \t\t{CCCCCC}%s\n", lls), strcat(string, info);
		f(info, "Всего отыграно: \t%d {cccccc}час(а/ов)", l[2]), strcat(string, info);
		ShowPlayerDialog(playerid, 8629, DIALOG_STYLE_MSGBOX, "Информация о лидере", string, "Действие", "Назад");
		return 1;
	}


Выходит в лог такое, и операция на сервере не выполняется:
[20:55:02] [debug] Run time error 6: "Invalid instruction"
[20:55:02] [debug]  Unknown opcode 0x890000 at address 0x0000004E
[20:55:02] [debug] AMX backtrace:
[20:55:02] [debug] #0 00000000 in public OnDialogResponse ()
[20:55:05] [debug] Run time error 7: "Stack underflow"
[20:55:05] [debug]  Stack pointer (STK) is 0xADC3CC, stack top (STP) is 0xADC3AC
[20:55:05] [debug] AMX backtrace:
[20:55:05] [debug] #0 00000000 in public OnDialogResponse ()
[20:55:09] [debug] Run time error 6: "Invalid instruction"
[20:55:09] [debug]  Unknown opcode 0x890000 at address 0x0000004E
[20:55:09] [debug] AMX backtrace:
[20:55:09] [debug] #0 00000000 in public OnDialogResponse ()
[20:55:16] [debug] Run time error 6: "Invalid instruction"
[20:55:16] [debug]  Unknown opcode 0x8900 at address 0x0000006F
[20:55:16] [debug] AMX backtrace:
[20:55:16] [debug] #0 00000000 in public OnDialogResponse ()
[20:55:53] [debug] Run time error 6: "Invalid instruction"
[20:55:53] [debug]  Unknown opcode 0x890000 at address 0x0000004E
[20:55:53] [debug] AMX backtrace:
[20:55:53] [debug] #0 00000000 in public OnDialogResponse ()



Всё что помечено желтым, то работает, остальное выдаёт ошибку.
Диалог [Показать]


BaseGet

Взяты от сюда: http://pawn-wiki.ru/...0-osnovi-mysql/

Сообщение отредактировал x4ml0: 16 Май 2018 - 19:30

0

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

  • Stone tm
  • Вставить ник
  • Раскрыть информацию
Что за f? Format?
0

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

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияNestyreff (16 Май 2018 - 19:53) писал:

Что за f? Format?

Да
0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
sscanf(lrs, "p<|>s[16]s[16]", lr[0], lr[1]);

lr у тебя одномерный массив
0

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

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияJackson2008 (16 Май 2018 - 20:34) писал:

sscanf(lrs, "p<|>s[16]s[16]", lr[0], lr[1]);

lr у тебя одномерный массив


Да это фигня) Не парься, я тут из строки извлекаю через | 2 как бы переменные

Проблему решил, другим методом загрузки
if(mysql_num_rows())
 {
 mysql_fetch_row_format(result, "|");
 sscanf(result, "p<|>is[32]s[32]s[32]s[15]is[15]
s[32]is[32]", l[0], lname, lown, lrk, lst, l[2], lls, liv, l[1], lrs);
 mysql_free_result();
 }


Сообщение отредактировал x4ml0: 16 Май 2018 - 20:37

0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Либо я не догоняю, либо ты ты извлекаешь строку (т.е. массив) в одномерный массив, а значит строка в результате будет иметь длину максимум 1 элемент (\0)

Сообщение отредактировал Jackson2008: 16 Май 2018 - 20:54

0

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

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияJackson2008 (16 Май 2018 - 20:53) писал:

Либо я не догоняю, либо ты ты извлекаешь строку (т.е. массив) в одномерный массив, а значит строка в результате будет иметь длину максимум 1 элемент (\0)

Забей) Суть проблемы не в этом, с sscanf да пролетел) решил уже)
0

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


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

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