カスタムメニュー(バグ報告掲示板

投稿: User icon mini 退会したユーザー 投稿:2011/12/29 14:13:29(最新:2011/12/31 18:14:31)

def Wrap()
  a = createArray()
  i = 0
  while i < gv("最大")
    if gv("場所")[i][0]
      pushArray(a, gv("場所")[i][1]) #所持品だけの選択肢配列 a をつくる
    end
   i = i + 1
  end
  pushArray(a, "移動をやめる") #終わらせる選択肢も追加

  b = speakWithSelectArray(a, "どこに移動しますか?\n(MP3消費)")
  i = 0
  while i < gv("最大")
    if a[b] ==  gv("場所")[i][1] #選んだのと同じものを図鑑一覧から探してワープ
      if getPlayerMP() >= 3
        ID = 16240
        x = gv("場所")[i][2]
        y = gv("場所")[i][3]
        subPlayerMP(3)
        setFlag("BGM", false)
        warp(ID,x,y)
      else
        speak("MPが足りない!")
      end
    end
    i = i + 1
  end
end

#カスタムメニュー関連
setCustomParamMenuEnable(true)
setCustomParamMenuName("サブメニュー")
def onShowCustomParameter()
    if getFlag("ワープ可")
      a = speakFullScreenWithSelect(true, 2, "詳細ステータス", "マジカルワープ",
                                    "サブメニュー")
    else
      a = speakFullScreenWithSelect(true, 1, "詳細ステータス",
                                    "サブメニュー")
    end
  if a == 1
    #マジカルワープ
    Wrap()
  else
    #経験値の情報
    setCustomParamName(0, "主人公    職業")
    setCustomParamValue(0, gv("職業"))

    setCustomParamName(2, "LV")
    setCustomParamValue(2, getLevelPartyMember(gv("PMID")[0]))

    setCustomParamName(3, "RANK")
    setCustomParamValue(3, gv("ランク"))

    setCustomParamName(4, "EXP")
    setCustomParamValue(4, gv("totalexp")[0])

    setCustomParamName(5, "NEXT")
    setCustomParamValue(5, gv("next")[0] - gv("exp")[0])
    
    if isPartyMember(gv("PMID")[1])
      setCustomParamName(8, "パートナー")
      setCustomParamValue(8, " ")

      setCustomParamName(10, "LV")
      setCustomParamValue(10, getLevelPartyMember(gv("PMID")[1]))

      setCustomParamName(11, "EXP")
      setCustomParamValue(11, gv("totalexp")[1])

      setCustomParamName(12, "NEXT")
      setCustomParamValue(12, gv("next")[1] - gv("exp")[1])
      end

    setCustomParamName(14, "所持金")
    setCustomParamValue(14, getMoney())

    if getFlag("銀行")
      setCustomParamName(15, "銀行預金")
      setCustomParamValue(15, gv("預かりG"))
    end

    setCustomParamName(16, "現在地")
    setCustomParamValue(16, gv("現在地"))

    setCustomParamName(20, "delete")
    setCustomParamValue(20, 30)
    deleteCustomParam(20)
  end
end

メニューからワープしたり経験値などの情報を得たりしたかったのですが、
フラグ(ワープ可)がtrueになってから
メニュー開く
   ↓
サブメニュー
  ↓
詳細ステータス
  ↓
メニュー開いたところに戻る
  ↓
サブメニュー
  ↓
マジカルワープ
  ↓
移動をやめる

こんな動きをすると、
何故か詳細ステータスでしか出現しないはずの
経験値の情報などが出てしまいました。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

User icon mini 退会したユーザー(投稿日:2011/12/31 18:14, 履歴)
deleteCustomParamをうまく使ったら直りました。
お騒がせして申し訳ありませんでしたorz
User icon mini 退会したユーザー(投稿日:2011/12/31 14:51, 履歴)
>dycoonさん
メニュー開く
  ↓
サブメニュー
  ↓
マジカルワープ
  ↓
移動をやめる

>だけでもカスタムステータスは表示されるのではないでしょうか?
出ません。
setCustomParamNameやsetCustomParamValueなどが
カスタムメニューに表示する内容を設定する関数だと、
一度設定したら
onShowCustomParameterが呼ばれればほぼ必ず出てしまう、
というのが現在の仕様ですか?

ということは、表示させたくない場合、
deleteCustomParamを使う必要があるんですよね?
Zararu128x128 mini dycoon(投稿日:2011/12/31 12:17, 履歴)
Rmakeのご利用ありがとうございます。

このコードそのものを検証したわけではありませんが
メニュー開く
  ↓
サブメニュー
  ↓
マジカルワープ
  ↓
移動をやめる

だけでもカスタムステータスは表示されるのではないでしょうか?

onShowCustomParameterに
カスタムパラメーターの表示内容以外の処理を書くことは、
あまり想定されていなかったので、
どう動くべきというものはないです。
基本的にはonShowCustomParameterが終わったら
カスタムパラメーターを表示するというように考えております。
setCustomParamNameやsetCustomParamValueなどは
カスタムメニューを表示する関数ではなく
カスタムメニューに表示する内容を設定する関数です。
そういう意味ではワープした時にカスタムメニューが
表示されないのがバグといえばバグかもしれません。
しかし、現状そのような使い方が広まってしまっていますので
ワープ時にカスタムメニューを表示しないという動作は
保持しようと考えております。
有用性を考えると、カスタムメニューの表示を
キャンセルできる関数があるとよいのかもしれませんので、
これは検討しようと思います。

現状で期待される動作を実現するには、
表示したくない場合に主人公のいる位置にwarpする
という方法があるかと思います。
フェードイン、フェードアウトが入ってしまうのと
位置の管理が面倒という問題はありますが。

よろしくお願いします。