RPGツクールMZ_15作目at GAMEDEV
RPGツクールMZ_15作目 - 暇つぶし2ch957:名前は開発中のものです。
22/06/15 12:04:24 PVSIzD9Q.net
アイテム取る→セルフスイッチAON
AONのとき並列 ウエイト(リポップさせたい時間)→AOFF
ってやれば簡単にできるけど 問題はMAP変えるとウエイトが最初からになるな

958:名前は開発中のものです。
22/06/15 16:19:04.12 ecRA1lLB.net
>>942
ありがとう
英語分からないから苦戦しそうw
ムノクラサイトで探してみようかな

959:名前は開発中のものです。
22/06/15 16:21:05.85 ecRA1lLB.net
>>945
それなんですよね
同マップ内ならウエイト重ねればできるんだけど(そもそもウェイトも本当は分単位とかがほしいところ)
マップ切り替えると待ち時間無くいくらでも取り放題になりそうだからプラグインを探す事にしました次第です

960:名前は開発中のものです。
22/06/15 18:06:47.31 ecRA1lLB.net
>>947
いくらでも取り放題じゃなくてウェイトがリセットされるのか
勘違いしてた

961:名前は開発中のものです。
22/06/15 18:10:36.01 lDGlZk7y.net
よくある世界地図から街をクリックして入場する機能を実現するのにプラグインは必須?
キー入力の方は並列処理でいけるのかな?

962:1/2
22/06/15 23:02:16.06 ZAnqCX5K.net
>>936
Javascriptの基本的な関数で、現在の時刻を取得できるのがあるから、それを使うとできそう。
「var bufferDate = new Date(); // シンボル取得時の日時オブジェクト生成」
細部はネットで調べてくれ。

以下は突貫で考えた参考。「時」をまたぐときの処理は強引に丸めてる。
なお、new Date()関連はちゃんと時間や分を取得できることは確認してるが、
処理全体はチェックしてないのでエラーがでたらすまない。

1 シンボル取得時に以下の処理で「取得した時の分」を記録
(イベントコマンドのスクリプトで実行)
var bufferDate = new Date(); // シンボル取得時の日時オブジェクト生成
var bufferHour = bufferDate.getHours(); // シンボル取得時の「時間」取得
var bufferMinute = bufferDate.getMinutes(); // シンボル取得時の「分」取得
$gameVariables.setValue(1, bufferHour); // 変数1に「シンボル取得時の時間」を記録
$gameVariables.setValue(2, bufferMinute); // 変数2に「シンボル取得時の分」を記録
(続く)

963:名前は開発中のものです。
22/06/15 23:02:37.49 ZAnqCX5K.net
(続き)
2 復活の処理は以下を並列処理で判定
(イベントコマンドのスクリプトで実行)
// 処理時の時間・分を取得
var checkDate = new Date(); // 処理の時点の日時オブジェクト生成
var checkHour = checkDate.getHours(); // 処理の時点の「時間」取得
var checkMinute = checkDate.getMinutes(); // 処理の時点の「分」取得
var bufferHour = $gameVariables.value(1); // 変数1に保存していた「シンボル取得時の時間」を取得
var bufferMinute = $gameVariables.value(2); // 変数2に保存していた「シンボル取得時の分」を取得
var cycleTime = 5; // シンボル復活までの時間(ここでは分)
if(checkHour == bufferHour){ // シンボル取得時と処理時の「時間」が同じ場合
if(checkMinute >= bufferMinute + cycleTime){
// 「処理の時点の「分」」が「シンボル取得時の分+復活までの時間」以上の場合
$gameSwitches.setValue(1, true); // フラグとしてスイッチ1をONに
}else {
$gameSwitches.setValue(1, false); // 時間が経過していない場合はフラグをOFFに
}
}else { // シンボル取得時と処理時の「時間」が違う場合
$gameSwitches.setValue(1, true); // フラグとしてスイッチ1をONに
// 処理が面倒なので「時間が変わっても復活」にしてしている。
// シンボル復活までの分を60の約数にしておけば、矛盾はない
}
以下、通常のイベントコマンドでスイッチ1がONの時に
イベント復活の処理を実行すればよい

