スクリプト/コツ/売ったり買ったりできるお店処理

最終投稿者:Zararu128x128 mini dycoon 更新:2011/07/29 12:24:51
アイテムの削除の機能などが付け加わりましたので、
お店でアイテムを売ることもできるようになりました。
サンプルゲームは以下のとおりです。
ゲーム[ID:5105]

使用した関数一覧

以下の関数を組み合わせてお店の機能を実現しました。

toString : 文字列と数値の足し算ができないため
数値をこの関数で文字列に変換します。
http://rmake.jp/document/function_reference#toString%E9%96%A2%E6%95%B0

speakWithSelectArray : 選択肢を配列で受け取って表示します。
http://rmake.jp/document/function_reference#speakWithSelectArray%E9%96%A2%E6%95%B0

getItemParamWithId : アイテムのIDから対応するアイテムのパラメーターを取得します。
http://rmake.jp/document/function_reference#getItemParamWithId%E9%96%A2%E6%95%B0

getValueFromItemParam : アイテムパラメーターの配列からパラメーターの値を取得します。
http://rmake.jp/document/function_reference#getValueFromItemParam%E9%96%A2%E6%95%B0

getValueFromCharacterParam : キャラクターステータス配列からステータスを取得します。
http://rmake.jp/document/function_reference#getValueFromCharacterParam%E9%96%A2%E6%95%B0

getPartyMemberEquipmentIdArray : パーティメンバーが装備しているアイテムのIDの配列を取得します。
http://rmake.jp/document/function_reference#getPartyMemberEquipmentIdArray%E9%96%A2%E6%95%B0

getPartyMemberEquipmentParamWithIndex : パーティメンバーの装備のパラメーター配列をインデックス(どこに装備しているか)から取得します。
http://rmake.jp/document/function_reference#getPartyMemberEquipmentParamWithIndex%E9%96%A2%E6%95%B0

removePartyMemberEquipmentWithIndex : パーティメンバーの指定インデックスの装備アイテムを消去します。
http://rmake.jp/document/function_reference#removePartyMemberEquipmentWithIndex%E9%96%A2%E6%95%B0

removeItemWithIndex : 所持しているアイテムを消去します。
http://rmake.jp/document/function_reference#removeItemWithIndex%E9%96%A2%E6%95%B0

アイテム売買のコード

ここでは、アイテム売買の処理を以下のように記述しました。

#データなど
setVariable("店で使える通貨の変数名", "お金")

a = createArray()
a[0] = createArray()
a[0][0] = 1      #id
a[0][1] = 100  #価格
a[1] = createArray()
a[1][0] = 3
a[1][1] = 200
a[2] = createArray()
a[2][0] = 15
a[2][1] = 100
setVariable("店にあるアイテム", a)

a = createArray()
a[0] = createArray()
a[0][0] = 1
a[0][1] = 50
a[1] = createArray()
a[1][0] = 3
a[1][1] = 100
a[2] = createArray()
a[2][0] = 15
a[2][1] = 50
a[3] = createArray()
a[3][0] = 34
a[3][1] = 100
a[4] = createArray()
a[4][0] = 35
a[4][1] = 50
setVariable("売れるアイテム", a)

#お店処理

selectX = getSelectWindowX()
selectY = getSelectWindowY()
selectWidth = getSelectWindowWidth()
selectHeight = getSelectWindowHeight()

textId = createText(512 - 160, 16, 160, 64)


setSelectWindowRect(256, 100, 240, 200)


loop = true

speak("いらっしゃいませ。")

gold = getVariable(getVariable("店で使える通貨の変数名"))
items = getVariable("店にあるアイテム")
sellItems = getVariable("売れるアイテム")

itemList = createArray()

i = 0
while i < getArrayLength(items)
  param = getItemParamWithId(items[i][0])
  itemList[i] = getValueFromItemParam(param, getItemViewNameIndex()) + " " + toString(items[i][1])
  i = i + 1
end

pushArray(itemList, "買わない")


