[!] Джек Воробей сотоварищи копаются в цвете фраз НПЦюков

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

[!] Джек Воробей сотоварищи копаются в цвете фраз НПЦюков

Сообщение piroJOKE »

- Кто-нить хочет научить кору распознавать цвета? Хотя бы чтоб не уж совсем цветным а просто чтоб цветное было красным.

- Ммм... нет.

- Подскажи в какую сторону рыть, чтоб научить видеть цвета от антибота.

- В сторону того места, где они херятся.

- Пипец, поймал пакет - поглядел, и понял что можно на это дело забить. Да и не только в пакетах дело...

- Паччиму?

- Я не шарю Перл, не шарю, как происходит обработка пакета, не знаю строение пакета.

- Блин, чувак, ни грузи. Принять сраную текстовую строку, это нефиг делать, и никакого особого "понимания" для этого ни нужно!

- Вырезка из пакета : ^DCF9F3..^75454F..^885105..^E3EBE7..^E9FADF^E5EBF3..........^FCFFE8*^F6E9F4**^F6EBE3**^EEEEDC**^73C35C**^000000. - Действительно, как это можно не понять?

- А чо тут непонятного? ^ префикс, 6 байт описания цвета, и дальше обычный текст.

- Этот пакет смотреть не хочешь ты... смотри строчку...

- А вот хек его знает, может и на пакет есть смысл втыкать... Ну, скажем, чтобы плагин написать.
Добавлено спустя 1 минуту 39 секунд:

Вот кстати интересное место в строчке...
... ^E9FADF^E5EBF3 ...
...чуваки переключили цвет, но ничего не вывели, и переключили цвет опять.
Последний раз редактировалось piroJOKE Вс янв 20, 2008 1:42 am, всего редактировалось 1 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

кора же умеет писать цветом..

так в интерфейсе пишется пати чат

Код: Выделить всё

$chatLog->addColor("p", 164, 0, 143);
учим кору понимать что идёт выделение цветом (это умеет плагин ReactOnNPC) и выводим это цветом :oops:
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

jack_spa

Дай полный пакет, помучить в посейдоне.
П.С. Я не пойму какое число загадано там ... я бот...
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

Правда тут и лишнего немного есть.
Сейв пакетов через WPE.(Переименовать с rar в pac)
15,17 пакеты.
Вложения
anitbot.rar
(11.83 КБ) 131 скачивание
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

jack_spa
Каким цветом должна быть надпись??? или пох?
Думаю в макро возможно легко организовать, правда регексп будет там Огого....
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Ну вы чудаки. "Пакет", "Посейдон" - а нафига? Создаешь нупа, там сразу нпц-табличка "добро пожаловать в трейнинг центр" - с цветной надписью.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

Пох каким цветом.
В консоле в данный момент всё выглядит так :

Код: Выделить всё

Unknown #110022614: **********ўўўўўўўўўўўўўўўўўўўў
Unknown #110022614: **********ўўўўўўўўўўўўўўўўўўўў
Unknown #110022614: **********ўўўўўўўўўўўўўўўўўўўў
Unknown #110022614: **********ўўўўўўўўўўўўўўўўўўўў
Unknown #110022614: **********ўўўўўўўўўўўўўўўўўўўў
Unknown #110022614: **********ўўўўўўўўўўўўўўўўўўўў
Unknown #110022614: **********ўўўўўўўўўўўўўўўўўўўў
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

piroJOKE писал(а):Ну вы чудаки. "Пакет", "Посейдон" - а нафига? Создаешь нупа, там сразу нпц-табличка "добро пожаловать в трейнинг центр" - с цветной надписью.
Это все фигня. Нужно было поглядеть именно на этот пакет.

Проблема в том, что
а) консоль у нас в текстовом режиме, так что любой цвет отобразить имхо, не удастся. А только стандартные системные цвета, если я правильно помню. Т.е. у нас всего 16 разных цветов.
б) в пакете от этого антибота-нпц видно, что там нет "цветного и не цветного" текста. Он там весь цветной, только то что не должно быть видно - имеет разные, но очень светлые, близкие к белому цвета.
Светло-голубоватые, светло-розоватые... но не белые и не отсутствие цвета.

Вывод - мы не можем просто вывести на экран (в консоль) сообщение с теми цветами которые там есть - у нас палитры не хватит.

Что можно попробовать - ввести скажем так порог: то что светлое печатать белым, то что потемнее - серым скажем... то что еще темнее - синим каким нить.
Там ведь надо не цвет выбирать а из * цветные символы увидеть.
Аватара пользователя
jack_spa
Грамотный
Сообщения: 330
Зарегистрирован: Чт июл 26, 2007 11:12 am
Откуда: Crimean Sea

