|
楼主 |
发表于 2011-6-17 11:50:17
|
显示全部楼层
关于圣弓的剧情问题,不知道你有没有什么更好的建议?当然别太麻烦了,否则技术上很难实现。其实个人觉得无心无欲网友的设想也还说得过去,问题并不是很大。
关于几个技术上的问题,大多需要修改原始程序来解决,想简单地改动几个数据是不行的。目前我没见过网上有这方面的系统资料,日站的东西基本上都是数据修改而不是汇编修改,这是可以理解的,因为编程这玩意本来也没有固定的模式,那完全看个人的发挥。就像编程的书籍只能教给你语言基础,而不可能详细告诉你怎样编写一个具体的实用软件。
以突击的发动率为例。原版的突击发动判定程序是这样的:
C4/E3F8: 203BDF JSR $DF3B
C4/E3FB: 9032 BCC $E42F
C4/E3FD: 20D7E4 JSR $E4D7
C4/E400: 902D BCC $E42F
84/E402: BD2400 LDA $0024,X
C4/E405: 890002 BIT #$0200
84/E408: F025 BEQ $E42F
84/E40A: BD0600 LDA $0006,X
C4/E40D: 8D6F05 STA $056F
84/E410: 22C69884 JSL $8498C6
C4/E414: C91900 CMP #$0019
84/E417: 9016 BCC $E42F
C4/E419: 4A LSR A
C4/E41A: 18 CLC
C4/E41B: 7D3000 ADC $0030,X
C4/E41E: 38 SEC
C4/E41F: F93000 SBC $0030,Y ;当前hp/2+自身攻速-对手攻速
C4/E422: 300B BMI $E42F
C4/E424: C96400 CMP #$0064
C4/E427: B008 BCS $E431
C4/E429: 229CEF84 JSL $84EF9C
C4/E42D: 9002 BCC $E431
C4/E42F: 18 CLC ;不发动
C4/E430: 60 RTS
C4/E431: 38 SEC ;发动
C4/E432: 60 RTS
如果要发动率=攻速+10,则可以改动如下(程序具体怎么写看个人喜好,我这仅供参考)
$C4/E3F8 203BDF JSR $DF3B
90** BCC $E42F
20D7E4 JSR $E4D7
90** BCC $E42F
BD2400 LDA $0024,X
890002 BIT #$0200
F0** BEQ $E42F
BD0600 LDA $0006,X
8D6F05 STA $056F
22C69884 JSL $8498C6
C91900 CMP #$0019
90** BCC .NO
BD3000 LDA $0030,X
18 CLC
690A00 ADC #$000A ;自身攻速+10
C96400 CMP #$0064
B008 BCS .YES
229CEF84 JSL $84EF9C
9002 BCC .YES
.NO 18 CLC ;不发动
60 RTS
.YES 38 SEC ;发动
60 RTS
如果原来的地址写不下,就得使用跳转语句跳到空白区写程序,不过这个例子还好地方足够就不用如此了。 |
|