while loop
  setText(textId, getVariable("店で使える通貨の変数名") + " " + toString(gold))


  case speakWithSelect(3,"買う","売る","店を出る", 
      "いかがいたしますか?")
    when 0
      buyIndex = -1
      buyIndex = speakWithSelectArray(itemList, 
         "どちらをお買い上げになりますか?")
      if buyIndex >= getArrayLength(itemList) - 1
        buyIndex = -1
      end

      if buyIndex >= 0
        param = getItemParamWithId(items[buyIndex][0])
        if items[buyIndex][1] > gold
          speak("お金が足りません。")
        elsif getValueFromItemParam(param, getItemTypeIdIndex()) == 0
          
          if !giveItem(items[buyIndex][0])
            speak("持ち物がいっぱいです")
          else
            speak("お買い上げありがとうございます。")
            gold = gold - items[buyIndex][1]
          end
        else
          i = 0
          ct = 0
          memberList = createArray()
          memberId = createArray()
          while i < 4
            m = getPartyMember(i)
            if isPartyMember(m)
              a = getPartyMemberParam(m)
              memberList[ct] = getValueFromCharacterParam(a, getCharacterViewNameIndex())
              memberId[ct] =m
              ct = ct + 1
            end
            i = i + 1
          end
          memberList[ct] = "やめる"
          idx = speakWithSelectArray(memberList, "どなたが装備されますか?")
          if idx == ct

          else

            if !giveEquipmentPartyMember(memberId[idx], items[buyIndex][0])
              speak("装備できませんでした。")
            else
              speak("お買い上げありがとうございます。")
              gold = gold - items[buyIndex][1]
            end
          end
        end

      end

    when 1
      case speakWithSelect(3,"装備を売る","持ち物を売る","やめる", 
          "どれを売っていただけるのでしょうか?")
        when 0
          i = 0
          ct = 0
          memberList = createArray()
          memberId = createArray()
          while i < 4
            m = getPartyMember(i)
            if isPartyMember(m)
              a = getPartyMemberParam(m)
              memberList[ct] = getValueFromCharacterParam(a, getCharacterViewNameIndex())
              memberId[ct] =m
              ct = ct + 1
            end
            i = i + 1
          end
          memberList[ct] = "やめる"
          idx = speakWithSelectArray(memberList, "誰の装備を売っていただけるのでしょうか?")
          if idx == ct

          else
            i = 0
            ct = 0
            a = getPartyMemberEquipmentIdArray(memberId[idx])
            el = createArray()
            ei = createArray()
            while i < getArrayLength(a)
              if a[i] >= 0
                me = getPartyMemberEquipmentParamWithIndex(memberId[idx], i)
                el[ct] = getValueFromItemParam(me, getItemViewNameIndex())
                ei[ct] = i
                ct = ct + 1
              end

              i = i + 1
            end

            el[ct] = "やめる"
            idx2 = speakWithSelectArray(el, "どの装備を売っていただけるのでしょうか?")
            if idx2 == ct

            else
              price = 0
              i = 0
              priceLoopEnd = false
              while i < getArrayLength(sellItems) && !priceLoopEnd
                if sellItems[i][0] == a[ei[idx2]]
                  price = sellItems[i][1]
                  priceLoopEnd = true
                end
                i = i + 1
              end
              if priceLoopEnd
                case speakWithSelect(2,"はい","いいえ", 
                    toString(price) + "になりますが売っていただけますか?")
                  when 0
                    speak("売っていただきありがとうございます。")
                    gold = gold + price
                    removePartyMemberEquipmentWithIndex(memberId[idx], ei[idx2])
                  when 1
                    speak("まだ手放されないのですね。了解しました。")
                end
                
              else
                speak("まだ手放されないのですね。了解しました。")
              end

            end

          end

        when 1
          a = getItemIdArray()
          il = createArray()
          ii = createArray()
          i = 0
          ct = 0
          while i < getArrayLength(a)
            if a[i] >= 0
              mi = getItemParamWithIndex(i)
              il[ct] = getValueFromItemParam(mi, getItemViewNameIndex())
              ii[ct] = i
              ct = ct + 1
            end
            i = i + 1
          end
          il[ct] = "やめる"
          idx = speakWithSelectArray(il, "どちらのアイテムを売っていただけますか?")
          if idx == ct

          else
            price = 0
            i = 0
            priceLoopEnd = false
            while i < getArrayLength(sellItems) && !priceLoopEnd
              if sellItems[i][0] == a[ii[idx]]
                price = sellItems[i][1]
                priceLoopEnd = true
              end
              i = i + 1
            end
            if priceLoopEnd
              case speakWithSelect(2,"はい","いいえ", 
                  toString(price) + "になりますが売っていただけますか?")
                when 0
                  speak("売っていただきありがとうございます。")
                  gold = gold + price
                  removeItemWithIndex(ii[idx])
                when 1
                  speak("まだ手放されないのですね。了解しました。")
              end
                
            else
              speak("まだ手放されないのですね。了解しました。")
            end

          end          


        when 2
          
      end

      
    when 2
      speak("またのご来店をお待ちしています。")
      loop = false
  end
  
