【skillexp经验获取函数完整版V1.1】
源码版本:E+1.66Custom
测试环境:同上
代码备份:00代码相关/050L skillexp.txt
内容正文:
#deffunc skillexp int P1, int P2, int P3, int P4, int P5
这个函数的作用在于将某个原始经验增加量(参考等级,潜力等各种因素)修正为实际增加量。
属性,技能,魔法的经验增加都由此函数控制。
值得一提的是,经验减少同样由该函数控制,此时增加量为负值。
其中参数P1代表技能编号,P2代表角色编号,P3代表原始经验增加量(以下简称原始增加量)
P4与技能对应属性经验获取有关,P5与角色LV经验EXP获取相关。
在本函数中,技能等级如未特殊说明,一律采用裸装等级。(考虑各种加成时描述为[有效技能/属性])
(01) 如果对应技能等级为0,那么完全不增加经验,程序结束。(就是说一定要先学技能才可以)
(02) 如果原始增加量为0,那么完全不增加经验,程序结束。(呃...好有道理我竟无言以对)
(03) 技能对应的属性,增加参数P3/ (2 + P4) 经验。(以此处结果为原始增加量重新执行skillexp函数,增加对应属性经验)
(04) 如果对应技能潜力为0,那么完全不增加经验,程序结束。(该塞钱塞钱,该嗑药嗑药,你懂哒)
(05) 由此开始正式计算:
经验A=原始增加量*技能潜能/(100+技能等级*10)
<i>如果八维,速度,幸运处于成长期。(存在效果为正整数m的BUFF),那么经验A(重新赋值为)=经验A*(100+m)/100
<ii>如果此时经验A为0,那么有1/(int(技能等级/10)+1)的概率,经验A上调为1,(程序继续)。否则完全不增加经验,程序结束。
此外,如果原始增加量为负值(即经验减少的情况),那么<i>-<ii>不参与计算,经验A直接=原始增加量(该值为负)。
<iii>如果使用了技能高速猛攻(gdata(193) == 1200),那么有70%概率经验A归0;
如果身处巨蛋空间(当前map=35),或者身为沙包状态(cbit25为1),那么经验A归0
<iv>如果技能编号大于等于100(属性以外的技能or魔法),且不是在城镇魔法实习(gdata(175) != 11111111 ))那么执行奖励经验修正,奖励修正发生条件为rnd([有效学习属性]+50)>rnd(1000)。rnd(r)表示从0到r-1的随机整数。效果为将经验A修正为经验A*B,其中B=int(sqrt([有效学习属性])/10)+2,B值下限为2,上限为5
<v>如果技能编号大于等于100(属性以外的技能or魔法)且为队友,那么经验A扩大为4倍。
<vi>此时经验A大于20000时会修正为20000上限。
<vii>如果游戏模式为20倍经验模式,那么此时经验A扩大为20倍。
<viii>如果困倦度大于等于49(达到红色睡眠提醒),那么PC和队友都不会增加经验。
<ix>(根据经验A做)一些关于EXP经验的修正。
如果技能编号大于等于100(属性以外的技能or魔法),且参数P5不等于1000,则
对于EXP最大值(LV升级所需经验)小于1000的情况:
经验B=rnd(LV升级所需经验 *经验A / 1000 / (角色当前LV + P5) + 1) + rnd(2)
对于其他情况:
经验B=rnd(LV升级所需经验 / 1000 * 经验A / (角色当前LV + P5) + 1) + rnd(2)
然后角色当前EXP追加经验B,同时gdata(92) 追加经验B。
gdata(92) 的作用在于统计距离上次睡眠累积的总经验值(包括PC和队友)
该值越多的话,睡眠醒来时恢复的潜力越多。(睡醒时有%号潜力恢复的提示)
<x>最后,将当前技能的经验千分比(即等级后小数点后三位)叠加到经验A上。
(06)根据此时的经验A,对技能等级,经验千分比,潜力做调整。调整规律为:
<i>如果经验A满1000,达成升级条件,那么每升一级:
潜力*0.9处理,如果技能编号>=400(即魔法),则再次*0.9处理
如果此时潜力小于1,那么重置为1。
然后是一些文字输出提醒玩家有升级。
<ii> 如果经验A小于0,即达成降级条件,那么每降一级:
潜力*1.1+1处理(注意魔法降级没有再次*1.1,虽然比起魔法可能只有属性才会降级)。
如果潜力>400,则修正为400上限。
另外,降级最多只能降到1级,经验千分比为0的情况。
然后是一些文字输出提醒玩家有降级。
<iii>其他情况(不升级也不降级)时,直接将等级千分比赋值为经验A,实现了经验的获取。
此时没有文字输出。
简要结论:(各种细节还请自行阅览正文)
(01) 潜能越高越好,但是升级会消耗潜能。
(02) 等级越高,修正后经验越少。不过就算再少,也有极小概率增长1点经验。
(03) 正常来说,不要在特殊情况练技能(红色困倦,巨蛋空间,潜力低or技能等级太高),不然血亏。
(04) 如果你在正常状态修正后得不到经验,那么20倍经验模式一样不可以。
(05) 魔法升级潜力消耗更快
以上便是skillexp的全部代码解析。欢迎小伙伴们一起来围观吐槽哈~
@农农酱 28L关于EXP的小误会我补完了~