Pokemon Center | 口袋中心 以口袋妖怪为主题并带有其他动漫游戏的讨论

 找回密码
 加入口袋中心
搜索
12
返回列表 发新帖
楼主: 744865306
打印 上一主题 下一主题

求助,我写的特性未能达成想要的效果:

[复制链接]

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

16#
 楼主| 发表于 2021-7-29 06:58:01 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-28 21:44
还有,千万不要用sub sp, XXX,用add sp, -XXX
这估计是armips的bug,每次用sub写入的时候都会莫名其妙 ...

这样啊,谢谢大佬
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

17#
 楼主| 发表于 2021-7-29 11:29:10 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 09:21
脚本应该是正确的,具体问题看上一楼的回复

我的新精灵编号是放在了r0,这样不会盖掉嘛?
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

18#
 楼主| 发表于 2021-7-29 11:50:09 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 09:21
脚本应该是正确的,具体问题看上一楼的回复

经过一番修改后,我发现变成了0号精灵,代码如下:
  1. .gba
  2. .thumb
  3. .create "test.gba",0x8000000
  4. .close
  5. .open "永暗.gba","test.gba",0x8000000

  6. .org 0x08F2EB24
  7. .func new
  8.         ldr r5,=0x0202420B
  9.         ldrb r5,[r5]
  10.         mov r2,#0x58
  11.         mul r5,r2
  12.         ldr r2,=0x02024084
  13.         add r5,r2
  14.         add r5,#0x20
  15.         ldrb r5,[r5]
  16.         cmp r5,#0xE9 ;"饱了又饿"特性编号
  17.         beq yes
  18. end:
  19.         lsl r6,r2,#0
  20.         mov r2,#0x9B
  21.         add sp,#-0x2C
  22.         str r3,[sp,#12]
  23.         ldr r1,=0x08E0368A
  24.         mov pc,r1
  25. yes:
  26.         ldrh r5,[r2]
  27.         ; 经过计算将"空腹花纹"编号存入r2
  28.         cmp r5,#4
  29.         bne cmp
  30.         mov r2,#5
  31. keep:
  32.         mov r5,r0
  33.         mov r0,r2
  34.         mov r1,#0xFF
  35.         add r1,#0x22
  36.         lsl r1,r1,#1
  37.         ldr r0,=BS_Script
  38.         bl 0x08E073E4
  39.         mov r0,r5
  40.         b end
  41. cmp:
  42.         ; 经过计算将"满腹花纹"编号存入r2
  43.         cmp r5,#5
  44.         bne end
  45.         mov r2,#4
  46.         b keep
  47. .endfunc
  48. .pool

  49. BS_Script:
  50. .byte 0x10,0x30,0x1,0x83,0x77,0x0,0x45,0xA,0x21,0x0,0x0,0x0,0x0,0x3A,0x83,0x7A,0x0,0x12,0x40,0x0,0x83,0x73,0x0,0x3F

  51. .org 0x08E03682
  52.         ldr r2,=new
  53.         mov pc,r2
  54. .pool

  55. .close
复制代码
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

19#
 楼主| 发表于 2021-7-29 11:51:32 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 09:21
脚本应该是正确的,具体问题看上一楼的回复

为什么会变成0号精灵呢?大佬帮我看看吧(话说还是用不来论坛的功能啊,我本来以为那个键是字体颜色,结果是字体背景颜色)
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

20#
 楼主| 发表于 2021-7-29 14:30:36 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 14:09
那你把他放到其他寄存器或者栈里保护起来不就行了

唔……可是不管哪个寄存器都会出现我说的这个bug唉
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

21#
 楼主| 发表于 2021-7-29 14:50:29 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 14:36
首先你hook的位置问题就很大 你应该在下hook,因为如果我没记错的话饱了又饿特性是回合末发动的。
其次 ...

界限盾壳不是这样写的嘛?(懵)
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

22#
 楼主| 发表于 2021-7-29 14:56:26 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 14:36
首先你hook的位置问题就很大 你应该在下hook,因为如果我没记错的话饱了又饿特性是回合末发动的。
其次 ...

r1没有那些数据的话根本就转换不了,回合末的地址的话我找不到……
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

23#
 楼主| 发表于 2021-7-29 14:57:43 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 14:36
首先你hook的位置问题就很大 你应该在下hook,因为如果我没记错的话饱了又饿特性是回合末发动的。
其次 ...

啊,不是转换不了,是我上次改了点东西没换回来
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

24#
 楼主| 发表于 2021-7-29 14:58:57 来自手机 | 显示全部楼层
744865306 发表于 2021-7-29 14:57
啊,不是转换不了,是我上次改了点东西没换回来

唔……这个r1貌似确实是没用
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

25#
 楼主| 发表于 2021-7-29 15:29:48 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 15:05
这个你有写吗?

有啊,那俩数据我存在了r0和r1
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

26#
 楼主| 发表于 2021-7-29 17:54:01 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 15:36
那你把他们存起来了吗 我没有在你的代码里看到new_battlestruct的指针0x02024218

啊,原来要存到那里面,我都没看出这个词是什么,谢谢大佬
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

27#
 楼主| 发表于 2021-7-29 19:27:39 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 15:38
写出来没用啊,得存到对应的地方才行

大佬,我这样写,结果精灵转变成了妙蛙草且卡死,能看看是什么原因嘛?

.gba
.thumb
.include "编译工具/ArmipsBSMacros.asm"
.create "test.gba",0x8000000
.close
.open "永暗.gba","test.gba",0x8000000

.org 0x08F2EB24
.func new
        ldr r5,=0x0202420B
        ldrb r5,[r5]
        mov r2,#0x58
        mul r5,r2
        ldr r2,=0x02024084
        add r5,r2
        add r5,#0x20
        ldrb r5,[r5]
        cmp r5,#0xE9 ;"饱了又饿"特性编号
        beq yes
end:
        lsl r6,r2,#0
        mov r2,#0x9B
        add sp,#-0x2C
        str r3,[sp,#12]
        ldr r1,=0x08E0368A
        mov pc,r1
yes:
        ldrh r5,[r2]
        ; 经过计算将"空腹花纹"编号存入r2
        cmp r5,r2
        bne cmp
        mov r2,#5 ;满腹花纹编号
keep:
        mov r5,r0
        mov r0,r2
        push {r3}
        ldr r1,=0x02024218
        strh r0,[r1]
        mov r0,#0xFF
        add r0,#0x22
        lsl r0,r0,#1
        ldr r1,=0x02024218
        add r1,#2
        strh r0,[r1]
        ldr r0,=BS_Script
        bl 0x08E073E4
        pop {r3}
        mov r0,r5
        b end
cmp:
        ; 经过计算将"满腹花纹"编号存入r2
        cmp r5,r2
        bne end
        mov r2,#4 ;空腹花纹编号
        b keep
.endfunc
.pool

BS_Script:
printstring 0x130
callasm_cmd 119
playanimation 0xA 0x21 0x0
waitstate
callasm_cmd 122
waitmessage 0x40
callasm_cmd 115
end3

.org 0x08E03682
        ldr r2,=new
        mov pc,r2
.pool

.close
回复 支持 反对

使用道具 举报

104

帖子

650

现金

0

勋章券

手举徽章的兴奋

Rank: 6Rank: 6

积分
347

时光印记Lv.1

28#
 楼主| 发表于 2021-7-29 21:03:25 来自手机 | 显示全部楼层
本站第一萌新 发表于 2021-7-29 20:35
我比较忙,抽不出具体时间帮你分析,只能用零碎时间给你提点建议。
你用nogba看看哪里卡死的,是不是在 ...

崩溃,那应该是函数有问题了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入口袋中心

本版积分规则

手机版|Archiver|Pokemon Center

GMT+8, 2024-5-21 19:36 , Processed in 0.057197 second(s), 23 queries , Eaccelerator On.

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表