背景:
阅读新闻

脚本系列讲座第二讲-物品脚本

[日期:2006-08-18] 来源:乘风破浪网  作者:clane [字体: ]

脚本系列讲座第二讲--物品脚本 
物品脚本是sphere脚本中最简单的一种脚本了,从它开始学习脚本编写是一个不错的选择。在物品脚本的第一行一般都是这样的: 

[ITEMDEF i_whatever] 

这一行中的ITEMDEF告诉sphere在从ITEMDEF的下一行开始,直到下一个ITEMDEF或[EOF]为止的内容定义了一个物品。并且这种类型的物品在脚本中的名字是i_whatever,也就是当你在游戏中添加一个物品时使用的名字(.add i_whatever)(注:不是游戏中你看到的)。sphere脚本规则并不强求在物品命名前面加上i_,但加上i_是一个防止命名冲突的好方法。不同类型的脚本条目应该标以不同的前缀,例如一个角色脚本的条目就应该以c_开始,一个事件脚本则应该以e_开始。(注:在编写程序时,这是一个最基本的规则,不然变量一多,到后期肯定就是晕乎掉了) 
现在让我们来看看一个大砍刀(claymore)的例子: 

[ITEMDEF i_claymore] 
在这一行之后,我们来定义这个物品看上去的样子。在这个例子中,我们使他看上去像是一把长剑。长剑的ID是013b7(注:还记得的第一讲中的十六进制吗?),所以我们加入这一行 
ID=013b7 

当然我们也可以这样来描述 
ID=i_sword_long 

对于这两种方式,sphere都是接受的。但是第一种方式相对来说或许会更加方便一点,因为ID很容易在AXIS中以十六进制被定位。在这里再次提醒,如果使用十六进制数字,请千万在最前面加上0,不然sphere会将他认为是十进制的数字。 

下一步,我们来命名这把武器(注:在游戏中看到的名字)。 
NAME=claymore 
sphere会自动的加上一个"a",在游戏中你就会看到"a claymore"。 

显然,我们要做的是一个武器,一把大砍刀,但sphere并不知道这一点,所以我们不得不告诉sphere这是一个武器,是属于剑类的武器。 
TYPE=t_weapon_sword 

这一条会让sphere知道,使用大砍刀攻击时类似于一把剑。你可以在物品属性这一节中得到一个物品列表。那里其他更多的类型可以让你设置,大约有200种左右。 

接下来,我们设置使用这个武器所需的技能。尽管我们已经告诉了sphere,这是一把剑,但我们还是不得不告诉sphere,使用它需要swordsmanship这个技能。如果我们想设置它,可以这么做 
macefighting.SKILL=swordsmanship 

然后,我们来设置这把武器的伤害力,这通过设置DAM这个变量来实现: 
DAM=15,43 

DAM是damage的缩写形式,它的值是一个范围。逗号告诉sphere在确定DAM的时候随机的从15到43之间取一个值。对于大多数的变量来说,在赋值的同时sphere就确定了他们的值,但DAM是一个比较特殊的变量,在sphere中它存储的是一个范围,只是在每次使用这个武器时确定值。当然你也可以使用一个确定的值而不是范围,这样这个武器每次攻击都将造成一个不变的确定的伤害。 

接下来,我们使只有足够强壮的人才可以使用这把武器。大砍刀明摆着不是一把小菜刀,那就肯定需要一点力气才可以使用,我们就设定为强壮度50的人才可以使用: 
REQSTR=50 
REQSTR当然就是required strength的缩写了(注:required strength是需要的强壮) 

显然,一个人不可能在拿着一把很大的剑的同时还拿着盾牌。所以我们需要设定它是一个双手使用的武器: 
TWOHANDS=Y 

在这里你既可以使用Y,N来设置,也可以使用YES,NO。另外注意的是,如果对象是一个缺省双手使用的物品类型,例如杖,即使你设定它为单手使用,它也不会有任何改变,依旧是一个双手武器。 

到这里为止,我们已经设置了这个武器的基本部分,但还有一些其余的工作需要做。我们将这些工作放在一个特定的触发里来完成: 
ON=@CREATE 

这个触发在物品诞生时会被激活,也就是说,它告诉sphere从ON=这一行开始直到这个物品定义结束的所有动作都会被在物品创造时执行。不像其他的触发,@CREATE中不允许做除了设置变量外的所有工作。一般经验就是一个变量如果能在游戏中被改变就应该在这里设置。不过注意,也有一些违背这个经验的例外,例如NAME,ID。当然你最好也把它们放入到一节中来,如果你不确定是否该这样。如果NAME在这一节中才被设置,它将精确的等于你所设置的内容,而不会自动的加上一个“a"或者"an"的前缀。(注:我也不明白它这个经验的意义所在,哪位能告诉我吗?) 

在@CREATE中,我们将设置这把剑的耐用度。这是一把大剑,理所当然,它应该是比较耐用的。 
HITPOINTS=115,150 

注意这里,我们再次的使用了一个范围。但它不象DAM,它是被确定下来的,在被创造的时候确定为一个在115到150之间的随机数。 

好了,到了这里,我们就创造了一个叫做大砍刀的武器。如果你正确的跟随这个讲座看下来,你得到的脚本是这个样子的: 

[ITEMDEF i_claymore] 

ID=013b7 
NAME=claymore 
TYPE=t_weapon_sword 
WEIGHT=14 
SKILL=swordsmanship 
DAM=15,43 
REQSTR=50 
TWOHANDS=Y 

ON=@CREATE 
HITPOINTS=115,150 

我们创造的这个物品将会良好的工作,但还有其他更多的变量属性你可以设置,请参看物品属性这一章节。 

translated by clane 

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