DIS.LEO 发表于 2009-9-14 14:03:52

关于存档修改器新机能“正规值生成”的问题

这个“正规值生成”好象是白金修改器0.06版追加的,请问这是什么来的?是用来根据个体来编出比性格值乱数和性格/特性的?如果是这样那好象很难用(同时符合全个体31/天恩/女的光翼兽性格值好象没有)
另外对波克飞机(光翼兽)来说,极特攻满速和极速满特攻哪个性能更好?

Tormentor 发表于 2009-9-14 18:15:17

我喜欢极速满特攻

尜Mi鋒_LOVE街波 发表于 2009-9-14 18:22:48

http://bbs.newwise.com/thread-443068-1-4.html
[原創][討論] トゲキッス(Togekiss) 波克基斯(光翼獸)戰術研究

chfmy 发表于 2009-9-14 19:14:24

性格值与个体值的关系

看理论之前先要搞清楚以下这些逻辑运算符>>(右移),& (与),%(模)

右移:将每一位向右移动一位,最后一位自动消失,前面补0

比如

   00100100

->00010010

与:两个数上下对齐,上下都是1时为1,否则为0

比如

   11100011

   01011101

->01000001

模:就是余数

比如

63%19=6

84%21=0

性格值的形成

口袋妖怪DPPT包括宝石版的各个版本性格值的形成都是靠一个叫Pseudo-Random Number Generator (PRNG)的随机数生成系统生成的,PRNG是一个嵌套函数,就是运算过程中调用自己的一类函数,最简单的嵌套函数就是阶乘了

PRNG具体的形式为

X = (0x41C64E6D * X + 0x6073) % 0xFFFFFFFF

其中初始值X是给定的,通称为seed也叫种子,所有运算都是16进制下的运算。精灵的性格值就是由X,X决定,具体形式为X的前四位X的前四位。

例子:假定给的初始种子为4A9B376E,通过计算可得X=DC0E7E49,前四位为DC0E

X=521C6388,前四位为521C,于是性格值就产生了PID=521CDC0E,转化为10进制数为1377623054,这就是通常在修改器里看到的性格值。

那性格值有啥用呢?用处多了,最重要的是决定性格,性别以及特性

性格:取10进制的性格值最后两位,如果大于24,则减去25,重复直至小于24,这样就得到一个0-24之间的数了,对照下表即可得知性格

0 Hardy
1 Lonely
2 Brave
3 Adamant
4 Naughty
5 Bold
6 Docile
7 Relaxed
8 Impish
9 Lax
10 Timid
11 Hasty
12 Serious
13 Jolly
14 Naive
15 Modest
16 Mild
17 Quiet
18 Bashful
19 Rash
20 Calm
21 Gentle
22 Sassy
23 Careful
24 Quirky
具体中文是什么对照表很多就不写了

上面那个例子性格值为1377623054,取最后两位54减两次得到6,对照表可知性格为Docile

性别:这仅在有性别时有用,如没性别,全公或全母时虽然也能有个结果,但这时不起作用。

将性格值转为16进制取最后两位然后再转为10进制可得到一个0-255之间的数。

1:如果某精灵的生殖比率为1:7,当得到的那个数小于30时,该精灵为雌性

2:如果某精灵的生殖比率为1:3,当得到的那个数小于63时,该精灵为雌性

3:如果某精灵的生殖比率为1:1,当得到的那个数小于126时,该精灵为雌性

4:如果某精灵的生殖比率为3:1,当得到的那个数小于190时,该精灵为雌性

TIP:生殖比率在精灵资料表上应该都有

上面那个例子,取16进制的性格值0E转为10进制为14,因为小于30所以只要是有性别的那肯定是雌的

特性:和性别一样只有有两种特性时才有意义

将性格值转为2进制数看最后一位,0的话则是特性1,1的话则是特性2

上面那个例子里性格值转为2进制的最后一位是0,所以是特性1

————————————————分割线————————————————————

下面讲个体值的产生以及与性格值的关系

首先要说明的是个体值产生有至少8种算法,具体的情况看下表

* Normal NDS or GBA
最常见的遇见精灵的方式

