游戏王残局简化版

Diff
Login

Diff

Differences From Artifact [bf8c9258da]:

To Artifact [b9171a0d1e]:


118
119
120
121
122
123
124
125




126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<li><a href="#section-78" id="toc-section-78"><span class="toc-section-number">2.42</span> </a></li>
<li><a href="#section-79" id="toc-section-79"><span class="toc-section-number">2.43</span> </a></li>
<li><a href="#section-80" id="toc-section-80"><span class="toc-section-number">2.44</span> </a></li>
</ul></li>
<li><a href="#小结" id="toc-小结"><span class="toc-section-number">3</span> 小结</a></li>
<li><a href="#原因" id="toc-原因"><span class="toc-section-number">4</span> 原因</a>
<ul>
<li><a href="#召唤时的卡名提示" id="toc-召唤时的卡名提示"><span class="toc-section-number">4.1</span> 召唤时的卡名提示</a></li>




<li><a href="#料理对决类的失误" id="toc-料理对决类的失误"><span class="toc-section-number">4.2</span> 料理对决类的失误</a>
<ul>
<li><a href="#分析" id="toc-分析"><span class="toc-section-number">4.2.1</span> 分析</a></li>
<li><a href="#糕冷的料理对决" id="toc-糕冷的料理对决"><span class="toc-section-number">4.2.2</span> 「糕冷的料理对决」</a></li>
<li><a href="#section-81" id="toc-section-81"><span class="toc-section-number">4.2.3</span> </a></li>
<li><a href="#section-82" id="toc-section-82"><span class="toc-section-number">4.2.4</span> </a></li>
<li><a href="#section-83" id="toc-section-83"><span class="toc-section-number">4.2.5</span> </a></li>
</ul></li>
<li><a href="#残局模式的-act.png-问题" id="toc-残局模式的-act.png-问题"><span class="toc-section-number">4.3</span> 残局模式的 act.png 问题</a>
<ul>
<li><a href="#分析-1" id="toc-分析-1"><span class="toc-section-number">4.3.1</span> 分析</a></li>
<li><a href="#额外卡组区域" id="toc-额外卡组区域"><span class="toc-section-number">4.3.2</span> 额外卡组区域</a></li>
<li><a href="#墓地区域" id="toc-墓地区域"><span class="toc-section-number">4.3.3</span> 墓地区域</a></li>
<li><a href="#除外区域" id="toc-除外区域"><span class="toc-section-number">4.3.4</span> 除外区域</a></li>
<li><a href="#卡组区域" id="toc-卡组区域"><span class="toc-section-number">4.3.5</span> 卡组区域</a></li>
</ul></li>
</ul></li>
</ul>







|
>
>
>
>


|

|
|
|



|







118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<li><a href="#section-78" id="toc-section-78"><span class="toc-section-number">2.42</span> </a></li>
<li><a href="#section-79" id="toc-section-79"><span class="toc-section-number">2.43</span> </a></li>
<li><a href="#section-80" id="toc-section-80"><span class="toc-section-number">2.44</span> </a></li>
</ul></li>
<li><a href="#小结" id="toc-小结"><span class="toc-section-number">3</span> 小结</a></li>
<li><a href="#原因" id="toc-原因"><span class="toc-section-number">4</span> 原因</a>
<ul>
<li><a href="#召唤时的卡名提示" id="toc-召唤时的卡名提示"><span class="toc-section-number">4.1</span> 召唤时的卡名提示</a>
<ul>
<li><a href="#分析" id="toc-分析"><span class="toc-section-number">4.1.1</span> 分析</a></li>
<li><a href="#悠悠" id="toc-悠悠"><span class="toc-section-number">4.1.2</span> 「悠悠」</a></li>
</ul></li>
<li><a href="#料理对决类的失误" id="toc-料理对决类的失误"><span class="toc-section-number">4.2</span> 料理对决类的失误</a>
<ul>
<li><a href="#分析-1" id="toc-分析-1"><span class="toc-section-number">4.2.1</span> 分析</a></li>
<li><a href="#糕冷的料理对决" id="toc-糕冷的料理对决"><span class="toc-section-number">4.2.2</span> 「糕冷的料理对决」</a></li>
<li><a href="#连接蜘蛛" id="toc-连接蜘蛛"><span class="toc-section-number">4.2.3</span> 「连接蜘蛛」</a></li>
<li><a href="#连接蜘蛛-1" id="toc-连接蜘蛛-1"><span class="toc-section-number">4.2.4</span> 「连接蜘蛛」</a></li>
<li><a href="#连接蜘蛛-2" id="toc-连接蜘蛛-2"><span class="toc-section-number">4.2.5</span> 「连接蜘蛛」</a></li>
</ul></li>
<li><a href="#残局模式的-act.png-问题" id="toc-残局模式的-act.png-问题"><span class="toc-section-number">4.3</span> 残局模式的 act.png 问题</a>
<ul>
<li><a href="#分析-2" id="toc-分析-2"><span class="toc-section-number">4.3.1</span> 分析</a></li>
<li><a href="#额外卡组区域" id="toc-额外卡组区域"><span class="toc-section-number">4.3.2</span> 额外卡组区域</a></li>
<li><a href="#墓地区域" id="toc-墓地区域"><span class="toc-section-number">4.3.3</span> 墓地区域</a></li>
<li><a href="#除外区域" id="toc-除外区域"><span class="toc-section-number">4.3.4</span> 除外区域</a></li>
<li><a href="#卡组区域" id="toc-卡组区域"><span class="toc-section-number">4.3.5</span> 卡组区域</a></li>
</ul></li>
</ul></li>
</ul>
3066
3067
3068
3069
3070
3071
3072