end

setVariable(getVariable("店で使える通貨の変数名"), gold)

setSelectWindowRect(selectX, selectY, selectWidth, selectHeight)

deleteText(textId)



結構長いのでコピー&ペーストして
使用するのがよいかと思います。

何を売るか、通貨をどうするかなどは
設定をおこなう必要がありますので、
設定の方法を以下に記します。
基本的に書き換える必要があるのは
"#データなど"のあとから、"#お店処理"の前までです。

通貨

通貨に利用している基本変数の名前を
以下のようにして"店で使える通貨の変数名"に渡します。
setVariable("店で使える通貨の変数名", "お金")


また、注意として開始スクリプトで、"お金"の初期化をする必要があります。

setVariable("お金", 0)


店で売っているアイテム


以下のようにして
idと価格の組の配列の配列を用意します。
a = createArray()
a[0] = createArray()
a[0][0] = 1      #id
a[0][1] = 100  #価格
a[1] = createArray()
a[1][0] = 3
a[1][1] = 200
a[2] = createArray()
a[2][0] = 15
a[2][1] = 100
setVariable("店にあるアイテム", a)

a[i][0]には売るアイテムのid、a[i][1]には売るアイテムの価格を設定します。
最後に基本変数"店にあるアイテム"にaを設定します。

店が買い取れるアイテム


店で売るときと基本的に同じですが、
マップ外のアイテムのidも持ち込まれる可能性があるため
その分も書く必要があります。
a = createArray()
a[0] = createArray()
a[0][0] = 1
a[0][1] = 50
a[1] = createArray()
a[1][0] = 3
a[1][1] = 100
a[2] = createArray()
a[2][0] = 15
a[2][1] = 50
a[3] = createArray()
a[3][0] = 34
a[3][1] = 100
a[4] = createArray()
a[4][0] = 35
a[4][1] = 50
setVariable("売れるアイテム", a)

最後に基本変数"売れるアイテム"にaを設定します。
ゲーム全体で売れるアイテムが同じなら開始スクリプトに
この処理を書いてもよいかと思います。

倒すとお金を落とす敵


マップエディタで配置した敵キャラを倒すと、
お金などを落とす処理を、おまけとしてここに書いておきます。

if getTurnBattleResult() == 
    getTurnBattleWin()
  #勝ったとき
  setVariable("お金", getVariable("お金") + 100)
  speak("お金を", 100, "手に入れた。\n", "現在の所持金額 ", getVariable("お金"))
  if rand(10) == 0
    speak("おや?敵がアイテムを落としていった。")
    if rand(2) == 0
      if giveItem(34)
        speak("炭素繊維プロテクタを手に入れた")
      else
        speak("炭素繊維プロテクタだが、もう持てない。あきらめよう")
      end
    else
      if giveItem(35)
        speak("ヘルメットを手に入れた")
      else
        speak("ヘルメットだが、もう持てない。あきらめよう")
      end
    end
  end

