这时候有人会问:我想要像泰拉刃一样发出射弹?
我想砍树!
这都能解决!!
注:
本篇需要使用上一篇的这个函数
还记得这张图吗?
今天我们加几个变量(加在函数里,任意一行),然后再扯点别的。
part1 射弹!
和
先放上官网介绍
1 shoot
此物品在使用时发射的炮弹的ID。ProjectleID条目或ModContent。ProjectileType<T>,例如ProjectileID。FireArrow或ModContent。ProjectileType<MyModProjectile>()
如果该武器使用useAmmo,则该值将被忽略,因为炮弹将由弹药项目决定,但根据惯例,射击仍应为10。
默认值为0。
2 shootSpeed
此项目发射的炮弹的速度(以像素为单位)。实际速度取决于发射的炮弹。如果你的武器正在发射炮弹,而它们是静止的,请将其更改为10f。飞刀使用10f。像Vortex Beater这样的手持抛射物使用shootSpeed来确定离玩家多远才能持有抛射物。
默认为0f。
现在我们分析这两个变量
shoot是射弹的类型,和之前合成表的物品ID一样。但是去Wiki查建议先搜‘射弹ID’
shootspeed是射弹速度,浮点数〔float〕(对初学者来说指小数)类型,需要在数字后面加小写字母f。
这里单位是像素,我们需要把像素x16(例:3*16)得到所需格数(3格/秒)
要特别提醒:编程中,乘号是用星号(*)表示,除号用斜线(/)表示。除法结果为小数类型
part2 砍树
这里需要给它添加镐力,斧力和锤力
变量 Item.axe 赋予斧力,但真实斧力是其5倍
整数类型,没太多好讲
锤力,见图
该物品的锤击力。例如,Item.hammer=70;将在工具提示中显示为70%锤击力。
Hammers的wiki页面是一个很好的资源,可以用来寻找合适的价值。
默认值为0。
镐力,见图
这个物品的镐的力量。例如,Item.pick=50;将在工具提示中显示为50%的镐力。
Pickaxes wiki页面是一个很好的资源,可以用来查找合适的值。
默认值为0。
part3回血,回魔力
回魔力,赋予10秒魔力疾病
回血,没有其他效果
这两句我也翻译了一下
此项目在使用时恢复的生命值。
使用ModItem。GetHealLife(Player,bool,ref int)用于动态生命恢复值。
默认值为0。
该物品使用后恢复的魔力值。
使用ModItem。获取HealMana(玩家,布尔,参考值)的动态魔力恢复值。
默认值为0。
part4添加更多武器
step1 复制当前武器代码和贴图
step2 为新武器编辑贴图(原武器也可)〔使用画图或ps〕
注意,贴图大小必须和原来一致,否则后果自负!!!
step3 用本手册编辑新的武器的代码
注意:
1 武器代码名称与贴图名称一致
2 武器代码内部的第5行,你会看到<原武器名称>:Moditem
把原来武器名称改成现在新武器名称
part5 报错
注意,这是一件很正常的事!尤其对于C#的初学者(像我)
它的报错很简单,正常的报错会有2行,第一行显示你模组里有几个错误,第二行会显示哪个代码的哪个位置是什么错误。
注:若你不会解读错误,发代码和报错信息图片给我。我在条件允许下会帮你。
1 分号报错,见到分号(;)就知道是哪里没加分号。C#语言的每一句代码后面都得加分号,而且是英文的!
2 引用报错,见到‘using’就知道是引用报错,使用各种ID需要引用Terraria.id(可能是大写)
如果不知道缺了什么只能放弃
3 定义未使用报错,建议去github查好再定义,很多1.3代码在1.4不通用
4 转换报错,本程序大部分变量都是int(整数)类型,如果数字绝对值大于32648,就是long(长整数),不能转化为int,为保障性能,建议攻击力小于2万
5 超长报错,指有很多英文的报错,大多是破译失败导致的,建议检查item文件夹有没有别的东西。
-
第1.5章完结了,下次更新真的要很久了
回复已删除[回复]
今天突然电脑好了,下次更新在望[回复]