call update
I modified the call.c so it can set mapping and array. and these
can go recursive, which mean the elements of a mapping or an array
can be other mappings or arraies.
The way to define an array is using [ar],[/ar] pair, for example
[ar],x,y,1,[/ar] means an array ({"x","y",1})
to define a mapping use [mp],[/mp] pair for example
[mp],x,1,y,2,[/mp] means the map (["x" : 1,"y" : 2])
to recurcive
[mp],x,1,y,2,z,[ar],1,3,2,[/ar],[/mp] is 
(["x" : 1 , "y" : 2, "z" : ({1,3,2}) ])
real example
call /daemons/area_d,set_area,xiangping,troop,[mp],cavalry,5000,footman,1000,[/mp]
other things about call
1 because I use a global variable to parse in call.c, so each time can
  only 1 wiz use call, if two use at the same time, the second one need
  wait the first one finish the call. it use a simple way to avoid the
  coincide, and may have bugs, if you find you can't use call, just
  update /cmds/wiz/call.c
2 some shortcut in call
  .me means this_body() = yourself
  .xxx means find_body("xxx")
  .here means this_body()->query_room()