3073
3074
3075
3076
3077
3078
3079

3080
3081
3082
3083
3084
3085
3086
<ol type="1">
<li>比如「灵魂交错」,应该为其他卡增加一个强制条件</li>
</ol></li>
</ol>
<p>暂时先小结这些吧。</p>
<h1 data-number="4" id="原因"><span class="header-section-number">4</span> 原因</h1>
<h2 data-number="4.1" id="召唤时的卡名提示"><span class="header-section-number">4.1</span> 召唤时的卡名提示</h2>

<p>(在残局模式中)</p>
<p>当我方召唤「悠悠」时,会有一个关于「悠悠」的卡名提示。</p>
<p>当对方召唤「悠悠」时,<b>不会有</b>一个关于「悠悠」的卡名提示。</p>
<p>在我方召唤「悠悠」时,会产生 MSG_HINT 和 MSG_SELECT_PLACE 。</p>
<p>但在对方召唤「悠悠」时,只会产生 MSG_SELECT_PLACE 。</p>
<p>这是因为 single_mode.cpp 的 SinglePlayAnalyze 在进行 MSG_HINT
的消息转发时会做一个多余的玩家判断。</p>

<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

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







>







>







3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
<ol type="1">
<li>比如「灵魂交错」,应该为其他卡增加一个强制条件</li>
</ol></li>
</ol>
<p>暂时先小结这些吧。</p>
<h1 data-number="4" id="原因"><span class="header-section-number">4</span> 原因</h1>
<h2 data-number="4.1" id="召唤时的卡名提示"><span class="header-section-number">4.1</span> 召唤时的卡名提示</h2>
<h3 data-number="4.1.1" id="分析"><span class="header-section-number">4.1.1</span> 分析</h3>
<p>(在残局模式中)</p>
<p>当我方召唤「悠悠」时,会有一个关于「悠悠」的卡名提示。</p>
<p>当对方召唤「悠悠」时,<b>不会有</b>一个关于「悠悠」的卡名提示。</p>
<p>在我方召唤「悠悠」时,会产生 MSG_HINT 和 MSG_SELECT_PLACE 。</p>
<p>但在对方召唤「悠悠」时,只会产生 MSG_SELECT_PLACE 。</p>
<p>这是因为 single_mode.cpp 的 SinglePlayAnalyze 在进行 MSG_HINT
的消息转发时会做一个多余的玩家判断。</p>
<h3 data-number="4.1.2" id="悠悠"><span class="header-section-number">4.1.2</span> 「悠悠」</h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

Debug.SetPlayerInfo(1,8000,0,0)
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121


Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()
</code></pre>
<h2 data-number="4.2" id="料理对决类的失误"><span class="header-section-number">4.2</span> 料理对决类的失误</h2>
<h3 data-number="4.2.1" id="分析"><span class="header-section-number">4.2.1</span> 分析</h3>
<p>「糕冷的料理对决」<b>应该可以</b>把「圣菓使
考维曲天使」特殊召唤到对方的额外怪兽区域,但现在,虽然出现了代表可选的背景线,但是却不能选择那个区域。</p>
<p>同样的事情,也发生在残局模式中,比如当我方控制对方要特殊召唤怪兽到额外怪兽区域时,就也出现了代表可选的背景线,但是却不能选择那个区域。</p>
<p>通过对残局模式的追踪,可以发现,当我方控制对方要特殊召唤怪兽到额外怪兽区域时,
MSG_SELECT_PLACE 有两个值是异常的:</p>
<ol type="1">
<li><p>hovered_controler</p></li>







