… | |
… | |
292 | on_apply => sub { |
292 | on_apply => sub { |
293 | my ($bed, $ob) = @_; |
293 | my ($bed, $ob) = @_; |
294 | |
294 | |
295 | return cf::override 0 unless $ob->type == cf::PLAYER; |
295 | return cf::override 0 unless $ob->type == cf::PLAYER; |
296 | |
296 | |
297 | my $pl = $ob->pl; |
297 | my $pl = $ob->contr; |
298 | |
298 | |
299 | # update respawn position |
299 | # update respawn position |
300 | $pl->savebed ($bed->map->path, $bed->x, $bed->y); |
300 | $pl->savebed ($bed->map->path, $bed->x, $bed->y); |
301 | |
301 | |
302 | $pl->killer ("left"); |
302 | $pl->killer ("left"); |
… | |
… | |
329 | |
329 | |
330 | if ($cleanly) { |
330 | if ($cleanly) { |
331 | $_->ob->message ("$name left the game.", cf::NDI_DK_ORANGE | cf::NDI_UNIQUE) for cf::player::list; |
331 | $_->ob->message ("$name left the game.", cf::NDI_DK_ORANGE | cf::NDI_UNIQUE) for cf::player::list; |
332 | } else { |
332 | } else { |
333 | $_->ob->message ("$name uncerimoniously disconnected.", cf::NDI_DK_ORANGE | cf::NDI_UNIQUE) for cf::player::list; |
333 | $_->ob->message ("$name uncerimoniously disconnected.", cf::NDI_DK_ORANGE | cf::NDI_UNIQUE) for cf::player::list; |
|
|
334 | delete $pl->{clean_save}; |
334 | } |
335 | } |
335 | }, |
336 | }, |
336 | ); |
337 | ); |
337 | |
338 | |
338 | cf::client->attach ( |
339 | cf::client->attach ( |
… | |
… | |
378 | Coro::cede; |
379 | Coro::cede; |
379 | }; |
380 | }; |
380 | } |
381 | } |
381 | }; |
382 | }; |
382 | |
383 | |
383 | cf::player::find "schmorp";#d# |
|
|
384 | |
|
|
385 | $SCHEDULER->prio (1); |
384 | $SCHEDULER->prio (1); |
386 | |
385 | |