--- deliantra/server/ext/ipo.ext 2007/06/19 20:39:30 1.7 +++ deliantra/server/ext/ipo.ext 2007/09/30 16:24:29 1.11 @@ -21,7 +21,7 @@ sub { $_[0]->value (1000 * $price_fact) } ], mailscroll => [ - 1, 'scroll', + 1, 'mailscroll_empty', sub { $_[0]->name ("mailscroll T: $_[2] F: $_[1]"); $_[0]->name_pl ("mailscrolls T: $_[2] F: $_[1]"); @@ -70,7 +70,7 @@ my ($name, $map, $x, $y, $cb, @a) = @_; my $o = cf::object::new $name; my $r = $cb->($o, @a); - $map->insert_object ($o, $x, $y); + $map->insert ($o, $x, $y); $r } @@ -187,11 +187,14 @@ } elsif ($cmd eq 'receive') { cf::async { + $Coro::current->{desc} = "ipo receive"; + my $storage = cf::map::find ("/planes/IPO_storage"); unless ($storage) { $who->reply ($npc, "Sorry, our package delivery service is currently in strike. Please come back later."); return 1; } + $storage->load; my $plname = $who->name; my $cnt; @@ -216,17 +219,21 @@ } cf::async { + $Coro::current->{desc} = "ipo send"; + my $storage = cf::map::find ("/planes/IPO_storage"); unless ($storage) { $who->reply ($npc, "Sorry, our package delivery service is currently in strike. Please come back later."); return 1; } + $storage->load; my $cnt; for ($who->inv) { if ($_->name () =~ /^(bag|package|carton) T: \Q$arguments\E F: (\S+)$/) { $_->name ("$1 F: $2 T: $arguments"); - $_->teleport ($storage, 2, 2); + $storage->insert ($_, 2, 2); + $who->esrv_del_item ($_->count); $cnt++; } }