传奇广告查询第一站 同步54.com

传奇代码研究 极品机率...
原创 于2026-01-05 18:07:00发布
11 阅读
0
0

别再跟我说什么砍墙角,别在跟我说什么0-100收拾稳加属性,别在跟我说什么北京时间几点几点容易成。。。。。本人开过f,深知服务器如何设定,但是一下代码部分为一高人赐教。现在发给大家,望有助飞升。
第一讲:
炼武器众所周知,需要两种材料,一个是首饰,一个是黑铁矿,黑铁矿仅仅影响练成武器的持久,和成功几率不相关,所以最关键的变量就是首饰的属性,成功几率的计算相当复杂,我们先考虑首饰只有一种攻击型属性的情况。
成功几率的代码
第一段
nDc := HiWord(StdItem80.DC) + LoWord(StdItem80.DC);
nSc := HiWord(StdItem80.SC) + LoWord(StdItem80.SC);
nMc := HiWord(StdItem80.MC) + LoWord(StdItem80.MC);
这段代码表示
NDC为首饰的攻击上限+首饰的攻击下限
if nDcMin < nDc then begin
nDcMax := nDcMin;
nDcMin := nDc;
end else begin
if nDcMax < nDc then nDcMax := nDc;
这段代码表示,仅仅只有两件上下限之和最高的首饰,影响成功几率
ndcmin=上下限攻击之和最高的首饰的上下限攻击之和
ndcmax=上下限攻击之和次高的首饰的上下限攻击之和
第三段代码
btDc := nDcMin div 5 + nDcMax div 3;
btSc := nScMin div 5 + nScMax div 3;
btMc := nMcMin div 5 + nMcMax div 3;

btdc等于dcmax整除3+dcmin整除5

这三段代码的核心就是计算出btdc 这是是影响武器升级成功几率的第一个参数

第四段代码
n90 := _MIN(11, UpgradeInfo.btDc)
计算n90的值,n90为11和btdc两个值中小的一个

第五段代码
n10 := _MIN(85, n90 shl 3 - n90 + 10 + UpgradeInfo.UserItem.btValue[3] - UpgradeInfo.UserItem.btValue[4] + User.m_nBodyLuckLevel);
这段代码是计算n10的值
n10为85和n90*7+10+武器的幸运-武器的诅咒+人物幸运等级 这两个值中小的一个
由这段代码我们可以发现,武器的额外附加的幸运值是影响武器成功几率的一个重要参数!!
所以幸运高的武器成功几率更高!!!
另外,还有一个重要参数User.m_nBodyLuckLevel 这个参数表示人物的幸运等级
这就是传奇的一个隐藏属性,就是人物的幸运值
幸运等级的计算过程
procedure TBaseObject.AddBodyLuck(dLuck: Double); //004BF580
var n: Integer;
begin
if (dLuck > 0) and (m_dBodyLuck < 5 * BODYLUCKUNIT) then
begin m_dBodyLuck := m_dBodyLuck + dLuck;
end;
if (dLuck < 0) and (m_dBodyLuck > -(5 * BODYLUCKUNIT)) then
begin m_dBodyLuck := m_dBodyLuck + dLuck;
end;
n := Trunc(m_dBodyLuck / BODYLUCKUNIT);
if n > 5 then n := 5;
if n < -10 then n := -10;
m_nBodyLuckLevel := n;
end;
影响m_nBodyLuckLevel 即人物的幸运等级有三个参数 dLuck m_dBodyLuck BODYLUCKUNIT
dluck有这么几个过程影响
1.获得经验 dluck= exp*0.002
2.升级 dluck=100
3.死亡 dluck=-人物等级*5
4.杀人 dluck=-500
BODYLUCKUNIT 为服务器设定的固定参数 等于5000
m_dBodyLuck由dluck和BODYLUCKUNIT计算产生
因而,为了获得高的幸运等级,你不能杀人,最好在升级武器之前能够不断的练级,获得经验
幸运等级最高时5,最低是-10

总结一下
这一大段的代码,结合起来武器成功几率的计算函数就是
1.上下限攻击最高的首饰的上下限攻击 我们令为nDCmin
2.上下限攻击次高的首饰的上下限攻击 我们令为nDCmax
3.人物的幸运等级 m_nBodyLuckLevel
计算公式
min(85,min(11,dcmin整除5+dcmax整除3)*7+武器额外幸运-武器额外诅咒+人物幸运等级)/引擎设定的升级成功几率

