コメント

このコメントは、【トピック】アイテム何度も貰っても困りますよ奥さん(ごめんなさい)へのコメントです。

コメントの内容

User icon mini 退会したユーザー(投稿日:2011/02/03 05:02/03/11)
「フラグ」を使えば解決します。
フラグというのは、貰ったか貰ってないかを記憶できる機能です。

さてこの機能、どういう使い方をすれば「アイテムを何度も渡さないように出来るが」ですが、手順は以下の通りです。
1.アイテムを貰ったという事を記録させる。
2.アイテムを貰う前に「アイテムを貰ったか」確認する。
以上です。順を追って説明します。

まず1.ですが、「setFlag関数」を使います。「関数リスト>命令リスト>フラグ設定関数」がソレです。
ダブルクリックすると「フラグ名」「フラグ」という入力欄が出るので、「フラグ名」には記憶しておきたい条件(例えば「ドラゴンソード貰った」とか)を、「フラグ」にはtrue(trueかfalse選べますが、これはスイッチのON・OFFのようなものです)を選択してOKします。
これをアイテムを渡すスクリプトの直後辺りに入れて置けば、下準備はOKです。

さて2.ですが、「getFlag関数」を使って記憶したフラグを確認します。関数の場所はsetの隣ですね。
さっきのフラグ名を入れてOKを押すとスクリプトが入りますが、これだけではアイテムを渡すスクリプトを止めれません。
そこでif文を使います。(http://rmake.jp/document/script_manual)
リンクでは数式を使ってやや数学っぽいですが、getFlagを使うこともできます。
if getFlag("ドラゴンソード貰った") != true
giveItem(**********)
end

「if 条件」と「end」の間のスクリプトは、条件が正しい時のみ動きます。この例では条件「getFlag("ドラゴンソード貰った") != true」が、つまりドラゴンソード貰ってない時にgiveItemスクリプトが動きます。

長くなりましたが、このようにすればスクリプトが2回以上動きません。
(別解答として、イベントそのものを動かさない方法もあります。これはイベントエディタの左下にある「有効条件」に、if文の条件を放りこめば、その条件が正しい時のみイベントが動く、というものです。)

この辺りの詳しい使い方は、運営者さんの講座ページを参考にしてみるのも良いかと思います:
・Rmake基本スクリプト講座(1) 【speak,if,flag,関数の使い方】
http://rmake.jp/games/4912/play

コメントの内容(一番最初の投稿)

User icon mini 退会したユーザー(投稿日:2011/02/03 05:02/03/11)
「フラグ」を使えば解決します。
フラグというのは、貰ったか貰ってないかを記憶できる機能です。

さてこの機能、どういう使い方をすれば「アイテムを何度も渡さないように出来るが」ですが、手順は以下の通りです。
1.アイテムを貰ったという事を記録させる。
2.アイテムを貰う前に「アイテムを貰ったか」確認する。
以上です。順を追って説明します。

まず1.ですが、「setFlag関数」を使います。「関数リスト>命令リスト>フラグ設定関数」がソレです。
ダブルクリックすると「フラグ名」「フラグ」という入力欄が出るので、「フラグ名」には記憶しておきたい条件(例えば「ドラゴンソード貰った」とか)を、「フラグ」にはtrue(trueかfalse選べますが、これはスイッチのON・OFFのようなものです)を選択してOKします。
これをアイテムを渡すスクリプトの直後辺りに入れて置けば、下準備はOKです。

さて2.ですが、「getFlag関数」を使って記憶したフラグを確認します。関数の場所はsetの隣ですね。
さっきのフラグ名を入れてOKを押すとスクリプトが入りますが、これだけではアイテムを渡すスクリプトを止めれません。
そこでif文を使います。(http://rmake.jp/document/script_manual)
リンクでは数式を使ってやや数学っぽいですが、getFlagを使うこともできます。
if getFlag("ドラゴンソード貰った") != true
giveItem(**********)
end

「if 条件」と「end」の間のスクリプトは、条件が正しい時のみ動きます。この例では条件「getFlag("ドラゴンソード貰った") != true」が、つまりドラゴンソード貰ってない時にgiveItemスクリプトが動きます。

長くなりましたが、このようにすればスクリプトが2回以上動きません。
(別解答として、イベントそのものを動かさない方法もあります。これはイベントエディタの左下にある「有効条件」に、if文の条件を放りこめば、その条件が正しい時のみイベントが動く、というものです。)

この辺りの詳しい使い方は、運営者さんの講座ページを参考にしてみるのも良いかと思います:
・Rmake基本スクリプト講座(1) 【speak,if,flag,関数の使い方】
http://rmake.jp/games/4912/play