设为首页收藏本站

 找回密码
 立即注册
搜索
查看: 657|回复: 11

[原创] [FC][魂斗罗][互相伤害][END]

[复制链接]

签到天数: 39 天

[LV.5]常住居民I

发表于 2020-5-5 15:40:24 | 显示全部楼层 |阅读模式
先祝福大家五一快乐, 虽然来晚了哈, 废话就不多说了
7 u, N! Q8 \0 @# h* N1.选择键切换子弹(为了更快杀死对方)& V1 E" y. e* ]' x; x* }- x/ ]
2.杀死对方自己加命
( s( C, H( \: ^, j# L- ]0 Y. W
  1. ;[FC][魂斗罗][互相伤害][END]" u+ m# y5 I  R& J4 \$ b
  2. ;20200505- N4 T& `* @1 b0 P) y4 x, d5 @0 e

  3. ; c2 p* o& {+ y& b8 D
  4. .ORG $8960) X1 W% J: y- ]7 N& j3 g2 m4 s

  5. ! ^) v! z, |0 J3 a
  6. P1_STATUE          = $90      ;状态$ c" v+ }# g. ~) j5 y$ r0 B; I
  7. P1_INVINCIBLE_A    = $AE      ;透明无敌2 Q6 Y$ L: A9 F# ~4 j5 V
  8. P1_INVINCIBLE_B    = $B0      ;闪烁无敌
    # n: ]% F5 M) D1 |( M. x+ [# ^( }
  9. P1_REST            = $32      ;P1剩余生命
    7 b4 \" S7 `8 v
  10. LIVE_VALUE         = $01      ;活着数值* r4 v% P  _" O* }4 S
  11. P1_ACTION          = $D6      ;趴下
    8 f! @9 k/ }. P, V7 A" ?' G
  12. P1_FACE            = $D8      ;P1面向
    0 |0 V4 C" o1 D, F/ {
  13. LAY_VALUE          = $17      ;趴下数值
    ) q  U; B  m6 m( e- ]
  14. JUMP_VALUE         = $08      ;趴下数值
    1 K8 i2 l0 }! y" H; ~
  15. DIVING_VALUE       = $18      ;潜水数值
    ( O/ G1 b8 Z! J/ ]! t& p$ g# g
  16. P1_X               = $0334    ;P1 X坐标
    6 S9 M9 a' N' w  t( Y1 l) O9 ]' L
  17. P2_X               = $0335    ;P2 X坐标
    ) X$ \+ `) a" L7 I" t3 q; |$ i
  18. P1_Y               = $031A    ;P1 Y坐标
    * K! H4 {: X8 Z: V! p9 u. \
  19. P2_Y               = $031B    ;P2 Y坐标9 I1 z1 d* C5 a1 T
  20. Bullet_X           = $03C8    ;子弹X坐标
    + }6 ?1 O0 M: `8 X  H" U
  21. Bullet_Y           = $03B8    ;子弹Y坐标) R5 l8 \, T( R  R2 v1 P" S3 g
  22. Bullet_Owner       = $0448    ;子弹所属者2 U& j- G4 h, L. K5 g
  23. Hit_Offet_X        = $01C0    ;命中误差X
    0 s# N3 M# o4 J/ f7 A# z% A
  24. Hit_Offet_Y        = $01C1    ;命中误差Y2 h% v5 A: D% Y; U" x$ I8 [' [
  25. State_Offet_X      = $01C2    ;动作误差X
      O0 W8 S" r. @4 s
  26. State_Offet_Y      = $01C3    ;动作误差X# h1 P' V6 Y9 X4 {2 n% q7 ^# B
  27. Offet_X_Check      = $01C4    ;坐标差X4 o( R$ i' `: Q9 R( n; M: @7 f
  28. Offet_Y_Check      = $01C5    ;坐标差Y
    1 W8 e8 f8 ~( M) {
  29. Reg_X_Temp         = $01C6    ;寄存器X暂存
    0 y* V, M8 r% t. I! [5 c0 E
  30. Reg_Y_Temp         = $01C7    ;寄存器Y暂存# m1 p) Y' q" n# Z% d
  31. OFFET_X_STAND      = $06      ;坐标差X值
    3 B# l! G8 i3 y4 a
  32. OFFET_Y_STAND      = $10      ;坐标差Y值
    ! P$ y- v" {" R( E
  33. OFFET_X_LAY        = $10      ;趴下坐标差X值
    * z) C# H* N1 d) Q: @  u  y) W
  34. OFFET_Y_LAY        = $07      ;趴下坐标差Y值
    8 N: ?! I/ C1 E3 y5 R4 Z5 J- n
  35. OFFET_X_JUMP       = $08      ;跳跃坐标差X值
    : A1 j( A  Z5 C
  36. OFFET_Y_JUMP       = $08      ;跳跃坐标差Y值
    4 R( Q+ C& B+ D8 [1 |* Z& P' m
  37. STATE_X_DIVING     = $02      ;潜水动作误差X值
    + n  O  f# j5 q, i8 a
  38. STATE_Y_LAY        = $04      ;趴下动作误差X值" V4 K" l2 m' K! u( j
  39. ( I0 F$ ?0 n" D5 s; G
  40. ;武器切换3 A6 [2 w8 E/ ]: a& r
  41. Btn_Once = $F5       ;单次按键
    5 h& ~7 W( g; V) ~$ |7 Y
  42. ;========================================
    : ]+ o. F# W9 [/ n3 q" {3 V
  43. ChangeWeapon:
    , c8 H( B7 z8 T' h
  44. LDA Btn_Once,X
    2 @" c) k1 C* W! ~- a" `2 \
  45. CMP #$20& V: W0 ?" N- i( b* _& f' n
  46. BNE ChangeWeaponEnd
    6 I1 J& U6 Q9 i6 g& L
  47. LDA $AA,X3 A0 b& S* Y/ C8 i& I5 Y. P) o
  48. ORA #$102 v. m( N4 C# ]
  49. STA $AA,X
    4 W/ B9 u! i/ Y" K  \; _) j
  50. CMP #$14! P$ ~, }7 S6 y9 K8 s" ]5 P# Q
  51. BNE WeaponSet; l( j- R0 n7 f) v/ F2 c/ {4 H
  52. LDA #$0F+ m+ u* E# _# j) `, L3 D/ v% F
  53. STA $AA,X
    ( [1 ]( X) K7 `7 n( s8 b
  54. WeaponSet:( N  \- a& D5 f" D4 B% @! P
  55. INC $AA,X
    8 s: r2 G& V# F' N2 V
  56. ChangeWeaponEnd:
    9 S) t9 P; y/ H
  57. LDA $AA,X( v1 c* ?* L  w
  58. AND #$0F3 _, E7 O# u+ W; f# j) n, P; [0 ^' Y
  59. RTS
    % Z# ?# \. H  T' j+ Y, C! O
  60. ! M8 F) h5 b2 U6 K# T5 R  j0 c; W
  61. .ORG $89A0+ u8 Z7 |7 T9 _( R; |, b2 h
  62. ; J0 d' i: d- T, `6 J0 L
  63. ;互相伤害# {" u9 {5 D% `. ]
  64. ;========================================, [4 L5 d7 C% W2 `* ]
  65. Hurt_Player:
    * p" m* c) ~  ^6 @. q! a
  66. STX Reg_X_Temp
    " ]5 N8 r" ^0 |3 N8 r: n' h
  67. STY Reg_Y_Temp
    % w5 T. [$ M, h  c
  68. JSR CheckInvalidState/ M, V$ x1 w% i1 U
  69. BCS HurtPlayerEnd0 \) r+ g/ s$ U
  70. LDA Bullet_Owner,X8 \$ t* Q7 c3 ~" P! c
  71. EOR #@0000001: n3 v0 u0 v. M1 j8 c
  72. TAY
    * n( m3 I5 W3 A; x
  73. JSR GetHitOffset$ }1 X; Z5 ~, p4 @
  74. JSR GetOffet_X8 U/ X* [% w( D3 @# |! s
  75. JSR GetOffet_Y
    ' J- \( D% r) B' E' I& g" F
  76. JSR Check_Hit
    " I% Q  M8 ~( ?
  77. BCC HurtPlayerEnd7 T' a* E/ c" [. t1 R/ ]) v& c
  78. JSR Kill_Player
    / y' ^" H1 j9 @7 V/ f
  79. HurtPlayerEnd:
    ; y! i+ A# o, O$ j5 a( q4 V
  80. LDX Reg_X_Temp0 C& A/ y+ L: T$ R
  81. LDY Reg_Y_Temp
    % B; x4 `8 a; H6 \& O$ F
  82. LDA $0438,X
    8 ?# Y( n, `6 r" d/ G0 y* N) b9 X
  83. RTS5 s3 g, }) c4 ~  F
  84. " Z1 d4 W0 x/ Q% d3 t9 `& \
  85. ;检查无效状态
    " a9 H2 r, I4 O2 R& ^
  86. ;========================================3 b4 d- R% N' n1 c. s  g
  87. CheckInvalidState:8 v- I* Y4 b% G: q  v7 P
  88. LDA Bullet_Owner,X2 N1 F8 e5 k# b) u9 e
  89. EOR #@0000001; a8 u% }3 u4 h' K8 U" P! P+ a
  90. TAY
    6 I) k- R/ `5 o# f/ V" @( q
  91. LDA P1_STATUE,Y
    ) ]4 k  \% \: e2 u
  92. CMP #LIVE_VALUE
    % y  W  d  Q; F8 s2 q# H$ v2 E
  93. BNE SetInvalidState, r2 o: r% N, J6 O$ J
  94. LDA P1_ACTION,Y3 C* V" Z2 X% E1 H9 N# \  D% i
  95. CMP #DIVING_VALUE
    - N0 x5 a- k# U. c" p; J
  96. BNE CheckStateEnd
    + S4 B6 V- `; }, N9 H
  97. SetInvalidState:
    5 e4 T0 ~3 l' I
  98. SEC
    : O) z/ A9 k8 a) W$ p3 I; ]! X/ |
  99. RTS
    ' O0 {7 y0 C0 Q! _2 C
  100. CheckStateEnd:: h! d# b$ D( h& s9 }, @
  101. CLC8 P6 J7 v3 n4 H5 G6 `. G( [
  102. RTS
    6 ^  ^4 P' ]0 {5 j' |' ?: S1 `& p

  103. ) [! V1 U- z$ _
  104. ;设置命中误差8 Z9 Q( m7 K; d5 I
  105. ;========================================2 f6 w" I: N! _( H2 f6 `9 L- L
  106. GetHitOffset:$ F5 [0 u5 O5 G( y; _0 z* `
  107. LDA #OFFET_X_STAND' @" }% d2 a9 @0 k2 [% P
  108. STA Offet_X_Check* T, w/ K) {2 ~
  109. LDA #OFFET_Y_STAND; j, u& ?! _$ ~& N
  110. STA Offet_Y_Check
    & I! E7 J" k( q% o! I
  111. LDA #$009 w) P: y# @4 f/ D
  112. STA State_Offet_X
    ; K/ }6 I: f+ R, F) e
  113. STA State_Offet_Y
    : G( h2 V1 @. c. b5 ?! m
  114. GetHitOffset_Diving:
    ) ~' {$ d0 ^: h
  115. LDA P1_ACTION,Y
    % s& v* C* P9 W
  116. AND #DIVING_VALUE- m6 B) f7 d9 _: m2 _1 f+ L; d
  117. CMP #DIVING_VALUE
    ; |7 W2 e# R+ R! |' \* T
  118. BNE GetHitOffset_Lay
    + t5 U% d+ V; C+ ~- ~
  119. LDA #STATE_X_DIVING
    6 G9 v! C% m" f7 [5 |# B. M
  120. STA State_Offet_X
    6 z6 p+ v; Y! i" f. v( i& q
  121. LDA P1_FACE,Y. ]: L% m5 l+ ^, l" |6 d
  122. AND #$40
    - }; E5 M3 Z! C& N+ d
  123. BEQ GetHitOffset_Lay2 W% Y1 L( `$ v( a7 b
  124. LDA #$00
    1 e4 C. ~) v5 ]' t! `# w4 y) f2 W
  125. SEC" N+ B& o* ^( U
  126. SBC State_Offet_X8 `- x0 m3 F6 ?: f1 q5 q
  127. STA State_Offet_X
    7 N) a  Z  m8 F# k$ c7 D
  128. GetHitOffset_Lay:7 k' c/ x. |  @1 N- Y) h4 H
  129. LDA P1_ACTION,Y
    8 y+ i3 ~: o" x2 b9 ?9 ?6 z& Y
  130. CMP #LAY_VALUE6 g* S% ?" {8 V7 A! h% g8 ]
  131. BNE GetHitOffset_Jump$ ^9 J( M# O6 M
  132. LDA #OFFET_X_LAY
    - g. @, Y0 ]; W. n! l! @
  133. STA Offet_X_Check
    ! z5 S& Y! ]1 X4 e: h
  134. LDA #OFFET_Y_LAY& i; f8 f. x* g; w
  135. STA Offet_Y_Check1 t, X9 h, c6 k) W8 j$ M; i& g
  136. LDA #STATE_Y_LAY  M$ s1 x$ n, i4 m% h
  137. STA State_Offet_Y" D7 H* w, O- q! X" h: t, t
  138. RTS
    # h5 I! k! X. C" W. w) i' d+ z5 G
  139. GetHitOffset_Jump:
    / ?0 G$ Q7 b- U1 m+ W! X
  140. LDA P1_ACTION,Y
    & x$ \5 _" n# l2 S, q' ]- J1 X3 J
  141. AND #@11110110
    ; r) F6 \, `7 p. w- a: L" K) l4 G, a
  142. BNE GetHitOffsetEnd- `: N5 u' A" P8 M
  143. LDA P1_ACTION,X
    4 g, ]$ z! l. u% T& Q: B7 e
  144. AND #JUMP_VALUE
    " I% ^" s) s9 @4 l
  145. BEQ GetHitOffsetEnd
    6 l% Y9 r1 ?6 [
  146. LDA #OFFET_X_JUMP
    % ]* f7 k% S! M$ k" [; W8 r: H5 d0 S
  147. STA Offet_X_Check
    ( R1 T) y7 I: L) g3 I1 }
  148. LDA #OFFET_Y_JUMP
    2 g+ e5 Z( D& C: p/ M
  149. STA Offet_Y_Check
    ( r8 s" P$ O5 Y: E
  150. RTS1 ~% O% }; A& s: ?( Z
  151. GetHitOffsetEnd:
    5 x# ?# B8 R0 Z- P+ C
  152. RTS1 e  `; `! k5 a

  153. , `  t) P8 z: y

  154. 9 l$ e6 a( w5 |- s) b" }
  155. ;获取子弹与角色X坐标差5 S/ p* D) H4 f
  156. ;========================================
    ( D5 B- b8 h6 K( r% P& b
  157. GetOffet_X:
    0 b& W" c2 p/ Q- `+ E& V3 o$ X8 `# m
  158. LDA Bullet_X,X
    6 z* g9 n) I# \0 I( P; A3 m( e
  159. SEC
    9 H6 z$ m8 ]9 m: c8 S
  160. SBC State_Offet_X
    * Y" M" K3 i6 S% p0 G, O; |
  161. CMP P1_X,Y7 Q0 M6 \* A4 Z  I  h
  162. BCC GetOffet_X_Set
    / b) T6 t5 H, S' ?; y$ `
  163. LDA Bullet_X,X! k, Y- \8 Y- ~1 L0 u
  164. SEC8 |, m) Y/ Z6 r) Z
  165. SBC State_Offet_X
    0 I# _  G7 B3 g# i* \# m
  166. SEC
    ' u/ G, J  f$ K% s
  167. SBC P1_X,Y
    & O) i9 i  T) s) C1 a
  168. STA Hit_Offet_X
    ) q) |4 S2 c" W; S( J: H* V) A2 ~0 d& O4 O
  169. RTS
    - `  m! V. N+ k3 K. J. [
  170. GetOffet_X_Set:
    1 L8 |- a" S& s$ q
  171. LDA P1_X,Y
    ' J$ F' ?1 t3 C) c5 h6 u
  172. CLC
    3 y: F/ R" Z' p$ O
  173. ADC State_Offet_X
    " U3 j5 d: M6 x& H" b- ?0 U
  174. SEC0 s6 c& I& o/ Z) F. R
  175. SBC Bullet_X,X" T' `1 X' f* R7 W, l
  176. STA Hit_Offet_X/ `. J! N, \! P$ Y# J" z. u
  177. RTS
    6 e" S1 |, J  V& `
  178. ! h+ d5 e( T5 M) o4 q# l
  179. ;获取子弹与角色Y坐标差
    # r, `; q6 V: `
  180. ;========================================
    # M2 e$ v. k! I, a4 b9 E: m4 C! r4 Q- D
  181. GetOffet_Y:; U  x& S/ r  `6 J- x/ p- Y" q* `
  182. LDA Bullet_Y,X& E$ g! I. X: Y; O9 p
  183. SEC
    6 d# Z3 Q3 e; k* v9 c/ a
  184. SBC State_Offet_Y9 J( a/ c) G/ F) U( I( u
  185. CMP P1_Y,Y
    # e9 ^/ {2 C2 ~6 P
  186. BCC GetOffet_Y_Set
    , m6 f" b; [, \, \9 k- j
  187. LDA Bullet_Y,X
    5 y( y" _- {- w6 z
  188. SEC& N  g7 C( ]0 I# W" H
  189. SBC State_Offet_Y
    / _( K3 m9 A( L) }
  190. SEC
    4 ^. Z' n/ H& Y6 ?, o
  191. SBC P1_Y,Y  w7 m& U6 z- I( P- C! Q3 c# U
  192. STA Hit_Offet_Y
    7 e, f4 v6 C5 `, m/ d
  193. RTS
    9 ^$ e, E* @" _) z6 a
  194. GetOffet_Y_Set:
    ; ^/ M9 _8 K' R% I$ R
  195. LDA P1_Y,Y8 H0 \& G# ?9 ]# E  B0 H
  196. CLC6 U! J, f! h; @3 z1 F( t- x/ [
  197. ADC State_Offet_Y; ?2 W+ E' T5 y$ e- D
  198. SEC7 Q4 D3 L& |! X4 Z1 h8 G6 ]
  199. SBC Bullet_Y,X) c& h5 |! i/ R- S9 Y
  200. STA Hit_Offet_Y8 |/ H+ e' O% V& _- T
  201. RTS
    + f: u- w9 N$ V0 X6 K

  202. 9 m: o4 z  L- r* D, `" l
  203. ;检查命中
    " s. ]- A$ V2 ]% I
  204. ;========================================
    ; r" R1 g; @( g- V5 @, f
  205. Check_Hit:
    % }( S. }' J2 c- O3 M
  206. LDA Hit_Offet_X
    $ W- D2 v5 m; U
  207. CMP Offet_X_Check( i' C1 U! [, f; a$ E
  208. BCS Check_Hit_End
    # n( M7 R, m1 A3 y+ Z' @. m$ O, {. }
  209. LDA Hit_Offet_Y
    # t! e- _7 T( z( B" Z7 i) G
  210. CMP Offet_Y_Check0 v5 M. F" r; g0 C+ o/ w& l7 u
  211. BCS Check_Hit_End' u+ t$ C4 `9 F2 O! w4 }! l" M. q% P
  212. SEC" [1 J  p" H! M; f& d
  213. RTS! w" j5 X* T" g: N, ~
  214. Check_Hit_End:
    6 R3 [* R6 Y( L$ x
  215. CLC
    1 t% r. i' @& ^
  216. RTS4 R2 F3 s& p5 i6 W7 y; Z

  217. % J. _4 i* B: ^/ X! p% q$ T
  218. ;杀死对方. z% U2 |9 ~. C4 A  _
  219. ;========================================( Q. b3 {9 |- \. y; l
  220. Kill_Player:
    & W6 Z9 x# `) q! a9 b8 O
  221. LDA Bullet_Owner,X
    ' N9 L: @& T; V+ Q( G5 f( `
  222. EOR #@0000001, T. j  a7 z+ U3 m- W4 K
  223. TAX: r- p" R2 [5 K6 n  s
  224. LDA P1_STATUE,X+ t+ h0 a7 E& \  m9 ?- ?
  225. CMP #LIVE_VALUE5 o; A5 u$ I! l' a( k6 B
  226. BNE Kill_Player_End
    " o9 V% }! v# y$ i: d9 G
  227. LDA P1_INVINCIBLE_A,X
    8 }/ p/ J1 Z* g8 Y8 a  K
  228. ORA P1_INVINCIBLE_B,X
    ; i1 n* V, m' z; H" h) m
  229. BNE Kill_Player_End ;无敌状态不处理
    ( h3 [0 R3 E7 d- ~6 F% P, T
  230. JSR $D474 ;角色死亡
    5 T% ], e2 k# U  _. f- j
  231. LDX Reg_X_Temp7 s; F: U6 w- M
  232. LDA Bullet_Owner,X3 {  b( w3 {* X+ y+ _7 G3 Q
  233. TAX4 Y2 x2 K. k3 ^! C# g3 p: ]- S
  234. INC P1_REST,X
    0 p) D1 u7 E; d" C7 e
  235. LDX Reg_X_Temp
    0 `, ^/ I% P0 I) z: @
  236. JSR $E2FE ;子弹消除# t" z! P) o  R4 A" t) q& A5 k2 q
  237. Kill_Player_End:% ^: C/ X3 [+ y: k
  238. RTS
复制代码

5 {0 q! b4 T2 g& _% S
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

1

查看全部评分

[发帖际遇]: yandagui 在网吧通宵,花了 4 个 柠檬. 幸运榜 / 衰神榜

签到天数: 1561 天

[LV.Master]伴坛终老

发表于 2020-5-5 16:07:50 | 显示全部楼层
感谢分享{:4_132:}
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2020-5-5 18:51:47 | 显示全部楼层
这就变成打黑枪了,有意思,谢谢
回复

使用道具 举报

签到天数: 187 天

[LV.7]常住居民III

发表于 2020-5-5 19:56:35 | 显示全部楼层
多谢分享,修改辛苦了
7 p; \8 A: {& i- Y) L
[发帖际遇]: dabayu 被钱袋砸中进医院,看病花了 2 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 3145 天

[LV.Master]伴坛终老

发表于 2020-5-5 20:25:15 | 显示全部楼层
记得双截龙2这样干过,用1P打死2P可以奖命{:4_111:}
[发帖际遇]: afti 发帖时在路边捡到 3 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 1467 天

[LV.10]以坛为家III

发表于 2020-5-5 22:28:00 | 显示全部楼层
感谢大神分享!
[发帖际遇]: shower 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 620 天

[LV.9]以坛为家II

发表于 2020-5-5 22:55:54 | 显示全部楼层
厉害了啊,感谢分享
[发帖际遇]: 一个袋子砸在了 liuqi459120528 头上,liuqi459120528 赚了 1 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 905 天

[LV.10]以坛为家III

发表于 2020-5-6 14:26:39 | 显示全部楼层
这都让你随心所欲的修改 这才是玩游戏啊
回复

使用道具 举报

签到天数: 675 天

[LV.9]以坛为家II

发表于 2020-5-7 00:27:09 | 显示全部楼层
这个修改有点意思,感谢分享!
回复

使用道具 举报

签到天数: 537 天

[LV.9]以坛为家II

发表于 2020-6-29 02:20:17 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

签到天数: 984 天

[LV.10]以坛为家III

发表于 2020-6-29 08:19:11 | 显示全部楼层
魂斗罗内战么{:4_116:}
回复

使用道具 举报

签到天数: 3281 天

[LV.Master]伴坛终老

发表于 2020-8-5 15:26:06 | 显示全部楼层
这个有意思
[发帖际遇]: leshui 被钱袋砸中进医院,看病花了 2 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2026-8-5 13:14

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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