一,找到gameserver\data\static_data\recipe\recipe_templates.xml
将需要自动学习的图谱用代码找到,然后将autolearn="0" 改为autolearn="1"
在练生活技能的时候到指定等级后就会自动学习改图谱了
当然,你也可以直接替换所有图谱的autolearn="0"为1
不过这样的话,有一部分测试用的图谱也全部都会自动学习,不嫌麻烦还是手动改吧
二,找到AL-Game\src\com\aionemu\gameserver\services\CraftSkillUpdateService.java
cost.put(0, 3500);
cost.put(99, 17000);
cost.put(199, 115000);
cost.put(299, 460000);
cost.put(399, 1500000);
cost.put(449, 3400000);
cost.put(499, 6400000);
这一段,(99,17000)是每到一个阶段升级所需要的升级点和基纳,可根据自己需要设置
/**
* Get total experted crafting skills
* @return total number of experted crafting skills
*/
private static int getTotalExpertCraftingSkills(Player player)
{
int mastered = 0;
Iterator<Integer> it = craftingSkillIds.iterator();
while(it.hasNext())
{
int skillId = it.next();
int skillLvl = 0;
if (player.getSkillList().isSkillPresent(skillId))
{
skillLvl = player.getSkillList().getSkillLevel(skillId);
if(skillLvl > 399 && skillLvl < 500)
mastered++;
}
}
return mastered;
}
/**
* Get total mastered crafting skills
* @return total number of mastered crafting skills
*/
private static int getTotalMasterCraftingSkills(Player player)
{
int mastered = 0;
Iterator<Integer> it = craftingSkillIds.iterator();
while(it.hasNext())
{
int skillId = it.next();
int skillLvl = 0;
if (player.getSkillList().isSkillPresent(skillId))
{
skillLvl = player.getSkillList().getSkillLevel(skillId);
if(skillLvl > 500)
mastered++;
}
}
return mastered;
}
这一段应该是升级的范围,我是改成这样的,没有报错
三,找到AL-Game\src\com\aionemu\gameserver\model\gameobjects\player\SkillList.java
switch (skillEntry.getSkillLevel())
{
case 99:
case 199:
case 299:
case 399:
case 449:
case 499:
case 500:
这一段应该是每个阶段的上限,每次达到这个点才可以升级到下个阶段,和上面的要对应,设置不一样就升不了级
这样改好,然后编译就OK了!!!
自己测试了两个下午,有个问题,99~100,199~200,299~300这几个阶段中
图谱要求是99,199,299的,不会自动学习,可以将图谱要求的等级设置低一点,比如改成298,297之类
图谱要求改的是这个,例如skillpoint="99" 改成skillpoint="98",那么在练到99的时候,就会自动学习该图谱了