Сообщение jack_spa »

А можно просто все,что светлое - белым,а остальное - красным.
[url=irc://irc.openkore.com:6667/openkore-ru]Its your destiny,join us! © Wanted[/url]
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

Сделал... грубо, некрасиво...
Вот что получилось:
Вложения
highlight0.gif
highlight0.gif (5.02 КБ) 2257 просмотров
highlight1.gif
highlight1.gif (3.7 КБ) 2255 просмотров
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

jack_spa
DInvalid
Для наших целей имхо выгодно заменять "слабо видимые цвета" пробелами, или каким-то легким символом, типо там "·".

Слушайте, а что это у вас на картинке посредине? Греческая "тета" что ли? :shock:

Добавлено спустя 3 минуты 27 секунд:

DInvalid
"грубо и некрасиво" - так в окне клиента оно тоже выглядит некрасиво (но г-д админов пирацких серваков это не смущает), особенно при нестандартной шкуре РО.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

piroJOKE
Да я не про то как это выглядит, я про то как это сделано (на коленке).

Что делаем: в файле Receive.pm заменяем ф-ю npc_talk на это:

Код: Выделить всё

sub npc_talk {
	my ($self, $args) = @_;
	my $newmsg;
	$self->decrypt(\$newmsg, substr($args->{RAW_MSG}, 8));

	my $msg = substr($args->{RAW_MSG}, 0, 8) . $newmsg;
	my $ID = substr($msg, 4, 4);
	my $talkMsg = unpack("Z*", substr($msg, 8));
	$talk{ID} = $ID;
	$talk{nameID} = unpack("V1", $ID);
	$talk{msg} = bytesToString($talkMsg);
	# Remove RO color codes
#	# $talk{msg} =~ s/\^[a-fA-F0-9]{6}//g;

	$ai_v{npc_talk}{talk} = 'initiated';
	$ai_v{npc_talk}{time} = time;

	my $name = getNPCName($ID);
#	message "$name: $talk{msg}", "npc";
	
	if ($talk{msg}=~/\^[a-fA-F0-9]{6}/) {
		message "$name: ", "npc";
		$talk{msg}="^FFFFFF" . $talk{msg};
		pos($talk{msg})=0;

		while  ($talk{msg} =~/\^([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/g) {
	
		     my $colR = oct "0x" . $1;
		     my $colG = oct "0x" . $2;
		     my $colB = oct "0x" . $3;
	
		     my $colY = ($colR + $colG +$colB) / 3;
     
		     $talk{msg}=~/\G(.*?)(\^|\Z)/x;
		     next if $1 eq "";
		     if ($colY>224) {
			message "$1","white";
		     }	
		     else {
			message "$1","color";
		     }
	
		}
		message "\n", "npc";
	} else {
	message "$name: $talk{msg}\n", "npc";
	}
}
В consolecolors.txt определяем домены
color red
white darkgray

Получаем
Изображение

Какие у меня вопросы...
1)Вообще писать цветом не извращаясь с доменами можно?
2)Если как говорит piroJOKE, "заменять "слабо видимые цвета" пробелами", это надо делать в плагине и не для всех НПЦ а для вот таких антиботоф. Как их от нормальных отличить я не знаю.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

2) разумеется не для всех; "отличить от нормальных" - несколько строк с массированным применением цветовых кодов? :twisted:
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

DInvalid писал(а):а) консоль у нас в текстовом режиме, так что любой цвет отобразить имхо, не удастся. А только стандартные системные цвета, если я правильно помню. Т.е. у нас всего 16 разных цветов.
насколько я знаю, нефига не 16 цветов, а много больше, по крайне мере цвет фона консоли можно сделать любым, я сделал серым:

Код: Выделить всё

$self->SetBackgroundColour(new Wx::Colour(35, 35, 35));
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

4epT писал(а):
DInvalid писал(а):а) консоль у нас в текстовом режиме, так что любой цвет отобразить имхо, не удастся. А только стандартные системные цвета, если я правильно помню. Т.е. у нас всего 16 разных цветов.
насколько я знаю, нефига не 16 цветов, а много больше, по крайне мере цвет фона консоли можно сделать любым, я сделал серым:

Код: Выделить всё

$self->SetBackgroundColour(new Wx::Colour(35, 35, 35));
Это не консоль. Это ВиХэ.
Я про консоль говорю "а-ля дос" которая.
Ответить