哈喽,欢迎观看本期教程,相信各位改版作者或多或少都会弄一些自己的原创精灵,那么这些精灵的种族值一定会有所变化,本人也是一样的,虽然弄了表格,但是感觉还是太麻烦了,加上之前在群里es既白他们说过获取种族值这件事,我就记下了,这次在大佬的帮助下,完成这个项目,话不多说下面发代码。
上面代码的【空位】自己搜填上去然后编译到ROM里。代码编译进ROM里就可以通过脚本来获取种族值了,下面放上游戏里的脚本。
脚本只是我用来测试的,还可以继续完善,可以自行优化更改。
下面附上测试图
注意:脚本的文本里,尽量别用英文的冒号,会出现读取种族值错乱等bug!
不会编译或者懒得编译的,直接找个空位把我这段编译好的数据写进去。
本期教程到此结束,感谢大佬在本教程里提供的帮助,希望这个教程能帮助到各位,本代码脚本仅在绿宝石2011测试过,其他版本ROM有无bug尚且未知,各位记得备份。
代码:
.gba
.thumb
.create "3.0.gba",0x8000000
.close
.open "test.gba","3.0.gba",0x8000000
.org 0xA000000【空位】
push {r4, lr}
ldr r4, =0x020375D8
ldrh r0, [r4, #8]
mov r1, #0x64
mul r0, r1
ldr r1, =0x020244EC
add r0, r1
mov r1, #11
ldr r3, =(0x0806A519|1)
bl call_bx
mov r1, #0x1C
mul r0, r1
ldr r1, =0x083203CC
add r0, r1
mov r2, #0
getBaseStatLoop:
ldrb r1, [r0, r2]
strb r1, [r4]
add r2, #1
add r4, #2
cmp r2, #6
ble getBaseStatLoop
pop {r4, pc}
call_bx:
bx r3
.pool
.close
上面代码的【空位】自己搜填上去然后编译到ROM里。代码编译进ROM里就可以通过脚本来获取种族值了,下面放上游戏里的脚本。
代码:
#freespace 0x00
#dynamic 0x1000000
#org @1
lockall
msgbox @aa 0x2
special 0xa2
waitstate
callasm 0xA000001
buffernumber 0x0 0x8000
buffernumber 0x1 0x8001
buffernumber 0x2 0x8002
msgbox @bb 0x6
closeonkeypress
pause 0x10
buffernumber 0x0 0x8003
buffernumber 0x1 0x8004
buffernumber 0x2 0x8005
msgbox @cc 0x6
closeonkeypress
releaseall
end
#org @cc
= 速度:[文本色04][buffer1] [文本色01] 特攻:[文本色04][buffer2] [文本色01] 特防:[文本色04][buffer3]\p[文本色01]真是个不错的小家伙,\n欢迎你下次再来。
#org @bb
= 这只精灵的种族值为:\n体力:[文本色04][buffer1] [文本色01] 物攻:[文本色04][buffer2] [文本色01] 物防:[文本色04][buffer3]
#org @aa
= 我能查看种族值,\n你想要看哪一只精灵?
脚本只是我用来测试的,还可以继续完善,可以自行优化更改。
下面附上测试图
注意:脚本的文本里,尽量别用英文的冒号,会出现读取种族值错乱等bug!
不会编译或者懒得编译的,直接找个空位把我这段编译好的数据写进去。
代码:
10B50B4C2089642148430A4940180B21094B00F00CF81C214843084940180022815C217001320234062AF9DD10BD1847D8750302EC44020219A50608CC033208
附件
最后编辑: