Как исправить Spike Bug — различия между версиями
Quantum (обсуждение | вклад) м |
|||
Строка 1: | Строка 1: | ||
{{GuideBy|[[FraGag]]}} | {{GuideBy|[[FraGag]]}} | ||
− | '''Spike Bug''' в первом Сонике заключается в том, что игра не проверяет | + | '''Spike Bug''' в первом Сонике заключается в том, что игра не проверяет [[Sonic the Hedgehog|Соника]] на неуязвимость после повреждения (когда спрайт [[Sonic the Hedgehog|Соника]] моргает). Из-за этого после попадания на спики, Вас ждет верная смерть (если соника, конечно, не отбросит с их поля), тогда соник потеряет защитную сферу (shield), кольца, а потом жизнь. В последующих играх серии этот баг был исправлен. |
Убрать '''Spike Bug''' очень просто. Откройте исходный код игры и найдите в нем суброутину '''Obj36_Hurt'''. Вот начало ее первоначального кода: | Убрать '''Spike Bug''' очень просто. Откройте исходный код игры и найдите в нем суброутину '''Obj36_Hurt'''. Вот начало ее первоначального кода: |
Версия 17:28, 28 марта 2010
Spike Bug в первом Сонике заключается в том, что игра не проверяет Соника на неуязвимость после повреждения (когда спрайт Соника моргает). Из-за этого после попадания на спики, Вас ждет верная смерть (если соника, конечно, не отбросит с их поля), тогда соник потеряет защитную сферу (shield), кольца, а потом жизнь. В последующих играх серии этот баг был исправлен.
Убрать Spike Bug очень просто. Откройте исходный код игры и найдите в нем суброутину Obj36_Hurt. Вот начало ее первоначального кода:
<asm>Obj36_Hurt: ; XREF: Obj36_SideWays; Obj36_Upright tst.b ($FFFFFE2D).w ; is Sonic invincible? bne.s Obj36_Display ; if yes, branch move.l a0,-(sp) ...</asm>
Чтобы исправить баг, нам нужно добавить всего две строчки:
<asm>Obj36_Hurt: ; XREF: Obj36_SideWays; Obj36_Upright tst.b ($FFFFFE2D).w ; is Sonic invincible? bne.s Obj36_Display ; if yes, branch tst.w ($FFFFD030).w ; +++ is Sonic invulnerable? bne.s Obj36_Display ; +++ if yes, branch move.l a0,-(sp) ...</asm>
Теперь когда Соник касается спик, игра будет проверять, не уязвим ли Соник после повреждения (когда спрайт Соника моргает).