elsif getTurnBattleResult() ==
    getTurnBattleLose()
  #負けたとき
  

elsif getTurnBattleResult() ==
    getTurnBattleRunAway()
  #逃げたとき
  

end



アクションRPG用お店処理


アクションRPGの場合パーティメンバーがいないなどの理由で
使える関数などが変わります。
たとえば以下のようにします。

#データなど
setVariable("店で使える通貨の変数名", "お金")

a = createArray()
a[0] = createArray()
a[0][0] = 1      #id
a[0][1] = 100  #価格
a[1] = createArray()
a[1][0] = 3
a[1][1] = 200
a[2] = createArray()
a[2][0] = 15
a[2][1] = 100
setVariable("店にあるアイテム", a)

a = createArray()
a[0] = createArray()
a[0][0] = 1
a[0][1] = 50
a[1] = createArray()
a[1][0] = 3
a[1][1] = 100
a[2] = createArray()
a[2][0] = 15
a[2][1] = 50
a[3] = createArray()
a[3][0] = 34
a[3][1] = 100
a[4] = createArray()
a[4][0] = 35
a[4][1] = 50
setVariable("売れるアイテム", a)

#お店処理

selectX = getSelectWindowX()
selectY = getSelectWindowY()
selectWidth = getSelectWindowWidth()
selectHeight = getSelectWindowHeight()

textId = createText(512 - 160, 16, 160, 64)


setSelectWindowRect(256, 100, 240, 200)


loop = true

speak("いらっしゃいませ。")

gold = getVariable(getVariable("店で使える通貨の変数名"))
items = getVariable("店にあるアイテム")
sellItems = getVariable("売れるアイテム")

itemList = createArray()

i = 0
while i < getArrayLength(items)
  param = getItemParamWithId(items[i][0])
  itemList[i] = getValueFromItemParam(param, getItemViewNameIndex()) + " " + toString(items[i][1])
  i = i + 1
end

pushArray(itemList, "買わない")


while loop
  setText(textId, getVariable("店で使える通貨の変数名") + " " + toString(gold))


  case speakWithSelect(3,"買う","売る","店を出る", 
      "いかがいたしますか?")
    when 0
      buyIndex = -1
      buyIndex = speakWithSelectArray(itemList, 
         "どちらをお買い上げになりますか?")
      if buyIndex >= getArrayLength(itemList) - 1
        buyIndex = -1
      end

      if buyIndex >= 0
        param = getItemParamWithId(items[buyIndex][0])
        if items[buyIndex][1] > gold
          speak("お金が足りません。")
        elsif getValueFromItemParam(param, getItemTypeIdIndex()) == 0
          
          if !giveItem(items[buyIndex][0])
            speak("持ち物がいっぱいです")
          else
            speak("お買い上げありがとうございます。")
            gold = gold - items[buyIndex][1]
          end
        else

          if !giveEquipment(items[buyIndex][0])
            speak("装備できませんでした。")
          else
            speak("お買い上げありがとうございます。")
            gold = gold - items[buyIndex][1]
          end
        end

      end

    when 1
      case speakWithSelect(3,"装備を売る","持ち物を売る","やめる", 
          "どれを売っていただけるのでしょうか?")
        when 0
          i = 0
          ct = 0
          a = getEquipmentIdArray()
          el = createArray()
          ei = createArray()
          while i < getArrayLength(a)
            if a[i] >= 0
              me = getEquipmentParamWithIndex(i)
              el[ct] = getValueFromItemParam(me, getItemViewNameIndex())
              ei[ct] = i
              ct = ct + 1
            end

            i = i + 1
          end

          el[ct] = "やめる"
          idx2 = speakWithSelectArray(el, "どの装備を売っていただけるのでしょうか?")
          if idx2 == ct

          else
            price = 0
            i = 0
            priceLoopEnd = false
            while i < getArrayLength(sellItems) && !priceLoopEnd
              if sellItems[i][0] == a[ei[idx2]]
                price = sellItems[i][1]
                priceLoopEnd = true
              end
              i = i + 1
            end
            if priceLoopEnd
              case speakWithSelect(2,"はい","いいえ", 
                  toString(price) + "になりますが売っていただけますか?")
                when 0
                  speak("売っていただきありがとうございます。")
                  gold = gold + price
                  removeEquipmentWithIndex(ei[idx2])
                when 1
                  speak("まだ手放されないのですね。了解しました。")
              end
                
            else
              speak("まだ手放されないのですね。了解しました。")
            end

          end

        when 1
          a = getItemIdArray()
          il = createArray()
          ii = createArray()
          i = 0
          ct = 0
          while i < getArrayLength(a)
            if a[i] >= 0
              mi = getItemParamWithIndex(i)
              il[ct] = getValueFromItemParam(mi, getItemViewNameIndex())
              ii[ct] = i
              ct = ct + 1
            end
            i = i + 1
          end
          il[ct] = "やめる"
          idx = speakWithSelectArray(il, "どちらのアイテムを売っていただけますか?")
          if idx == ct

          else
            price = 0
            i = 0
            priceLoopEnd = false
            while i < getArrayLength(sellItems) && !priceLoopEnd
              if sellItems[i][0] == a[ii[idx]]
                price = sellItems[i][1]
                priceLoopEnd = true
              end
              i = i + 1
            end
            if priceLoopEnd
              case speakWithSelect(2,"はい","いいえ", 
                  toString(price) + "になりますが売っていただけますか?")
                when 0
                  speak("売っていただきありがとうございます。")
                  gold = gold + price
                  removeItemWithIndex(ii[idx])
                when 1
                  speak("まだ手放されないのですね。了解しました。")
              end
                
            else
              speak("まだ手放されないのですね。了解しました。")
            end

          end          


        when 2
          
      end

      
    when 2
      speak("またのご来店をお待ちしています。")
      loop = false
  end
  