964:名前は開発中のものです。
22/06/15 23:07:16.42 ZAnqCX5K.net
書き込みしてから気づいたが、
「// シンボル復活までの分を60の約数にしておけば、矛盾はない」は間違いだな。
シンボルを取得した時点の「分」が0じゃないから、「時間」をまたぐときはどうしてもずれるか。
解決するなら 「時間×60+分」にして、1日の中での累積分を計算して比較すればいいが、
その場合は「日」をまたぐ場合のズレも考える必要がある。
ここで力尽きたので後は宜しく

965:名前は開発中のものです。
22/06/15 23:35:26.46 s4MDnDpb.net
ほーん興味深いレスだな
俺も疑似ログインボーナスのロジックを考えたことあるけどだいたい似た仕組みだわ

966:名前は開発中のものです。
22/06/16 00:04:50.84 Vjflt9WS.net
変数ひとつひとつにシンボルのリポップ時間を記録するなら並列処理で変数をカウントダウンするだけでいいのでは

967:名前は開発中のものです。
22/06/16 00:30:05.91 ScS/eEat.net
>>952
想像してたより複雑そうで草

968:名前は開発中のものです。
22/06/16 00:41:06.24 sN8Ff7rF.net
ツクールのスクリプト弄ったことないから適当に書くけど
マップのアップデート関数の中で

969:名前は開発中のものです。
22/06/16 00:51:06.99 sN8Ff7rF.net
ツクールのスクリプト弄ったことないから適当に書くけど
セルフスイッチとカウントを入れたサイズ2の配列aを入れる配列bを用意してマップのアップデート関数の中で60回呼ばれる度に配列bに入れた配列aのカウントを1減らせばいいだけじゃないのか
配列aのカウントが0になったらセルフスイッチoffにでもして配列bから削除
再ポップするキラキラを取得するイベントには自分のセルフスイッチと再ポップしたい時間を入れて配列bにプッシュする感じで
セルフスイッチもマップidやイベントid等から特定できるだろうし
途中でレスしてしまった

970:名前は開発中のものです。
22/06/16 02:21:11.44 uTZW0q4s.net
歩数セルフスイッチOFFってないの?

971:名前は開発中のものです。
22/06/16 02:42:19.82 I0QyV4E5.net
そんなシステムいらないと思うが
薬剤師が活躍するゲームならまだしも

972:名前は開発中のものです。
22/06/16 02:59:47.25 iQwnvr2A.net
マップ上にキラキラアイテムが湧くことがあなたのゲームの面白さにつながってますか?

973:名前は開発中のものです。
22/06/16 04:30:32.67 qB+liift.net
キラキラ回収はクリッカーに近い感覚
アイテムアイコンが綺麗だと結構楽しい
再ポップをゲームの面白さに繋げるなら交換・合成ショップ、スコアボードあたりかね

974:名前は開発中のものです。
22/06/16 10:25:14.41 zIrBrF7c.net
シンボルはツール標準機能に欲しいなと思ったことはある
右クリック→シンボル配置→復活時間を設定
みたいな感じでね

975:名前は開発中のものです。
22/06/16 10:51:06.67 uTZW0q4s.net
まあぶっちゃけプレイヤーからしたら画面切り替えたら復活しろって思うだろうけどな

976:名前は開発中のものです。
22/06/16 11:43:17.24 juJOJI/+.net
アイデア沸いて組めるのすげえな

977:名前は開発中のものです。
22/06/16 11:59:38 q4ZrDs56.net
アツマールならグローバルサーバー変数API使うと良いよ
ブラウザの時間を使っちゃうといくらでも変えれるから

