--- deliantra/server/ext/cfplus.ext 2008/09/19 01:39:45 1.13 +++ deliantra/server/ext/cfplus.ext 2009/10/26 02:34:37 1.15 @@ -87,7 +87,7 @@ my ($pl, $id, $token) = @_; #TODO: - # this is not a request, so returnign does no good: make it a request and die on error + # this is not a request, so returning does no good: make it a request and die on error return unless $pl->ob && $pl->ob->map; @@ -192,6 +192,15 @@ delete $pl->{npc_dialog}; $pl->detach ("npc_dialog_active"); }, + on_map_change => sub { + my ($pl) = @_; + + my $dialog = delete $pl->{npc_dialog} + or return; + + $pl->ext_msg ($dialog->{id} => error => "out of range"); + $pl->detach ("npc_dialog_active"); + }, on_move => sub { my ($pl, $dir) = @_; @@ -204,11 +213,10 @@ return if (abs $dx) <= 2 && (abs $dy) <= 2; + delete $pl->{npc_dialog}; $pl->ext_msg ($dialog->{id} => error => "out of range"); + $pl->detach ("npc_dialog_active"); } - - delete $pl->{npc_dialog}; - $pl->detach ("npc_dialog_active"); }; }, ;