这个例子昨天正好看了,话说那本书的例子都很不错~
+ O# j3 r( p/ M3 W不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
, Y! x* y; c& Zis
0 S8 c, W% k- c& ]1 q1 |2 K, C i,no,m:integer; --定义整型
1 J, K7 k. K% f$ { Buf:object; --定义object
( B8 x0 Z" `' h8 |* }9 D( fdo
: L$ o% j+ j3 V* \& y m:=0;
0 H) S7 f2 Y H2 s1 l# ^% ^$ z no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
8 F2 w- l0 i% }& Y1 A, G7 I+ b for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行1 p8 S' Q( `" ], i3 i& S
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 2 T e+ i( E4 {) {0 X: O% T' w5 H4 c
@._From:=PartsTable[5,i]; , V. A# N( q9 K* q! t7 q( B
@._To:=PartsTable[6,i];/ q8 w6 _: e' N/ \; Q
if no=PartsNo+PartsTable[2,i] then
) H& W& S# T' V) N8 r- z" E, F PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
, A) i$ S! c9 E5 H+ ?$ C
# {' X! c, g0 Z; t: y4 _5 y end;
, d* o% @9 Y4 A7 F, H& d i:=PartsTable.YDim+1;0 q9 u: A8 j# q5 x. j5 V1 y
end;
: `+ A9 l* {$ U/ @. F m:=m+PartsTable[2,i];
$ r2 Z( `2 ]$ I( }4 C# L/ G next;
5 m8 s0 ~! ~4 q2 ~3 h8 ~# f& W) F - {! s) w) \* p: u% a
Buf:=str_to_obj(sprint("BF",@._From));7 G2 g( Y; j" a8 f
@.move(Buf);" g! z: `4 G: u; C7 T
end; |