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

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

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

[ Pawn ]
Перевожу команду в диалог не работает

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Привет, хочу перевести команду /pame в диалог чтобы через диалог писали описание а то через команду нельзя больше 128 символов писать почему то, так вот, сделал диалог и команду, но не работает хотя вроде сделал правильно все

вот команда /pame

CMD:pame(playerid, params[])
{
	const max_symbol_for_pame = 200;

	new pame[max_symbol_for_pame];

	if(sscanf(params, "s[200]", pame))
	    return SendClientMessage(playerid, -1, "Введите: /pame [ описание ]");

	new count_symbol = strlen(pame);

	if(!(10 <= count_symbol <= max_symbol_for_pame))
	    return SendClientMessage(playerid, COLOR_GREY, !"Ошибка: Используйте не меньше 10 и не больше 200 символов.");

	const line_break_start = 50;

	if(count_symbol > line_break_start)
	{
	    new str_line_break[max_symbol_for_pame / 2];

	    strmid(str_line_break, pame, line_break_start, max_symbol_for_pame);
	    strdel(pame, line_break_start, max_symbol_for_pame);

	    strcat(pame, "\n");
	    strcat(pame, str_line_break);
	}
	if(pame_text[playerid] != Text3D: -1)
	    return SendClientMessage(playerid, COLOR_GREY, !"Ошибка: У Вас уже имеется описание персонажа, используйте: /dellpame");

	pame_text[playerid] = CreateDynamic3DTextLabel(pame, 0x645d5dAA, 0.0, 0.0, -1.0, 5, playerid, -1, 0);

	new string[MAX_CHATBUBBLE_LENGTH + 1] =  "Вы создали описание персонажа: {ffffff}";
	strcat(string, pame);
	SendClientMessage(playerid, 0x645d5dAA, string);

	format(stringer, sizeof(stringer),
	    "[A] %s[%d] Создал описание персонажа: {ffffff}%s.",
	    PlayerInfo[playerid][pNames],
	    playerid,
	    pame
	);
	SendAdminMessage(0xff6600AA, stringer);
	return true;
}


вот диалог который сделал я

CMD:pame(playerid, params[])
{
	format(stringer, sizeof(stringer), "\n\
	{ffffff}Вы собирайтесь создать описание для своего персонажа.\n\n\
	{ffffff}Описание персонажа не может быть меньше 10 символов, и больше 200");
	SPD(playerid, 7000, DSI, "{FFCC00}Описание персонажа", stringer, "Далее", "Отмена");
	return true;
}



case 7000:
{
    if(response)
	{
		const max_symbol_for_pame = 200;

		new pame[max_symbol_for_pame];

		new count_symbol = strlen(pame);

		if(!(10 <= count_symbol <= max_symbol_for_pame))
		    return SendClientMessage(playerid, COLOR_GREY, !"Îøèáêà: Èñïîëüçóéòå íå ìåíüøå 10 è íå áîëüøå 200 ñèìâîëîâ.");

		const line_break_start = 50;

		if(count_symbol > line_break_start)
		{
		    new str_line_break[max_symbol_for_pame / 2];

		    strmid(str_line_break, pame, line_break_start, max_symbol_for_pame);
		    strdel(pame, line_break_start, max_symbol_for_pame);

		    strcat(pame, "\n");
		    strcat(pame, str_line_break);
		}
		if(pame_text[playerid] != Text3D: -1)
		    return SendClientMessage(playerid, COLOR_GREY, !"Îøèáêà: Ó Âàñ óæå èìååòñÿ îïèñàíèå ïåðñîíàæà, èñïîëüçóéòå: /dellpame");

		pame_text[playerid] = CreateDynamic3DTextLabel(pame, 0x645d5dAA, 0.0, 0.0, -1.0, 5, playerid, -1, 0);

		new string[MAX_CHATBUBBLE_LENGTH + 1] =  "Âû ñîçäàëè îïèñàíèå ïåðñîíàæà: {ffffff}";
		strcat(string, pame);
		SendClientMessage(playerid, 0x645d5dAA, string);

		format(stringer, sizeof(stringer),
		    "[A] %s[%d] Ñîçäàë îïèñàíèå ïåðñîíàæà: {ffffff}%s.",
		    PlayerInfo[playerid][pNames],
		    playerid,
		    pame
		);
		SendAdminMessage(0xff6600AA, stringer);
		return true;
	}
}

0

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Ты просто скопировал команду в тело диалога. Как оно по твоему должно работать? Тебе нужно не создавать загадочный массив pame (он пустой!), а взаимодействовать с inputtext.
0

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

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

Просмотр сообщенияPa4enka (05 августа 2022 - 13:31) писал:

Ты просто скопировал команду в тело диалога. Как оно по твоему должно работать? Тебе нужно не создавать загадочный массив pame (он пустой!), а взаимодействовать с inputtext.