|







3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127


Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()
</code></pre>
<h2 data-number="4.2" id="料理对决类的失误"><span class="header-section-number">4.2</span> 料理对决类的失误</h2>
<h3 data-number="4.2.1" id="分析-1"><span class="header-section-number">4.2.1</span> 分析</h3>
<p>「糕冷的料理对决」<b>应该可以</b>把「圣菓使
考维曲天使」特殊召唤到对方的额外怪兽区域,但现在,虽然出现了代表可选的背景线,但是却不能选择那个区域。</p>
<p>同样的事情,也发生在残局模式中,比如当我方控制对方要特殊召唤怪兽到额外怪兽区域时,就也出现了代表可选的背景线,但是却不能选择那个区域。</p>
<p>通过对残局模式的追踪,可以发现,当我方控制对方要特殊召唤怪兽到额外怪兽区域时,
MSG_SELECT_PLACE 有两个值是异常的:</p>
<ol type="1">
<li><p>hovered_controler</p></li>
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177


Debug.ReloadFieldEnd()

aux.BeginPuzzle()

</code></pre>
<h3 data-number="4.2.3" id="section-81"><span class="header-section-number">4.2.3</span> </h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

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







|







3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183


Debug.ReloadFieldEnd()

aux.BeginPuzzle()

</code></pre>
<h3 data-number="4.2.3" id="连接蜘蛛"><span class="header-section-number">4.2.3</span> 「连接蜘蛛」</h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

Debug.SetPlayerInfo(1,8000,0,0)
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
Debug.AddCard(27288416,1,1,LOCATION_MZONE,0,POS_FACEUP_ATTACK)

Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()

</code></pre>
<h3 data-number="4.2.4" id="section-82"><span class="header-section-number">4.2.4</span> </h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

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







|







3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
Debug.AddCard(27288416,1,1,LOCATION_MZONE,0,POS_FACEUP_ATTACK)

Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()

</code></pre>
<h3 data-number="4.2.4" id="连接蜘蛛-1"><span class="header-section-number">4.2.4</span> 「连接蜘蛛」</h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

Debug.SetPlayerInfo(1,8000,0,0)
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
Debug.AddCard(27288416,1,1,LOCATION_MZONE,0,POS_FACEUP_ATTACK)

Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()

</code></pre>
<h3 data-number="4.2.5" id="section-83"><span class="header-section-number">4.2.5</span> </h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

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







|







3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
Debug.AddCard(27288416,1,1,LOCATION_MZONE,0,POS_FACEUP_ATTACK)

Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()

</code></pre>
<h3 data-number="4.2.5" id="连接蜘蛛-2"><span class="header-section-number">4.2.5</span> 「连接蜘蛛」</h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)

Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN,5)

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

Debug.SetPlayerInfo(1,8000,0,0)
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286

Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()

</code></pre>
<h2 data-number="4.3" id="残局模式的-act.png-问题"><span class="header-section-number">4.3</span> 残局模式的 act.png 问题</h2>
<h3 data-number="4.3.1" id="分析-1"><span class="header-section-number">4.3.1</span> 分析</h3>
<p>当我方在残局模式控制对方并且到了对方回合时, act.png
并没有显示到对方区域,而是显示到了我方区域。</p>
<p>这是由于 drawing.cpp 在绘制 act.png
时并<b>没有考虑到</b>残局模式的这一情况。</p>
<p>也就是说,一般情况下是遇不到这个失误的。</p>
<h3 data-number="4.3.2" id="额外卡组区域"><span class="header-section-number">4.3.2</span> 额外卡组区域</h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)







|







3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292

Debug.ReloadFieldEnd()

--~ aux.BeginPuzzle()

</code></pre>
<h2 data-number="4.3" id="残局模式的-act.png-问题"><span class="header-section-number">4.3</span> 残局模式的 act.png 问题</h2>
<h3 data-number="4.3.1" id="分析-2"><span class="header-section-number">4.3.1</span> 分析</h3>
<p>当我方在残局模式控制对方并且到了对方回合时, act.png
并没有显示到对方区域,而是显示到了我方区域。</p>
<p>这是由于 drawing.cpp 在绘制 act.png
时并<b>没有考虑到</b>残局模式的这一情况。</p>
<p>也就是说,一般情况下是遇不到这个失误的。</p>
<h3 data-number="4.3.2" id="额外卡组区域"><span class="header-section-number">4.3.2</span> 额外卡组区域</h3>
<pre><code>Debug.SetAIName(&quot;base-2&quot;)