したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

ツクール質問スレ3

310名無しさん:2018/10/28(日) 23:27:56 ID:B52D7r4k
勝利の処理判定前にバトルイベントをチェックさせる

module BattleManager
class << self
alias _process_victory process_victory
def process_victory
_process_victory if @phase == :turn_end
end
end
end

311名無しさん:2018/10/28(日) 23:29:27 ID:zbz3IO8.
MVじゃねーの?

312名無しさん:2018/10/29(月) 02:35:04 ID:Fo1z8Mkk
失礼、MVです

313名無しさん:2018/10/29(月) 08:11:06 ID:jl3A7/8s
BattleManager.checkBattleEnd = function() {
if (this._phase) {
if (this.checkAbort()) {
return true;
} else if ($gameParty.isAllDead()) {
this.processDefeat();
return true;
} else if ($gameTroop.isAllDead()) {
if(this._phase === 'turnEnd'){
this.processVictory();
return true;
}
}
}
return false;
};

314名無しさん:2019/02/22(金) 16:23:30 ID:Ge3V5QZ.
余ってるWebMoneyでシーンビルダーを買おうかと思ったんですが
MVとシーンビルダーは同じところで買わないと使えないみたいな縛りはないですよね?
例えばジェイピーストアで買ったMVとツクールストアで買ったシーンビルダーは使えないとか
スチーム版はスチーム版同士でしか使えないとか

315名無しさん:2019/02/22(金) 21:44:10 ID:jn9ODI36
どこで買っても使えるよ
まあシーンビルダー微妙だから俺は買って後悔したからあまりオススメしない

316名無しさん:2019/02/24(日) 11:23:44 ID:YitWgzNo
MVでのプレイについての質問です
プレイしてみたいと思って購入したゲームあるのですがツクール本体を持っていません
検索して公式サイトのダウンロードページに行ったのですがあったのはアップデートファイルでした
もしかして有料の製作ソフトを購入しないとプレイも出来ないのでしょうか?

317名無しさん:2019/02/24(日) 12:30:19 ID:rBm2xALc
遊ぶのに本体いらないよ

318名無しさん:2019/02/24(日) 13:45:39 ID:YitWgzNo
必要はないのですか
回答ありがとうございました

検索しても製作サイドのことしか出てきません
https://www.google.com/search?q=RPG%E3%83%84%E3%82%AF%E3%83%BC%E3%83%ABMV%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%82%B2%E3%83%BC%E3%83%A0%E3%82%92%E3%83%97%E3%83%AC%E3%82%A4%E3%81%97%E3%81%9F%E3%81%84&amp;rlz=1C1GTJE_jaJP510JP514&amp;oq=RPG%E3%83%84%E3%82%AF%E3%83%BC%E3%83%ABMV%E3%81%A7%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%82%B2%E3%83%BC%E3%83%A0%E3%82%92%E3%83%97%E3%83%AC%E3%82%A4%E3%81%97%E3%81%9F%E3%81%84&amp;aqs=chrome..69i57&amp;sourceid=chrome&amp;ie=UTF-8
わたしにはハードルが高かったようですね、ゲームも1000円しないものだったので諦めます

319名無しさん:2019/02/24(日) 14:58:23 ID:hWzLNeJs
(購入したものならなんでここで聞く前に作者に聞かないんだろ)

320名無しさん:2019/02/24(日) 15:02:47 ID:hWzLNeJs
煽りにきこえるかもしれないからちゃんと書いておくと
なんか特殊な起動方法を要求するものなのかもしれないけど
リードミーみたいなのを読んで何も書いてないなら
買った物ならちゃんと製作者に尋ねてみればいいと思う
金払って買った客に対してだしちゃんと応対してくれるよ

MVのゲームはRTPもいらないから
一番起動も簡単だと思うんだけどな

321名無しさん:2019/02/25(月) 23:57:56 ID:n..y66UQ
普通にアイコンダブクリしても起動しないんか?

322名無しさん:2019/02/26(火) 06:34:45 ID:Lr44I8C.
MVは特殊なん?

323名無しさん:2019/02/26(火) 06:39:03 ID:B1g3mLD6
むしろ簡単

324名無しさん:2019/02/26(火) 19:37:35 ID:Lr44I8C.
Readmeに気付かないとか?

325名無しさん:2019/02/27(水) 12:24:58 ID:Bx5R0Tqc
ソレっきり来てないし釣りだったんだろ

326名無しさん:2019/02/27(水) 13:48:01 ID:6ZuCSpZg
圧縮ファイルを解凍するソフトを持ってないとか

327名無しさん:2019/02/27(水) 18:44:03 ID:EmwijIa.
そりゃこの流れでもう一度質問には来れないだろ

328名無しさん:2019/03/30(土) 11:27:44 ID:EYGI1TRk
質問させて下さい。
友人がゲームを作るのが好きで、よく私にプレイして感想を聞いていました。
私がディアブロ2みたいのを作ってくれと何度かお願いしていたら
自分で作ってみたら?と言われ、年末に作ったゲームを交換しようということになりました。
RPGツクールで作れるということを教えて貰ったので、それで作ろうと思うのですが
どのRPGツクールを使えば似たゲームが作れるでしょうか?
素材は別の知人に有料で用意してもらうことになりました。プログラミングは出来ません。

329名無しさん:2019/03/30(土) 12:06:59 ID:EYGI1TRk
>>328
この質問は解決したので取り下げます。
MVで作ることにして購入致しました。

330名無しさん:2019/04/01(月) 10:44:27 ID:kiR.eGbM
絶対完成しないだろうなw

331名無しさん:2019/04/07(日) 06:57:59 ID:PWCWF6K2
数百万は下らんぞ

332名無しさん:2019/05/30(木) 00:50:25 ID:YMyNsNAw
プログラミングはできませんまで読んだ

333名無しさん:2019/08/13(火) 17:20:49 ID:GeHntVpw
ちょっと質問
バージョンはMVの1.6.1

MVの仕様としてイベントが移動した後、マップ移動を挟んで元のマップに戻ってくるとイベントの位置が元に戻るよな。
それを、イベントの位置が元に戻らないようにしたくて準公式のYEP_SaveEventLocationsを導入してみたんだけど
どうもこのプラグインは「移動ルートの設定」で座標が変わったイベントはしっかり記憶してくれる一方で
「イベントの位置設定」や、直接指定して移動させるスクリプトで座標が変わったイベントは無視されるみたいなんだよね。
いかんせん大量のイベントを一括で記憶させたい関係で一つ一つに移動ルートを設定したくないってのがあって
なんとかプラグイン自体に対応させることできないかな?

334名無しさん:2019/08/15(木) 00:18:11 ID:Tm5ej2Kc
単純にマップ切り替わる時にイベントの位置を全部記録しておけばいいのでは?

335名無しさん:2019/08/15(木) 00:50:41 ID:wSuwdBaw
>>334
当初はそれも考えたんだけどどうしても量が多くて管理しずらいんだよ。
加えて1マップごとに見てもイベント数がそれなりにあるから
マップに出入りするたびに配置し直す仕様にするとどうしても重くなっちまう。

つーかなんで移動ルートの設定にしか対応してないんだよあのプラグイン…

336名無しさん:2019/08/15(木) 01:48:37 ID:Tm5ej2Kc
>>335
位置が初期位置と異なるものだけ記録するようにするのはどうだろう?

あと配置し直すだけなら重くならないと思うよ
最初にイベントに座標与える時に、保存しておいた座標を与えるだけだから

337名無しさん:2019/08/15(木) 02:18:12 ID:wSuwdBaw
>>336
実は初期位置と異なるものってのがほぼ全部なんだよ…

座標を与えるっていうのはマップ読み込んだ後にイベントの自動実行で指定するんじゃなくて、
マップ読み込みのときに最初からその位置にイベントが置かれるようにするってこと?
そんなことプラグイン無しでできるの?

338名無しさん:2019/08/15(木) 09:56:29 ID:JAC8.66Y
>>337
ごめんプラグインありで考えてた
プラグイン改造しない前提なら厳しいかもね

プラグインありならイベントの位置保存、読み込みは比較的簡単、軽量にできる
全部のイベントの位置が変わってたとしても特に問題ないと思う
セーブ容量はかさむかもしれないけど

339名無しさん:2019/08/15(木) 11:58:25 ID:wSuwdBaw
>>338
ごめん話の流れからプラグイン無しでできるのかと勝手に勘違いしてた
プラグインありで全然いいし、セーブ容量も全く問題に感じないんだけど
改造するのも最初から自作するのも今の俺には少しハードル高いかもしれんw

やるとしたら件のYEP_SaveEventLocationsを改造するのが近道かな?
それとも最初から自分で作った方が楽だったりする?

340名無しさん:2019/08/16(金) 00:57:38 ID:AmK5ltEI
>>339
JavaScriptできるなら自分で組んだ方が、最初は時間かかるだろうけど後々自由に調整できていいんじゃないの
プログラミング全然できなくて1から勉強して作りますって場合は時間かかり過ぎてゲーム制作どころじゃなくなりそうだから改造かな

あとは実力のありそうなプラグイン作者に頼み込むのもいいかと
コミュ力は必要だが一番確実、プラグイン作れるようになるのが目的じゃなくてゲーム完成させるのが目的なら尚更
俺ならtwitterにいるプラグイン作者、もしくは英語ができるならYanfly氏本人に相談する

341名無しさん:2019/08/16(金) 02:02:27 ID:YkD.aQQQ
>>340
やっぱそうなるよなw
まあとりあえず自分で調べてみて、ダメそうなら人を頼るわ
色々アドバイスありがとうございました!

342名無しさん:2019/08/18(日) 15:27:41 ID:/2jlcyvU
ツクールMVでゲーム内全マップ全イベントのセルフスイッチのAだけを初期化するコマンドってありますか?

343名無しさん:2019/08/29(木) 01:20:20 ID:MpSP6HJE
ダメージ計算式について教えて下さい
FFのmp消費攻撃のようなものを作りたいのですが
mpが0の時に与ダメージが大幅減少、mpが1以上残っている時に通常ダメージを与えられる、という計算式はないでしょうか?

攻撃後にmpを減らすのはコモンイベントで行うとして

344名無しさん:2019/08/29(木) 10:38:18 ID:x65Glt9w
a.mp == 0 ? 0 : 1000

こんなのかな

345名無しさん:2019/09/01(日) 03:46:16 ID:dGZ01zQg
>>344
ありがとうございます
仕組みは何やらサッパリわからないのですができました!
ダメージ計算式をオリジナルのものにしたい場合はどう書くのでしょう

346名無しさん:2019/09/01(日) 05:43:13 ID:SFAIIyxI
a.mp == 0 ? ←使用者のMPが0かどうか分岐
0 : 1000 ←左側が0のときの計算式 右側は0以外の計算式

a.mp == 0 ? a.mp : a.mp*4+a.mat-b.mdf*2(適当)
とかにすればいい

347名無しさん:2019/09/01(日) 20:18:48 ID:dGZ01zQg
>>346
分かりやすい説明ありがとうございます
思ったとおりのスキルが作れそうです

348名無しさん:2019/09/04(水) 05:39:57 ID:Pk/4UawU
>>342
$gameSelfSwitches.clear(); でできるよ
これくらいはわざわざ質問スレで聞かないで自分で調べなよ。

349名無しさん:2019/09/04(水) 12:27:39 ID:ZxpGUZLE
>>348
そういうのってどうやって調べるんですか?
一覧だすコンソールコマンドとかあったりするのかな

