ごーすとじてん模擬戦闘テンプレート †

Don様のゴースト「ごーすとじてん」の模擬戦闘にセリフ対応するためのテンプレート(YAYA版)です。
手っ取り早くセリフを入力して喋らせたい方向け。
たぶん文5でも動きます。

辞書ファイル †

2007/9/9 修正
以前の辞書ファイル(yaya_ghostbattle_sample.dic)は、場合によっては辞書の修正をしないと 動作しない不具合があります。ご迷惑をおかけしました。 動作しなかった場合、新しい辞書ファイルをご利用下さい。(動作確認済み)

使い方 †

  • 【入力】と書いてある欄に、パラメタもしくは台詞を列挙してください。
  • 台詞の入力は任意ですが、最下部の関数「BATTLE.0.Property」「BATTLE.1.Property」内の各項目は必須です。 欠けた項目があると戦闘が始まりません。また、同関数内の「name」プロパティはdescript.txtで指定したキャラクタ名を指定してください。
  • 各【入力】欄で、以下の引数を参照できます。
_argv[0] : 送信元「ごーすとじてん」
_argv[1] : 攻撃側キャラクタ名
_argv[2] : 防御側キャラクタ名
_argv[3] : 戦闘結果 (物理|精神)攻撃(成功|失敗|回避|ミス)
           開始時「模擬戦闘開始」
_argv[4] : 攻撃により発生したダメージ
_argv[5] : 攻撃側LIFE
_argv[6] : 防御側LIFE


ソース †


/*********************************************************
* ゴースト模擬戦闘 設定
*********************************************************/

BATTLE.0.Name
{
	BATTLE.0.Property('name')
}

BATTLE.1.Name
{
	BATTLE.1.Property('name')
}


/*********************************************************
* ゴースト模擬戦闘 コア
*********************************************************/

OnJitenBattle
{
	_ref = (reference0,reference1,reference2,reference3,reference4,reference5,reference6)
	
	if reference1 == BATTLE.0.Name ; _repref1 = '0'
	if reference1 == BATTLE.1.Name ; _repref1 = '1'
	if reference2 == BATTLE.0.Name ; _repref2 = '0'
	if reference2 == BATTLE.1.Name ; _repref2 = '1'
	
	_func = 'BATTLE.' + _repref1 + '.' + reference3
	if ISFUNC(_func)
	{
		_funcref = _func + '(_ref)' 
		EVAL(_funcref )
		return
	}
	
	
	_func = 'BATTLE.' + _repref1 + '.Attack'
	if ISFUNC(_func)
	{
		_funcref = _func + '(_ref)' 
		EVAL(_funcref )
		return
	}
	
	
	_func = 'BATTLE.' + _repref2 + '.Defense'
	if ISFUNC(_func)
	{
		_funcref = _func + '(_ref)' 
		EVAL(_funcref )
		return
	}
}

BATTLE.0.Attack
{
	if TOINT(_argv[6]) <= 0
	{
		BATTLE.0.Win(_argv)
	}
	else
	{
		_func = 'BATTLE.0.Attack.' + _argv[3]
		if ISFUNC(_func) { EVAL( _func + '(_argv)') }
	}
}

BATTLE.0.Defense
{
	if TOINT(_argv[6]) <= 0
	{
		BATTLE.0.Lose(_argv)
	}
	else
	{
		_func = 'BATTLE.0.Defense.' + _argv[3]
		if ISFUNC(_func) { EVAL( _func + '(_argv)') }
	}
}

BATTLE.1.Attack
{
	if TOINT(_argv[6]) <= 0
	{
		BATTLE.1.Win(_argv)
	}
	else
	{
		_func = 'BATTLE.1.Attack.' + _argv[3]
		if ISFUNC(_func) { EVAL( _func + '(_argv)') }
	}
}


BATTLE.1.Defense
{
	if TOINT(_argv[6]) <= 0
	{
		BATTLE.1.Lose(_argv)
	}
	else
	{
		_func = 'BATTLE.1.Defense.' + _argv[3]
		if ISFUNC(_func) { EVAL( _func + '(_argv)') }
	}
}

/*********************************************************
* \0
*********************************************************/

BATTLE.0.模擬戦闘開始
{
	// 【入力】\0の戦闘開始時の挨拶
}

/////////////////////
// \0の攻撃
/////////////////////

// 物理攻撃

BATTLE.0.Attack.物理攻撃成功
{
	// 【入力】\0の物理攻撃が成功したときの台詞
}

BATTLE.0.Attack.物理攻撃失敗
{
	// 【入力】\0の物理攻撃が失敗したときの台詞
}

BATTLE.0.Attack.物理攻撃回避
{
	// 【入力】\0の物理攻撃が回避されたときの台詞
}