end

setVariable(getVariable("店で使える通貨の変数名"), gold)

setSelectWindowRect(selectX, selectY, selectWidth, selectHeight)

deleteText(textId)


コメントする

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

コメント一覧

User icon mini 退会したユーザー(投稿日:2011/07/29 12:24, 履歴)
やっと自己解決しました。
          speak("お金が足りません。")
        elsif getValueFromItemParam(param, getItemTypeIdIndex()) == 0 ←ここ

この行で分岐してたんですね!

  • 今日分かったこと
getValueFromItemParam関数は、アイテムパラメーターの配列からパラメーターの値を取得する。
道具なら0が返される。武器なら1が返される。
User icon mini 退会したユーザー(投稿日:2011/07/28 00:32, 履歴)
自力でやろうとしたが
ifとwhileの数が多すぎて挫折しました(TT)
User icon mini 退会したユーザー(投稿日:2011/07/28 00:30, 履歴)
装備品と通常アイテムの区別はどこでやっているんですか?
Zararu128x128 mini dycoon(投稿日:2011/06/19 22:34, 履歴)
システム側でお店などを用意するのは
いろいろ考えるところがあるのではありますが
何かいい形にできないかは考えてみます。

どうもありがとうございます。
Logo mini hightoller(投稿日:2011/06/19 19:26, 履歴)
ここまで長いと、システムに組み込んでしまったほうが良いのでは?
と、思ったのですが。。
他にも宿屋等、金銭や装備のやり取りは、RPGにまず必要となる機能ですし、
「こんなシステムで動作してます、改造して使いたい人はコピペどうぞ」
位の、システム寄りな物であったほうが、
実装やエラー検証の手間が減り、ストーリーや演出に手が回せると思うのですが、
いかがでしょうか。
Zararu128x128 mini dycoon(投稿日:2011/06/19 19:07, 履歴)
とりあえずは変えないでやってみて、それで動いたら変えてみればよいかと思います。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2011/06/19 17:41, 履歴)
あとお金の変数は変えたほうがいいんですか?
User icon mini 退会したユーザー(投稿日:2011/06/19 17:40, 履歴)
1回やってみます
Zararu128x128 mini dycoon(投稿日:2011/06/19 13:57, 履歴)
何もいじらない状態ですと、アイテムの情報が見つからないために
getItemParamWithIdで無効な値が返りエラーが発生しているものと思われます。
そのため、その状態からマップへのアイテムの追加と、
アイテムidなどの変更をおこなってください。
基本変数の"店にあるアイテム"の中に登録されていないアイテムが一つでもあると
同様のエラーが発生しますのでご注意ください。

