… | |
… | |
1523 | my ($pl) = @_; |
1523 | my ($pl) = @_; |
1524 | |
1524 | |
1525 | my $name = $pl->ob->name; |
1525 | my $name = $pl->ob->name; |
1526 | |
1526 | |
1527 | $pl->{deny_save} = 1; |
1527 | $pl->{deny_save} = 1; |
1528 | $pl->password ("*"); # this should lock out the player until we nuked the dir |
1528 | $pl->password ("*"); # this should lock out the player until we have nuked the dir |
1529 | |
1529 | |
1530 | $pl->invoke (cf::EVENT_PLAYER_LOGOUT, 1) if $pl->active; |
1530 | $pl->invoke (cf::EVENT_PLAYER_LOGOUT, 1) if $pl->active; |
1531 | $pl->deactivate; |
1531 | $pl->deactivate; |
1532 | my $killer = cf::arch::get "killer_quit"; $pl->killer ($killer); $killer->destroy; |
1532 | my $killer = cf::arch::get "killer_quit"; $pl->killer ($killer); $killer->destroy; |
1533 | $pl->ob->check_score; |
1533 | $pl->ob->check_score; |
… | |
… | |
2907 | if ($self->can_msg) { |
2907 | if ($self->can_msg) { |
2908 | # default colour, mask it out |
2908 | # default colour, mask it out |
2909 | $color &= ~(cf::NDI_COLOR_MASK | cf::NDI_DEF) |
2909 | $color &= ~(cf::NDI_COLOR_MASK | cf::NDI_DEF) |
2910 | if $color & cf::NDI_DEF; |
2910 | if $color & cf::NDI_DEF; |
2911 | |
2911 | |
2912 | $self->send_packet ("msg " . $self->{json_coder}->encode ( |
2912 | my $pkt = "msg " |
|
|
2913 | . $self->{json_coder}->encode ( |
2913 | [$color & cf::NDI_CLIENT_MASK, $channel, $msg, @extra])); |
2914 | [$color & cf::NDI_CLIENT_MASK, $channel, $msg, @extra] |
|
|
2915 | ); |
|
|
2916 | |
|
|
2917 | # try lzf for large packets |
|
|
2918 | $pkt = "lzf " . Compress::LZF::compress $pkt |
|
|
2919 | if 1024 <= length $pkt and $self->{can_lzf}; |
|
|
2920 | |
|
|
2921 | # split very large packets |
|
|
2922 | if (8192 < length $pkt and $self->{can_lzf}) { |
|
|
2923 | $self->send_packet ("frag $_") for unpack "(a8192)*", $pkt; |
|
|
2924 | $pkt = "frag"; |
|
|
2925 | } |
|
|
2926 | |
|
|
2927 | $self->send_packet ($pkt); |
2914 | } else { |
2928 | } else { |
2915 | if ($color >= 0) { |
2929 | if ($color >= 0) { |
2916 | # replace some tags by gcfclient-compatible ones |
2930 | # replace some tags by gcfclient-compatible ones |
2917 | for ($msg) { |
2931 | for ($msg) { |
2918 | 1 while |
2932 | 1 while |