いつもその段階でつまって勉強投げ出すものでw

350名無しさん:2019/09/04(水) 16:18:47 ID:zXm.3fz.
別に何質問したっていいだろ
答える答えないのも自由なんだから

351名無しさん:2019/09/05(木) 02:12:10 ID:aNT7HkKI
しかも>>342が聞いてるのってセルフスイッチのAだけって言ってんだからそのスクリプトじゃ無理なんじゃねえの?
知らんけど

352名無しさん:2019/09/05(木) 06:40:01 ID:a5zBbLLY
イベントコマンド > 上級 > スクリプト
に↓を記述

for (key in $gameSelfSwitches._data) {
if(key.match(/A/)){
delete($gameSelfSwitches._data[key]);
}
}
$gameSelfSwitches.onChange();

353名無しさん:2019/09/05(木) 07:09:29 ID:a5zBbLLY
348じゃないけど>>349にこたえるならば

>>一覧だすコンソールコマンド
強いて言うならば
console.log(window);

そこでセルフスイッチがGame_Switchesクラスで管理されていることを知る
rpg_objects.js内からGame_Switchesクラスを見つけてどういう処理してるのか見る
みたいな段階踏めばやりたいことができるようになるかもしれない

MVもAceと似たような構成してるから僕はAceのスクリプト見てゲーム全体の構成学んだけどね
個人的にはだけどあっちの方がコメントアウトが日本語だからわかりやすいしスクリプトエディタがそこそこ使いやすい(CTRL+SHIFT+Fで全検索できたり)
MVのスクリプトはJSに慣れてたり高機能なエディタ持ってたり英語が得意だったりする人向け

354名無しさん:2019/09/05(木) 13:21:02 ID:KuLuZQtE
質問スレの意味とは

355名無しさん:2019/09/05(木) 17:13:43 ID:4g7dysUs
>>353
ほええ、そんなやり方が
やっぱそんな風にしてめっちゃ時間かけないとわかんないんですね

もうちょっと公式でまとめてくれてもいいのになあ
手軽さが売りのツクールなんだから・・・

356名無しさん:2019/10/02(水) 09:48:43 ID:rjDhDU7o
今更rgss3のイベントコマンドのスクリプトを触ってみています
スクリプトに関しては初心者です
x = $game_map.events[0].x
という感じで変数に実行しているイベントの座標を格納したいんですがエラーをはかれてしまいます
この記述は誤りなんでしょうか?

357名無しさん:2019/10/02(水) 15:04:35 ID:sBV9kwIk
エラーメッセージ書いた方がいいよ

358名無しさん:2019/10/02(水) 19:54:24 ID:fDMx/Kkk
x = $game_map.events[n].x
nはイベントID(1以上、0だとnil)

359名無しさん:2019/10/02(水) 20:27:30 ID:5X88x0eg
>>357
すみません
帰ったら確認します

>>358
つまりイベントコマンドでよくある「このイベント」のような指定はできないってことですか?

360名無しさん:2019/10/02(水) 20:47:24 ID:fDMx/Kkk
$game_map.events[@event_id]

361名無しさん:2019/10/03(木) 00:58:41 ID:h12ipJTg
>>360
できました
ありがとうございます

362名無しさん:2019/10/07(月) 04:44:25 ID:XPPWoFLM
質問
http://rpgmaker-script-wiki.xyz/allItemGain_kowazavxace.php
このページにあるスクリプトそのままコピペしたらエラー出たんだけどどこ修正すればいい?
教えてエロい人

363名無しさん:2019/10/07(月) 06:41:27 ID:XPPWoFLM
ごめんちょっと変な勘違いしてたわ
上の質問はなかったことに

364名無しさん:2019/10/07(月) 10:05:26 ID:AqgqWZIU
失敗談は後進の役に立つこともあるから
何やったのかは書いといてほしい

365名無しさん:2019/10/07(月) 17:52:34 ID:XPPWoFLM
>>364
なんてことない、使ってるのMVなのにスクリプトがVXAceのだって気付かなかっただけだよw

366名無しさん:2019/10/07(月) 19:04:08 ID:ZBaTBy56
あるある

367名無しさん:2019/10/08(火) 07:25:40 ID:EeOIUNIY
あるあ・・・ねーよw
VXとAceとかならまだしもw

368名無しさん:2019/10/08(火) 15:39:52 ID:R8HONAsE
プラグインじゃなくてイベント内で使うスクリプトだから詳しくないと見分け付かないことはあるだろ
MV スクリプト でググってもVXやAceが混じってヒットすることもよくあるし

369名無しさん:2019/10/08(火) 22:34:37 ID:qVAywazE
VXAceです
イベントが他のイベントと重なっているかで分岐したいんですけど
イベントコマンドスクリプトで
x = $game_map.events[@event_id].x
y = $game_map.events[@event_id].y
value = $game_map.event_id_xy(x, y)
$game_variables[100] = value
として条件分岐で変数100が1以上の時とすればいけるかな?と思ったら
実行中のイベントのIDを返されてしまいます
当然と言えば当然なんですが詰まってしまいました
もう条件分岐のスクリプト欄で一発で分岐できる記述とかないのでしょうか

370名無しさん:2019/10/09(水) 23:16:30 ID:d6EqLO7Q
変数100にx,yにあるイベントの数が入るようにしてみるとか

x = $game_map.events[@event_id].x
y = $game_map.events[@event_id].y
value = $game_map.events_xy(x, y)
$game_variables[100] = value.size



条件分岐に記述する場合:
$game_map.events_xy(get_character(0).x, get_character(0).y).size > 1

371名無しさん:2019/10/10(木) 12:43:22 ID:RCp5R8Rw
>>370
ありがとうございます
条件分岐だけでできたので想定よりもかなりスマートになりました
座標のイベント数までsizeで取得できるんですね
しかし結局重なったイベントのIDが取得できないと意味がないことが新たに発覚してしまいました
指定位置の座標取得はイベントが複数重なっているとIDが大きい方を取得する仕様のようですがこれを小さい方を取得するように変更したりできるんでしょうか
該当箇所のスクリプトも見てみましたが大きい方を取得とか分岐とかそういった記述は見当たらず…
小さい方を取得してくれればすべて解決かつスマートにできるんですが

372名無しさん:2019/10/10(木) 15:30:30 ID:okDd/SBM
$game_map.events_xy(get_character(0).x, get_character(0).y).reverse[0].id

373名無しさん:2019/10/10(木) 23:41:40 ID:RCp5R8Rw
>>372
すみません
reverseの後の[0]は何を表しているんでしょうか

374名無しさん:2019/10/10(木) 23:58:09 ID:RCp5R8Rw
>>372
で教えて頂いたコードの使い方が分からずにいます
条件分岐に使うと重なっていなくても常にtrueを返しているようです
しかしreverseというメソッドを知れました
本当にありがとうございます
このメソッドは配列変数に使うということでしょうか
つまり指定位置の情報取得で配列変数の形で変数に代入すれば重なったIDをすべて格納できるという解釈で良いのでしょうか
少しやってみます

375名無しさん:2019/10/11(金) 00:55:37 ID:h0kaAqCg
[0] ←配列の0番目
reverse ←配列内を逆順に並び替え
だったんだけどIDが小さい方を取得したいならreverse要らないね?

条件分岐に入れるときIDが小さい方を取得するなら
$game_map.events_xy(get_character(0).x, get_character(0).y)[0].id == 3

IDが大きい方を取得するなら
$game_map.events_xy(get_character(0).x, get_character(0).y).reverse[0].id == 3

ってすると重なったEVのIDが3のときTrue


でもなんかこの調子だと複数のイベントが重なった時の分岐でもまた詰まりそうだね?

376名無しさん:2019/10/11(金) 01:13:42 ID:51yvplyA
>>375
理解できました
ありがとうございます
value = $game_map.events_xy(get_character(0).x,
get_character(0).y)[0].id
$game_variables[100] = value
でできました
状況的に3つ以上のイベントが重なることはほぼないのでこれでいけそうです
ありがとうございました

377名無しさん:2019/10/13(日) 08:42:02 ID:8Kvnv5hg
>>355

こういう変数とかメソッドは有志が色々まとめてくれてるよ。トリアコンタンさんとかやってたかな。たしかに本来は公式の役割じゃないか、と思ったりはする

あとはスクリプト開いてみたりとかかな。テキストだからメモ帳でも開けるんだけど、AtomとかVSCodeあたりを使ってみた方が色々便利よ。全く知らないところからだと導入は手間に感じるかもしれないけど、そこは慣れなので

378名無しさん:2019/10/17(木) 23:03:36 ID:n.bS8PfQ
使用してるのはMVです。
バトルにおいて、敵キャラが行動する直前にコモンイベントを挿入する方法ってあるでしょうか?
例えば、戦闘に参加しているキャラの行動順がハロルド、テレーゼ、スライム、マーシャ、ルキウスだったとして

ハロルド

テレーゼ
↓   ←このタイミングでコモンイベントを挿入することはできないでしょうか?
スライム

マーシャ

ルキウス

379名無しさん:2019/10/18(金) 15:56:32 ID:/9Ge7Q/k
行動前イベントっていうプラグインがあった気がする

380名無しさん:2019/10/18(金) 17:25:28 ID:FYmY1NEA
>>379
こんなちょうどいいプラグインがあるとは思いませんでした。
ありがとうございます!

381名無しさん:2019/10/19(土) 11:12:40 ID:vJFPtWtg
VXAceです
イベントに追従するゲージと文字を作りたくてヘルプを見たりググったりしながら試行錯誤したのですが、
一応形にはなったものの少しカクつくような気がします
というかハチャメチャな組み方をしている気がしてならないので見て頂きたいです

条件分岐 @window.nil?
正なら
@x = get_character(@event_id).screen_x - 50 #-50は微調整
@y = get_character(@event_id).screen_y
@w = 100 #縦幅
@h = 50 #横幅
@m = 1000 #ゲージの最大値
@window = Window_Base.new(@x, @y, @w, @h) #ウインドウ生成
@window.opacity = 0 #ウインドウを透明化
@window.contents.fill_rect(0, 0, @w, @h, Color.new(0, 0, 0)) #ゲージの背景を描写
@w2 = $game_variables[1] * @w / @m #ゲージ本体の横幅 変数1番を参照
@window.contents.fill_rect(0, 0, @w2, @h, Color.new(0, 180, 250)) #ゲージ本体を描写
@window.contents.font.size = 20 #フォントサイズ変更
@window.contents.draw_text(0, 0, 100, 25, $game_variables[1]) #変数1を表示

偽なら
@x = get_character(@event_id).screen_x - 50 #-50は微調整
@y = get_character(@event_id).screen_y
@window.dispose #解放
@window = Window_Base.new(@x, @y, @w, @h) #ウインドウ生成
@window.opacity = 0 #ウインドウを透明化
@window.contents.fill_rect(0, 0, @w, @h, Color.new(0, 0, 0)) #ゲージの背景を描写
@w2 = $game_variables[1] * @w / @m #ゲージ本体の横幅 変数1番を参照
@window.contents.fill_rect(0, 0, @w2, @h, Color.new(0, 180, 250)) #ゲージ本体を描写
@window.contents.font.size = 20 #フォントサイズ変更
@window.contents.draw_text(0, 0, 100, 25, $game_variables[1]) #変数1を表示


ゲージを移動する方法が見つからなかったので毎フレーム生成と解放を繰り返しているのですが
これでいいのか納得できていません
改善点とかあればアドバイス頂けると嬉しいです

382名無しさん:2019/10/19(土) 14:37:04 ID:9iSQ0RrY
>>少しカクつくような気が
もし並列処理で実行してる場合はウェイトが2フレ入るのでこれが原因かと
1フレームのループで処理すると解決

>>毎フレーム生成と解放を繰り返し
これは良くない、座標の変更のみで十分

他にも変数名が競合しそうであるとかWindow_BaseではなくSpriteで十分であるとか問題点はあるけど今回はスルー

◆条件分岐 @window.nil?
@w = 100 #縦幅
@h = 50 #横幅
@m = 1000 #ゲージの最大値
@x = get_character(0).screen_x - 50
@y = get_character(0).screen_y
@window = Window_Base.new(@x, @y, @w, @h)
@window.opacity = 0 #ウインドウを透明化
@window.contents.font.size = 20 #フォントサイズ変更
@_gauge_color = Color.new(0, 0, 0)
@_gauge_background_color = Color.new(0, 180, 250)
:分岐終了
◆ループ
@x = get_character(0).screen_x - 50
@y = get_character(0).screen_y
@window.contents.fill_rect(0, 0, @w, @h,
@_gauge_color) #ゲージの背景を描写
@w2 = $game_variables[1] * @w / @m
@window.contents.fill_rect(0, 0, @w2, @h,
@_gauge_background_color) #ゲージ本体を描写
@window.contents.draw_text(0, 0, 100, 25,
$game_variables[1]) #変数1を表示
@window.x = @x
@window.y = @y
◆ウェイト:1フレーム
:以上繰り返し

ttp://iup.2ch-library.com/i/i2020538-1571463140.png

383名無しさん:2019/10/22(火) 09:20:47 ID:Zpe7YfF2
>>382
返信が遅くなってしまい申し訳ありません
カクつきも減り綺麗にできました
.x = で座標が指定できるんですね
ありがとうございました

384名無しさん:2019/10/25(金) 00:40:33 ID:jDtREFjk
質問です
MVでスキルの速度補正に変数を代入する方法ってありますか?

385384:2019/10/25(金) 20:48:05 ID:jDtREFjk
すいません自己解決しました。失礼しました。

386名無しさん:2019/10/26(土) 00:54:09 ID:JyAwrddE
失礼なのは解決方法を書いていかないことだぞ
方法を書いていくなら後からログ見た人の役に立つ(ことがある)からそれはそれでいいんだよ

387名無しさん:2019/10/26(土) 02:47:29 ID:fT8r4oy6
諦めたので解決です

388名無しさん:2019/10/26(土) 03:49:31 ID:WsydOChQ
ツクールMVなんだけどさ、スキルのランダム4体ってあるじゃん?
あれHPの低いザコ4体が出てきたときそのスキルで一掃しようとしたら
なんか途中死体蹴りが入って敵が残ることもある仕様なんだよな。
ドラクエのばくれつけんみたいに、すでに死んだ敵は攻撃しない仕様に改造ってできないかな?

389名無しさん:2019/11/01(金) 15:45:00 ID:LTEiQ/PQ
RGSS3です
イベントコマンドのスクリプトにてグローバル変数ではなくインスタンス変数で作ったウィンドウを
外部から解放する方法はあるのでしょうか
場所移動やゲームオーバーでゲージが消えるようにしたいです
複数ゲージを表示かつ状況によって表示数が変わる構想のためグローバル変数では競合してしまいます
それかゲージ数に応じて変数名を変える方法があるのでしょうか
自分でも少しやってみたのですが変数名に変数が使えないようなので上手くいかず
ご教授願えると嬉しいです

390名無しさん:2019/11/01(金) 16:17:45 ID:7NnUEgQs
イベントコマンドだけでやろうとするな
ちゃんとクラスとメソッドを理解しろ

391名無しさん:2019/11/01(金) 16:40:25 ID:i3tupoBk
Hash使う能力があれば名前問題は解決するだろうけどスクリプトエディタで全部かけるぐらいの能力がないとバグだらけになるのがオチ

392名無しさん:2019/11/01(金) 17:06:37 ID:k/W4s0ig
ハッシュの勉強をします
ありがとうございました
スレ汚しをしてしまい申し訳ありません

393名無しさん:2019/11/02(土) 02:28:41 ID:2VCmcHLg
MVで質問なんですが
ステートの継続ターン数に値を代入することってできますか?

394名無しさん:2019/11/02(土) 03:36:16 ID:2FqsM0sg
//敵のステート
idx = 0 //敵集団の先頭
state_id = 10 //ステートのID(デフォの10は睡眠)
turn = 1 //継続ターン数
$gameTroop._enemies[idx]._stateTurns[state_id] = turn

//味方のステート
idx = 0 //パーティの先頭
state_id = 10 //ステートのID(デフォの10は睡眠)
turn = 1 //継続ターン数
actor_id = $gameParty._actors[idx]
$gameActors._data[actor_id]._stateTurns[state_id] = turn

395名無しさん:2019/11/02(土) 04:24:48 ID:2VCmcHLg
>>394
ありがとうございます、
やってみたところ
Cannot read property '_stateTurns' of undefined
と出てしまったのですがどうするべきでしょうか…

396名無しさん:2019/11/02(土) 04:27:15 ID:2VCmcHLg
すいませんもう少し試したところ
idx のところに定数を代入すると正常に動作したようでした。
最初に変数で試したのがいけなかったようです、失礼しました。

397名無しさん:2019/11/02(土) 04:52:00 ID:2VCmcHLg
しつこくて申し訳ないです
最後の行を
$gameActors._data[idx]._stateTurns[state_id] = turn
にして試したらできました!
ありがとうございます!

398名無しさん:2019/11/02(土) 19:46:12 ID:2FqsM0sg
なんかあんまり仕組み理解してなさそうで不安だけど出来たならいいや

399名無しさん:2019/11/07(木) 01:20:36 ID:f0/OEg.M
質問です
MVでスキル効果でコモンイベント実行を指定して、
そのスキルの対象が味方パーティか敵パーティかを判定するスクリプトを作りたかったんですが
色々調べてみたもののどうしてもうまくできません。

var action = BattleManager._action;
$gameVariables._data[6] = action.isForOpponent() ? 1 : 2;

ちょっと調べてみてこんな感じで書いてみたんですが当然うまく動くはずもなく困っています。
混乱などにも対応できるようにするにはどのように書けばよいのでしょうか?

400名無しさん:2019/11/07(木) 03:17:23 ID:QlxY3FVA
アクション起こす度にターゲット情報が初期化されてるっぽいからプラグインというかスクリプトを自作しないといけないかも?


↓プラグイン
(function() {
var __Game_Battler_prototype_setLastTarget = Game_Battler.prototype.setLastTarget;
Game_Battler.prototype.setLastTarget = function(target) {
__Game_Battler_prototype_setLastTarget.call(this, target);
this._lastTarget = target;
};
})();


↓スクリプト
var subject = BattleManager._subject;
$gameVariables._data[6] = subject.isActor() === subject._lastTarget.isEnemy() ? 1 : 2;

401名無しさん:2019/11/07(木) 03:25:03 ID:QlxY3FVA
ああ、こういう書き方するとセーブが膨れ上がるかも?
プラグインの中でisActorとか使って判定した方が良いのかも

402名無しさん:2019/11/07(木) 03:37:19 ID:QlxY3FVA
↓プラグイン
(function() {
var __Game_Battler_prototype_setLastTarget = Game_Battler.prototype.setLastTarget;
Game_Battler.prototype.setLastTarget = function(target) {
__Game_Battler_prototype_setLastTarget.call(this, target);
this._lastTargetIsEnemy = this.isActor() === target.isEnemy();
};
})();

↓スクリプト
$gameVariables._data[6] = BattleManager._subject._lastTargetIsEnemy ? 1 : 2;

403名無しさん:2019/11/07(木) 04:46:27 ID:f0/OEg.M
>>400-402
実装してみたら完璧な動作をしてくれました!
本当にありがとうございました!

404名無しさん:2019/11/08(金) 01:38:37 ID:jYTvv9so
質問
MVでマザー2のエナジーロボみたいに、HP0になると最後に爆発して道連れにしようとする敵って作る方法ないかな?

405404:2019/11/08(金) 20:56:17 ID:jYTvv9so
自己解決できそうになったところまで書いてみる。
rpg_object.jsにそれっぽい記述を見つけたんでプラグインにしてみたかった。

(function(){
Game_Battler.prototype.refresh = function() {
Game_BattlerBase.prototype.refresh.call(this);
if (this.hp === 0) {
if(this.enemy().meta.deathtrigger){
$gameTemp.reserveCommonEvent(10);
}
this.addState(this.deathStateId());
} else {
this.removeState(this.deathStateId());
}
};
})();

と、ここまで書いて敵キャラのメモ欄に<deathtrigger>を入れたら
ちゃんと倒した瞬間にコモンイベント10は実行された…んだけど
代わりに味方キャラが死んだときに this.enemy() is not a function とか言われた。
つーかなんで一個手前の this.hp ってやつは this だけでちゃんと敵味方双方に機能するのに
meta は this.meta でエラー出るんだよクソ

406名無しさん:2019/11/08(金) 21:37:43 ID:4J32/uaY
ぱっと見ただけで全然テストしてないから適当なこと言うかもしれないけど
Game_BattlerじゃなくてGame_Enemyにしてみるとか?
それとも味方も道連れ技使いたい感じ?

407404:2019/11/08(金) 21:42:53 ID:jYTvv9so
>>406
それでできたわwwwありがとうw
味方側に実装する気は無かったんで十分よw助かったわw

408名無しさん:2019/11/15(金) 00:50:05 ID:PXhU1eXc
Rgss3です
疑問のようなものなんですがここでしか聞けないので申し訳ありません
Game_Interpreterクラスにget_character(引数)というメソッドがありますが
これを呼び出して変数に代入したあとコンソールに表示すると引数で指定したIDのキャラクターの情報がズラッと並びますが
.xを付け加えるとその中からx座標だけを取得できますよね?
.で呼び出すのはメソッドだと思っていたのですがスクリプトエディタにもヘルプにもどこにも見当たりません
またイベントコマンドのスクリプトでしか使えないのも気になります
スクリプトエディタでやるとNomethoderrorになります
この.xは何者なんですか?

409名無しさん:2019/11/15(金) 02:30:46 ID:zeindyyA
Game_CharacterBaseのattr_reader :x

410名無しさん:2019/11/16(土) 10:53:47 ID:QSfKms9E
>>409
理解しました
ありがとうございます

411名無しさん:2019/11/16(土) 20:36:45 ID:w/Tw28vs
ツクールMVで、特定のアイテムの使用を禁止する、
アイテム版沈黙みたいなステート作りたいんだけどそういうプラグインってないかね?

つーか前々から思ってたんだけど昔からツクールって消費アイテムで戦うタイプのゲームにやたら冷たくない?
スキルにはデフォルトで沈黙っていうステートがあったりスキルタイプが増やせたり細かく設定できるのに
アイテムは使用時のメッセージすら変えられないとか冷遇されすぎだろ。
なんでシレンみたいな、リソースを丁寧に作っていくタイプのゲーム作らせてくれないんだよ…

412名無しさん:2019/11/16(土) 22:37:26 ID:MpQvN6LY
アイテム所持でスキル習得するタイプのプラグイン入れてアイテムと同じスキル覚えさせればいいんじゃね
スキルの使用条件にアイテム消費させるプラグインもあるし

いくらでもできるだろ

413名無しさん:2019/11/17(日) 01:52:45 ID:Jz8fQAnA
>>412
それやると移動中はアイテム覧じゃなくてスキルからアイテムを使うっていうおかしな挙動になるし
戦闘中はアイテムの残り個数が表示されなくなるからややこしいんだよ

414名無しさん:2019/11/17(日) 06:25:40 ID:wfEeAsIM
いやアイテムにも効果設定させておけばいいだけじゃないか?
スキルの説明欄に変数で取得した残り個数書いておけばいいだけじゃないか?

415名無しさん:2019/11/18(月) 01:17:19 ID:UJ5BVrCM
>>414
スキルが無駄に増えて見づらくのもあんまり気が進まないし
残り個数をアイテムごとに変数で取得して説明欄なんて作る側もやる側も面倒になり過ぎる。
戦闘中なら元々のアイテムウインドウにスキルのMPと同じ位置に表示されるからやっぱりそっちを使いたいってのが本音だな…

生意気言うようで申し訳ないがそれは最後の手段にするよ。
他の解決策が一つも見いだせなかったらそのやり方にするけど、積極的に採りたい手段じゃない。

416名無しさん:2019/11/19(火) 20:30:14 ID:31GJtvFw
酷いやりとりを見た

417名無しさん:2019/11/20(水) 05:46:52 ID:AKscOwHE
>>411
早くこれに答えろよクズども

418名無しさん:2019/11/20(水) 06:10:46 ID:RFCBcx42
>>417 はなりすましと見た

419名無しさん:2019/11/20(水) 06:35:26 ID:4UUOEs6c
ちょっと前まではYanflyさがしゃあるんじゃねえのって言えたけど、もう有料化&引退してそれも言えんくなっちまったな

420名無しさん:2019/11/20(水) 07:44:25 ID:nXBond82
ただ、アイテムメインのゲーム作りにくいってのはなんかすげー分かる
最近のVXとかMVとかはスクリプト使えるから大分マシになったけど、プレステ時代とかはもっと悲惨だったよな
今でもネット上のプラグインとか調べると基本的にスキル拡張が大半でアイテム関連は乏しいしね

421名無しさん:2019/11/21(木) 22:31:26 ID:XxSVUowk
MVで上下がつながってるピクチャをループスクロールさせる方法もしくはプラグインってないですか?

422名無しさん:2019/11/21(木) 23:15:16 ID:56F4UBwg
ループさせる分元の画像ファイルをペイントで開いてコピーして縦に繋げればいいだけじゃん
プラグイン使うまでもないんじゃね?

423名無しさん:2019/11/21(木) 23:45:18 ID:3qaV8N12
無限ループさせたいんじゃない

424名無しさん:2019/11/21(木) 23:54:04 ID:56F4UBwg
その質問じゃそんなこと分かんないだろ

425名無しさん:2019/11/22(金) 00:26:07 ID:f2la2ZjA
>>421
https://plugin.fungamemake.com/archives/13124
ちゃんと確認したわけじゃないけど比較的近そうなのはこれかな。
細かい部分は画像加工でなんとか

426名無しさん:2019/11/22(金) 00:55:25 ID:UO.LbMEA
ループって普通無限じゃね?
つなげただけならただのスクロールだ

427名無しさん:2019/11/22(金) 01:41:19 ID:29Abdj1k
>>425
ありがとうございます使ってみます

428名無しさん:2019/11/22(金) 18:46:53 ID:pgCK19H6
>>419
まじかよ知らんかったわ。
DLしておけばよかった…

429411:2019/11/22(金) 23:47:25 ID:f2la2ZjA
色々探してたんだけど
https://plugin.fungamemake.com/archives/1712
↑こういうの見つけたからこれに追加改造できないか試してたんだよね。

if (meta[tag + " class"]) {
var v = conv(meta[tag + " class"], 0);
if (v > 0) {
if (v != BattleManager.actor()._classId) {
return false;
}
} else {
if (check(meta[tag + " class"], String(BattleManager.actor()._classId))) {
return false;
}
}
}

↑こういう記述見つけたから、試しにその下にclassの代わりにstateにしたものを加えてみたんだけど

if (meta[tag + " state"]) {
var v = conv(meta[tag + " state"], 0);
if (v > 0) {
if (v != BattleManager.actor()._stateId) {
return true;
}
} else {
if (check(meta[tag + " state"], String(BattleManager.actor()._stateId))) {
return true;
}
}
}

これで<condition state:n,m,,>ってアイテムに入れてみたけどやっぱり動かなかったわ…
classをstateに変えるだけじゃやっぱダメかな?

ついでなんだけどこのプラグイン、仮に禁止がうまくできたとしても
アイテム欄から該当アイテムが消える仕様っぽいんだよね。
これってスキル禁止したときみたいにグレーアウトできないかな?

430名無しさん:2019/11/23(土) 03:15:29 ID:5Ivh.WN6
↓classの代わりにstateにしたものを加えてみた奴

if (meta[tag + " state"]) {
var v = conv(meta[tag + " state"], 0);
if (v > 0) {
if(BattleManager.actor()._states.indexOf(v) >= 0){
return false;
}
} else {
for(var i = 0; i < BattleManager.actor()._states.length; i++){
if(check(meta[tag + " state"], String(BattleManager.actor()._states[i]))){
return false;
}
}
}
}


↓スキル禁止したときみたいにグレーアウト(プラグインの一番下とかに追加で記述)

Game_BattlerBase.prototype.meetsUsableItemConditions = function(item) {
return this.canMove();
};
Window_ItemList.prototype.isEnabled = function(item) {
return $gameParty.members().some(function(actor) {
return actor.isOccasionOk(item);
});
};

431名無しさん:2019/11/23(土) 03:16:29 ID:5Ivh.WN6
バグっても知らないじょ〜
特にグレーアウトのほう

432名無しさん:2019/11/23(土) 03:19:24 ID:5Ivh.WN6
return actor.isOccasionOk(item); を消し忘れてたw
このまま書いたままでもいいけど

433名無しさん:2019/11/23(土) 03:20:16 ID:5Ivh.WN6
いや消したらダメな奴だじょ
>>432のことは忘れるんだじょ

434411:2019/11/23(土) 03:35:52 ID:tzFi0S4M
>>430-433
マジクッソありがとう!導入したら完璧に理想通りになったわ!
ここすげー重要なところだったのに全然うまく行かなかったからやる気無くしてたんだけど
またモチベ上がってきたわ、絶対完成させるぜwww
本当にありがとうございました、マジで助かった!

435名無しさん:2019/11/24(日) 19:18:35 ID:yJcAJnL2
麻原の野望の続編的なゲーム覚えている人いないかな?
麻原が森皇帝を倒した後独裁国家を作ってて主人公二人は麻原の部下の吟遊詩人っぽい人が麻原の横暴を止めるために戦うみたいな
edは二つあってどっちも後味悪いというか
前に不謹慎系のゲームを実況する人が公開してたけど何故か削除されちゃって

436名無しさん:2019/11/24(日) 20:34:47 ID:JqZTlsJY
ここはRPGツクールシリーズの製作技術に関する質問を扱うスレです。

437名無しさん:2019/11/28(木) 00:26:43 ID:1mMI458Q
>>392です
解決しました
あれからクラスとメソッドの概念やハッシュの勉強をヘルプでやりつつ
初めてメソッド定義や処理回りを組みました
・ゲージを表示したいイベントを取得して配列にするメソッド
・作成した配列を引数にしてそれをハッシュのkeyにして、valueには画面座標やゲージに使う変数を格納するメソッド
・グローバル変数を配列にしてハッシュのkeyを追加していきvalueの値を元にゲージを作成するメソッド
これらを定義したことで一つのグローバル変数で複数のゲージが作れるようになりました
インスタンス変数で別個に描写していたのをグローバル変数にした事で場所移動やゲームオーバーで消すこともできるようになり無事解決です
お陰様でスクリプト作成デビューできました
自分でできるものではないと思っていたのですがやってみると
エラーを何度も何度も吐かれましたがなんとかなりました
ハッシュに至っては存在すら知りませんでしたが理解して活用できたので良かったです
これからは困った部分はスクリプトでなんとかできるよう更に精進したいと思います
きっかけを与えてくださりありがとうございました

438名無しさん:2019/11/28(木) 03:50:02 ID:WedFIg9I
あっそう

439名無しさん:2019/11/28(木) 07:45:20 ID:hzt0is1k
きちんと報告してくれるのは好感持てるけどな

440名無しさん:2019/11/28(木) 08:46:53 ID:yqO3znzg
こういう人が大勢するんだよな
438みたいなのはゴミゲーしか作れなそう

441名無しさん:2019/11/28(木) 09:12:53 ID:3nYidSOo
オブジェクト指向がわかってないな

442名無しさん:2019/11/28(木) 12:13:31 ID:lYg8fkqs
同人ゲーなんて動けばいんでねの

443名無しさん:2019/11/28(木) 22:42:39 ID:7uH6KDJo
>>437
誰もお前に興味なんてないよ
強いて言うなら気持ち悪いね

444名無しさん:2019/11/28(木) 23:12:35 ID:hzt0is1k
>>443
>>390-391のアドバイスを形にしたのが>>437ってだけの話だし
後から同じ疑問持ってスレ見た人にも役に立つ
何でそこに「お前に興味」とか意味不明な言いがかりが出てくるんだ?

その点お前の書いたことは全く無価値で気持ち悪くておぞましいだけだな

445名無しさん:2019/11/28(木) 23:36:14 ID:WedFIg9I
あっそう

446名無しさん:2019/11/29(金) 01:16:53 ID:jYNdiLQM
いやキモいでしょ
自分できますよアピールするタイプは虫酸が走る
大した努力もしてないし

447名無しさん:2019/11/29(金) 01:43:22 ID:l7hvjeaE
働きに努力点(笑)が加味されないとゴネるタイプなんだろうね

448名無しさん:2019/11/29(金) 03:51:59 ID:W8MSs2No
理不尽な嫉妬だった

449名無しさん:2019/11/29(金) 08:08:16 ID:vPy.O1Qk
ツクラーなんてこんなのばっかだろ

450名無しさん:2019/11/29(金) 08:12:16 ID:JYFpC8R.
負け犬の遠吠えってやつ

451名無しさん:2019/11/29(金) 08:37:50 ID:YgImrP..
ツクールっていかに努力せずにアイデアを具現化するかっていうツールだと思うんですけど…

452名無しさん:2019/11/29(金) 08:55:22 ID:.NX5i9Zc
だから「こういう質問があって>>389、こういうアドバイスがあって>>390-391、具体的にこうすれば解決できる>>437
という記録が有益なのであって
誰が書いたかは問題じゃないのに
「自分」「お前」という言葉を持ち出して非難するとこが狂ってるんだよ

453名無しさん:2019/12/04(水) 23:50:55 ID:E4dVXpKs
なんかこのスレちょっと前から変な奴増えてないか

454名無しさん:2019/12/05(木) 18:00:13 ID:RlZsgvoU
RGSS3なんですが
既存クラスのupdateメソッドにエイリアスで再定義して毎フレームメソッドを実行すると重いのですが
コモンイベントの1Fウェイトループでメソッドを実行すると軽くなります
後者の方法でやった場合エラー箇所を参照できなくなるのでデバッグが大変になってしまいます
どういう理屈で重さに差が出るのでしょうか

455名無しさん:2019/12/05(木) 18:27:18 ID:W9VtBDho
毎フレーム実行のつもりがループ内実行になっているとか

456名無しさん:2019/12/07(土) 03:24:40 ID:EluYPuys
イベントで使用した特定のSEを新しいものに差し替えたいのだけど
そのSEファイルを上書きする以外にいい方法はありませんか?
どこで使用しているか特定するとか

457名無しさん:2019/12/07(土) 03:40:36 ID:u4nfXG1w
json開いてファイル名で検索・置換

458名無しさん:2019/12/07(土) 11:31:19 ID:vsydhDa6
>>455
ありがとうございます
ループしてるようには見えないんですよね
毎フレーム自動で実行されるメソッドというのは新規作成したクラスでは作れないんでしょうか?
継承してsuperで呼び出そうとしても自動では無理ですし
素材サイト様のスクリプトを見ても追加クラスのインスタンスを既存クラスに新しく作ってupdateクラスでupdateメソッドを呼び出してるものばかりですが

459名無しさん:2019/12/07(土) 11:32:53 ID:vsydhDa6
>>458
間違えました
既存クラスのupdateメソッドで追加クラスのインスタンスからupdateメソッドを呼び出してる…です

460名無しさん:2019/12/07(土) 15:46:03 ID:u4nfXG1w
>>既存クラスのupdateメソッドにエイリアスで再定義
既存クラスとは具体的にどのクラスですか

>>再定義して毎フレームメソッドを実行すると重い
ほぼ関係ないと思うけど環境のせいっていう可能性も
PC変えてテストしても同じ結果?

>>ループしてるようには見えない
ファイバーとかが絡んでませんか

>>毎フレーム自動で実行されるメソッドというのは新規作成したクラスでは作れないんでしょうか?
多分作れません

461名無しさん:2019/12/07(土) 19:06:40 ID:BcxLhMIQ
一フレーム内で複数回実行してんじゃね?

462名無しさん:2019/12/10(火) 20:30:04 ID:36qmTGXA
>>460
返信が遅れて申し訳ありません
クラスはGame_Interpreterです
fiberクラスのresumeがありました
別クラスでインスタンスを生成して実行したところスムーズにいきました
fiberはマルチタスクの為にメソッドの進行具合を保持したまま別の箇所に飛ぶ機能とは覚えていたのですが
辿ってみても全然わからないですね…勉強不足です
ありがとうございました

しかし既存クラスのupdateメソッドだけ毎フレーム実行しているのはどういう仕組みなんでしょうか
組み込みなんですかね?
それと地味にイベントコマンドでメソッドを呼び出すとエラー箇所に飛んでくれないのが不便ですね…

463名無しさん:2019/12/10(火) 20:41:29 ID:Ng8ERGPU
毎フレーム実行するように書かれてるだろ

464名無しさん:2019/12/11(水) 19:27:24 ID:CDSv/4T.
class Game_Interpreter
def eval(args)
super("Proc.new{#{args}}").call
end if $TEST
end
でイベントコマンドでも追える

465名無しさん:2019/12/21(土) 01:06:21 ID:sRMDPIAg
>>464
凄い
ありがとうございます
仕組みが全然わからない

466名無しさん:2019/12/21(土) 01:16:19 ID:Jk9zRxUM
またお前か
二度と来るなって言っただろ?
消えてくれ頼むから

467名無しさん:2019/12/21(土) 20:48:25 ID:QpbwdC3E
質問しに来ただけの奴に答えもせず煽るしかできねえならお前が消えとけクズ

468名無しさん:2019/12/23(月) 16:32:50 ID:PQt2vMDg
基本的な事を聞くけど
イベント中にコモンイベントを挟むと間に挿入されるイメージでOK?
メッセージ「あああ」
コモンイベント メッセージ「いいい」+アイテム入手
メッセージ「あああ」

重要なアイテムを入手するイベントをコモンイベントで実行してもスキップされたりしないよね?
並列処理や自動実行処理だとまた変わってくるのかもしれないけど

469名無しさん:2019/12/23(月) 17:47:44 ID:x59OgzaM
やってみたら5秒でわかると思うけどそうだよ

470名無しさん:2019/12/24(火) 22:11:35 ID:ZfpCLSD.
なぜそこまで具体的な手順がわかっててやってみないのか

471名無しさん:2019/12/25(水) 23:09:33 ID:WHhFDxuM
むしろやってみた結果ちゃんとそういう仕様で動作してるのか不安になってくる奴なんだ

472名無しさん:2019/12/29(日) 16:22:37 ID:NsxlCt5M
ちょっと変な質問で悪いんだけど
例えばプラグインを自分で作って、それが特に他の原因もなく正常に機能したり機能しなかったりすることってあるもんかな…
同じ場所を通るときに、同じ条件なのに何回かに一回エラーが出るんだよね

473名無しさん:2019/12/29(日) 16:35:53 ID:yfhT.xT.
プラグインにバグがあるだけだろ

474名無しさん:2019/12/29(日) 17:26:43 ID:Q5PXdcwk
エラー内容書かないとなんとも

475名無しさん:2019/12/29(日) 17:29:05 ID:Q5PXdcwk
一応画像や音声データの読み込みが完了しているか否かでエラーが出たり出なかったりって事はあり得る

476名無しさん:2019/12/31(火) 00:33:17 ID:q5qKDKeQ
MVです。
特定のプラグインに関する質問で申し訳ないのですが

https://github.com/futokoro/RPGMaker/blob/master/FTKR_OriginalSceneWindow.ja.md#%E3%82%B3%E3%83%A2%E3%83%B3%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF

こちらのプラグインの使い方が全く分かりません。
この中のオリジナルウィンドウの設定のところにある基本仕様の入力例と書かれている部分をそのままコピーして使用してみても
Cannot read property 'isCommand' of undefined
と出てしまい困っています。
他のプラグイン全てをOFFにしても同じエラーが出たので競合の可能性は無いと思われます。

477名無しさん:2019/12/31(火) 04:30:09 ID:XxiVM3nc
バトル画面のエネミーのプライオリティを変える方法はないでしょうか?
敵グループで本来なら一番手前に配置されるエネミーの表示を一番後ろにしたいです

478472:2020/01/02(木) 00:28:45 ID:1sE1hkIM
>>474
どこが原因なのか特定するのに時間かかっちまったごめんなさい
おまけに「同じ条件なのに」って言ったけど意外とそうでもなかったかもしれない
ただ、どの条件でどれが起こるのかはまったく分からない…

ラストターゲットの挙動が問題みたいで、
対象がステート13番の状態異常にかかっていると他の状態異常の「ダメージで解除」が無効になるっての作りたかったんだけど

(function(){

Game_Battler.prototype.removeStatesByDamage = function() {
this.states().forEach(function(state) {
var action = BattleManager._action;
var unit = action.isForOpponent() ? action.opponentsUnit() : action.friendsUnit();
var target = unit.members()[BattleManager._subject._lastTargetIndex];
if(!target.isStateAffected(13)){
if (state.removeByDamage && Math.randomInt(100) < state.chanceByDamage) {
this.removeState(state.id);
}
}
}, this);
};

})();

この状態で敵をステート13と眠り状態(ダメージ解除100%)両方にしてから殴ったら
正常に機能するときと、無視されてそのまま目を覚ますときと、
'isStateAffected' is undefined のエラーが起こるときと3パターンあってちょっと悩んでる…

479名無しさん:2020/01/02(木) 01:38:36 ID:kugjKaPk
Game_Battler.prototype.removeStatesByDamage = function() {
if(!this.isStateAffected(13)){
this.states().forEach(function(state) {
if (state.removeByDamage && Math.randomInt(100) < state.chanceByDamage) {
this.removeState(state.id);
}
}, this);
}
};

とかじゃだめなん?

480472:2020/01/02(木) 04:10:36 ID:1sE1hkIM
>>479
そんなシンプルにできるもんだったのか…
なんか大げさに騒いで恥ずかしいわ…スキルアップしたい…
ありがとう、加えてなんか変な質問から入ってごめんなさい

481名無しさん:2020/01/02(木) 08:33:40 ID:kugjKaPk
ええんやで

482名無しさん:2020/01/02(木) 18:40:17 ID:kugjKaPk
>>477
スクリプトで変更する場合スプライトを再取得しないといけないかもしれない
↓のプラグインを入れてから敵キャラのメモ欄に <z:1> とか記述してzの値(大きいほど手前に表示される)を設定する

(function() {
var _Spriteset_Battle_compareEnemySprite = Spriteset_Battle.prototype.compareEnemySprite;
Spriteset_Battle.prototype.compareEnemySprite = function(a, b) {
if (a.z !== b.z) {
return a.z - b.z;
} else {
_Spriteset_Battle_compareEnemySprite.call(this, a, b);
}
}; var _Spriteset_Battle_createEnemies = Spriteset_Battle.prototype.createEnemies;
Spriteset_Battle.prototype.createEnemies = function() {
_Spriteset_Battle_createEnemies.call(this);
this.refreshEnemies();
};
Spriteset_Battle.prototype.refreshEnemies = function() {
var sprites = this._enemySprites;
for (var i = 0; i < sprites.length; i++) {
if(sprites[i].z === undefined)sprites[i].z = sprites[i]._enemy.enemy().meta.z;
if(sprites[i].z === undefined)sprites[i].z = 0;
}
sprites.sort(this.compareEnemySprite.bind(this));
for (var j = 0; j < sprites.length; j++) {
this._battleField.removeChild(sprites[j]);
}
for (var k = 0; k < sprites.length; k++) {
this._battleField.addChild(sprites[k]);
}
this._enemySprites = sprites;
};
})();

483名無しさん:2020/01/02(木) 18:42:17 ID:kugjKaPk
イベントコマンドで途中から設定する場合はスクリプトで↓のような記述

var spriteset = SceneManager._scene._spriteset;
spriteset._enemySprites[0].z = 3;//敵0のzを設定
spriteset._enemySprites[1].z = 2;//敵1のzを設定
spriteset.refreshEnemies();

484名無しさん:2020/01/04(土) 00:04:03 ID:9LF1cwQc
>>482
ありがとう!試してみます

485名無しさん:2020/01/04(土) 22:22:25 ID:WFfdISkw
MVの会心確率の計算式ってどうなってるの?
会心率設定してないはずの敵から2連続でクリティカル受けたんだけど

486名無しさん:2020/01/05(日) 04:57:01 ID:P7tnWWh6
Game_Action.prototype.itemCri = function(target) {
return this.item().damage.critical ? this.subject().cri * (1 - target.cev) : 0;
};

487名無しさん:2020/01/11(土) 04:54:13 ID:v1txeya.
NPCを左または右の障害物沿いに歩かせることってできますか?
解説してるサイトがあった気がするのですが・・・ぐぐっても出てこないのでお願いします

488名無しさん:2020/01/11(土) 06:36:48 ID:xoelbkgk
右手法(左手法)ですね?

489名無しさん:2020/01/11(土) 06:58:15 ID:54sgoEj6
移動ルートのカスタムで1個1個設定しよう

490名無しさん:2020/01/11(土) 09:59:15 ID:xoelbkgk
なるほど
ttps://dotup.org/uploda/dotup.org2036978.zip.html

491名無しさん:2020/01/12(日) 02:01:23 ID:A4FN.Juc
>>490
まさにこの挙動です!面白い
ツクールMVにはこんなプラグインないのでしょうか

492490:2020/01/12(日) 04:23:32 ID:4mhhboSA
移植しただけ
ttps://dotup.org/uploda/dotup.org2037593.zip.html

493名無しさん:2020/01/12(日) 17:09:59 ID:A4FN.Juc
>>490
いただきましたありがたいです

494名無しさん:2020/01/13(月) 08:35:50 ID:yzcuBhq2
プレイヤーのプライオリティを一時的に通常キャラの上にする設定ってないです?
ジャンプでピョイーンと乗り越える時だけ☆に設定したタイルの上に表示したいのですが

495名無しさん:2020/01/13(月) 08:37:54 ID:d4i.8Pak
ツクールのバージョンによって全然やり方が違う

496名無しさん:2020/01/13(月) 08:40:36 ID:d4i.8Pak
いやプライオリティ高いイベント(見た目プレイヤーと同じ)を一時的にプレイヤーと重ねるか入れ替えれば実現できるかも?

497名無しさん:2020/01/13(月) 09:51:54 ID:xCKr4b8U
同じマップセットを2個作って☆と◯に変える
ジャンプしたときだけマップチップを入れ替える

498名無しさん:2020/01/13(月) 17:43:04 ID:yzcuBhq2
>>495
ツクールMVです
プライオリティ高いイベントをプライヤーと重ねる方法もやりかたに頭をひねってしまうので
ご存知でしたらプライオリティをかえる方法お願いします

>>497
マップセットを間を移動した瞬間近くのNPCの位置がリセットされる瞬間が丸見えになってしまって

499名無しさん:2020/01/13(月) 19:18:44 ID:xCKr4b8U
場所移動じゃなくてタイルセットの変更や

500名無しさん:2020/01/13(月) 19:46:30 ID:yzcuBhq2
>>499
こんな機能があったんですね
この方法でもいけそうです

501名無しさん:2020/01/15(水) 06:46:18 ID:frFvHcNs
ツクールMVで質問です。
例えばID1番のアクターが装備しているID16番の武器をイベントによって外す場合
イベントコマンドで 条件分岐:アクター:武器:0016 を使ってから
イベントコマンドで 装備の変更:アクター0001:装備タイプ武器:装備品なし を指定することでできました。
ですが、ゲーム内で職業によってはID1番のアクターが二刀流になることもあるので
その場合、ID16番の武器が装備タイプの1番目と2番目のどちらに装備されるかがプレイヤー次第となってしまいます。
なんとかイベント内でID16番の武器だけを外させて、もう片方の武器を残すように作れないでしょうか?

502名無しさん:2020/01/15(水) 07:29:50 ID:rthVEz/A
変数のスクリプトで、
$gameActors.actor(1)._equips[0]._itemId
と記述したら1番目の装備のIDを取得できます

$gameActors.actor(1)._equips[1]._itemId
と記述したら2番目の装備のIDを取得できます

ttps://dotup.org/uploda/dotup.org2040136.png
図のようにそれぞれの変数で条件分岐を行い、持ち手の装備を判定したら良いです

503名無しさん:2020/01/15(水) 07:32:21 ID:rthVEz/A
ttps://dotup.org/uploda/dotup.org2040141.png
変数を使用せずに条件分岐で直接判定することも出来ます

504名無しさん:2020/01/15(水) 08:02:20 ID:frFvHcNs
>>502-503
ありがとうございます!
うまくできました!感謝します!

505名無しさん:2020/01/19(日) 05:37:22 ID:uTmuHfi6
VXの例えばダメージ計算式で行動者の名前がラルフか?って条件分岐は
if user.name == "ラルフ"
で出来るけど、これをラルフが仲間にいる場合アレックスでもtrueを返すようにする上手い処理ってないかな
Game_Actor(とGame_Enemy)に
def name?(aaa)
return aaa if name == aaa
return aaa if name == "アレックス"
return false
end
みたいな感じで追加してif user.name?("ラルフ") == "ラルフ"にすればいいかと思ったけど
これだとラルフが仲間にいなくても行動者がアレックスならtrueを返しちゃう

それとも事前に$game_party.existing_membersとか使ってラルフがいるか判定しておいたほうが早いかな
できれば1行で短く済ませたいと思ったんだけど

506名無しさん:2020/01/19(日) 06:48:04 ID:FQGuUi2s
>事前に$game_party.existing_membersとか使って
それが良いと思うけど事前に調べなくてもその場で判定できるよ
長いけど

if $game_party.members.find{|a|a.name == "ラルフ"}

507名無しさん:2020/01/19(日) 15:08:44 ID:uTmuHfi6
>>506
それでラルフがいるか判定できたわ
それと組み合わせて>>505使って判定することにするわありがと
あとreturn aaaじゃなくてreturn trueだったわ

508名無しさん:2020/01/20(月) 23:37:00 ID:XJruOO5o
ツクールMVで質問です。
デフォルトの仕様だと毒状態になったバトラーがいて、それがターン経過によって治癒するとき
治癒するターンにはダメージを受けない仕様になっていると思います。
これを治癒するターンにもダメージを受ける仕様にすることはできないでしょうか?
もう少し言うと、スリップダメージの判定をステートの除去判定よりも先に起こるようにできないでしょうか?

509名無しさん:2020/01/21(火) 11:54:55 ID:3EP47mgw
自動解除のタイミングをターン終了時にする

510名無しさん:2020/02/01(土) 16:28:11 ID:xZ0fRr/M
プレイヤーが向いている方向の○マス先にジャンプする、というイベントの作り方を教えてください

511名無しさん:2020/02/01(土) 16:34:08 ID:nmutL/c6
プレイヤーが向いてる方向調べてその○先にジャンプさせる

512名無しさん:2020/02/01(土) 18:48:25 ID:nwIOswZ2
方向自由にただイベントでジャンプさせると壁の中とか海の中藻兵器で入ってくからオススメしない

513名無しさん:2020/02/01(土) 21:02:46 ID:ExSaZ.Mw
>>510 MVの話なら
イベントコマンド1ページ目のフロー制御の分岐条件で「キャラクター プレイヤーの向きが○」で、上下左右それぞれの分岐を作った後にイベントコマンドの2ページ目にある移動ルートの設定→ジャンプでXとYを指定

中藻兵器はツボった

514名無しさん:2020/02/02(日) 20:16:08 ID:p5OJvegw
ググったら普通にYEP Smart Jump というプラグインがあった
まあ510の質問だとイベントの作り方だから違うかもしれんが一応これなら海の中藻兵器にならない

515名無しさん:2020/02/03(月) 01:07:48 ID:15yHTVb2
YEPてYanflyだっけ?
もう有料化したから使うならきをつけてな

516名無しさん:2020/02/03(月) 02:43:52 ID:x08TNGE.
引退とか聞いてたけど有料化してたのか
海外のもの買うのにPayPal使ったことないんだけど、だいたい1プラグイン約100円、全種セット3000円くらいで合ってるのかな
英語読めないと精神的ハードル高いんだが日本用の販売ページ作れよKADOKAWA
と思ったが、その前にこれもうMV衰退するんでは…

517名無しさん:2020/02/04(火) 19:37:03 ID:Dui98dL6
>>515
無料だった頃に落としたのは別に使ってもいいんじゃなかったっけか?
そうじゃなくて、今から用意しようとしたら有料だから金かかるから注意な、って意味かね。

518名無しさん:2020/02/05(水) 13:06:01 ID:qc1rUP22
ソースコードのパクられ防止の意味での有料化とか書いてあったから、普通にツクールMVのゲーム制作で使う分にはどう使おうと何も言われないと思うけどね
まあその辺含めて、事情はわかるけど面倒くさそうなものになってしまったのは残念

519名無しさん:2020/02/19(水) 15:49:01 ID:1bVA4KNM
漢字のルビ振りスクリプトを探していて
文章に表示できるのは結構あるんですが
スキルやバトルログ等にもルビが表示できるのが見つけられません。
そもそも存在していないかもしれないですが、誰かご存じないでしょうか。
ツクールはMVです。

ttp://moomoo.asablo.jp/blog/2012/06/04/6467782

Aceだと↑のがあったんですが、これのMV版がほしい感じです。

520名無しさん:2020/02/21(金) 03:26:54 ID:amSEytz2
MVで質問です。
あるボス戦で、インデックス1のボスがダメージを受けるたびに(スキル及びダメージ量問わず)
プレイヤーに知られないように変数35番に1ずつ加算していく方法はないでしょうか?

521名無しさん:2020/02/21(金) 13:08:47 ID:amSEytz2
すいません自己解決しました。
rpg_object.js の Game_Battler.prototype.refresh のところに
自分で色々やってみたらうまく行きました。
失礼しました。

522名無しさん:2020/02/28(金) 00:07:00 ID:lcpsykgw
質問です
アイテムのIDを変数1に取得できたのですが
そこからアイテムの個数を取得することができません。
アイテムのIDはプレイヤーが選ぶので、あらかじめ指定することができません。
変数2=アイテム所持個数(アイテム[変数1])と、アイテムIDのところに変数を代入したいのですが、どのように記述したらいいでしょうか?

523名無しさん:2020/02/28(金) 00:42:08 ID:xipzlXwQ
>>522
1.ツクールの種類は?
2.アイテムをどうやってプレイヤーに選ばせる?
3.取得手段はスクリプト?イベントコマンド?(記述とあるからスクリプトっぽいが)
この辺が明らかにならないとパターンがありすぎて答えられない
もっと言えばなぜアイテムの個数が必要なのか、それを取得して何がしたいのかまで書けば
個数取得方法答えられないが代替案なら答えられる可能性もある

524名無しさん:2020/02/28(金) 00:49:16 ID:cs9edFOw
MVで質問
ググったら戦闘中のウインドウ更新は
SceneManager._scene._statusWindow.refresh();
って書いてあったからアクターにステート付与するバトルイベントに入れてみたけどアイコン表示されず。
これ記述間違ってる?

525名無しさん:2020/02/29(土) 00:07:18 ID:sfgCLnh.
>>523
返信ありがとうございます
MVです。
素人なので間違っていたら申し訳ないのですがネットでつぎはぎした知識をもとに
$gameParty.numItems($dataItems[$gameVariables.value(1)]) で一応数字を得ることができました。
この記述式を応用して、「ID(X)アイテムの数が、(Y)個増えた」という文章を表示させたいのですが、今はそこに行き詰っています。
XもYも特定の数ではないので、
$gameParty.gainItem($dataItems[$gameVariables.value(1)], $dataItems[$gameVariables.value(2)])
とかいたら後ろのv2の方の記述がダメみたいでエラーをはいてしまい、頭を抱えています。

ファイルなどを開いて、自分で記述の仕方を見つける方法はないでしょうか・・。
気持ちばかりですがウェブマネーなどお礼はお渡しするので、いくつか質問聞いていただきたいくらいです・・。

526名無しさん:2020/02/29(土) 00:21:54 ID:656Zz.rA
惜しいじゃん正しくは
$gameParty.gainItem($dataItems[$gameVariables.value(1)], $gameVariables.value(2))

ttps://dotup.org/uploda/dotup.org2075047.png


>>ウェブマネーなどお礼
いらね

527名無しさん:2020/02/29(土) 01:14:02 ID:sfgCLnh.
ありがとうございます、できましたー!
これで変数2つを使って色々な数字を出す練習もできそうです。
質問できる方がいなくて思い悩んでいたので、本当に助かりました。
いただいた画像も自分にとってはとても貴重なもので、嬉しいです。
親切にしていただき本当にありがとうございます。

528名無しさん:2020/03/02(月) 23:30:33 ID:GPgJy2Cg
MVで質問
命中タイプ必中、成功率100%、ステート付加毒100%のスキルを
命中率100%にしてあるエネミーが回避率0%にしてあるアクターに使ったとき
アクターも職業もステート有効度毒100%にしてるにもかかわらず
十回に一回くらい毒を受けないことがあるんだけどツクールのステートの仕様ってどうなってんの?
なんかステート周りわかんないことだらけなんだが。

529名無しさん:2020/03/03(火) 00:20:19 ID:psgT4WYY
ステート有効率に運が影響

Math.max(1.0 + (this.subject().luk - target.luk) * 0.001, 0.0)

530名無しさん:2020/03/03(火) 00:28:31 ID:psgT4WYY
これだけじゃわからんか
使用者の運が1000で敵の運が0だった場合ステートの発動率が2倍になる

1.0 + (1000- 0) * 0.001 = 2.0

531名無しさん:2020/03/03(火) 00:29:57 ID:psgT4WYY
敵の運が1000で使用者が0だとステートはかからない

1.0 + (0- 1000) * 0.001 = 0

532名無しさん:2020/03/03(火) 00:50:29 ID:.VVMGwd2
>>529-531
そんな仕様だったのか…
ラックがバフに関わるのは知ってたけどステートにも影響するとは知らなかった。
とりあえずそこを直す方法探してみるわ。
ありがとうございました。

533名無しさん:2020/03/04(水) 04:27:57 ID:n02pzMWE
ツクールMVで質問です。
SceneManager.push(Scene_Status); と記述すると
戦闘中でもステータス画面を表示できるとのことだったので試してみたのですが
このやり方ではステータス画面は表示されるものの、その画面を閉じたときに
「途中から出現」に設定していたエネミーが勝手に出現してしまうなどの不都合が多くあるようでした。
そういった不具合が起こらない戦闘中ステータス画面表示のプラグインもいくつか配布されているようですが、
そのようなものをコモンイベントから指定して表示させることはできないでしょうか?

534533:2020/03/05(木) 02:47:22 ID:yTi92yi.
何度もすいません。
色々探したところ
https://tm.lucky-duet.com/viewtopic.php?t=2606
このようなプラグインを見つけたのですが、これをパーティコマンドから呼び出せるようにできないでしょうか?
自分では
https://plugin.fungamemake.com/archives/1365
こちらのプラグインでパーティコマンドに「ステータス」を追加し、
https://forum.tkool.jp/index.php?threads/%E3%82%A2%E3%82%AF%E3%82%BF%E3%83%BC%E3%82%92%E9%81%B8%E3%81%B6%E3%81%9F%E3%82%81%E3%81%AE%E9%81%B8%E6%8A%9E%E8%82%A2-mv%E7%89%88.508/
こちらのプラグインでアクターを選択し変数に代入するところまではやってみたのですが、
その後その変数に応じたアクターのステータス画面を表示できずにいます。

535名無しさん:2020/03/05(木) 03:59:32 ID:NHqpPRUo
https://tm.lucky-duet.com/viewtopic.php?t=2606

Scene_Battle.prototype.createStatusWindowInBattle = function() {
this._statusWindowInBattle = new Window_Status();
this._statusWindowInBattle.setHandler('ok', this.onStatusWindowClose.bind(this));
this._statusWindowInBattle.setHandler('cancel', this.onStatusWindowClose.bind(this));
this._statusWindowInBattle.setHandler('pagedown', this.nextActor.bind(this));
this._statusWindowInBattle.setHandler('pageup', this.previousActor.bind(this));
this._statusWindowInBattle.hide();
this._statusWindowInBattle.deactivate();
this.addWindow(this._statusWindowInBattle);
};
Scene_Battle.prototype.nextActor = function() {
var index = $gameParty.members().indexOf(this._statusWindowInBattle._actor) + 1;
if(index > $gameParty.members().length - 1)index = 0
this._statusWindowInBattle.setActor($gameParty.members()[index]);
this._statusWindowInBattle.activate();
};
Scene_Battle.prototype.previousActor = function() {
var index = $gameParty.members().indexOf(this._statusWindowInBattle._actor) - 1;
if(index < 0)index = $gameParty.members().length - 1
this._statusWindowInBattle.setActor($gameParty.members()[index]);
this._statusWindowInBattle.activate();
};
Scene_Battle.prototype.createPartyCommandWindow = function() {
this._partyCommandWindow = new Window_PartyCommand();
this._partyCommandWindow.setHandler('fight', this.commandFight.bind(this));
this._partyCommandWindow.setHandler('escape', this.commandEscape.bind(this));
this._partyCommandWindow.setHandler('status', this.commandStatusWindow.bind(this));
this._partyCommandWindow.deselect();
this.addWindow(this._partyCommandWindow);
};
Scene_Battle.prototype.commandStatusWindow = function() {
this._statusWindowInBattle.setActor($gameParty.members()[0]);
this._statusWindowInBattle.show();
this._statusWindowInBattle.activate();
};
Scene_Battle.prototype.onStatusWindowClose = function() {
this._statusWindowInBattle.hide();
this._statusWindowInBattle.deactivate();
this._partyCommandWindow.activate();
};
Window_PartyCommand.prototype.makeCommandList = function() {//ここの順番を自由に入れ替えるが良い
this.addCommand(TextManager.fight, 'fight');
this.addCommand(TextManager.escape, 'escape', BattleManager.canEscape());
this.addCommand(TextManager.status, 'status');
};
Window_ActorCommand.prototype.addWindowStatusCommand = function() {};

536名無しさん:2020/03/05(木) 04:25:17 ID:NHqpPRUo
最初顔グラ表示されないからやり直しこれだからmvは

var hogehogehogehogestart = Scene_Battle.prototype.start;
Scene_Battle.prototype.start = function() {
var members = $gameParty.members()
for(var i = 0; i < members.length; i++)ImageManager.loadFace(members[i].faceName())
hogehogehogehogestart.call(this);
};
Scene_Battle.prototype.createStatusWindowInBattle = function() {
this._statusWindowInBattle = new Window_Status();
this._statusWindowInBattle.setHandler('ok', this.onStatusWindowClose.bind(this));
this._statusWindowInBattle.setHandler('cancel', this.onStatusWindowClose.bind(this));
this._statusWindowInBattle.setHandler('pagedown', this.nextActor.bind(this));
this._statusWindowInBattle.setHandler('pageup', this.previousActor.bind(this));
this._statusWindowInBattle.hide();
this._statusWindowInBattle.deactivate();
this.addWindow(this._statusWindowInBattle);
};
Scene_Battle.prototype.nextActor = function() {
var index = $gameParty.members().indexOf(this._statusWindowInBattle._actor) + 1;
if(index > $gameParty.members().length - 1)index = 0
this._statusWindowInBattle.setActor($gameParty.members()[index]);
this._statusWindowInBattle.activate();
this._statusWindowInBattle.refresh();
};
Scene_Battle.prototype.previousActor = function() {
var index = $gameParty.members().indexOf(this._statusWindowInBattle._actor) - 1;
if(index < 0)index = $gameParty.members().length - 1
this._statusWindowInBattle.setActor($gameParty.members()[index]);
this._statusWindowInBattle.activate();
};
Scene_Battle.prototype.createPartyCommandWindow = function() {
this._partyCommandWindow = new Window_PartyCommand();
this._partyCommandWindow.setHandler('fight', this.commandFight.bind(this));
this._partyCommandWindow.setHandler('escape', this.commandEscape.bind(this));
this._partyCommandWindow.setHandler('status', this.commandStatusWindow.bind(this));
this._partyCommandWindow.deselect();
this.addWindow(this._partyCommandWindow);
};
Scene_Battle.prototype.commandStatusWindow = function() {
this._statusWindowInBattle.setActor($gameParty.members()[0]);
this._statusWindowInBattle.show();
this._statusWindowInBattle.activate();
};
Scene_Battle.prototype.onStatusWindowClose = function() {
this._statusWindowInBattle.hide();
this._statusWindowInBattle.deactivate();
this._partyCommandWindow.activate();
};
Window_PartyCommand.prototype.makeCommandList = function() {//ここの順番を自由に入れ替えるが良い
this.addCommand(TextManager.fight, 'fight');
this.addCommand(TextManager.escape, 'escape', BattleManager.canEscape());
this.addCommand(TextManager.status, 'status');
};
Window_ActorCommand.prototype.addWindowStatusCommand = function() {};

537533:2020/03/05(木) 05:34:59 ID:yTi92yi.
実装できました!ありがとうございます!
夜遅くにこんな長いプラグインを作っていただいて本当にありがとうございます!

