TELイベント

アバター
haryu1104
記事: 25
登録日時: 2015年11月21日(土) 21:39

TELイベント

投稿記事by haryu1104 » 2016年2月13日(土) 18:05

誰かに電話をかけるプラグインをリクエストします。
打てる文字は全部で11文字にしたいです。なのでイベントコマンドの数値入力の処理では数が足りません。
これを使ってタクシーを呼ぶ、出張ショップを呼ぶなどのコモンイベントを作ろうと思ってます。
プラグインの知識がないので最初は全てイベントコマンドだけで作ろうとしました。
しかし電話のボタンは0~9まであり、変数として組み合わせてひとつひとつの番号で条件を一致させようとするとものすごい手間がかかってしまいます。ざっと計算すると何万通りも組み合わせがあり、途中で挫折しそうです。。
もっと簡単な方法はないかと考えましたが、やはりプラグインの知識がないと無理なのかな?と思いリクエストさせていただきました。
もし難しそうであれば、イベントコマンドの「数値入力の拡張」みたいなものでもかまいません。
数字を11文字入力してイベントを起こせるようなプラグインをどなたかよろしくお願いします。

ゆわか
記事: 306
登録日時: 2015年11月10日(火) 20:08
連絡を取る:

Re: TELイベント

投稿記事by ゆわか » 2016年2月14日(日) 00:06

プラグインではないですが、11桁の数値入力は
イベントコマンドのスクリプトで可能のようです。

$gameMessage.setNumberInput(代入する変数ID,桁数)

お試し下さい。

なお、条件分岐で使用できるデフォルトの数値は8桁までなので
条件分岐のスクリプトコマンドには、以下のように入力して下さい。

$gameVariables.value(変数ID) == 11桁の数字

参考:ツクールMVスクリプトリファレンスwiki
    http://ameblo.jp/rpgmaker1892/


>ざっと計算すると何万通りも組み合わせがあり、途中で挫折しそうです。

1つの変数に11桁の番号を入れる事は可能なので、そんなにたくさんの条件分岐は必要ありません。

例えば、最初の数字に1を選んだら
番号を格納する変数に10000000000を加算します。
(デフォルトのコマンドでは、8桁までしか入力できないので
 スクリプトにチェックを入れて数値を入力してね)

2番目の数字に4を選んだときは、一桁下げて、4000000000を加算・・・
という風に11桁まで足し算していけば
最終的に11桁の数字になるので
後は、ゲーム内に存在する電話番号と同じ数字かどうかだけ条件分岐すればいいです。

他にももっと簡単な方法があるかもしれませんが
参考までに。
アバター
子供戦車
記事: 47
登録日時: 2016年1月13日(水) 22:11
連絡を取る:

Re: TELイベント

投稿記事by 子供戦車 » 2016年2月14日(日) 14:53

プラグインではありませんが、イベントコマンドだけでの解決策として…。

市外局番に当たる部分と、市内局番の部分を分けて、別々に入力させたらどうかなー、と。
桁数を分割できるので、いろいろ導入せずに済むかと思います。
市外局番入力の条件分岐で「110」や「119」などの緊急ダイヤルを入れた際は特別なイベントが発生する、とか面白そう…。

あくまで参考までに。
******************************
* い し の な か *
エターナること早数年、
MVで復帰し創作意欲を
燃やす挙動のおかしい
ザコキャラ。
* い し の な か *
******************************
アバター
haryu1104
記事: 25
登録日時: 2015年11月21日(土) 21:39

Re: TELイベント

投稿記事by haryu1104 » 2016年2月15日(月) 20:59

>>ゆわかさん
ありがとうございます。
おっしゃるとおり試したら11桁表示ができました。
(画像じゃないのでわかりにくくてすみません↓)

例:
◆スクリプト: $gameMessage.setNumberInput(1,11)
◆条件分岐: スクリプト : $gameVariables.value(1) == 12345678987
 ◆文章 ”もしもし”
: それ以外のとき
 ◆文章 ”この電話は使われていません”
分岐終了

↑ただひとつ問題があって、一回目は条件分岐をみたしたときに ”もしもし” と表示されるはずが、いきなり「条件をみたさないときの分岐」に飛ばされて "この電話は使われていません" という文に行ってしまうようです。
ところが、2回目にもう一度話す(実行)すると、ちゃんと条件をみたして ”もしもし” と表示されます。
この辺の挙動がちょっとわかりませんでした。

>>子供戦車さん
ありがとうございます。
たしかにその方法が分岐の設定が楽ですね。
実はいまもうひとつの挑戦として、トリアコンタンさんのピクチャのボタン化プラグインを使ってTELイベントも作っています。
0~9のボタンのピクチャを表示させ、11桁まで押して全ての番号が一致すれば電話がつながるといったものです。
これがけっこう苦戦しています(汗
ボタンに応じて変数IDをわけるのか、ひとつひとつコモンイベントを作るのかなど、いろいろな組み合わせで簡単な方法を試行錯誤しています。
もうちょっとがんばってみますが、わからなくなったら子供戦車さんのおっしゃる方法も試してみます。
緊急ダイヤルイベントの発想もなかったのでこれもありがたく導入させてもらいます。
ゆわか
記事: 306
登録日時: 2015年11月10日(火) 20:08
連絡を取る:

Re: TELイベント

投稿記事by ゆわか » 2016年2月15日(月) 21:46

>ただひとつ問題があって

あー、ほんとですね、申し訳ないです。
私がテストしたときは、数値入力と条件分岐の間に
入力した変数をメッセージ表示する処理を入れてたんですけど
そうすると、ちゃんと分岐してました。

なぞですね。
奏ねこま
記事: 702
登録日時: 2016年1月20日(水) 20:04

Re: TELイベント

投稿記事by 奏ねこま » 2016年2月15日(月) 23:27

haryu1104 さんが書きました:↑ただひとつ問題があって、一回目は条件分岐をみたしたときに ”もしもし” と表示されるはずが、いきなり「条件をみたさないときの分岐」に飛ばされて "この電話は使われていません" という文に行ってしまうようです。
ところが、2回目にもう一度話す(実行)すると、ちゃんと条件をみたして ”もしもし” と表示されます。
この辺の挙動がちょっとわかりませんでした。

$gameMessage.setNumberInputは、数値入力の準備をするだけで、数値入力の実行まではしません。
では数値入力はどのタイミングで行われたのかというと、「次のメッセージ表示」のときになります。
つまり、数値入力画面が表示されたときには、すでに条件分岐の中に入ってしまっています。
(2回目が正しく動いたように見えたのは、1回目の入力が効いているから)

なので、条件分岐の前に数値入力を反映したい場合は、$gameMessage.setNumberInputと条件分岐の間に
「何も表示せず、入力待ちもしない文章表示イベント」を入れれば上手くいきます。
アバター
haryu1104
記事: 25
登録日時: 2015年11月21日(土) 21:39

Re: TELイベント

投稿記事by haryu1104 » 2016年2月16日(火) 18:42

なるほど。
数値入力の数字は内部では判定されてるけど、間にイベントを入れないと反映されないんですね。
スクリプトと条件分岐の間に\v[21]と入れると入力した文字も11桁表示されました。
こんな初歩的なこともわからず本当に申し訳ないです。
wikiは便利ですね。これから参考にします。
みなさんいろいろ教えていただき本当にありがとうございました。

“MV:プラグイン素材のリクエスト” へ戻る