游戏王残局简化版

Diff
Login

Diff

Differences From Artifact [85aec42a54]:

To Artifact [b999124373]:


3344
3345
3346
3347
3348
3349
3350




























































3351
3352

-----------------


Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()





























































~~~







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412

-----------------


Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()

~~~

### 料理对决类的失误

「糕冷的料理对决」<b>应该可以</b>把「圣菓使 考维曲天使」特殊召唤到对方的额外怪兽区域,但现在,虽然出现了代表可选的背景线,但是却不能选择那个区域。

同样的事情,也发生在残局模式中,比如当我方控制对方要特殊召唤怪兽到额外怪兽区域时,就也出现了代表可选的背景线,但是却不能选择那个区域。

通过对残局模式的追踪,可以发现,当我方控制对方要特殊召唤怪兽到额外怪兽区域时, MSG_SELECT_PLACE 有两个值是异常的:

1. hovered_controler

1. selectable_field

当要确定 selectable_field 时, hovered_controler 的值会影响到 selectable_field 的值,主要是让 selectable_field 的高 16 位与低 16 位进行互换。

也就是说,低 16 位用来表示我方可选区域,高 16 位用来表示对方可选区域。

之所以要用互换,而不是用直接移位,估计是因为我方与对方的视角不同。

那么为什么 hovered_controler 的值会出现异常?

这是因为 event_handler.cpp 在处理额外怪兽区域悬停消息的时候,只考虑到了这个区域是否有卡,而没有考虑到 selectable_field 。

~~~
Debug.SetAIName("base-2")

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI,5)

Debug.SetPlayerInfo(0,8000,0,0)

Debug.SetPlayerInfo(1,8000,0,0)


-----------------

Debug.AddCard(46485778,0,0,LOCATION_DECK,0,POS_FACEDOWN)
Debug.AddCard(14283055,0,0,LOCATION_HAND,0,POS_FACEDOWN)

-----------------

Debug.AddCard(26435595,0,0,LOCATION_EXTRA,0,POS_FACEDOWN)

-----------------


-----------------


-----------------


-----------------


Debug.ReloadFieldEnd()

aux.BeginPuzzle()


~~~