这个例子昨天正好看了,话说那本书的例子都很不错~* N7 x: l# o3 z n J1 k
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。+ M' l; R( f! w% d" j
is
% i# f* t( |7 [; `% f: M i,no,m:integer; --定义整型
# P1 }. `+ X Q- f8 ~% d Buf:object; --定义object
+ x, u, f4 D2 J8 X8 @/ vdo7 a8 P+ S% `4 B
m:=0;" q" |' }8 _+ l) X0 y
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
- H( X7 O! k$ b# A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行/ A) L+ [5 u5 l
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then * Y/ G0 R) h' V: ~0 T) W" Z
@._From:=PartsTable[5,i];
- z; Y& k, J; \1 H& p6 ], T5 C* m @._To:=PartsTable[6,i];
2 K3 ~9 p4 h( F: | if no=PartsNo+PartsTable[2,i] then
4 k& u: e4 ~7 Z! E8 ^: g4 q& o PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
# I6 t* I, P7 ^: ~
2 N7 }( H H0 i; E end;
+ O1 Y1 c4 P* i5 f: D j* N. } i:=PartsTable.YDim+1;1 n4 |, h( g& B. V" F- x
end;6 U/ ]) E8 D: l" I* b
m:=m+PartsTable[2,i];# b" x' j# C/ a( ^$ z
next;
' B" q8 s) I" R6 Q8 j* D- w' ^
' Z) q1 \7 ^: l4 s* D( X9 c Buf:=str_to_obj(sprint("BF",@._From));
! [7 t& d" d6 ^& O' n* o" E! d+ v! p @.move(Buf);
& g. f T* ^- ~, A, W0 e2 Kend; |