978:名前は開発中のものです。
22/06/16 18:16:32.67 uWwqS5be.net
スレをよく読んだら、>>936自体は別に「ゲームを中断している時間もカウントしたい」とは言ってないのか。
だとしたら、スクリプトでやるなら>>957の方法がスマートだし、
イベントコマンドでやるなら変数にプレイ時間を代入して差分をとればいいだけだな。

979:名前は開発中のものです。
22/06/17 04:01:12 aRjRun3H.net
>>966
後半の『変数にプレイ時間を代入して差分をとる』ところの意味って
変数にプレイ時間を代入して何をとるの?
差分とは?
もう少し細かく説明していただきたいですm(__)m

980:名前は開発中のものです。
22/06/17 05:37:24.66 4q0jJ83Y.net
>>967
966じゃないけど
特に何のヒネリもなく現在時間から過去時間を引いて経過した時間を算出するって意味だろ
一応付け足しておくが使う変数は1つじゃないぞ

981:名前は開発中のものです。
22/06/17 06:41:43.05 lg2SClqN.net
変数のプルダウンから代入できるプレイ時間って秒数で格納されるんだったっけか

982:名前は開発中のものです。
22/06/17 19:38:31.47 YzOBS3Z9.net
>>969
秒だな。
>>967



983:ベントコマンドでやるならこうなるので、参考までに。 ●ページ1 画像:シンボルの画像 トリガー:決定ボタン 実行内容: ◆注釈:アイテム入手処理  (略) ◆注釈:アイテム入手後処理 ◆変数の操作:#001 シンボル入手時の時間 = プレイ時間 ◆セルフスイッチの操作:A = ON ●ページ2 画像:シンボル入手後の画像 トリガー:並列処理 実行内容: ◆注釈:シンボル復活処理     (ここでは60秒で復活) ◆変数の操作:#002 処理時の時間 = プレイ時間 ◆変数の操作:#003 計算用変数 = 処理時の時間 ◆変数の操作:#003 計算用変数 -= シンボル入手時の時間 ◆条件分岐:計算用変数 >= 60  ◆セルフスイッチの操作:A = OFF  ◆ :分岐終了 ◆ウェイト:60フレーム ◆



984:名前は開発中のものです。
22/06/17 19:41:41.43 YzOBS3Z9.net
あと、ページ2の出現条件は
「セルフスイッチ A」にするのを忘れないように

985:名前は開発中のものです。
22/06/17 19:48:08.32 aRjRun3H.net
>>970
ありがとう!
これってマップ切り替わっても処理されるのかね?
キラキラ取ってそのあとすぐに別マップに移動して
また再度キラキラのマップに入った時に復活してたりするのかな?
いやまず自分で試してみるべきだな、ここまでやってくれたのでな
今から自分で試してここに報告を書きにくるぜ!

986:名前は開発中のものです。
22/06/17 19:50:33.89 YzOBS3Z9.net
>>972
ページ2で処理するときに「その時点のプレイ時間」を取得して判定するので、
マップを切り替えようが変わらない。
ただ、ゲームの中断中はプレイ時間が加算されないので無理。

987:名前は開発中のものです。
22/06/17 19:55:12.82 aRjRun3H.net
今入力しててふと思ったんですが
これって1つキラキラをとって1分以内に別のキラキラをとった場合ってどうなるんだろ
変数に異常をきたしそうな気がしてきた
まぁそれも試してみよう

988:名前は開発中のものです。
22/06/17 19:59:19.63 tLnWV4eH.net
キラキラを置く数だけ変数が要る……??

989:名前は開発中のものです。
22/06/17 20:23:01.98 aRjRun3H.net
試してみました
キラキラ取ってからすぐにマップ移動してまた入り直しても復活していなくて
第一関門突破
キラキラとってから直ぐにマップ移動して、その場で1分以上立ってからキラキラマップに入ったらちゃんと復活してました
マップ移動しても時間はカウントされてましたね!

990:名前は開発中のものです。
22/06/17 20:27:44.98 SiQIdS1r.net
よかったね

