Notes/購入メニュー自動生成例(YAYA)


前置き

準備

スクリプト

ItemList{ ( 'プリン','キャンディー','シュークリーム','モンブラン','ホールケーキ' ) }
//アイテムの名称を、アイテムID順に記述します。
//特に設定を弄らない場合、文字数は全角12文字(半角24文字)くらいまで。

OnShop{
  '\*\0\_q\n[200]'
  --
  OnShopList( '0-1-2-3-4','100-50-150-300-3000' )
  //OnShopList( アイテムID,アイテムの値段 )と記述します。
  //2つ以上商品がある場合は、「-(半角ハイフン)」で区切ります。
  --
  "\n\![*]\q[何も買わない,OnShopCancel]/
  \1所持金:\\ %(money)/
  \0\_q\_l[0,0]「いらっしゃいませ!」\e"
  //店員さんの挨拶。挨拶は大事ですね。
  //メニューが一気に表示された後、バルーンの1行目に台詞が流れます。少しゲームっぽくなるかも。
  //でもバルーンの大きさによっては表示が崩れます。お好みで。
}

OnShopList{
  _a0 = SPLIT( _argv[0],'-' )
  _a1 = SPLIT( _argv[1],'-' )
  _list = ''
  _len = 0
  
  for _i = 0; _i < ARRAYSIZE( _a0 ); _i++{
    _i0 = TOINT( _a0[_i] )
    _i1 = TOINT( _a1[_i] )
    //OnShopから引数として渡された情報を元に、順にリスト化します。
    
    if ( money < _i1 ){ _list += "■\f[color,#999999]%(ItemList[_i0])\f[color,default] " }
      //所持金が足りない場合の処理。アイテム名を灰色にしています。
    else{ _list += "■%(ItemList[_i0]) " }
      //所持金が足りている場合の処理。
    
    _len = GETSTRBYTES( ItemList[_i0] )
    _len = 48 - 21 - _len
    for _h = 0; _h < _len; _h++{ _list += '.' }
    //リストの見た目を揃えます。
    //アイテム名の文字数に応じて「.(半角ピリオド)」で埋めます。
    //削る処理は無いので、アイテム名をいい感じの文字数に収めて下さい。
    
    _len = GETSTRBYTES( _i1 )
    _len = 5 - _len
    for _h = 0; _h < _len; _h++{ _list += '.' }
    //再びリストの見た目を揃えます。
    //今度は値段の文字数に応じて「.(半角ピリオド)」で埋めます。
    //値段は5桁までに収まる想定にしてあります。
    //超える場合は「_len = 5 - _len」の部分を弄ってください。
    
    if ( money < _i1 ){ _list += " \\ %(_i1) \f[color,#999999]\![*][不足]\f[color,default]" }
    else{ _list += " \\ %(_i1) \![*]\q[[購入],OnBought,%(_i0),%(_i1)]" }
      //[購入]を選択するとOnBoughtイベントが発生し、
      //Reference0にアイテムID、Reference1に値段が格納されます。
    
    _list += '\n[120]'
    //改行が100%だと詰まって見えるので、少し開けると見やすいかも。
  }
  _list
}

OnBought{
  item[reference[0]]++
  money -= reference[1]
  OnShop
}

OnShopCancel{ '「ありがとうございました!」' }
//挨拶は大事ですね。

補足


戻る