コメント

このコメントは、【トピック】トビラを使ったイベントの作り方を教えていただきたいですへのコメントです。

コメントの内容

Nyan mini rurun9(投稿日:2010/12/27 15:12/27/10)
最も面倒な(プレイする側にとっては判り易い)方法で説明します。
手順は三段階。

(1)
まず「カギ」をアイテムで作成して、マップに登録します。
詳細設定にて、種類は「道具」、使用可能「いいえ」、にしておきます。
メニューアイコンに画像(32*32で充分)を指定しておけば、所持アイテム欄でカギだと判り易いかもしれません。
仮にこのカギアイテムのID番号が9999だったとします。

開始スクリプトに、扉のフラグをセット。
今回はフラグ名を kagi と名付けてみます。
フラグ kagi が true なら扉があって、false だと扉が消える、というのを作る事にします。
setFlag("kagi",true) #扉を複数つくるならフラグ名を変えてコピペ


(2)
扉もキャラクターで作成しておきます。
アニメする必要は無いので、キャラクタアニメーション画像の設定にてパターン数を1とし、ドット絵は上下左右を同じ絵をコピペするだけで構いません。

マップ内に扉キャラをイベント設置、
・あたり判定「有り(通行不可能)」
・移動タイプ「固定(向きも固定)」
・開始方法「はなす/調べるの実行」
・有効条件(スクリプト)「 getFlag("kagi") 」
n=0; m=false; a=getItemIdArray()
while n<getArrayLength(a)
 if a[n]==9999 #カギ
  m=true
 end
n=n+1
end

if m
  setFlag("kagi", false)
  removeItemWithIndex(n) #使用したカギアイテムを消去しています
  speak("カギを使って扉を開けた")
else
 speak("カギがかかっている")
end


(3)
マップ内のキャラクターから鍵をもらう場合のイベントスクリプト
カギをひとつしか持てないように、してみます。
適当なキャラをマップに登録して設置して下さい。
speak("「カギをあげる」")

n=0; m=true
a=getItemIdArray() #所持アイテムの中にカギがあるか調べる
while n<getArrayLength(a)
 if a[n]==9999 #カギ
  m=false
 end
n=n+1
end

if m
 giveItem(9999)
 speak("カギをもらった")
else
 speak("「なんだ、持ってたのか」")
end

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

Nyan mini rurun9(投稿日:2010/12/27 15:12/27/10)
最も面倒な(プレイする側にとっては判り易い)方法で説明します。
手順は三段階。

(1)
まず「カギ」をアイテムで作成して、マップに登録します。
詳細設定にて、種類は「道具」、使用可能「いいえ」、にしておきます。
メニューアイコンに画像(32*32で充分)を指定しておけば、所持アイテム欄でカギだと判り易いかもしれません。
仮にこのカギアイテムのID番号が9999だったとします。

開始スクリプトに、扉のフラグをセット。
今回はフラグ名を kagi と名付けてみます。
フラグ kagi が true なら扉があって、false だと扉が消える、というのを作る事にします。
setFlag("kagi",true) #扉を複数つくるならフラグ名を変えてコピペ


(2)
扉もキャラクターで作成しておきます。
アニメする必要は無いので、キャラクタアニメーション画像の設定にてパターン数を1とし、ドット絵は上下左右を同じ絵をコピペするだけで構いません。

マップ内に扉キャラをイベント設置、
・あたり判定「有り(通行不可能)」
・移動タイプ「固定(向きも固定)」
・開始方法「はなす/調べるの実行」
・有効条件(スクリプト)「 getFlag("kagi") 」
n=0; m=false; a=getItemIdArray()
while n<getArrayLength(a)
 if a[n]==9999 #カギ
  m=true
 end
n=n+1
end

if m
  setFlag("kagi", false)
  removeItemWithIndex(n) #使用したカギアイテムを消去しています
  speak("カギを使って扉を開けた")
else
 speak("カギがかかっている")
end


(3)
マップ内のキャラクターから鍵をもらう場合のイベントスクリプト
カギをひとつしか持てないように、してみます。
適当なキャラをマップに登録して設置して下さい。
speak("「カギをあげる」")

n=0; m=true
a=getItemIdArray() #所持アイテムの中にカギがあるか調べる
while n<getArrayLength(a)
 if a[n]==9999 #カギ
  m=false
 end
n=n+1
end

if m
 giveItem(9999)
 speak("カギをもらった")
else
 speak("「なんだ、持ってたのか」")
end