… | |
… | |
218 | }, |
218 | }, |
219 | }, |
219 | }, |
220 | kiss => { |
220 | kiss => { |
221 | noparams => { |
221 | noparams => { |
222 | other => "<self> makes a weird facial contortion", |
222 | other => "<self> makes a weird facial contortion", |
223 | self => "All the lonely people..", |
223 | self => "All the lonely people...", |
224 | }, |
224 | }, |
225 | params => { |
225 | params => { |
226 | target => "<self> kisses you.", |
226 | target => "<self> kisses you.", |
227 | other => "<self> kisses <other>.", |
227 | other => "<self> kisses <other>.", |
228 | self => "You kiss <other>.", |
228 | self => "You kiss <other>.", |
229 | }, |
229 | }, |
230 | self => { |
230 | self => { |
231 | }, |
231 | }, |
232 | }, |
232 | }, |
|
|
233 | hug => { |
|
|
234 | noparams => { |
|
|
235 | other => "<self> makes weird body movements.", |
|
|
236 | self => "All the lonely people...", |
|
|
237 | }, |
|
|
238 | params => { |
|
|
239 | target => "<self> suddenly grabs and hugs you.", |
|
|
240 | other => "<self> hugs <other>.", |
|
|
241 | self => "You hug <other>.", |
|
|
242 | }, |
|
|
243 | self => { |
|
|
244 | other => "<self> tries to hug G<himself|herself>, but stumbles and now feels stupid.", |
|
|
245 | self => "You try and fail to hug yourself.", |
|
|
246 | }, |
|
|
247 | }, |
233 | smother => { |
248 | smother => { |
234 | noparams => { |
249 | noparams => { |
235 | other => "<self> makes weird facial contortions", |
250 | other => "<self> makes weird facial contortions", |
236 | self => "All the lonely people..", |
251 | self => "All the lonely people...", |
237 | }, |
252 | }, |
238 | params => { |
253 | params => { |
239 | target => "<self> smothers you with kisses.", |
254 | target => "<self> smothers you with kisses.", |
240 | other => "<self> smothers <other> with kisses.", |
255 | other => "<self> smothers <other> with kisses.", |
241 | self => "You smother <other> with kisses.", |
256 | self => "You smother <other> with kisses.", |
… | |
… | |
759 | $pl->send_msg ($cf::CHAT_CHANNEL, $emote{self}, cf::NDI_GREY | cf::NDI_REPLY | cf::NDI_VERBATIM); |
774 | $pl->send_msg ($cf::CHAT_CHANNEL, $emote{self}, cf::NDI_GREY | cf::NDI_REPLY | cf::NDI_VERBATIM); |
760 | } |
775 | } |
761 | }; |
776 | }; |
762 | }; |
777 | }; |
763 | } |
778 | } |
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 | |
779 | |
774 | cf::register_command say => sub { |
780 | cf::register_command say => sub { |
775 | my ($ob, $msg) = @_; |
781 | my ($ob, $msg) = @_; |
776 | |
782 | |
777 | utf8::decode $msg; |
783 | utf8::decode $msg; |
… | |
… | |
805 | my $dialog = new NPC_Dialogue pl => $ob->contr, npc => $npc; |
811 | my $dialog = new NPC_Dialogue pl => $ob->contr, npc => $npc; |
806 | my ($reply, @kw) = $dialog->tell ($msg); |
812 | my ($reply, @kw) = $dialog->tell ($msg); |
807 | |
813 | |
808 | if (defined $reply) { |
814 | if (defined $reply) { |
809 | if ($npc->type == cf::MAGIC_EAR) { |
815 | if ($npc->type == cf::MAGIC_EAR) { |
810 | if (length $reply) { |
|
|
811 | send_msg $_, $cf::SAY_CHANNEL => $reply, cf::NDI_BROWN, "msg_say" |
816 | send_msg $_, $cf::SAY_CHANNEL => $reply, cf::NDI_BROWN, "msg_say" |
812 | for @plonmap; |
817 | for @plonmap; |
813 | } |
|
|
814 | $npc->use_trigger; |
|
|
815 | } else { |
818 | } else { |
816 | if (length $reply) { |
|
|
817 | send_msg $_, $cf::SAY_CHANNEL => $npc->name . " says: $reply", cf::NDI_BROWN, "msg_say" |
819 | send_msg $_, $cf::SAY_CHANNEL => $npc->name . " says: $reply", cf::NDI_BROWN, "msg_say" |
818 | for @plonmap; |
820 | for @plonmap; |
819 | } |
|
|
820 | } |
821 | } |
821 | } |
822 | } |
822 | |
823 | |
823 | if (@kw) { |
824 | if (@kw) { |
824 | $_->send_msg ($cf::SAY_CHANNEL => "[further topics: " . (join ", ", @kw) . "]", cf::NDI_BROWN) |
825 | $_->send_msg ($cf::SAY_CHANNEL => "[further topics: " . (join ", ", @kw) . "]", cf::NDI_BROWN) |
… | |
… | |
829 | } else { |
830 | } else { |
830 | $ob->send_msg ($cf::SAY_CHANNEL => "What do you want to say?", cf::NDI_GREY | cf::NDI_REPLY); |
831 | $ob->send_msg ($cf::SAY_CHANNEL => "What do you want to say?", cf::NDI_GREY | cf::NDI_REPLY); |
831 | } |
832 | } |
832 | }; |
833 | }; |
833 | |
834 | |
834 | cf::register_command chat => sub { |
835 | |
|
|
836 | sub _chat { |
835 | my ($ob, $msg) = @_; |
837 | my ($ob, $msg) = @_; |
836 | |
|
|
837 | utf8::decode $msg; |
|
|
838 | |
838 | |
839 | my $pl = $ob->contr; |
839 | my $pl = $ob->contr; |
840 | |
840 | |
841 | return if $pl->invoke (cf::EVENT_PLAYER_CHAT, $msg); |
841 | return if $pl->invoke (cf::EVENT_PLAYER_CHAT, $msg); |
842 | |
842 | |
843 | if ($msg) { |
843 | if ($msg) { |
844 | my $name = $ob->name; |
844 | my $name = $ob->name; |
845 | my $NOW = time; |
845 | my $NOW = time; |
846 | |
846 | |
847 | cf::LOG cf::llevDebug, sprintf "QBERT [%s] %s\n", $name, $msg; |
847 | cf::LOG cf::llevDebug, sprintf "QBERT %s\n", $msg; |
848 | send_irc ("[%s] %s", $name, $msg); |
848 | send_irc ("%s", $msg); |
849 | |
849 | |
850 | send_msg $_, $cf::CHAT_CHANNEL => "$name chats: $msg", cf::NDI_BLUE | cf::NDI_DEF | ($_ == $pl ? cf::NDI_REPLY : 0), "msg_chat" |
850 | send_msg $_, $cf::CHAT_CHANNEL => $msg, cf::NDI_BLUE | cf::NDI_DEF | ($_ == $pl ? cf::NDI_REPLY : 0), "msg_chat" |
851 | for grep { $_->ob->{ext_ignore_shout}{$name} < $NOW } cf::player::list; |
851 | for grep { $_->ob->{ext_ignore_shout}{$name} < $NOW } cf::player::list; |
852 | |
852 | |
853 | } else { |
853 | } else { |
854 | $pl->send_msg ($cf::CHAT_CHANNEL => "Chat what?", cf::NDI_BLUE | cf::NDI_DEF | cf::NDI_REPLY); |
854 | $pl->send_msg ($cf::CHAT_CHANNEL => "Chat what?", cf::NDI_BLUE | cf::NDI_DEF | cf::NDI_REPLY); |
855 | } |
855 | } |
|
|
856 | } |
|
|
857 | |
|
|
858 | cf::register_command chat => sub { |
|
|
859 | my ($ob, $msg) = @_; |
|
|
860 | |
|
|
861 | utf8::decode $msg; |
|
|
862 | _chat $ob, $ob->name . " chats: $msg"; |
|
|
863 | }; |
|
|
864 | |
|
|
865 | cf::register_command me => sub { |
|
|
866 | my ($ob, $msg) = @_; |
|
|
867 | |
|
|
868 | utf8::decode $msg; |
|
|
869 | _chat $ob, "* " . $ob->name . " $msg"; |
856 | }; |
870 | }; |
857 | |
871 | |
858 | cf::register_command shout => sub { |
872 | cf::register_command shout => sub { |
859 | my ($ob, $msg) = @_; |
873 | my ($ob, $msg) = @_; |
860 | |
874 | |