あと、"店にあるアイテム"の指定の仕方は2次元配列でおこなっておりますので
その部分の理解も必要かと思います。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2011/06/19 10:33, 履歴)
何もいじらずにやってみましたが、まったく同じエラーが出ました。
User icon mini 退会したユーザー(投稿日:2011/06/19 10:31, 履歴)
param = getItemParamWithId(items[i][0])
もしかしたらここかもしれません

調べてくれますか?

あとお金の単位っていじらないほうがいいんですか?
User icon mini 退会したユーザー(投稿日:2011/06/19 10:28, 履歴)
つぎは60行目に出ました
何もいじったりしていません
itemList[i] = getValueFromItemParam(param, getItemViewNameIndex()) + " " + toString(items[i][1])
i = i + 1
↑ここのようです

どこがどう違うんでしょうか、初心者のためよくわかりません
User icon mini 退会したユーザー(投稿日:2011/06/19 10:15, 履歴)
そんなこと言われても分からないです・・・。
配列ってどんなのか分からないですし・・・。
Sky001a mini qscwsxedc(投稿日:2011/04/10 12:17, 履歴)
できた
   mini ___(投稿日:2011/04/09 15:49, 履歴)
うーん…w

エラーメッセージは、「サーバーに接続できなくて云々」というもの等を除けば、
全てテストプレー、あるいは実際に公開されたゲームをプレイしている際にしか表示されません。
つまり、テストプレー中にエラーメッセージが出るというのは、分かりきっていることなんですよ。

dycoonさんの「何をしている時に」というのは、「どの命令を実行している時か」ということです。
その時役に立つのが、エラーメッセージ中の「line : 123」という部分です。
この部分の手前には、更にマップ名、あるいはチャプター名が表示されます。
そのマップ(もしくはチャプター)のスクリプトの123行目にエラーがある、ということです。

ただまあ、これは一種の指標のようなものですので、実際にはそれ以前の部分のミスが、
その行まで上手いことエラーにならなかった、ということもあり(え)ますが。

getValueFromItemParamの第一引数は配列でなければいけません。
エラーメッセージそのままのエラーですね。
第一引数に渡している変数は本当に配列になっていますか?ご確認ください。
Zararu128x128 mini dycoon(投稿日:2011/04/08 20:40, 履歴)
一応質問についてですが
http://rmake.jp/boards/2
に書いてあることは、
問題解決がよりスムーズにおこなえるようにするためのものでもあります。
そこら辺を意識して質問されると問題が解決しやすいかもしれません。

確認したいことがいくつかあります。
"#データなど"から"#お店処理"の間にはどのようなコードを書きましたか?
コピー&ペーストしてはっていただけると何かわかるかもしれません。
何をしているときにそのメッセージが表示されるかですが、
話しかけたときにおこるということでしょうか?
それとも売買の会話を続けていくとおこるということでしょうか?
より詳しい条件をお伝えいただけると何かわかるかもしれません。
あと、エラーメッセージで出ている"line : 123 "
とは、123行目でエラーが発生しているという意味です。
しかし、munieruさんのコードではおそらく行数が変わるような変更がおこなわれているため
元の処理でのどの部分に対応するかがわかりません。
どの部分の処理に対応するところで、
エラーメッセージが出ているかお伝えください。

よろしくお願いします。

