в коре он выглядит так:
Вопрос как научить кору понимать то что пишут в мейн.[dist=unknown] ():
Модератор: 4epT
Вопрос как научить кору понимать то что пишут в мейн.[dist=unknown] ():
ReciveКод: Выделить всё
F3 00 16 00 58 6D 70 65 20 3A 20 40 6D 61 69 6E 20 D2 E5 F1 F2 00
написал @main ТестКод: Выделить всё
8D 00 18 00 00 00 00 00 4D 61 69 6E 40 58 6D 70 65 3A 20 D2 E5 F1 F2 00
ReciveКод: Выделить всё
F3 00 16 00 58 6D 70 65 20 3A 20 40 6D 61 69 6E 20 54 65 73 74 00
Написал @main TestКод: Выделить всё
8D 00 18 00 00 00 00 00 4D 61 69 6E 40 58 6D 70 65 3A 20 54 65 73 74 00
Таким образом должно работать (сам не проверял, попрошу поправить где ошибся)sub public_chat {
my ($self, $args) = @_;
# Type: String
my $message = bytesToString($args->{message});
my ($chatMsgUser, $chatMsg); # Type: String
($chatMsgUser, $chatMsg) = $message =~ /(.*?) : (.*)/;
$chatMsgUser =~ s/ $//;
stripLanguageCode(\$chatMsg);
if ($args->{ID} > 0) {
my $actor = Actor::get($args->{ID});
my $dist = "unknown";
if (!$actor->isa('Actor::Unknown')) {
$dist = distance($char->{pos_to}, $actor->{pos_to});
$dist = sprintf("%.1f", $dist) if ($dist =~ /\./);
}
$message = "$chatMsgUser ($actor->{binID}): $chatMsg";
# this code autovivifies $actor->{pos_to} but it doesnt matter
chatLog("c", "[$field{name} $char->{pos_to}{x}, $char->{pos_to}{y}] [$actor->{pos_to}{x}, $actor->{pos_to}{y}] [dist=$dist] ($actor->{nameID})" .
"$message\n") if ($config{logChat});
message TF("[dist=%s] %s\n", $dist, $message), "publicchat";
} else {
chatLog("c", "\@main [$field{name}] " .
"$message\n") if ($config{logChat});
$message = "$chatMsgUser (@main): $chatMsg";
}
ChatQueue::add('c', $args->{ID}, $chatMsgUser, $chatMsg);
Plugins::callHook('packet_pubMsg', {
pubID => $args->{ID},
pubMsgUser => $chatMsgUser,
pubMsg => $chatMsg,
MsgUser => $chatMsgUser,
Msg => $chatMsg
});
}