私は mysql データベースに情報を保存するサーバー上の javascript でビデオ ゲームを書いています。単純なヒーリング ポーション アイテムに最初の効果を付けようとしています。エフェクトを実装するには、spell_id を使用してスペル テーブルを呼び出し、サーバーで実行するコードを含む effect というフィールドを取得します。eval() 関数を使用して、文字列内のコードを実行します。ゲームを最適化するために、できるだけ少ないクエリを実行したいと考えています。この例では (答えは他の同様の効果を評価するのに役立つと思います)、「健康」のような統計列を含む「プレイヤー」テーブルを更新したいと思います 次に、減少する数15になるnを追加し、250ミリ秒後に14を追加し、n = 1になるまで13を追加します。正味の効果は、ヘルスの大きなジャンプであり、プレイヤーのヘルスが到達した場合、これを達成するのは比較的簡単です。彼の最大許容制限効果はすぐに停止します...しかし、ヘルス> max_healthであるかどうかを確認し、プレーヤーのヘルスがそうでないことを確認するために、250ミリ秒ごとに選択して更新するのではなく、増加ごとに1つの更新ステートメントを実行したいと思います彼の最大体力を超えます。少し余談ですが、このデータが与えられた単一の更新が必要です max_health を調整し、プレイヤーのヘルスが最大ヘルスを超えないようにします。少し余談ですが、このデータが与えられた単一の更新が必要です max_health を調整し、プレイヤーのヘルスが最大ヘルスを超えないようにします。少し余談ですが、このデータが与えられた単一の更新が必要です
player_id health max_health
========= ====== ==========
1 90 100
(max_health-health) < 15 でない限り、ヘルスに 15 を追加します... この場合、10 だけ追加する必要があります。
より簡単な解決策は、更新するたびにヘルスと最大ヘルスを返すことができる場合です。ヘルス> max_health更新ヘルスセットヘルス=最大ヘルスの場合、最終的な擬似コードを実行してもかまいません
そのため、更新後にフィールドを返す方法を誰かが説明できれば役立ちます。または、更新内でロジックを使用する方法を誰かが示すことができれば、それも役立ちます。
また、十分な情報を提供できなかった場合は、申し訳ありませんが、質問を理解しにくくしたくなかったので、さらに提供していただければ幸いです。