石器道具修复之石源码上如何实现的呢

2019-11-06 10:47 石器战报 石器

石器时代私服里有一个道具叫修复之石,可以修复任何具有耐久度的物品。道具代码如下:

C
修复之石,修复之石,可修复任何可修复之道具,FIXITEMALL,,,,,,,,,,,,,1638,24063,0,16,0,0,0,-1,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,0,0,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,1,1,1,0,石,205,,0,,0,,0,,0

在这个道具代码里有个字段参数为:FIXITEMALL。然后我们看下item_gem.c的代码看看这个修复之石的原理。


在修复这个技能的函数里:int PETSKILL_ITEM_FixItem( int charindex, int fixindex, int *itemindex)

如图所示:

1.png 石器道具修复之石源码上如何实现的呢 石器战报

我们可以看到是在材料不符这个提示上面加了一个比较是否包含FIXITEMALL的字段,如果包含该字段则会跳过修复材料不符这句话直接执行下面的语句。这样就实现了修复之石可以修复任何可修复的道具。非常简单。