这个例子昨天正好看了,话说那本书的例子都很不错~
3 M$ E/ g3 x* o& w+ ]1 t$ e不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, ~. J, s7 x! l* \, Y' Z, Xis
# n2 t, b9 f9 x" p; ? i,no,m:integer; --定义整型
( S+ o% M; _ ~; @& I& ]) h* X, s. u, S Buf:object; --定义object' l: ^; r+ g9 J! Y: n! k. y8 h
do% \; _' C2 [. h3 k7 M
m:=0;$ j' ]) |+ H1 Y! }# Z" a
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& A, s/ e' E, h( v* @9 ]
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ }- y8 u9 H; f" H" E$ i
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ! ^ h, q+ ~/ W2 H/ I# ~
@._From:=PartsTable[5,i]; ; h; \" S# m% z: H: k
@._To:=PartsTable[6,i];
( h2 f* j+ b8 `0 F5 U if no=PartsNo+PartsTable[2,i] then 2 Q. l* A1 i* R4 M8 _+ P+ H! b
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
" k1 r& U8 s0 O, Y
5 o$ a* r [+ G8 u; D end; U0 {1 ]) a( P. \& n y
i:=PartsTable.YDim+1;, R9 q. |4 H. ]- |& j
end;( D+ z! Y7 _7 l7 O4 c% ^) T& O
m:=m+PartsTable[2,i];2 g' z% t+ h4 ~, h! \
next;
- D* t) t( _7 L* @
% q; Z7 e5 M) L+ k$ A Buf:=str_to_obj(sprint("BF",@._From));
9 K* J/ a9 @- \0 U, ? @.move(Buf);
( r! I" ]) ]# X @5 \end; |