BATTLE.0.Attack.物理攻撃ミス
{
	// 【入力】\0の物理攻撃が発動ミスしたときの台詞
}

// 精神攻撃

BATTLE.0.Attack.精神攻撃成功
{
	// 【入力】\0の精神攻撃が成功したときの台詞
}

BATTLE.0.Attack.精神攻撃失敗
{
	// 【入力】\0の精神攻撃が失敗したときの台詞
}

BATTLE.0.Attack.精神攻撃回避
{
	// 【入力】\0の精神攻撃が回避されたときの台詞
}

BATTLE.0.Attack.精神攻撃ミス
{
	// 【入力】\0の物理攻撃が発動ミスしたときの台詞
}


/////////////////////
// \0の防御
/////////////////////

// 物理攻撃防御

BATTLE.0.Defense.物理攻撃成功
{
	// 【入力】\0に対する物理攻撃の防御に失敗したときの台詞
}

BATTLE.0.Defense.物理攻撃失敗
{
	// 【入力】\0に対する物理攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃失敗
}

BATTLE.0.Defense.物理攻撃回避
{
	// 【入力】\0に対する物理攻撃の防御に成功したときの台詞
	// 原因:回避成功
}

BATTLE.0.Defense.物理攻撃ミス
{
	// 【入力】\0に対する物理攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃発動ミス
}

// 精神攻撃防御

BATTLE.0.Defense.精神攻撃成功
{
	// 【入力】\0に対する精神攻撃の防御に失敗したときの台詞
}

BATTLE.0.Defense.精神攻撃失敗
{
	// 【入力】\0に対する精神攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃失敗
}

BATTLE.0.Defense.精神攻撃回避
{
	// 【入力】\0に対する精神攻撃の防御に成功したときの台詞
	// 原因:回避成功
}

BATTLE.0.Defense.精神攻撃ミス
{
	// 【入力】\0に対する精神攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃発動ミス
}

/////////////////////
// \0・結末
/////////////////////

BATTLE.0.Win
{
	// 【入力】\0の攻撃の結果、相手のLIFE<=0となり、勝利したときの台詞
}

BATTLE.0.Lose
{
	// 【入力】相手の攻撃の結果、自分のLIFE<=0となり、敗北したときの台詞
}



/*********************************************************
* \1
*********************************************************/

BATTLE.1.模擬戦闘開始
{
	// 【入力】\1の戦闘開始時の挨拶
}

/////////////////////
// \1の攻撃
/////////////////////

//物理攻撃

BATTLE.1.Attack.物理攻撃成功
{
	// 【入力】\1の物理攻撃が成功したときの台詞
}

BATTLE.1.Attack.物理攻撃失敗
{
	// 【入力】\1の物理攻撃が失敗したときの台詞
}

BATTLE.1.Attack.物理攻撃回避
{
	// 【入力】\1の物理攻撃が回避されたときの台詞
}

BATTLE.1.Attack.物理攻撃ミス
{
	// 【入力】\1の物理攻撃が発動ミスしたときの台詞
}

// 精神攻撃

BATTLE.1.Attack.精神攻撃成功
{
	// 【入力】\1の精神攻撃が成功したときの台詞
}

BATTLE.1.Attack.精神攻撃失敗
{
	// 【入力】\1の精神攻撃が失敗したときの台詞
}

BATTLE.1.Attack.精神攻撃回避
{
	// 【入力】\1の精神攻撃が回避されたときの台詞
}

BATTLE.1.Attack.精神攻撃ミス
{
	// 【入力】\1の物理攻撃が発動ミスしたときの台詞
}


/////////////////////
// \1の防御
/////////////////////

// 物理攻撃防御

BATTLE.1.Defense.物理攻撃成功
{
	// 【入力】\1に対する物理攻撃の防御に失敗したときの台詞
}

BATTLE.1.Defense.物理攻撃失敗
{
	// 【入力】\1に対する物理攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃失敗
}

BATTLE.1.Defense.物理攻撃回避
{
	// 【入力】\1に対する物理攻撃の防御に成功したときの台詞
	// 原因:回避成功
}

BATTLE.1.Defense.物理攻撃ミス
{
	// 【入力】\1に対する物理攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃発動ミス
}

// 精神攻撃防御

BATTLE.1.Defense.精神攻撃成功
{
	// 【入力】\1に対する精神攻撃の防御に失敗したときの台詞
}

BATTLE.1.Defense.精神攻撃失敗
{
	// 【入力】\1に対する精神攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃失敗
}

BATTLE.1.Defense.精神攻撃回避
{
	// 【入力】\1に対する精神攻撃の防御に成功したときの台詞
	// 原因:回避成功
}

BATTLE.1.Defense.精神攻撃ミス
{
	// 【入力】\1に対する精神攻撃の防御に成功したときの台詞
	// 原因:相手の攻撃発動ミス
}

