いつどこ作文

返信する
ライフサイクル
記事: 7
登録日時: 2016年2月08日(月) 14:11
お住まい: Key半島

いつどこ作文

投稿記事 by ライフサイクル »

文章を表示させる時点で四苦八苦しております。
以下のようなスクリプトをお願いできないでしょうか。


項目名         例
1「A」     "金","銀","銅","紅"
2「B」     "斧","鶏","牛","豚"
3「いつ」    "18世紀","19世紀","20世紀"
4「どこ」    "日本","ドイツ","中つ国"
5「だれ」    "桃太郎","金太郎","浦島太郎"
6「なに」    "鬼","熊","亀"
7「どうした」  "を攻め滅ぼした","と相撲をとった","に竜宮城へつれていってもらった"

の7つの項目をつかって、

2つ名「A」の「B」
「いつ」の「どこ」で
「だれ」を倒した「だれ」の元に誕生。
「なに」「どうした」。

に代入し、

2つ名「金」の「豚」
「18世紀」の「ドイツ」で
「浦島太郎」を倒した「桃太郎」の元に誕生。
「亀」「を攻め滅ぼした」。

のような文章を生成する。


・ランダムで項目から選ぶ処理
・「だれ」同士が重複している場合、もう一度選びなおすというループ処理
・生成した文字列をいくつか(10こ程度)保存する機能

よろしくおねがいします。
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

Re: いつどこ作文

投稿記事 by ビービー »

どうもこんばんは。
私は初心者なのでプラグインを作る事はできないんですが、ライフサイクルさんが求められていることをイベントで作成することは何とか可能なのでいちおう上げときます。

スクリプトが敵の名前しかわからなかったので敵の名前を利用してやるやり方です。
まずは敵の名前のところに自分が欲しい文字列を入力しておいてください。
次に「いつ」や「どこ」などの問いに対し変数を二つ用意します。
一つはランダムで選ぶため、もう一つは敵の名前を代入するためです。
あとはイベントで変数①を乱数(ランダム)で代入させてその変数①によって条件分岐するようにし、敵の名前をスクリプトで変数②に代入後その変数②を制御文字でメッセージに表示させれば完了です。

・・・もっと簡単なやり方があるかもしれませんがこれが私の限界でした。
ちなみに敵の名前以外のスクリプトがわかればアイテム名やスキル名アクター名などもできるはずです。
アクター名のスクリプトがわかればプレイヤーにアクターの名前を付けさせることが可能なので文字列をプレイヤーが入力したものにできるような気がします。
色々と自分なりのやり方を探してみてもたのしいかもしれませよ。
お互い完成目指して頑張りましょう。
添付ファイル
キャプチャ1.jpg
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
ライフサイクル
記事: 7
登録日時: 2016年2月08日(月) 14:11
お住まい: Key半島

返信ありがとうございます。

投稿記事 by ライフサイクル »

//イメージとしてはこんな感じです。文字コードはUTF-8です。
//プラグインコマンド:sakubun で表示されます。
//これをゲーム内でキャラごとに固定で表示させたいのです。もう少しゲーム内の関数について調べてみます。


(function() {
var parameters = PluginManager.parameters('sakubun');
var Message = String(parameters['Message'] || '生い立ちは謎に包まれている');
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
var text1Max = 4;
var text1 = new Array("金","銀","銅","紅");
var text2Max = 4;
var text2 = new Array("斧","鶏","牛","豚");
var text3Max = 5;
var text3= new Array("16世紀","17世紀","18世紀","19世紀","20世紀");
var text4Max = 4;
var text4 = new Array("日本","ドイツ","アスガルド","ミッドガルド");
var text5Max = 5;
var text5 = new Array("桃太郎","金太郎","浦島太郎","よしお(33)","やすお(29)");
var text6Max = 5;
var text6 = new Array("鬼","熊","亀","犬","猿");
var text7Max = 3;
var text7 = new Array("を攻め滅ぼした","と相撲をとった","に竜宮城へつれていってもらった");
function my_random(n) {
temp = Math.floor(Math.random()*n);
return temp;}
temp1 = my_random(text1Max);
temp2 = my_random(text2Max);
temp3 = my_random(text3Max);
temp4 = my_random(text4Max);
temp5 = my_random(text5Max);
temp6 = my_random(text5Max);
if (temp5==temp6) temp6 = my_random(text5Max);
if (temp5==temp6) temp6 = my_random(text5Max);
temp7 = my_random(text6Max);
temp8 = my_random(text7Max);
if (command === 'sakubun') {
$gameMessage.add("二つ名:"+text1[temp1]+"の"+text2[temp2]);
$gameMessage.add(text3[temp3]+"の"+text4[temp4]+"で、");
$gameMessage.add(text5[temp5]+"を倒した"+text5[temp6]+"の元に誕生。");
$gameMessage.add(text6[temp7]+text7[temp8]);
}
};
})();
fuobaa
記事: 1
登録日時: 2016年2月14日(日) 05:17

Re: いつどこ作文

投稿記事 by fuobaa »

はじめましてこんばんは

上記件につきまして、自分の作ったスクリプトとやりたい事が似ている気がしたので、ちょっと試してみました。
下のほうに実験してみたスクリプトを載せておきます。

作った文字列の格納先について、
プラグインなどに頼らないように文字列変数を使うのであれば、アクター名を使ってみるのはいかがでしょう?
文字数制限などがあるのかはちょっと不明ですが…。

以上、宜しくお願い致します。

/* ここからスクリプト */
var iActID = $gameVariables.value(1);
var sNamRnd1 = ["タロウ","ジロウ","サブロウ","ハナコ","ヨシコ","おじさん","おばさん"];
var sNamRnd2 = ["は踊った","は戦った","は死にかけた","は仲良く手をつないだ","は抱きしめ合った"];
var iRndd1;
var iRndd2;
var iRndd3;
iRndd1 = Math.floor( Math.random() * sNamRnd1.length);
iRndd2 = Math.floor( Math.random() * (sNamRnd1.length - 1) );
if ( iRndd1 == iRndd2 ) iRndd2 = (sNamRnd1.length - 1);
iRndd3 = Math.floor( Math.random() * sNamRnd2.length);
$gameActors.actor(iActID).setName(sNamRnd1[iRndd1] + "と" +sNamRnd1[iRndd2] + sNamRnd2[iRndd3]);
返信する

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