538533:2020/03/06(金) 04:00:00 ID:4eyh0.QQ
何度も申し訳ないです、少し追加で質問したいことがあるのですが
ステータス画面表示前にアクターの選択を入れようとして
Scene_Battle.prototype.commandStatusWindow = function() {
の行と
this._statusWindowInBattle.setActor($gameParty.members()[0]);
の行の間にコモンイベント実行のため
$gameTemp.reserveCommonEvent(14);
という一文を入れてみたのですが、コモンイベントは実行されませんでした。
エラーが出たわけではなく、無視されているような形だったのですが
プラグイン内からコモンイベントを呼び出すということはできないものなのでしょうか?
何度も申し訳ないです。

539名無しさん:2020/03/11(水) 00:45:56 ID:Vja5oQgo
セーブのロード実行時に特定のスイッチ操作をする方法とかないですか?

540名無しさん:2020/03/11(水) 00:46:26 ID:0JGSsreI
あります

541名無しさん:2020/03/11(水) 02:48:56 ID:Vja5oQgo
教えて下さいお願いしますなんでもしますから

542名無しさん:2020/03/12(木) 13:30:00 ID:d0Ody9eE
質問の仕方がなってない

543533:2020/03/14(土) 01:23:34 ID:tFf4ORas
何度もすいません、どうしてもここが解決しないと先に進めないので聞きたいのですが、
例えばプラグインの中でコモンイベントを指定して実行することができないならば、
代わりにコモンイベントから>>536で作られたステータス画面を開くことはできないでしょうか?
コモンイベントに
Scene_Battle.prototype.commandStatusWindow();
とするスクリプトを入れてみるなど色々試したのですが結局開くことができませんでした。
もしかしてそもそもこれも無理なことなのでしょうか?

544名無しさん:2020/03/14(土) 06:30:02 ID:L9.iQtNQ
SceneManager._scene.commandStatusWindow()

545533:2020/03/14(土) 11:24:18 ID:tFf4ORas
>>544
>>535-536
完璧にイメージしてた通りにできました!
本当に何度もすいませんでした、重ねて感謝します!
ありがとうございました!

546533:2020/03/22(日) 21:54:07 ID:duJBE5R2
何度もすいません、
コモンイベントで
SceneManager._scene.commandStatusWindow();
と記述したところ一見正常に動作しているように見えたのですが
どうやらステータス画面が表示されている状態にも関わらずパーティコマンドの操作ができてしまうような状態だったようでした。
パーティコマンドのウインドウを一時的に閉じたり、もう一度開く方法などありませんでしょうか?

547名無しさん:2020/03/23(月) 00:19:55 ID:5s8YuSZY
>>546 どのタイミングでコモン呼んでるのかがわからないからなんとも
これでなおるけ?

var hogehogehogehogestart = Scene_Battle.prototype.start;
Scene_Battle.prototype.start = function() {
var members = $gameParty.members()
for(var i = 0; i < members.length; i++)ImageManager.loadFace(members[i].faceName())
hogehogehogehogestart.call(this);
};
Scene_Battle.prototype.createStatusWindowInBattle = function() {
this._statusWindowInBattle = new Window_Status();
this._statusWindowInBattle.setHandler('ok', this.onStatusWindowClose.bind(this));
this._statusWindowInBattle.setHandler('cancel', this.onStatusWindowClose.bind(this));
this._statusWindowInBattle.setHandler('pagedown', this.nextActor.bind(this));
this._statusWindowInBattle.setHandler('pageup', this.previousActor.bind(this));
this._statusWindowInBattle.hide();
this._statusWindowInBattle.deactivate();
this.addWindow(this._statusWindowInBattle);
};
Scene_Battle.prototype.nextActor = function() {
var index = $gameParty.members().indexOf(this._statusWindowInBattle._actor) + 1;
if(index > $gameParty.members().length - 1)index = 0
this._statusWindowInBattle.setActor($gameParty.members()[index]);
this._statusWindowInBattle.activate();
this._statusWindowInBattle.refresh();
};
Scene_Battle.prototype.previousActor = function() {
var index = $gameParty.members().indexOf(this._statusWindowInBattle._actor) - 1;
if(index < 0)index = $gameParty.members().length - 1
this._statusWindowInBattle.setActor($gameParty.members()[index]);
this._statusWindowInBattle.activate();
};
Scene_Battle.prototype.createPartyCommandWindow = function() {
this._partyCommandWindow = new Window_PartyCommand();
this._partyCommandWindow.setHandler('fight', this.commandFight.bind(this));
this._partyCommandWindow.setHandler('escape', this.commandEscape.bind(this));
this._partyCommandWindow.setHandler('status', this.commandStatusWindow.bind(this));
this._partyCommandWindow.deselect();
this.addWindow(this._partyCommandWindow);
};
Scene_Battle.prototype.commandStatusWindow = function() {

this._statusWindowInBattle.setActor($gameParty.members()[0]);
this._statusWindowInBattle.show();
this._statusWindowInBattle.activate();


};
Scene_Battle.prototype.onStatusWindowClose = function() {
this._statusWindowInBattle.hide();
this._statusWindowInBattle.deactivate();
};
Window_PartyCommand.prototype.makeCommandList = function() {//ここの順番を自由に入れ替えるが良い
this.addCommand(TextManager.fight, 'fight');
this.addCommand(TextManager.escape, 'escape', BattleManager.canEscape());
this.addCommand(TextManager.status, 'status');
};
Window_ActorCommand.prototype.addWindowStatusCommand = function() {};

548533:2020/03/23(月) 02:35:08 ID:9w7TQu.M
>>547
わざわざ作っていただいたのに本当にすいません、そちらでは直りませんでした
説明も不足していたようで申し訳ないです。

>>534に貼った2つのプラグインを使用する形にしてみたのですが、
まず>>536でいただいたプラグインの this._statusWindowInBattle.setActor($gameParty.members()[0]); という箇所だけ改変して
対象となるアクターは特定の変数を参照するように改変しておき、
次に FTKR Ex Battle Command を使いパーティコマンド内に「ステータス」という名前の、コモンイベントを呼び出すコマンドを追加しました。
そしてその呼び出すコモンイベントの内容として、ChoiceActors.js のプラグインコマンドで ChoiceActors party を使用し、先述の変数に対象アクターのIDを取得した後
SceneManager._scene.commandStatusWindow(); とスクリプトを書くことでステータス画面自体は表示されるようになりました。

ですがこのやり方ではステータス画面が表示されている状態でキーの上下を入力するとカーソルが動く音がし、
そのまま決定キーを押すことでフリーズを起こしたり、逃げ出したりすることが起こるようになってしまいました。
この点が、大変申し訳ないのですが以前のものを>>547に置き換えても解決しませんでした。
本当に何度も同じ質問をして申し訳ありません。

549名無しさん:2020/03/23(月) 11:24:55 ID:5s8YuSZY
それ再現するのくそめんどくさい

550名無しさん:2020/03/23(月) 11:28:35 ID:5s8YuSZY
なんで間にコモン挟むの?

551名無しさん:2020/03/23(月) 11:32:46 ID:5s8YuSZY
あーアクターの選択ね

552533:2020/03/23(月) 14:20:45 ID:9w7TQu.M
>>549-551
すいません、実はコモンイベントを挟むのにはもう一つ理由があって
先述の FTKR Ex Battle Command を使用して、「ステータス」とは別にもう一つコマンドを実装する必要があったためです。
こちらに関してはこのプラグインを使用さえすれば特にエラーもなくコモンイベントで対応できていたので
質問とは無関係化かと思って言っていなかった部分でした。

553名無しさん:2020/03/25(水) 23:14:50 ID:18tizI22
やっぱコモン追加する方法がよくわからんくて無理

554名無しさん:2020/03/26(木) 10:32:50 ID:1kyC.qbg
質問です。
体験版から製品版に移行したのですが、テストプレイの画面サイズが体験版の時よりかなり大きくなってしまいました。
毎回小さくしても次の起動で元に戻ってしまいます。
画面サイズをいじって固定できるにはどうしたらいいでしょうか?

555名無しさん:2020/04/04(土) 06:51:45 ID:7aC.AafE
スイッチ1がONになっている時に
特定のボタンを押すとコモンイベントAが実行されるという処理をしたいのですが
コモンイベントBを並列処理にして。ボタンを分岐条件にコモンイベントAを実行すると
並列処理で実行されてしまい処理が中断される事があったのですが

自動実行のようにマップの切り替えが起こっても最後までイベントが実行されるようにするにはどうしたらいいでしょうか

556名無しさん:2020/04/04(土) 14:26:52 ID:W1rIU95s
どういうイベント組んでるのか知らないけどコモンイベントAを自動実行にすれば?

557名無しさん:2020/04/09(木) 08:50:33 ID:z4NJsytY
$gameMap.eventIdXy(10,10)>0
↑このスクリプトで座標x10 y10にイベントがあるどうか。という分岐条件にすることができたのですが
ここにプレイヤーも含めたい場合はどうしたらいいでしょうか?

558名無しさん:2020/05/06(水) 22:55:48 ID:t.m2fZYg
YEP_SaveEventLocations って本当に準公式なの?
>>333でも少し話題に出てるけどまず「移動ルートの設定」にしか対応してないのがおかしいし
説明書きには「イベントの位置をリセットしたい場合は「イベント位置を設定する」を選んでください」とか書いてあるクセに
一回イベント移動させた時点でそもそも「イベント位置の設定」が機能しなくなるんだが。プラグインの競合でもなく、だ。
準公式とかほざいておきながら仕様がゴミクソ過ぎじゃねえ?この詐欺くせえ仕様で誰が満足するんだ?

559名無しさん:2020/05/07(木) 01:19:25 ID:AC3K9i.g
公式の仕様がゴミクソなことには疑問を持たないのか(困惑)

560名無しさん:2020/05/07(木) 06:20:22 ID:A2eLOhM.
公式のほうがクソだもんな

561名無しさん:2020/05/17(日) 11:37:09 ID:Ut4JNyQs
>>557
this.character(-1).x == n && this.character(-1).y == n

これで条件分岐してみれば?

562名無しさん:2020/07/03(金) 18:47:10 ID:tMG3w0QA
先日ツクールMVを買ったばかりの初心者の質問です。

敵を2回行動にしようと思い行動回数追加+100%にしたところ、
戦闘テストでもテストプレイでも敵が永久に行動し続けるようになってしまいました。
行動回数追加を+50%にしたら1回の時もあれば3回以上の時もあったので、
毎回行動の後に%の確率で追加行動しているのかと思います。

プロジェクトを新規作成して、再度行動回数追加+100%にしたところ、きちんと2回行動しました。
何が問題でこのようになってしまったのかが分かりません。
宜しければご教授お願い致します。

563名無しさん:2020/07/03(金) 19:30:35 ID:xEiMctUs
最初のプロジェクトでは何か変なプラグインが入ってたんじゃないかっていうくらいしか思いつかないなぁ

564名無しさん:2020/07/03(金) 20:05:25 ID:9NHUOkcw
新しく創ってならないならプラグインしか考えられんじゃん

565名無しさん:2020/07/03(金) 20:12:28 ID:tMG3w0QA
>>563
お返事ありがとうございます!
現在入っているプラグインはCommunity_Basic、dsPassiveSkill、
MadeWithMv、NRP_EnemyRoutineKai、YEP_SkillCoreの5種類です。
追加したプラグインはオフにしても問題は改善されませんでした。

あとは逃げる確率をいじりたい時にMT_CustomizeBasicSystemRateを使ったのですが、
上手くいかずに直接rpg_managersのescapeRatioを1にして、それ以降は使っていません。
新しいプロジェクトのrpg_managersのescapeRatioを1にしても問題は起きませんでした。

566名無しさん:2020/07/03(金) 20:24:26 ID:tMG3w0QA
新しいプロジェクトのjsフォルダで元のゲームのjsフォルダを上書きしたら治りました!
きっと皆さんの仰る通り何らかのプラグインが良くなかったんですね…
ありがとうございました!

567名無しさん:2020/07/11(土) 01:15:00 ID:PyMBW6OQ
ツクールMVの戦闘アクターを立ち絵サイズにしたら
18パターンx3という仕様で、4kみたいな画像サイズになってしまうんですが
このあたりの仕様を改良できるプラグインはないでしょうか?

せめてパターン毎に別の画像ファイルとして読み込めるとか

568名無しさん:2020/08/21(金) 00:55:49 ID:KiRDscz6
PictureSpine.jsを使えば戦闘時のプレイヤーグラフィックをspineでつくったアニメーションにできるんですか?
それとも画面上に表示するだけのプラグインなのでしょうか

569名無しさん:2020/10/11(日) 16:17:37 ID:wAWPjx0I
ツクールMVでYanfly Item CoreとDreamX/Random Equipmentというプラグインで
ランダムに攻撃力が変動する装備品が作れたのですが
その装備品の攻撃力の値を装備品の説明欄に表示するような制御文字?ってないのでしょうか?¥

570名無しさん:2021/02/06(土) 03:06:47 ID:lmOH7pKg
MVです。
移動ルートの設定で「画像の変更」→(なし)をスクリプトで指定したいのですが
http://rpgmaker-script-wiki.xyz/moverout_mv.php
ここを見てスクリプトのコードは分かったのですが肝心の(なし)の指定方法が分かりません。
{"code":41, "parameters":[0,0]} とか {"code":41, "parameters":[Null,Null]} とか
{"code":41, "parameters":[,]} とか {"code":41, "parameters":} とか
色々試したのですがどれも駄目でした。どうやるんでしょうか?

571名無しさん:2021/02/06(土) 03:21:21 ID:M70blHYU
{"code":41, "parameters":['',0]}

572名無しさん:2021/02/06(土) 03:26:08 ID:lmOH7pKg
>>571
できました!
もの凄い早い回答ありがとうございます!


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板