991:名前は開発中のものです。
22/06/17 20:29:42.60 aRjRun3H.net
キラキラを3つ並べて端から順番に10秒の感覚をあけて3つ取ったんだけど
最後の一個を取ってから1分後に全部ほぼ同じ時間で復活しましたね
これはキラキラを取ってから復活する前に新たに別のキラキラを取ると復活までの時間が更新されてしまうという状況にかもしれません
どうしよう

992:名前は開発中のものです。
22/06/17 20:30:34.81 YzOBS3Z9.net
特別条件の指定がなかったので、「1つのイベントにつき2つの変数」にしてる。
複数のイベントがあるなら、変数を配列にして管理すればやりやすいが、
そうなるとどうしてもスクリプトが入ってくるよ。

993:名前は開発中のものです。
22/06/17 20:31:37.71 YzOBS3Z9.net
>>978
そういう使い方なのね。
>>979のとおり、1つのイベントにつき2つ変数を設定してくれ。

994:名前は開発中のものです。
22/06/17 20:38:26.60 aRjRun3H.net
アドバイスありがとう
しかし『1つのイベントにつき2つ変数を用意する』という文言が黙示録の預言書の様に解読する事が困難な状態になっているんだ
出来れば>>970に加筆していただけたらありがたいのですが…

995:名前は開発中のものです。
22/06/17 20:43:04.12 YzOBS3Z9.net
キラキラ1用変数
 変数1:シンボル入手時の時間1
 変数2:処理時の時間1
キラキラ2用変数
 変数3:シンボル入手時の時間2
 変数4:処理時の時間2
…以下、キラキラの数だけ増やす
あと、それぞれのキラキライベントの実行内容で呼び出す変数を対応するものにする。
キラキラ1のイベントだったら、
 変数1:シンボル入手時の時間1
 変数2:処理時の時間1
を使用
キラキラ2のイベントだったら、
 変数3:シンボル入手時の時間2
 変数4:処理時の時間2
を使用
って感じ。
変数3:計算用変数は別にどうでもいい。
こういう手間がめんどくさいってなったらスクリプトに手を出すことになるんだが、
まずは基本的な処理の考え方を身に着けるために、イベントコマンドで地道に組んだ方が勉強になると思う。

996:名前は開発中のものです。
22/06/17 20:48:00.39 YzOBS3Z9.net
次スレ
RPGツクールMZ_16作目
URLリンク(mevius.2ch.sc)

997:名前は開発中のものです。
22/06/17 20:48:18.12 SiQIdS1r.net
くそ
寝るつもりだったのにじれってーわ
処理をスクショしてやるからちょっとまってろ

998:名前は開発中のものです。
22/06/17 21:12:49.50 SiQIdS1r.net
こうしろ
キラキラにカウントダウン用の変数をセット
URLリンク(i.imgur.com)
キラキラを出したり消したりしたい全マップでカウントダウンをぐるぐる回す
URLリンク(i.imgur.com)
これならきらきら1つで変数1つ回せる
マップ移動してもゲームのプレイ時間がどうのこうのと変に難しくする必要もない
スクリプト使ったり既成のプラグイン使えばもっと簡単に、複雑な処理も組めるけど
まずイメージしているやりたい処理が実際に組めるのか、何が足りないのか、どうすればできるのか考えてから手を付けたほうが良い

999:名前は開発中のものです。
22/06/17 21:17:50.43 SiQIdS1r.net
あー間違えた
これをセルフスイッチAで走らせて
URLリンク(i.imgur.com)
これを全マップに並列処理で走らせる
URLリンク(i.imgur.com)
すまん眠る直前で手掛けたから少し寝ぼけてた

1000:名前は開発中のものです。
22/06/17 21:43:02.60 aRjRun3H.net
作ってくれてありがとう!
とりあえず意味分かんないけど丸々写して再現しますが
『あー間違えた』が何にかかった間違えたなのかも理解できないですw
>>985の2枚目の画像は再現しても大丈夫なんですかね?

