… | |
… | |
760 | } |
760 | } |
761 | }; |
761 | }; |
762 | }; |
762 | }; |
763 | } |
763 | } |
764 | |
764 | |
765 | cf::register_command me => sub { |
|
|
766 | my ($pl, $msg) = @_; |
|
|
767 | |
|
|
768 | my $name = $pl->name; |
|
|
769 | |
|
|
770 | send_msg $_, $cf::SAY_CHANNEL => "* $name $msg", cf::NDI_GREY | cf::NDI_DEF | ($_ == $pl ? cf::NDI_REPLY : 0), "msg_say" |
|
|
771 | for grep $pl->on_same_map_as ($_->ob), cf::player::list; |
|
|
772 | }; |
|
|
773 | |
|
|
774 | cf::register_command say => sub { |
765 | cf::register_command say => sub { |
775 | my ($ob, $msg) = @_; |
766 | my ($ob, $msg) = @_; |
776 | |
767 | |
777 | utf8::decode $msg; |
768 | utf8::decode $msg; |
778 | |
769 | |
… | |
… | |
824 | } else { |
815 | } else { |
825 | $ob->send_msg ($cf::SAY_CHANNEL => "What do you want to say?", cf::NDI_GREY | cf::NDI_REPLY); |
816 | $ob->send_msg ($cf::SAY_CHANNEL => "What do you want to say?", cf::NDI_GREY | cf::NDI_REPLY); |
826 | } |
817 | } |
827 | }; |
818 | }; |
828 | |
819 | |
829 | cf::register_command chat => sub { |
820 | |
|
|
821 | sub _chat { |
830 | my ($ob, $msg) = @_; |
822 | my ($ob, $msg) = @_; |
831 | |
|
|
832 | utf8::decode $msg; |
|
|
833 | |
823 | |
834 | my $pl = $ob->contr; |
824 | my $pl = $ob->contr; |
835 | |
825 | |
836 | return if $pl->invoke (cf::EVENT_PLAYER_CHAT, $msg); |
826 | return if $pl->invoke (cf::EVENT_PLAYER_CHAT, $msg); |
837 | |
827 | |
838 | if ($msg) { |
828 | if ($msg) { |
839 | my $name = $ob->name; |
829 | my $name = $ob->name; |
840 | my $NOW = time; |
830 | my $NOW = time; |
841 | |
831 | |
842 | cf::LOG cf::llevDebug, sprintf "QBERT [%s] %s\n", $name, $msg; |
832 | cf::LOG cf::llevDebug, sprintf "QBERT %s\n", $name, $msg; |
843 | send_irc ("[%s] %s", $name, $msg); |
833 | send_irc ($msg); |
844 | |
834 | |
845 | send_msg $_, $cf::CHAT_CHANNEL => "$name chats: $msg", cf::NDI_BLUE | cf::NDI_DEF | ($_ == $pl ? cf::NDI_REPLY : 0), "msg_chat" |
835 | send_msg $_, $cf::CHAT_CHANNEL => $msg, cf::NDI_BLUE | cf::NDI_DEF | ($_ == $pl ? cf::NDI_REPLY : 0), "msg_chat" |
846 | for grep { $_->ob->{ext_ignore_shout}{$name} < $NOW } cf::player::list; |
836 | for grep { $_->ob->{ext_ignore_shout}{$name} < $NOW } cf::player::list; |
847 | |
837 | |
848 | } else { |
838 | } else { |
849 | $pl->send_msg ($cf::CHAT_CHANNEL => "Chat what?", cf::NDI_BLUE | cf::NDI_DEF | cf::NDI_REPLY); |
839 | $pl->send_msg ($cf::CHAT_CHANNEL => "Chat what?", cf::NDI_BLUE | cf::NDI_DEF | cf::NDI_REPLY); |
850 | } |
840 | } |
|
|
841 | } |
|
|
842 | |
|
|
843 | cf::register_command chat => sub { |
|
|
844 | my ($ob, $msg) = @_; |
|
|
845 | |
|
|
846 | utf8::decode $msg; |
|
|
847 | _chat $ob, $ob->name . " chats: $msg"; |
|
|
848 | }; |
|
|
849 | |
|
|
850 | cf::register_command me => sub { |
|
|
851 | my ($ob, $msg) = @_; |
|
|
852 | |
|
|
853 | utf8::decode $msg; |
|
|
854 | _chat $ob, "* " . $ob->name . " $msg"; |
851 | }; |
855 | }; |
852 | |
856 | |
853 | cf::register_command shout => sub { |
857 | cf::register_command shout => sub { |
854 | my ($ob, $msg) = @_; |
858 | my ($ob, $msg) = @_; |
855 | |
859 | |