这个例子昨天正好看了,话说那本书的例子都很不错~/ Y- ]8 S! @- z& X7 k' T
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。, m: P+ B: i' P
is
3 {7 p9 A5 K* A" x: P5 i3 @' r i,no,m:integer; --定义整型* d, `! T: d' F( H
Buf:object; --定义object; T: R; x! ]2 b+ A" }
do
, l0 T' u0 }) u8 [$ `: P/ V m:=0;
( Y8 P1 G7 t3 X- M no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)7 | d, C- ^3 J
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行5 n( [' |4 b, x& p# @& c: A/ O0 c
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 6 O1 {% k k" b& r
@._From:=PartsTable[5,i];
" b) Q0 D/ g2 u) E5 e5 h. j2 q @._To:=PartsTable[6,i];
2 e& Z+ A+ O0 m" \6 x if no=PartsNo+PartsTable[2,i] then
$ a2 I) b$ t; i+ D6 B. P PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
5 K$ T% a+ U1 ^% ~5 M H S
' x4 a7 s0 e! m3 f+ p end;
$ Z% b, W0 g# y2 A0 a; M i:=PartsTable.YDim+1;
+ D, y1 e( I7 q ^$ q* }% q end;! D7 Z% e: S/ C, b
m:=m+PartsTable[2,i];
3 `1 ?/ d7 u- |8 N6 h( r7 D next;% z! _" M0 X0 f8 q
2 l! r# C. d# ?- A
Buf:=str_to_obj(sprint("BF",@._From));1 y5 V& o9 [, E6 |7 p' M
@.move(Buf);
" Y; t4 a) Y& W: wend; |