User icon mini 退会したユーザー(投稿日:2011/04/05 19:05, 履歴)
アイテムはマップにすべて登録しました
あとテストプレーしたときに出ます
よろしくお願いします
Zararu128x128 mini dycoon(投稿日:2011/03/11 09:14, 履歴)
アイテムはマップに追加しましたか?
あと、何をしているときにそのエラーメッセージが出力されるのでしょうか?
行数がこちらのコードと変わっていると思われますので、
実際に対応する部分をお伝えください。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2011/03/10 21:53, 履歴)
いじるところ以外いじっていないのに
getValueFromItemParamの第1引数は配列でなければなりません。 line : 123
ってでました
Zararu128x128 mini dycoon(投稿日:2011/02/27 16:09, 履歴)
"アイテム売買のコード"についてはお店のイベントで書けば良いです。
"倒すとお金を落とす敵"は敵のイベントに書けばよいかと思います。

よろしくお願いします。

User icon mini usappu(投稿日:2011/02/27 14:48, 履歴)
setVariable("お金", 100)

という部分以外はお店を作るところに書けばいいのですか?

(上の長いやつ)
Zararu128x128 mini dycoon(投稿日:2011/02/20 19:18, 履歴)
setVariable("店で使える通貨の変数名", "お金")

この部分は通貨用の変数名を指定していますので
開始スクリプトで
setVariable("お金", 100)

などとしておいて使うのが良いかと思います。

通貨の変数を変えたい場合
例えば"Gold"にしたい場合は、
開始スクリプトで
setVariable("Gold", 100)

お店スクリプトの先頭で
setVariable("店で使える通貨の変数名", "Gold")

敵を倒したときは
  #勝ったとき
  setVariable("Gold", getVariable("Gold") + 100)
  speak("Goldを", 100, "手に入れた。\n", "現在の所持金額 ", getVariable("Gold"))

などとすればよいかと思います。

開始スクリプトで変数の初期化をする必要があるというのを
書くのを忘れていました。
すみません。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2011/02/20 19:04, 履歴)
setVariable("店で使える通貨の変数名", "お金")
というところがいくつもあるんですが
setVariable("店で使える通貨の変数名", "お金")
            ↑
            この部分は始めの部分以外変えなくて良いんですか?
Zararu128x128 mini dycoon(投稿日:2011/02/15 08:12, 履歴)
>スクリプトはEVENT敵キャラか
>ENEMY敵キャラどちらに入力すればよいですか?

倒すとお金を落とす敵については
Enemyの場合はそのまま書けばよいかと思います。
イベントの場合はstartTurnBattleを読んだあとに
書けば動作すると思います。

>あともうひとつ、deletetext(textid)の
>textidのところは何かと変えますか?

textidという変数名を同じイベントで
お店スクリプトを
またぐように使っているのではなければ
変える必要はありません。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2011/02/13 17:35, 履歴)
あともうひとつ、deletetext(textid)の
textidのところは何かと変えますか?
User icon mini 退会したユーザー(投稿日:2011/02/13 17:33, 履歴)
スクリプトはEVENT敵キャラか
ENEMY敵キャラどちらに入力すればよいですか?
Zararu128x128 mini dycoon(投稿日:2010/12/06 10:19, 履歴)
新たにゲームを作ってコードをコピー&ペーストしてみましたが
文法エラーは発生しないようです。
具体的にはどのような変更をおこなったのでしょうか?
文法エラーは元のコードのどの位置(できれば何行目かも)に出るのでしょうか?

よろしくお願いします。
User icon mini suraimu10(投稿日:2010/12/05 12:00, 履歴)
文法エラーが出力されます。
Zararu128x128 mini dycoon(投稿日:2010/11/03 16:10, 履歴)
> まるまるおさん

確認なのですが
何もいじっていない場合、文法エラーはでないのでしょうか?
書き換えたコードが影響して
他の場所でエラーが出力されるということはありえます。

> suraimu10さん

どのような症状がでるのでしょうか?
文法エラーが出力されるのでしょうか?

よろしくお願いします。
User icon mini suraimu10(投稿日:2010/11/03 15:15, 履歴)
コピペして、idと価格と名前のところだけ変えてもできません。