* Wild NDS or GBA
不太常见遇见精灵方式,GBA里的神兽是否属于这种还不确定

* Uncommon GBA
GBA游戏中不常见的遇见精灵的方式

* Rare GBA
GBA游戏中罕见的遇见精灵的方式

* Very Rare GBA
GBA游戏中非常罕见的遇见精灵的方式,遇见几率只有1%

* Ultra Rare GBA
GBA游戏中极其罕见的遇见精灵的方式,遇见几率只有0.01%

* Common GBA Event (Restricted)
GBA活动的精灵

* Common GBA Event (Unrestricted)
GBA活动的精灵


通常情况下都是使用第一种算法

第一种算法时,在计算出性格值后继续叠代2次得到X,X,6个个体值就从这里得出。由于没有实例的话过于抽象也不容易理解,所以就以上面这个例子作为参考来进行说明

X=521C6388,计算得到X=1F9A315B,X=B7131E32

取X的前四位1F9A转为2进制得到1111110011010在首位前补0补足16位得到0001111110011010,划分成以下形式

0|00111|11100|11010

0|DEFIV|ATKIV|HPSIV

由此得到HPIV=11010=26

            ATKIV=11100=28

            DEFIV=00111=7


同样取X的前四位B713转为2进制得到1011011100010011,划分成以下形式

1|01101|11000|10011

1|SPDIV|SPAIV|SPEIV

由此得到SPDIV=10011=19

            ATKIV=11000=24

            DEFIV=01101=13

这样6个个体值都产生了

接下来是性格值与个体值的关系,由于各种个体值算法都是进行叠代,只不过有的取X,X,有的取X,X,所以都和最前面产生性格值的X,X有一定的关系,所以说个体值和性格值是有关的,只是这种关系比较弱,也无法很直接的看出来。另外个体值和个体不是1对1的关系,都是多对多的关系,所以要找全几乎是不可能的。

下面都是以算法一为算法

由性格值得出个体值

假设已有性格值9E03428B,则根据刚才性格值的产生方法可知X=428BXXXX,X=9E03XXXX。那么假设X=428B0000叠代一次算出X看看X的头四位是不是9E03,是的话则算X,X可得个体值,不是的话则说明X不可能是428B0000,那么接下去假设X=428B0001,同样看X的头四位是不是9E03,是的话则算X,X可得个体值,不是的话则说明X不可能是428B0001,依次类推一直假设到X=428BFFFF,这样经过65535次运算可以全部得到这个性格值对应的个体值。

由个体值得到性格值

其实从上面的步骤就可以看出这是个逆运算,因为个体值是从X,X里得来的,性格值是X,X里得来的,个体值得到性格值就是从X,X逆推出X,X,下面是公式

X=(0xEEB9EB65*X+0xA3561A1) % 0xFFFFFFFF

假设个体值都是31(修改党的最爱),则X=7FFFXXXX或FFFFXXXX(因为决定个体值时首位是忽略的,所以0111111111111111和1111111111111111都可以产生3个31)。那假设X=7FFFXXXX,取X=7FFF0000,用上面的公式得到X,看看X前四位是不是7FFF,是的话可以逆推X,X得到性格值,不是的话就假设X=7FFF0001重复直到X=7FFFFFFF,经过65535次后能找到个体全31对应的所有性格值

TIPS:因为7FFF和FFFF都是可能的,所以实际上比性格值得到个体值每一次都要多做至少2次总计至少要多做2^65535次

由上可知手算那肯定不可行,还好白金修改器的v0.06d有了这功能,所以可以大大简化工作量了

maxdik 发表于 2009-9-14 19:31:55

數字數字數字數字
我死了.......

尜Mi鋒_LOVE街波 发表于 2009-9-14 19:33:54

求板凳的20字以内总结性结论版本

鸟山 发表于 2009-9-14 20:18:32

见板凳最后一句话

总而言之就是:白金修改器的v0.06版很方便很好用

chfmy 发表于 2009-9-14 21:55:29

求板凳的20字以内总结性结论版本
尜Mi鋒_LOVE街波 发表于 2009-9-14 19:33 http://bbs.newwise.com/images/common/back.gif想修改個體值性格特性又要合法,請看好性格值和不明值,那是判定PM是否合法的方法

