无聊之士
全控
级别: 火花会员
编号: 49952
精华: 5
发帖: 432
威望: 25 点
配偶: 单身
火 花 币: 4092 HHB
注册时间:2006-02-10
最后登陆:2024-06-28
|
圣魔部分数据初始化
0802a330 《---对武器的数据处理 0802a338 《---对武器的数据处理 ======================== 0802A328 4D11 ldr r5,=0203A4E8h 0802A32A 4C12 ldr r4,=0203A568h 0802A32C 1C28 add r0,r5,0h 0802A32E 1C21 add r1,r4,0h 0802A330 F000 bl 0802A8C8h<--------自己数据初始化。。。 0802A334 1C20 add r0,r4,0h 0802A336 1C29 add r1,r5,0h 0802A338 F000 bl 0802A8C8h<--------敌人数据初始化。。。 0802A33C 1C28 add r0,r5,0h 0802A33E 1C21 add r1,r4,0h 0802A340 F000 bl 0802A914h<--------里面有命中减敌人回避的处理,数据初始化。。。 0802A344 1C20 add r0,r4,0h 0802A346 1C29 add r1,r5,0h 0802A348 F000 bl 0802A914h<--------敌人数据初始化。。。 0802A34C 2E00 cmp r6,0h 0802A34E D101 bne 0802A354h〈------不是古木,墙等非攻击性的就相等就转移,如果是古木,墙等非攻击性的也强制转移,那么就可能打两次 0802A350 F002 bl 0802C880h〈-------是古木,墙等非攻击性的就进入这里,人就只能打一次 0802A354 4808 ldr r0,=0203A4D0h〈------有敌手就到这里 0802A356 8801 ldrh r1,[r0,0h] 0802A358 2001 mov r0,1h 0802A35A 4008 and r0,r1 0802A35C 2800 cmp r0,0h 0802A35E D00F beq 0802A380h〈--------如果不决定进入实际战斗,则不等,因为r1=2,r0=1;如果决定进入实际战斗,则相等,因为r1=1,r0=1,具体的还不明白 0802A360 4806 ldr r0,=0203A954h 0802A362 6980 ldr r0,[r0,18h] 0802A364 2800 cmp r0,0h 0802A366 D00B beq 0802A380h〈--------目前为止,在这里看到的是必然等于。 0802A368 F002 bl 0802CE84h 0802A36C E00A b 0802A384h 0802A36E 0000 lsl r0,r0,00h 0802A370 A4E8 add r4,pc,3A0h (=0802A714h) 0802A372 0203 lsl r3,r0,08h 0802A374 A568 add r5,pc,1A0h (=0802A518h) 0802A376 0203 lsl r3,r0,08h 0802A378 A4D0 add r4,pc,340h (=0802A6BCh) 0802A37A 0203 lsl r3,r0,08h 0802A37C A954 add r1,sp,150h 0802A37E 0203 lsl r3,r0,08h 0802A380 F000 bl 0802AE40h〈----------进入判定详解文本看 0802A384 BC70 pop r4-r6 0802A386 BC01 pop r0 0802A388 4700 bx r0 ================================ bl 0802A8C8h程序 0802A8C8 B530 push r4,r5,lr 0802A8CA 1C04 add r4,r0,0h 0802A8CC 1C0D add r5,r1,0h 0802A8CE F000 bl 0802A9B0h《-------实际守备初始化,物理武器对应物理防御,魔法武器对应魔法防御。这里面可以做出新技能,物理攻击对应魔法防御,魔法武器对应物理防御 0802A8D2 1C20 add r0,r4,0h 0802A8D4 1C29 add r1,r5,0h 0802A8D6 F000 bl 0802AA28h《-------大部分武器数据处理,攻击力初始化 0802A8DA 1C20 add r0,r4,0h 0802A8DC F000 bl 0802AAE4h《-------攻击速度初始化,(bl 080173b4h读出武器重量处理);攻击速度=速度-[武器重量-体格],武器重量〉体格;[203a4e8+16]=人物速度地址,[203a4e8+5e]=攻击速度地址 0802A8E0 1C20 add r0,r4,0h 0802A8E2 F000 bl 0802AB1Ch《-------攻击命中初始化,(bl 0801739ch读出武器命中处理);攻击命中=武器命中+技术*2+LUCK/2+不知名处理结果,[203a4e8+15]=人物技术地址,[203a4e8+60]=攻击命中地址,不知名处理结果是支援效果? 0802A8E6 1C20 add r0,r4,0h 0802A8E8 F000 bl 0802AB54h《-------攻击回避初始化,回避=速度速度*2+LUCK+不知名处理结果;[203a4e8+62]=攻击回避地址 0802A8EC 1C20 add r0,r4,0h 0802A8EE F000 bl 0802AB88h《-------攻击必杀初始化,(bl 080173cch读出武器必杀处理),攻击必杀=武器必杀+技术/2++职业修正+不知名处理结果;[203a4e8+15]=人物技术地址,[203a4e8+66]=攻击必杀地址。职业修正计算点--〉0802abb0 0802A8F2 1C20 add r0,r4,0h 0802A8F4 F000 bl 0802ABC4h《-------攻击必杀回避初始化,[203a4e8+68]=必杀回避地址 0802A8F8 1C20 add r0,r4,0h 0802A8FA 1C29 add r1,r5,0h 0802A8FC F000 bl 0802A93Ch《------- 0802A900 1C20 add r0,r4,0h 0802A902 F000 bl 0802ACC4h《-------(bl 080172f0h读出武器类型处理),不是武器是道具和龙石头等就跳出,是武器的话,[人物基本地址+28+该武器类型]〈FAh就跳出,否则命中和必杀都加5,有点象指环或军师附加。 0802A906 1C20 add r0,r4,0h 0802A908 F000 bl 0802AD00h《-------指环附加初始化,先读出人物状态,参看0802B59C 7008 strb r0,[r1,0h]<---------状态改变,如果r0=1中毒;2睡觉;3沉默;4混乱;5攻击。。。;6守备。。。;7必杀。。。;8回避。。。;9生病?A正常的样子;B石化!!!C未知状态五回合;D还是石化;E未知状态五回合;F攻击时候显示中状态,但是一查看人物就死机 ------->等于6,就加守备;大于6,就判定是不是等于7,等于7就加必杀,不等于7就判定是不是等于8,等于8就加回避,不是等于8跳出;小于6,就判定是不是等于5,等于5就加攻击,不是等于5跳出;[203a4e8+5a]=攻击地址、[203a4e8+5c]=守备地址、[203a4e8+66]=必杀地址、[203a4e8+62]=回避地址. 0802A90C BC30 pop r4,r5 0802A90E BC01 pop r0 0802A910 4700 bx r0-------------->bl 0802A8C8h程序结束,返回0802A334或0802A33C ================================ bl 0802A914h程序 0802A914 B530 push r4,r5,lr 0802A916 1C04 add r4,r0,0h 0802A918 1C0D add r5,r1,0h 0802A91A F000 bl 0802ABD0h《-------实际命中处理,命中减敌人回避 0802A91E 1C20 add r0,r4,0h 0802A920 1C29 add r1,r5,0h 0802A922 F000 bl 0802AC00h《-------实际必杀处理,必杀减敌人运气,增加必杀守护判定 0802A926 1C20 add r0,r4,0h 0802A928 1C29 add r1,r5,0h 0802A92A F000 bl 0802AC68h《-------实际未知处理 0802A92E 1C20 add r0,r4,0h 0802A930 1C29 add r1,r5,0h 0802A932 F000 bl 0802AD3Ch《-------处理 0802A936 BC30 pop r4,r5 0802A938 BC01 pop r0 0802A93A 4700 bx r0〈----------回去了,执行bl 0802A914h下一条去了 ----------------------------------------------------------------------------------------------------------------------------- ============================================================================================================================= 0802A932 子程序 bl 0802AD3Ch -------- 0802AD3C B570 push r4-r6,lr 0802AD3E 1C04 add r4,r0,0h 0802AD40 1C0E add r6,r1,0h 0802AD42 6CE5 ldr r5,[r4,4Ch]<-----------读出武器特殊属性 0802AD44 2040 mov r0,40h《---------判定是否是魔法剑 0802AD46 4005 and r5,r0 0802AD48 2D00 cmp r5,0h 0802AD4A D01B beq 0802AD84h〈------不是魔法剑转移 0802AD4C 1C20 add r0,r4,0h 0802AD4E 3048 add r0,48h 0802AD50 8800 ldrh r0,[r0,0h]<-----------读出武器持久+代码 0802AD52 F7EC bl 08017294h<----------消去武器持久,保留代码 0802AD56 2810 cmp r0,10h 0802AD58 DB4F blt 0802ADFAh〈----什么剑都不是跳出 0802AD5A 2811 cmp r0,11h 0802AD5C DD01 ble 0802AD62h〈----10 ,11 光、卢尼之剑 0802AD5E 28A1 cmp r0,A1h 0802AD60 D14B bne 0802ADFAh〈----A1 风之剑,判定是魔法,结果什么剑都不是,跳出 0802AD62 1C23 add r3,r4,0h〈----是光、卢尼、风之剑,数据处理 0802AD64 335A add r3,5Ah 0802AD66 2014 mov r0,14h 0802AD68 5620 ldrh r0,[r4,r0] 0802AD6A 0FC1 lsr r1,r0,1Fh 0802AD6C 1840 add r0,r0,r1 0802AD6E 1040 asr r0,r0,01h 0802AD70 8819 ldrh r1,[r3,0h] 0802AD72 1A09 sub r1,r1,r0 0802AD74 2200 mov r2,0h 0802AD76 8019 strh r1,[r3,0h] 0802AD78 1C20 add r0,r4,0h 0802AD7A 3066 add r0,66h 0802AD7C 8002 strh r2,[r0,0h] 0802AD7E 3004 add r0,4h 0802AD80 8002 strh r2,[r0,0h] 0802AD82 E03A b 0802ADFAh〈----是光、卢尼、风之剑,数据处理完毕,跳出,这之间跳过了HP减半等
0802AD84 1C20 add r0,r4,0h〈--------不是魔法剑转移到这里 0802AD86 304A add r0,4Ah 0802AD88 8800 ldrh r0,[r0,0h]<-----------读出武器持久+代码 0802AD8A F7EC bl 080174CCh<-----------对武器代码处理 0802AD8E 2803 cmp r0,3h 0802AD90 D112 bne 0802ADB8h<-----------不等于3,转移 0802AD92 2013 mov r0,13h<-----------等于3,月食效果处理 0802AD94 5630 ldrh r0,[r6,r0]<-------读出对手HP 0802AD96 3001 add r0,1h<----加一使月食攻击至少打一点HP 0802AD98 1040 asr r0,r0,01h<-----减半效果 0802AD9A 1C21 add r1,r4,0h《----------r4=203a4e8 0802AD9C 315A add r1,5Ah 0802AD9E 8008 strh r0,[r1,0h]《----------攻击伤害存入[r1=203a542] 0802ADA0 2800 cmp r0,0h 0802ADA2 D101 bne 0802ADA8h 0802ADA4 2001 mov r0,1h<----加一使月食攻击至少打一点HP,这已经是多余处理了。因为对手至少有1点HP,加一使得减半后能打一点,如果对手有2点HP,加一使得移位减半后也只能打一点,所以这个判定多余 0802ADA6 8008 strh r0,[r1,0h]<----多余处理如上说 0802ADA8 1C30 add r0,r6,0h 0802ADAA 305C add r0,5Ch 0802ADAC 8005 strh r5,[r0,0h]<------是月食,[0203a5c4]=0 0802ADAE 1C20 add r0,r4,0h 0802ADB0 3066 add r0,66h 0802ADB2 8005 strh r5,[r0,0h]<------是月食,[0203a54e]=0 0802ADB4 3004 add r0,4h 0802ADB6 8005 strh r5,[r0,0h]<------是月食,[0203a54e+4=0203a552]=0 0802ADB8 6CE0 ldr r0,[r4,4Ch]<-----------读出武器特殊属性,注意这里读出这种属性的顺序r4=203a4e8 特殊属性格式:XY XY XY 属性一 X:1不可出售 2双攻 4魔法剑 8远程魔法/弩车 Y:1可用武器 3魔法武器 4杖 8持久无限 属性二 X:1剑士专用 2国王专用 4飞行守护 8必杀守护 Y:1反克属性 2诗人舞者指环/修理杖 4龙族专用 8罗伊专用 属性三 X:1琳专用 2阿特斯专用 Y:2破防 4艾瑞珂专用 8伊弗列姆专用
0802ADBA 2180 mov r1,80h《---------判定是否是破防 0802ADBC 0289 lsl r1,r1,0Ah〈-----r1=00020000 0802ADBE 4008 and r0,r1〈-----破防按照上面的格式为000002,很明显不是,是移动了两位的 0802ADC0 2800 cmp r0,0h 0802ADC2 D003 beq 0802ADCCh<----------不等是破防,防御方防御或守备为0 0802ADC4 1C31 add r1,r6,0h 0802ADC6 315C add r1,5Ch 0802ADC8 2000 mov r0,0h 0802ADCA 8008 strh r0,[r1,0h]<----------不等是破防,被攻击方防御或守备为0 0802ADCC 1C30 add r0,r6,0h〈--------得到敌人基本地址 0802ADCE 3030 add r0,30h〈--------偏移30h 0802ADD0 7800 ldrb r0,[r0,0h]〈--------读出敌人状态 0802ADD2 220F mov r2,Fh〈--------读出敌人状态处理,F用于屏蔽其他位 0802ADD4 4002 and r2,r0〈--------屏蔽其他位,留后4位 0802ADD6 2A0B cmp r2,Bh 0802ADD8 D001 beq 0802ADDEh〈--------参看0802B59C的判定,B是石化由来 0802ADDA 2A0D cmp r2,Dh 0802ADDC D10D bne 0802ADFAh〈--------参看0802B59C的判定,D是石化的由来 0802ADDE 1C20 add r0,r4,0h〈--------得到自己基本地址 0802ADE0 3064 add r0,64h〈--------偏移100 0802ADE2 2264 mov r2,64h〈--------赋值100 0802ADE4 8002 strh r2,[r0,0h]〈--------[基本地址+100]=100,命中等于100哎 0802ADE6 1C21 add r1,r4,0h〈--------得到自己基本地址 0802ADE8 316A add r1,6Ah〈--------偏移106 0802ADEA 8808 ldrh r0,[r1,0h]〈--------得到自己必杀 0802ADEC 301E add r0,1Eh〈--------赋值30 0802ADEE 8008 strh r0,[r1,0h]〈--------[基本地址+106]=必杀+30,必杀大于30哎 0802ADF0 0400 lsl r0,r0,10h 0802ADF2 1400 asr r0,r0,10h 0802ADF4 2864 cmp r0,64h 0802ADF6 DD00 ble 0802ADFAh〈--------必杀小于等于100,转移了,不用改了 0802ADF8 800A strh r2,[r1,0h]〈--------必杀大于100,强制等于100哎
0802ADFA BC70 pop r4-r6 0802ADFC BC01 pop r0 0802ADFE 4700 bx r0〈----------回去了,执行0802A936h去了 ============================================================================================================================= -----------------------------------------------------------------------------------------------------------------------------
|
姓:郑 名:长春 号:无聊之士! 欢迎到网络U盘地址:http://zhengchangchun.ys168.com/ 来~ 个人空间http://i.cn.yahoo.com/zhengchangchun2003
|
[楼 主]
|
Posted:2007-06-09 19:28| |
顶端
| |