原创 - 如何逆推出闪光精灵的性格值
因为是一边思考一边写的所以写得比较乱,欢迎优化和挑刺,有更好的方法也欢迎提出-3-本贴测试脚本语言为php,我把大概的一个思路和代码放了出来提供参考
异或的概念:http://zh.wikipedia.org/wiki/%E9%80%BB%E8%BE%91%E5%BC%82%E6%88%96
请勿转载// 已知训练师ID,将训练师ID拆分成两份
$tidA = 0x9928;
$tidB = 0xC67A;
// 随机性格值前半部分
$pvStr = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF';
$pvStr = str_shuffle($pvStr);
$pvA = hexdec(substr($pvStr, 0, 4));
$pvB = '';
// 训练师ID前半部分异或后半部分再异或性格值前半部分,转为2进制并补足0
$xorStr = str_split(str_pad(decbin($tidA ^ $tidB ^ $pvA), 16, '0', STR_PAD_LEFT));
// 异或中双0和双1为假,其余为真;$xorStr异或性格值后半部分的结果应该小于111(16),所以利用遍历来组成后半部分,前面的位数不变,倒数第12位时开始判断0还是1,0则1,1则0,组合成后半部分
foreach($xorStr as $key => $value) {
$pvB .= ($key > 12) ? (($value == '0') ? 1 : 0) : $value;
}
// 化为16进制,拼合
$pvA = str_pad(dechex($pvA), 4, '0', STR_PAD_LEFT);
$pvB = str_pad(base_convert($pvB, 2, 16), 4, '0', STR_PAD_LEFT);
$pv = $pvA . $pvB;
完全看不懂什么意思…… 这是天书吗 完全看不懂 窝模模糊糊的看懂了一部分...2333...问题是推这个有啥用QAQ 回复 4# Muiki
后台奖励精灵需要用到阿233
页:
[1]