PR

【4/26】進化時にメインデッキに進化したカードが含まれている場合にデッキ10の内容がメインデッキと同じになってしまう問題の修正 #1786

kouho opened this at 2022-04-26T09:16:29; closed

Description

opened by kouho at 2022-04-26T09:16:29; updated 2022-04-26T18:37:04

概要

#1783
進化時にメインデッキに進化カードが含まれている場合デッキ10の内容がメインデッキと同じになってしまう問題の修正

user_no:252の人の問い合わせで
デッキ編集をした覚えがないのに勝手にデッキが変わっていたという問い合わせが来ており、
実際に10:46:40にブランシュを覚醒合成した際にデッキが変わっていることがmysqlのbinlogから判明

jr-dbm01上で以下を実行
mysqlbinlog mysql-bin.061973 --start-datetime="2022-04-24 10:46:10" --stop-datetime="2022-04-24 10:48:17" -vv | less

テスト方法、確認した内容

修正前確認方法

メインデッキにブランシュ:590を入れてデッキ10はメインデッキと違うデッキにする。
ブランシュを最終覚醒してデッキ10を確認するとメインデッキの内容に上書きされる


修正後確認

メインデッキにブランシュ:490を入れてデッキ10はメインデッキと違うデッキにする。
ブランシュを最終覚醒してデッキ10を確認するとメインデッキの内容に上書きされないことを確認

TODO

デッキのコピーやおまかせをした際のデッキ内のカード変更ログが残っていないため、現状問い合わせ時点のデッキ内のカードを特定できない場合がある。残すようにした方が良い。

本家でも同様の問題が起きているか確認

Comment

#18739 by kouho at 2022-04-26T14:07:55; updated 2022-04-26T14:07:55

@wada
本家にも確認しましたが同様の問題が起きていないようです。

ログを仕込んでデッキが書きかわった箇所を修正する対応で動作的に修正されることを確認しましたが、
ソース的に何が原因で問題が発生していたか分かっていないため不安が残ります。。。

お手数ですが和田さんの方でも確認していただけないでしょうか?

kouho add_label at 2022-04-26T14:07:58: レビュー待ち

Comment

#18747 by wada at 2022-04-26T16:51:05; updated 2022-04-26T16:51:05

@kouho
確認しました。OKです。
問題の原因について、こちらで確認した範囲では、

wada add_label at 2022-04-26T16:51:09: 和田 LGTM

Comment

#18749 by wada at 2022-04-26T17:06:23; updated 2022-04-26T17:06:23

以下のような現象だと認識しています。

装備中の$deck_no=1に進化前カードが入っているとして進化合成をした場合

1. S_CompositionCard()$revolutionフラグが1になる
2. S_SetSubDeck($user_no, $deck_no=1, $card, $equip=0)を呼び出し
3. S_SetSubDeck()で引数が$equip_no=0のため、$deck_no=1が装備中でなくなる
4. S_SetSubDeck()user_deck_stockのinsert実行後、S_SetBattleDeckPower($deck_no=1)が呼び出される
5. S_SetBattleDeckPower()S_GetSubDeck($user_no)が呼び出される
6. S_GetSubDeck()で装備中のデッキがないため、S_SetSubDeck($user_no, $deck_no=10, $cards, $equip=1)が呼び出される
7. S_SetSubDeck()$deck_no=10が他のデッキのカードで更新される

ここから先は確認できてません。

Comment

#18751 by kouho at 2022-04-26T17:42:01; updated 2022-04-26T17:42:01

@wada
確認ありがとうございます。
本家でも再現したようで和田さんがまとめてくれた流れについて本家側に共有しようと思います。

kouho merge at 2022-04-26T17:42:13: 【4/26】進化時にメインデッキに進化したカードが含まれている場合にデッキ10の内容がメインデッキと同じになってしまう問題の修正
kouho close at 2022-04-26T17:42:13: Close
kouho refer at 2022-04-26T18:37:04: 1791:【4/26】リリース・進化時デッキ編成バグ修正

Commit range

basee1d7f1c83ba74b0300dfad33138afe609689c63f
head98404d218f901fdda46cd7f534e600d5dbbc8be8
base branchjolly/jr-web:develop
head branchjolly/jr-web:fix_revo_deck

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed1 filesView patch
statusfile
modifiedlib/SubFunc.inc
Patch body is stored as a separate file to keep this page lightweight.