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

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

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

[ Pawn ]
Форматирование сообщения.

#11
Пользователь офлайн   20th century 

  • aw
  • Вставить ник
  • Раскрыть информацию
Да нет, никаких функций, вводишь hex - сохраняешь в обычную int переменную, можешь протестировать.
0

#12
Пользователь офлайн   killerpawn 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщения20th century (10 июня 2021 - 20:48) писал:

Да нет, никаких функций, вводишь hex - сохраняешь в обычную int переменную, можешь протестировать.



Сделал логирование, вводил другой цвет, но по итогу почему то всегда черный -
[21:57:46] {000000}

Делал сохранение 2 способами:
1.
strmid(RankInfo[id][r_Color], inputtext, 0, 9);

2.
RankInfo[id][r_Color] = strval(inputtext);

Но, заметил то, что когда ввожу команды для выдачи, выдается белый цве катк и нужно было, а когда изменяю на другой в диалог - даёт черный.

Вот весь код:
new 
	const RankDefault[e_RANK_DATA] = {
		"Администратор",
		1,
		0xFFFFFFFF
	};


enum 
	e_RANK_DATA {
		r_Rank[32],
		r_Level,
		r_Color
	};


cmd:givearank(playerid, params[]) {
	new 
		targetid;

	if 
		sscanf(params, "i", targetid) *then
			return SendClientMessage(playerid, color_green, !" * "#c_white" Используйте: /givearank [id]");

	if 
		targetid == INVALID_PLAYER_ID *then
			return SendClientMessage(playerid, color_red, !" * "#c_white" Игрок не найден.");

	//if 
	//	targetid == playerid *then
	//		return SendClientMessage(playerid, color_red, !" * "#c_white" Вы указали свой ID.");

	RankInfo[targetid] = RankDefault;
	SetPVarInt(playerid, #rank_id, targetid);

	return 
		ShowPlayer_MainRank(playerid, targetid);
}


stock 
	ShowPlayer_MainRank(playerid, targetid) {
		static 
			const 
				string_give[] = "\
									"#c_server"1. "#c_white"Название ранга:\t\t%s\n\
									"#c_server"2. "#c_white"Уровень ранга:\t\t%i\n\
									"#c_server"3. "#c_white"Цвет ранга:\t\t{%06x}||||||||||\n \n\
									"#c_white"Пример: {%06x}%s\n\
									"#c_white"Игрок: "#c_server"%s[%i]\n \n\
									"#c_server"Выдать ранг\
								";
		new 
			str_give[sizeof string_give + (-4+32+9)*2 + (-2+MAX_PLAYER_NAME) + (-4+4+2)];

		format(
			str_give,
			sizeof str_give,
			string_give,
			RankInfo[targetid][r_Rank],
			RankInfo[targetid][r_Level],
			RankInfo[targetid][r_Color] >>> 8,
			RankInfo[targetid][r_Color] >>> 8,
			RankInfo[targetid][r_Rank],
			GetPlayerNameEx(targetid),
			targetid
		);

		return 
			ShowPlayerDialog(
				playerid,
				d_CreateRank,
				DIALOG_STYLE_TABLIST,
				!""#c_server"Выдача ранга",
				str_give,
				!"Выбрать",
				!"Закрыть"
			);
	}


		case d_CreateRank+3: {
			new 
				id = GetPVarInt(playerid, #rank_id);

			if 
				!response *then
					return RankInfo[id] = RankNull, DeletePVar(playerid, #rank_id);

			if 
				!strlen(inputtext) || strlen(inputtext) > 6 *then
					return ShowPlayer_ColorRank(playerid);

			new 
				Regex:
					CheckColor = Regex_New("^[a-fA-F0-9]{1,}$");

			if
				Regex_Check(inputtext, CheckColor) *then {
					strmid(RankInfo[id][r_Color], inputtext, 0, 9);
					ShowPlayer_MainRank(playerid, id);
			}
			else ShowPlayer_ColorRank(playerid);
			Regex_Delete(CheckColor);
		}


Сообщение отредактировал killerpawn: 10 июня 2021 - 22:07

0

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


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

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


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