/////////////////////
// \1・結末
/////////////////////

BATTLE.1.Win
{
	// 【入力】\1の攻撃の結果、相手のLIFE<=0となり、勝利したときの台詞
}

BATTLE.1.Lose
{
	// 【入力】相手の攻撃の結果、自分のLIFE<=0となり、敗北したときの台詞
}

/*********************************************************
* ゴーストプロパティを返す
*********************************************************/

/////////////////////
// プロパティ要求対応 
/////////////////////

OnRequestProperty
{
	_text = ''
	if TOINT(reference1) < 0 { //負の場合はキャラ数を返すでっちあげ仕様
		_text = '2'
	}
	else {
		_text = EVAL('BATTLE.' + reference1 + '.Property' + "('" + reference2 + "')")
	}
	
	if STRLEN(_text) {
		"\C\![raiseother,%(reference0),OnGetProperty,%(BATTLE.0.Property('name')),/
		%(reference1),%(reference2),%(_text)]"
	}
}


BATTLE.0.Property
{
	case _argv[0] {
	
		// 以下、ゴーストプロパティ定義
		
		when 'name','キャラクター名' {
			// 【入力】\0の名前
			'和泉はるか'
		}
		when '年齢層','世代' {
			// 【入力】\0の年齢層・世代 (子供|若者|大人|老人|不明)
		}
		when '性別' {
			// 【入力】\0の性別 (男性|女性|雌雄同体|不明)
		}
		when '種族' {
			// 【入力】\0の種族
		}
		when '種族タイプ' {
			// 【入力】\0の種族タイプ (人型|獣型|植物型|不定形型|無機物型)
		}
		when 'プロフィール' {
			// 【入力】\0のプロフィール文章
		}
		
		// 以下、ゴースト模擬戦闘パラメータ
		// LIFE以外の平均が60で「ふつう」
		
		when '行動タイプ' { 
			// 【入力】\0の行動タイプ(属性?) (物理攻撃|精神攻撃)
		}
		when 'LIFE' {
			// 【入力】\0の体力。即値(int)。
		}
		when 'STR' { 
			// 【入力】\0の腕力。物理攻撃力。即値(int)。
		}
		when 'DEX' {
			// 【入力】\0の器用さ。物理攻撃命中率。即値(int)。
		}
		when 'AGL' {
			// 【入力】\0の敏捷さ。物理攻撃回避率。即値(int)。
		}
		when 'MIN' {
			// 【入力】\0の精神緑。精神攻撃力。即値(int)。
		}
		when 'INT' {
			// 【入力】\0の知力。精神攻撃命中率。即値(int)。
		}
		when 'SEN' {
			// 【入力】\0の感性。精神攻撃回避率。即値(int)。
		}
	}
}

BATTLE.1.Property
{
	case _argv[0] {
	
		// 以下、ゴーストプロパティ定義
		
		when 'name','キャラクター名' {
			// 【入力】\1の名前
		}
		when '年齢層','世代' {
			// 【入力】\1の年齢層・世代 (子供|若者|大人|老人|不明)
		}
		when '性別' {
			// 【入力】\1の性別 (男性|女性|雌雄同体|不明)
		}
		when '種族' {
			// 【入力】\1の種族
		}
		when '種族タイプ' {
			// 【入力】\1の種族タイプ (人型|獣型|植物型|不定形型|無機物型)
		}
		when 'プロフィール' {
			// 【入力】\1のプロフィール文章
		}
		
		// 以下、ゴースト模擬戦闘パラメータ
		// LIFE以外の平均が60で「ふつう」
		
		when '行動タイプ' { 
			// 【入力】\1の行動タイプ(属性?) (物理攻撃|精神攻撃)
		}
		when 'LIFE' {
			// 【入力】\1の体力。即値(int)。
		}
		when 'STR' { 
			// 【入力】\1の腕力。物理攻撃力。即値(int)。
		}
		when 'DEX' {
			// 【入力】\1の器用さ。物理攻撃命中率。即値(int)。
		}
		when 'AGL' {
			// 【入力】\1の敏捷さ。物理攻撃回避率。即値(int)。
		}
		when 'MIN' {
			// 【入力】\1の精神緑。精神攻撃力。即値(int)。
		}
		when 'INT' {
			// 【入力】\1の知力。精神攻撃命中率。即値(int)。
		}
		when 'SEN' {
			// 【入力】\1の感性。精神攻撃回避率。即値(int)。
		}
	}
}

利用について &dagger;

利用・改変は自由です。


添付ファイル: fileyaya_ghostbattle_sample_2.dic 615件 [詳細] fileyaya_ghostbattle_sample.dic 247件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-09-09 (日) 10:50:01 (4272d)