这个例子昨天正好看了,话说那本书的例子都很不错~
3 {8 b* x9 S, U7 h不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& b0 L& p- A' S9 m( x, C# dis
+ n6 p+ ?" }; F i,no,m:integer; --定义整型
5 E" J- C5 @" Z% C% x2 ~ Buf:object; --定义object
$ s/ D/ A6 X8 Wdo
# f6 H- R0 K8 L2 h& q0 D! Z m:=0;& C/ ~( ]( g! J, R# _9 z- D
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 a' h X( b, U" P for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
) `6 ]1 f3 W4 O+ h+ y$ j if PartsNo=m and no<=PartsNo+PartsTable[2,i] then / ~/ E4 A- c Q, N0 L
@._From:=PartsTable[5,i]; 7 {+ b3 c! a6 r/ k$ V' I: Z& l
@._To:=PartsTable[6,i];8 w; [6 n7 u8 q; l$ c
if no=PartsNo+PartsTable[2,i] then & P1 I% @8 m) I) e3 x% t
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)# V+ |( c/ {2 M. r+ u2 q
- ~, v3 T% V( ]; ~ end;2 s3 t: T* Z$ C) z1 m; z% d
i:=PartsTable.YDim+1;* Y& m: Y+ [) t: Q- h
end;: z2 j$ r/ q6 j8 z" w
m:=m+PartsTable[2,i];
$ A4 }* B, a2 f+ t next;
/ V2 V, ~5 @! z& _+ ] 6 v( e* B" x" p! b7 \; d
Buf:=str_to_obj(sprint("BF",@._From));# c% ?4 u. w8 V' F: u
@.move(Buf);# z, |( A' v1 E2 G* k7 f
end; |