比如 我们令引擎设定的升级成功几率为100
升级用的首饰为2个绿色项链
人物的幸运等级为0
武器的额外幸运为0
额外诅咒为0
那么升级的成功几率就是
1.dcmin=2+5=7
2.dcmax=2+5=7
3.dcmin整除5+dcmax整除3=1+2=3
4.min(11,3)=3
5.3*7+0-0+0=21
6.min(85,21)=21
7.21/100=21%就是武器的成功几率!!!!!!

在这段公式中我们可以发现什么??
1.在M2中,我们可以设定的参数仅仅只有一个就是
看图

就是成功几率 这个值影响成功几率的分母 设置100的话就是原始的升级难度 设置50就是50%的升级难度
2.在成功几率默认为100的情况下,升级武器的成功几率最高位85
3.武器附加的幸运和诅咒值将影响成功几率 影响效果为额外增加值*(100/成功几率)
,如果成功几率默认为100 ,那么一点额外的幸运奖附加1%的成功几率,如果为50
则附加2%,所以升级武器,武器的幸运越高越好
4.人物的幸运等级也影响成功几率,由于重启服务器之后,人物的幸运等级为0,所以一定要在升级武器之前获得足够的幸运等级,可以通过获得经验的方式来增加幸运等级,根据上文的公式,1点经验将增加0.002点nluck 获得满值的幸运等级需要获得 500*5*5000 1250千万的经验!!!浩大的工程,而且,你还不能死亡,不能杀人,幸运等级影响的最高几率为5%
5.升级武器最关键的还是两件首饰,只有两件,多用首饰都是无用的,而且这两件首饰的属性并不是越高越好,
比如在76服中
法师升级 如果是2个铃铛 那么8整除5+8整除3=5 贡献5*7%=35%的成功几率
法师升级 如果是2个生命 那么6整除5+6整除3=3 贡献3*7%=21%的成功几率
一个生命一个铃铛 那么8整除5+6整除3=4 贡献4*7%=28%的成功几率
这个贡献值最高位11 即最高实现77%的成功几率的贡献
武器升级的首饰相对属性不好 2个记忆的话 效果相当于2个生命 2个绿色的话 也仅仅相当于2个生命 只有两个圣战 效果才相当于两个铃铛,道士也一样
因为在76服中,武器升级,法师有很大的优势

第二部分, 跳点的计算
跳点的实现min(85,min(11,dcmin整除5+dcmax整除3)*7+武器额外幸运-武器额外诅咒+人物幸运等级)这段计算过程相关
如果这个值>63 并且Random(g_Config.nUpgradeWeaponMCTwoPointRate) = 0 那么挑2点
如果这个值>79 并且Random(g_Config.nUpgradeWeaponMCThreePointRate) = 0 那么挑3点
g_Config.nUpgradeWeaponMCTwoPointRate和g_Config.nUpgradeWeaponMCThreePointRate
是在M2上设定的

就是这两个数值
如果你能理解前面的推算过程,那么明确的说,跳点的实现实在是太难了,基本不可能不仅仅是几率的问题,更重要的是,你基本没有办法实现63 79的成功参数

总结来说
影响武器升级成功几率的参数
1.幸运 + 额外幸运点数*(100/成功几率(M2设定的))%
2.诅咒 - 额外诅咒点数*(100/成功几率(M2设定的))%
3.幸运等级 最高+5% 最低-10%
4.首饰的属性函数 n90值

min(85,min(11,dcmin整除5+dcmax整除3)*7+武器额外幸运-武器额外诅咒+人物幸运等级)/引擎设定的升级成功几率 这个是成功几率的公式

管理员
0
0
0
分享
上一篇: 文字版控制台传奇制作
下一篇: 传奇996_1——添加npc补丁
评论
历史记录
回顶部
浏览时间 游戏名称 游戏IP 开区网址
注册GM1论坛账号
  • 上传头像
注册

已有账号,

微信扫码登录
重置密码
重置密码

注册

绑定关联手机号
关联手机号