这个例子昨天正好看了,话说那本书的例子都很不错~% x9 [9 W' j& |4 }) [$ P( d7 Q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。6 l8 I9 r- V* P, g4 x; F8 V; v
is8 k1 [$ b @8 L2 W \& Q3 f+ Q0 V
i,no,m:integer; --定义整型 @9 q* @2 `* }
Buf:object; --定义object
7 Y# {* f* ~) H+ S6 d, wdo) Q! _& k2 S5 \4 U4 p$ T8 M
m:=0;
2 x; y) `4 ~5 V+ |, e6 V no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)# U. S/ f, U% s V/ g8 y& m7 t0 k8 q
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行5 L1 a" @6 s8 S' x8 M/ p
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 2 b& y, n& c9 b7 I- X
@._From:=PartsTable[5,i]; * K/ o. ` V* H* L4 Q' C' w
@._To:=PartsTable[6,i];" h8 T9 X0 _3 a+ W% L5 J
if no=PartsNo+PartsTable[2,i] then
7 E( h8 W. `, [/ r PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
6 q( k P2 h' t$ t8 a$ a, e, B/ T4 Z/ }/ z4 p M
end;
3 T6 P: ~' m% Y' T1 b i:=PartsTable.YDim+1;, Y; X7 D" @/ i' I- T3 Z
end;6 ]/ N; p/ I: K, K' O3 ~' c% G
m:=m+PartsTable[2,i];
U0 G6 `. l/ ]' `, w, ^3 f next;
+ c9 |( v6 c1 }: O& S2 B
; }$ V, z2 e* ?5 |$ G, G' ] Buf:=str_to_obj(sprint("BF",@._From));2 ]; ]; @4 N) l H
@.move(Buf);8 V- v O$ Q; H1 ^0 ~
end; |