本帖最后由 依山居 于 2015-11-7 06:58 编辑
- #-*-coding:gb2312-*-
- #python破解狂人TD4.3积分代码2优化
- #依山居 10:05 2015/11/3
- #本程序用于生成魔兽争霸3地图狂人TD4.3 所有999的积分代码
- #狂人TD4.3的积分代码是6位的字符形式如joprb0
- #使用方法是在游戏开始输入-load joprb0
-
- import string
- az=string.ascii_lowercase
-
- jf=''
- #你想要多少积分
- score=999
- #取积分个位十位百位
- sg=score%10
- ss=int(score%100/10)
- sb=int(score/100)
- #这里的range本质为游戏名长度取值1-15
- for i in range(15,0,-1):
- #本质是历遍随机数1-15
- for rd in range(1,16):
- #rd的取值本质是1-15的随机整数,随机数可以使得玩家不是每次都相同。rn本质是游戏名长度加随机数除以10取余
- rn=(i+rd)%10
- jf=az[i%10+sg]+az[sg+rd]+az[ss+rn+1]+az[sb+rn+3]+az[(sg+ss+sb)%26]+str(((sg+1)*(rn+3))%10)
- print("狂人TD4.3游戏名长度为%2d的积分代码: " %i,jf)
-
- """
- 这个程序的计算公式是从狂人TD4.3的源代码中分析出来的。
- az等于"abc..z"
- 先算出az[]中数字,就能转换成对应的字符。
- az[0]等于a,az[2]等于c以此类推。
- ---积分代码第一位---
- az[i%10+sg] 游戏名长度除非10求余加上(积分的个位数)
- 由于i不能为0,据此可以反推出积分代码首位为a的游戏名长度是10
- ---积分代码第二位---
- az[sg+rd] 积分的个位数加上随机数rd,rd可以取值1-15影响的结果,
- 第3\4\6位积分代码会跟随rd变化
- ---积分代码第三四位---
- az[ss+rn+1] 积分代码的十位数加上rn加1,rn见上程序中的注释。
- az[sb+rn+3] 积分代码的百位数加上rn加1,rn见上程序中的注释。
- ---积分代码第五位---
- az[(sg+ss+sb)%26] 积分代码的个十百位相加后再除26求余。
- ---积分代码第六位---
- str(((sg+1)*(rn+3))%10) 最后一代码为一位数字。个位数加1 rn加3 相乘后除10求余。
- 由此公式反推 sg=9 或者rn=7时。最后一位代码为0
- """
复制代码 代码错了,重新更新。 |