DIS.LEO 发表于 2009-9-14 22:09:25

本帖最后由 DIS.LEO 于 2009-9-14 22:11 编辑

可是个体全31只能在保守,沉着,坦率和胆小这4个合法性格(0.06B机能中发现)里选,很挫,因急求各性格.特性和性别的最强个体值(每个性格都分为公特性1,公特性2,母特性1,母特性2这四项)的表格
如果全性格全性别和全特性倾向都有全31个体的性格值就好了

chfmy 发表于 2009-9-14 22:13:43

總不可能全個體31
要物攻就不要特攻要特攻就不要物攻,0~31選擇會多很多

外咐一個,不是參加官方比賽,不要合法性格值也沒所謂
據說以前某bbs的DS wifi比賽,基本上參賽者人手有所PM努力全滿

尜Mi鋒_LOVE街波 发表于 2009-9-14 22:17:43

就是说,修改完后,从正规值生成的列表里选一个看上的选项,pm就合法了?
那些算法的type 1~ type 9之类的没关系?

DIS.LEO 发表于 2009-9-14 22:21:39

就是说,修改完后,从正规值生成的列表里选一个看上的选项,pm就合法了?
那些算法的type 1~ type 9之类的没关系?
尜Mi鋒_LOVE街波 发表于 2009-9-14 22:17 http://bbs.newwise.com/images/common/back.gif
一定要TYPE1,选其他的话那么WIFI时删档,烧录卡破坏,DS爆炸/变砖中随机选一个

chfmy 发表于 2009-9-14 22:26:45

因為性格值決定個體性別性格
因為國內大部分人用修改器改PM也就只會改固定性格特性個體卻忽略(其實也沒辦法因為沒官方比賽不知道檢查程序)

type衹有1~8,對應上面8個算法
一般野生捉的PM對應type 1,所以基本衹有type算出來的才合法,連2算出來最後也都不一定合法

判定PM合法除了性格值還有不明值- -
對了漏了,性格值還決定是否閃光的

DIS.LEO 发表于 2009-9-14 22:26:48

本帖最后由 DIS.LEO 于 2009-9-14 22:29 编辑

还有,改恶梦神这种东西时该用哪一个?
改神兽/官方活动PM和官方WIFI活动PM是不是不能用算法1?

DIS.LEO 发表于 2009-9-14 22:30:28

因為性格值決定個體性別性格
因為國內大部分人用修改器改PM也就只會改固定性格特性個體卻忽略(其實也沒辦法因為沒官方比賽不知道檢查程序)

type衹有1~8,對應上面8個算法
一般野生捉的PM對應type 1,所以基本 ...
chfmy 发表于 2009-9-14 22:26 http://bbs.newwise.com/images/common/back.gif
性格值方面我以前必改的,不过是靠重新生成

Tormentor 发表于 2009-9-14 22:32:16

原来合法这么复杂啊

尜Mi鋒_LOVE街波 发表于 2009-9-14 22:38:38

因為性格值決定個體性別性格
因為國內大部分人用修改器改PM也就只會改固定性格特性個體卻忽略(其實也沒辦法因為沒官方比賽不知道檢查程序)

type衹有1~8,對應上面8個算法
一般野生捉的PM對應type 1,所以基本 ...
chfmy 发表于 2009-9-14 22:26 http://bbs.newwise.com/images/common/back.gif


用0.6修改一只合法pm还需要什么步骤?

chfmy 发表于 2009-9-14 22:52:34

原来合法这么复杂啊
Tormentor 发表于 2009-9-14 22:32 http://bbs.newwise.com/images/common/back.gif官方檢定而已

DIS.LEO 发表于 2009-9-14 22:58:35

官方檢定而已
chfmy 发表于 2009-9-14 22:52 http://bbs.newwise.com/images/common/back.gif
求改神兽,官方活动PM和官方WIFI活动PM(直接送和给剧情道具抓)的算法,因为还有二级神兽这存在

DIS.LEO 发表于 2009-9-15 11:00:07

还有精通此道的人吗...
页: [1] 2
查看完整版本: 关于存档修改器新机能“正规值生成”的问题