这个例子昨天正好看了,话说那本书的例子都很不错~
- a) T h- Y8 X, L不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
- T1 U0 y9 i8 }, y0 i) L& l6 Dis7 u& `! v- c& a9 }: i8 s8 ^8 I
i,no,m:integer; --定义整型. @- g E& O, j! ]
Buf:object; --定义object* x8 H7 ]0 c" i( H+ B
do
% B c1 X) W! j7 i' O% z* Q m:=0;. S6 D* B& T# o
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)% N/ K) ?% A: D8 ^. y4 b6 U, g& |8 m
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行) K/ T( b# |. Q& E/ W( p. s
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ( ~+ l9 X: o0 a: M3 ^: Y) Q5 z3 A
@._From:=PartsTable[5,i];
' e9 b) ?0 z4 S$ Y$ a1 _/ k @._To:=PartsTable[6,i];% y" b/ Z6 ` ~ l2 y
if no=PartsNo+PartsTable[2,i] then
9 q# _5 Z) u* U ?- _1 s N, ~ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) {; d- x3 h/ H# ^* _- p
# A d7 g2 k) M8 L end;
8 ~; \' [( Z' m% z0 r/ W* \3 n( i. ~ i:=PartsTable.YDim+1;) G$ r' i, v0 {1 P# M
end;
5 a: e8 ?; G" x Q' I m:=m+PartsTable[2,i];5 z" w* h4 u7 b( ~
next;5 U7 I+ E' Y* @: ]
+ ?: ^6 _! K" W: H9 j Buf:=str_to_obj(sprint("BF",@._From));+ B/ ~+ G6 o9 E4 f4 S. `
@.move(Buf);
2 k, b1 @0 Y* f* z; `9 s& k2 xend; |