其实技能NPC是最简单的了。他所用到的内建命令也就那么几个,我们来看看: }( C; N M# ?; @1 M. B5 v
1、获得玩家职业种类1是铸造(牛美),2是炼丹(神医),3是裁缝(梅花),4是工匠(风兄),0是没有学习技能
- b# @- D% z6 R/ e1 vName := callfunc ('getsenderjobkind');
( N0 \/ m* Z6 f* ^+ z& A ^8 F- Rif Name = '1' then begin( N* ~$ R6 M5 Z3 g+ A
print ('say 你已经是铸造师了');$ B' p- o y3 e" t' M% e4 x
exit;7 r5 j% _* N& [
end;
) `& J6 _# b5 @
3 f- U7 q. i N3 f. a2、获得玩家技能等级- t# l, C2 h4 }1 _ ~" h/ E
Name := callfunc ('getsenderjobgrade'); /获得玩家工作等级# p; Y+ Y% o* b& n. s; M
//这里,1是初级工,2是技能工,3是熟练工,4是达人,5是名人,6是神工; \- C! o% i* j, V" c8 c# ?1 [
if Name = '6' then begin //如果是6级那么
f; c2 T+ @: K2 S, W3 u p print ('say 你已经是神工了');2 i- _" C0 f. p( q" z
exit;( a; m+ [/ [2 N) j3 }# t
end;
9 `4 M! L' O6 _! y3、获得玩家技能值
6 K. q6 j% B3 H2 ~ Name := callfunc ('getsendertalent'); //获得玩家技能值/ v/ p& b3 ~# C- c! a5 d% \
nValue := StrToInt (Name); //转换变量类型
, z7 C; B1 L7 e! l: q* b if nValue < 2000 then begin //判断技能值是否小于2000
0 M n4 a0 V; e- m9 ]7 g9 a print ('say 想转职的话才能值要达20.00以上'); 0 K3 t- R8 Y ~* D" K7 A) U( r1 I( g6 X
exit;( r K9 b7 v/ b" ?* R# Q
end;
, F5 L4 P( C# n/ \' l4、设定玩家为哪种职业5 v) l6 U, T5 w1 G. l$ _) Z
print ('setsenderjobkind 1'); //设置玩家成为铸造
+ [9 g7 z, v! e& l; a, a- f4 ?5、设定玩家为神工
2 g' Z7 E' |2 }9 e% z4 L0 v* j print ('setsendervirtueman'); //使玩家成为神工
# v. y1 O% x' T1 F//====================
/ }1 {) a ?* X下面一起总结一下交易NPC9 v& f2 G: k2 i6 Y% q
交易Npc就是用到了'tradewindow 命令2 Y# u" K7 p c! ^0 [" k$ Z
Name := callfunc ('getsendername'); //获取玩家名字
8 S8 N5 b# }6 H/ H9 ^1 Q Str := 'tradewindow ' + Name; //弹出买卖窗口, A2 U- x( U+ I) g& }6 X3 B' s
Str := Str + ' 0'; //如果是卖,那么类型是0- ]) |9 p. q$ ]
print (Str);
0 J% u7 E9 e/ ]+ b- _) a* M, S' n4 k$ q& h5 u/ L& Z
其中0,1,2,3,4代表什么?代表买卖的类型
) J' U6 z" L! W7 q
, d# t) {4 a5 W7 V1 T" n0为卖给玩家东西,1为回收玩家的东西,这两种模式都需要玩家输入数量3为卖给玩家东西、4回收玩家的东西,这两种模式玩家不需要输入数量,双击直接购买1个 ! R; X! c2 |/ w
|