|
如果是要做成通用效果的话,就改源码吧~
在 kys_main.pas 中找到 procedure EatOneItem
在没有修改过源码的程序(就是weyl发布那个版本),是在第3596行。
在第3624找到:
改成:
以上是改变看到的。
然后是改变实际的效果:
往下面几行看,
第3648行找到:
这玩意啥意思呢?
注意那个20,就是指增加道德效果这块,其实是跟某个编号为56的东西挂钩的。
那这个56是啥玩意呢?
56是指人物属性的内存里面,相等于一个Smallint的数组里面,索引为56的那个位置的数值
在人物属性里面,56这个位置代表道德
那思路就很简单了,把代表道德的改成代表资质的,那就行了?
确实如此,那资质是几号呢?
可以看回第56行,有人物属性的数据结构:
- TRole = record
- case TCallType of
- Element:
- (ListNum, HeadNum, IncLife, UnUse: Smallint;
- Name, Nick: array[0..9] of char;
- Sexual, Level: Smallint;
- Exp: Uint16;
- CurrentHP, MaxHP, Hurt, Poision, PhyPower: Smallint;
- ExpForItem: Uint16;
- Equip: array[0..1] of Smallint;
- AmiFrameNum, AmiDelay, SoundDealy: array[0..4] of smallint;
- MPType, CurrentMP, MaxMP: Smallint;
- Attack, Speed, Defence, Medcine, UsePoi, MedPoi, DefPoi, Fist, Sword, Knife, Unusual, HidWeapon: Smallint;
- Knowledge, Ethics, AttPoi, AttTwice, Repute, Aptitude, PracticeBook: Smallint;
- ExpForBook: Uint16;
- Magic, MagLevel: array[0..9] of smallint;
- TakingItem, TakingItemAmount: array[0..3] of smallint);
- Address:
- (Data: array[0..90] of Smallint);
- end;
复制代码 这里的Ethics就是道德了
我们可以看出,资质是60,所以回到第3648行,把56改成60,然后编译就行了。
其他的,武常是55,声望是59等到,自己看吧~你要改的话,改法是大同小异的。
说到编译,快捷键是F9。记得任何改动,都需要编译后才会生效,跟Lua不一样
改完了这里,还有其他地方需要修改吗?
如果仅仅是达到这个效果,那已经改好了。
但在默认情况下,资质什么的,希望最大值是100吧,多于100则不会增加了。或者是200?由你自己决定。
那最大值怎么扩充呢?
请看第226行,这里有一个数组:
- MaxProList: array[43..58] of integer = (100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 1);
- //最大攻击值~最大左右互博值
复制代码 记得刚才我们说的,资质是第60号对吧?但这里的最大值设置只到58,也就是说,如果加资质,那是无上限的。
或者你希望无上限就不需要改了吧?错!
因为后面在增加资质的时候,会从这个数组判断最大值,所以如果没有60这个索引,那就会内存溢出,造成死机。
所以无论你是否希望增加资质有上限,这个数组必须修改,起码加到60:
- MaxProList: array[43..60] of integer = (100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 1, 100, 100);
-
复制代码 这里加了2项,把声望和资质的上限改成100了,声望可能很高?那可以把倒数第二个表示声望的改成你想要的数值
事实上你自己对照人物属性结构,改这个数组,可以改变很对对应数值的最大值
最后,这个改法仅仅是把加道德变成了加资质,所以道德就没得加了,请注意。
希望帮得到你,谢谢~
|
|