1001:名前は開発中のものです。
22/06/18 01:52:30.53 tpPfxgu7.net
>>987
公式マニュアルを最低2回は熟読して
オモチャやパズル感覚で簡易イベント組み立てて遊ぶ内に基礎は身に付いていく
お題を決めて色々な種類の宝箱を作るのが面白いからお勧め
例えば「時間経過で消える箱」とか「敵を倒すと復活する箱」とか
そういう物の延長に「時間経過で復活する箱」があるし、前のレスの意味も分かるようになる

1002:名前は開発中のものです。
22/06/18 06:23:49.75 Y5xFLaPq.net
>>987
1つ目の2個目の画像がおかしい
これのセルフスイッチを操作してる所がおかしくて、
いつもの手癖で他のセルフスイッチを操作するスクリプト
$gameSelfSwitches.setValue()で他のイベントのセルフスイッチを操作する動きを作ったつもりになってしまった
他のセルフスイッチを動かせるこのスクリプトはすごい汎用性が効くからぶっちゃけイベントコマンドで用意した方がいいくらい重要
とにかく、今俺が貼ったイベントコマンドの意味が読み取れないならスクリプトに手を出すのはやめたほうがいいよ
まずロジックの勉強からすべき

1003:名前は開発中のものです。
22/06/18 13:02:59.41 wKlMzQXT.net
シナリオつまんねえなってなってきた
もうひねり出せるものがねえ

1004:名前は開発中のものです。
22/06/18 13:05:49.07 hJYb2slY.net
ゲーム開発に限らず、創作のセンスは「もう搾り出せない」という所から閃いたアイデアが出てくるかどうかだよね
まあ凡人でもたまに起こるから常に頭の隅に入れておくといい
俺の私感では逆に疲れてる時とかアイデア出やすいぞ

1005:名前は開発中のものです。
22/06/18 13:24:18.56 wKlMzQXT.net
メンタルやられてるときの方が創作物は捗る気がするわ
メンタルやられに行くか…

1006:名前は開発中のものです。
22/06/18 14:16:42.47 4A827IOV.net
やられすぎて自害すんなよ

1007:名前は開発中のものです。
22/06/18 14:39:20.25 Rl+M9P9V.net
横からだけど
ゲーム起動時間じゃなく
ゲームプレイしていない時間も含むベントがそれで実装できるの?

1008:名前は開発中のものです。
22/06/18 14:59:47.04 6t0SRYpE.net
>>990
どうせプレイヤーなんて読まないし
実況者はどんなクソでもわー感動です~っていうから問題ないぞ

1009:名前は開発中のものです。
22/06/18 15:48:05.80 5GNJN9s9.net
>>950の仕組みならできる。
でも、>>970はプレイ時間を使ってるのでできないし、
>>986はプレイしてないとカウントが減らないのでできない。

1010:名前は開発中のものです。
22/06/18 18:45:31.98 1MleBbzA.net
>>988
>>989
ありがとう
一生懸命理解できるように解読するわ
そのスクリプトよさそうですね
セルフスイッチを操作したいイベントのIDとセルフスイッチのアルファベットと指定すればできる感じなのかな

1011:名前は開発中のものです。
22/06/18 19:53:49.71 SVd1CnsP.net
オフラインのゲームに起動してない時間までゲームに絡めるのは糞要素としか思えん
オンラインゲームみたいなことしたいんだろうけど
ぶっちゃけプレイヤーからしたらツクールゲーなんて画面変わったら復活で充分だよな
ゲーム内時間を実装してるからゲーム起動中だけ時間経過をカウントしてオンオフするのも面白い思うけど

1012:名前は開発中のものです。
22/06/18 20:26:39.42 eKK8cmus.net
二流は無駄を付け足してゆく
一流は無駄を削ぎ落とす

1013:名前は開発中のものです。
22/06/18 20:41:29.73 6t0SRYpE.net
削ぎ落とすためにまず肉付けが必要や

1014:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 54日 23時間 32分 46秒

1015:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch