したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

改造・制作スレ part9

953名無しさん@穀雨 (*´∀`)【平成 → 令和】(´∀`*):2025/06/07(土) 23:37:15 ID:???
どーも>>949です

>>952さんが既に書いていますが、自勢力の戦死者数だけでいいならループ処理は不要です
(ループを用いるのは、「生存している全勢力」の戦死者数を、それぞれ数える場合のみ)


◇個人的な修正案(正直合ってる自信はない)
▼戦闘前に呼び出すイベント
event battle_deadcount_get
{
・まず戦闘前に、自勢力の全てのユニット数をカウントし、数値変数Aに保持する。
 1)プレイヤーの勢力を文字変数Aに格納
  (※可能であれば自勢力の文字変数格納は、ゲーム開始時に済ませておくと良い。)
  storePlayerPower(@base_power)
 2)自勢力が持つ全ての領土を、文字変数配列Aに格納
  storeSpotOfPower(@base_power, @base_area)
 3)文字変数配列A内の領土に居る、全てのユニットを文字変数配列Bに格納
  storeUnitOfSpot(@base_area, @base_unit)
 4)文字変数配列Bの要素数を数値変数Aに格納
  pushv(@base_unit, base_unit_numA)
}

 5)戦闘を行う

▼戦闘後に呼び出すイベント
event battle_deadcount_set
{
・戦闘終了後に、自勢力内の全てのユニット数を改めてカウントし、数値変数Bに保持する。

 6.1)プレイヤーの勢力を文字変数Aに格納
  →すでに(1)で獲得しているので、そちらを利用
 6.2)改めて自勢力が持つ全ての領土を、文字変数配列Aに格納。
  (※戦闘結果により、自勢力の所持領地数が変更されている可能性がある為)
  storeSpotOfPower(@base_power, @base_area)
 6.3)文字変数配列A内の領土に居る、全てのユニットを文字変数配列Bに格納
  storeUnitOfSpot(@base_area, @base_unit)

 7)戦闘終了後に更新した文字変数配列Bの要素数を数値変数Bに格納
  pushv(@base_unit, base_unit_numB)

 8)数値変数Aと数値変数Bの差を求める。
  sub(base_unit_numA, base_unit_numB)
 9)その差を死亡カウント用の変数に加算
  add(dead_num, base_unit_numA)
}

自勢力だけ数えるならこんな感じでいい。


以下補足、無視していい。

他勢力も数えたいなら、storePlayerPowerをstoreAllPowerに変えて、加えindex用いて
それぞれの領土獲得とそこのユニット獲得をして、それぞれの差を求めればよい
但し処理が重くなるし、ゲーム上の勢力数が安定しないなら、その為の数値変数枠を
あらかじめ作っておく必要や、数値変数と勢力を照合する必要がある為、正直おすすめしない


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板