тоесть pame заменить на inputtext спасибо
0

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

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

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

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
case 7000:
{
	if(!response)
		return 1;

	new count_symbol = strlen(inputtext);

	const max_symbol_for_pame = 200;

	if(!(10 <= count_symbol <= max_symbol_for_pame))
		return SendClientMessage(playerid, COLOR_GREY, !"Ошибка: Используйте не меньше 10 и не больше 200 символов.");

	const line_break_start = 50;

	new pame[max_symbol_for_pame];

	strcat(pame, inputtext);

	if(count_symbol > line_break_start)
	{
		new str_line_break[max_symbol_for_pame / 2];

		strmid(str_line_break, pame, line_break_start, max_symbol_for_pame);
		strdel(pame, line_break_start, max_symbol_for_pame);

		strcat(pame, "\n");
		strcat(pame, str_line_break);
	}
	if(pame_text[playerid] != Text3D: -1)
			return SendClientMessage(playerid, COLOR_GREY, !"Ошибка: У Вас уже имеется описание персонажа, используйте: /dellpame");

	pame_text[playerid] = CreateDynamic3DTextLabel(pame, 0x645d5dAA, 0.0, 0.0, -1.0, 5, playerid, -1, 0);

	new string[MAX_CHATBUBBLE_LENGTH + 1] =  "Вы создали описание персонажа: {ffffff}";
	strcat(string, pame);
	SendClientMessage(playerid, 0x645d5dAA, string);

	format(stringer, sizeof(stringer),
			"[A] %s[%d] Создал описание персонажа: {ffffff}%s.",
			PlayerInfo[playerid][pNames],
			playerid,
			pame
	);
	SendAdminMessage(0xff6600AA, stringer);
	return true;
}

Сообщение отредактировал Saibot: 05 августа 2022 - 15:36

1

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

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Спасибо огромное, у меня опять на тех же строках такие ошибки

warning 224: indeterminate array size in "sizeof" expression (symbol "maxlength"

	                strcat(inputtext, "\n");
	                strcat(inputtext, str_line_break);

0

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

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
case 7000:
{
	if(!response)
		return 1;

	new count_symbol = strlen(inputtext);

	const max_symbol_for_pame = 200;

	if(!(10 <= count_symbol <= max_symbol_for_pame))
		return SendClientMessage(playerid, COLOR_GREY, !"Ошибка: Используйте не меньше 10 и не больше 200 символов.");

	const line_break_start = 50;

	new pame[max_symbol_for_pame];

	strcat(pame, inputtext);

	if(count_symbol > line_break_start)
	{
		new str_line_break[max_symbol_for_pame / 2];

		strmid(str_line_break, pame, line_break_start, max_symbol_for_pame);
		strdel(pame, line_break_start, max_symbol_for_pame);

		strcat(pame, "\n");
		strcat(pame, str_line_break);
	}
	if(pame_text[playerid] != Text3D: -1)
			return SendClientMessage(playerid, COLOR_GREY, !"Ошибка: У Вас уже имеется описание персонажа, используйте: /dellpame");

	pame_text[playerid] = CreateDynamic3DTextLabel(pame, 0x645d5dAA, 0.0, 0.0, -1.0, 5, playerid, -1, 0);

	new string[MAX_CHATBUBBLE_LENGTH + 1] =  "Вы создали описание персонажа: {ffffff}";
	strcat(string, pame);
	SendClientMessage(playerid, 0x645d5dAA, string);

	format(stringer, sizeof(stringer),
			"[A] %s[%d] Создал описание персонажа: {ffffff}%s.",
			PlayerInfo[playerid][pNames],
			playerid,
			pame
	);
	SendAdminMessage(0xff6600AA, stringer);
	return true;
}

Сообщение отредактировал Saibot: 05 августа 2022 - 15:36

1

#8
Пользователь офлайн   Pa4enka 

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

Просмотр сообщенияSaibot (05 августа 2022 - 15:18) писал:

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

strcat(pame, "\n");
strcat(pame, str_line_break);

Upd: там похоже у тебя плохо автозамена сработала. Везде strcat вместо pame. По всей команде.

Сообщение отредактировал Pa4enka: 05 августа 2022 - 15:30

1

#9
Пользователь офлайн   samperonline 

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

C:\Users\Gamer\Desktop\Äîðàáîòêà ìîåãî ìîäà\gamemodes\edit.pwn(14657) : error 076: syntax error in the expression, or invalid function call
C:\Users\Gamer\Desktop\Äîðàáîòêà ìîåãî ìîäà\gamemodes\edit.pwn(14658) : error 076: syntax error in the expression, or invalid function call
C:\Users\Gamer\Desktop\Äîðàáîòêà ìîåãî ìîäà\gamemodes\edit.pwn(14660) : error 076: syntax error in the expression, or invalid function call
C:\Users\Gamer\Desktop\Äîðàáîòêà ìîåãî ìîäà\gamemodes\edit.pwn(14661) : error 076: syntax error in the expression, or invalid function call
C:\Users\Gamer\Desktop\Äîðàáîòêà ìîåãî ìîäà\gamemodes\edit.pwn(14666) : error 076: syntax error in the expression, or invalid function call
C:\Users\Gamer\Desktop\Äîðàáîòêà ìîåãî ìîäà\gamemodes\edit.pwn(14669) : error 076: syntax error in the expression, or invalid function call
C:\Users\Gamer\Desktop\Äîðàáîòêà ìîåãî ìîäà\gamemodes\edit.pwn(14672 -- 14677) : error 076: syntax error in the expression, or invalid function call

0

#10
Пользователь офлайн   Saibot 

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

Просмотр сообщенияPa4enka (05 августа 2022 - 15:24) писал:

strcat(pame, "\n");
strcat(pame, str_line_break);

Upd: там похоже у тебя плохо автозамена сработала. Везде strcat вместо pame. По всей команде.

спасибо, подправил.

samperonline, обнови

Сообщение отредактировал Saibot: 05 августа 2022 - 15:36

1

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


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

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


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