あー、何か問題がありましたらご報告お願いします;-;

  • 01/14/2008 - Version 1.10
    • バグフィクス ---- 特技が正しく選定されないバグを修正しました
    • フィクス ---- 特技選定、死亡処理を最適化しました
  • 09/02/2007 - Version 1.00
    • 公開

概要

戦闘関連の強化です。 戦闘勝利時、一定の確率と所持スキルにより、特技・魔法が発動するようになります。 ごくごくシンプルで導入が簡単、また改造も比較的容易でしょう。 以下、デフォルトで用意した効果、特色など――

特技・魔法
表示メッセージが異なるだけでプログラム上は同じものです。
ダメージ
特定倍率の追加ダメージを発生させます。
poison化
相手を毒化させます。
dead化
相手を死亡させます。
防御無視
防御力を無視した特定倍率の追加ダメージを発生させます。
回復
自身の体力を回復させます。
効果の組み合わせ
これらの効果を任意に組み合わせることが可能です。 追加ダメージを与え、なおかつ与えたダメージを吸収し、さらに相手を毒にする、なんていやらしいことも可能です:p
任意のダメージ倍率
追加ダメージは百分率で任意に設定可能です。 200%の設定にすれば2倍の追加ダメージですし、50%であれば1/2の追加ダメージです。
  • 特技・魔法発生時に発動メッセージを表示させることも可能でしょう、ただしご自身で工夫する必要があります。
  • 発動メッセージ用のデータだけは用意してあります……

改造

1. ファイルをダウンロードします

ファイルの内容
# Sub Special Attack #
sub sp_atk {
	($Wn,$Wh,$Ws,$Wv,$Ln,$Lh,$Lv,$Lt,$Dg,$Dd) = @_;
	if ($Lv =~ /dead/) { return($Lh,$Lv,$Wh,$Wt) }

	$sp_rnd = int(rand(100)); # 発動率
	undef @castlines;
	@splines = &opendat('special.cgi'); ### 任意のファイルパスに変更してください
	foreach (0 .. $#splines) {
		($sp_no,$sp_tp,$sp_rt,$sp_dg,$sp_ef,$sp_sp,$sp_nm,$sp_mg) = split(/<>/,$splines[$_]);

		push (@castlines,$splines[$_]) if $Ws =~ /$sp_sp/ && $sp_rt < $sp_rnd; # 特技選定・発動率チェック
	}
	if (!@castlines) { return($Lh,$Lv,$Wh,$Wt) }

	$cast_rnd = int(rand($#castlines)); # 特技確定
	($sp_no,$sp_tp,$sp_rt,$sp_dg,$sp_ef,$sp_sp,$sp_nm,$sp_mg) = split(/<>/,$castlines[$cast_rnd]);

	$Dg = $Dd       if $sp_ef =~ /A/; # 防御無視
	if ($sp_dg) { $damage = int($Dg * $sp_dg / 100) } else { $damage = 0 } # DMG算出
	$Wh += $damage  if $sp_ef =~ /H/; # 回復
	$Lh -= $damage  if $sp_ef =~ /D/; # DMG
	$Lv  = 'poison' if $sp_ef =~ /P/; # 毒化
	$Lh  = 0        if $sp_ef =~ /F/; # 即死

	if ($Lh <= 0) { $Lh = 0; $Lv = 'dead'; $Lt ++ } # 調整&死亡カウント

	# メッセージ関係
	&spmsg("$sp_tp");
	&spmsg('D')  if $sp_ef =~ /D/ && $damage;
	&spmsg('H')  if $sp_ef =~ /H/ && $damage;
	&spmsg('P')  if $sp_ef =~ /P/;
	&spmsg('F')  if $sp_ef =~ /F/;
	&spmsg('死') if !$Lh && $sp_ef !~ /F/;

	return($Lh,$Lv,$Wh,$Wt);
}

# Sub Massage #
sub spmsg {
	%spmsg = ('S',"$Wnは$sp_nmを行使した!",
		  'M',"$Wnは$sp_nmを詠唱した!",
		  'D',"$Lnに$damageポイントの追加ダメージ!",
		  'H',"$Wnは$damageポイントの体力を取り戻しました。",
		  'P',"$Lnは毒化しました。",
		  'F',"$Lnは死亡しました。",
		 '死',"体力が0になり、$Lnは死亡しました。");

	push (@msg,$spmsg{$_[0]});
	$fwords .= $spmsg{$_[0]};
}

DL後、アップロードします。

2. 特技・魔法用の設定ファイルを作成しアップロードします。

デフォルトでは special.cgi というファイル名ですが、任意で構いません。 以下サンプル――

1<>S<>50<>150<> D<>Tf<>チェインストライク<><>
2<>S<>50<>100<>DP<>Tf<>ヴェノムストライク<><>
3<>S<>50<>  0<> F<>Tf<>フェイタルストライク<><>
4<>S<>50<>100<>DA<>Tf<>アーマーイグノアー<><>
5<>M<>50<>150<> D<>Mg<>フレイム<>Solvet In Favilla<>
6<>M<>50<>  0<> P<>Mg<>ポイズン<>Absorbeat Eas Obscurum<>
7<>M<>50<>  0<> F<>Mg<>レクイエム<>Dona Eis Requiem<>
8<>M<>50<>100<> H<>Mg<>ヒール<>Salva Fons Pietatis<>
ファイル用データ
データ説明詳細
$sp_no番号便宜上のもので意味はありません
$sp_tp行使タイプSは特技、Mは魔法
$sp_rt発動率1~100で任意に設定します
$sp_dgダメージ倍率与えたダメージに対する倍率です
$sp_ef効果タイプ別記します、重複可能です
$sp_sp必要スキル発動するために必要なスキルです
$sp_nm名称名前です
$sp_mgメッセージ発動時のメッセージ予約、現状はデッドフラグ
効果タイプ
略字効果
Dダメージ
Ppoison化
Fdead化
A防御無視
H回復
  • ヒント:必要スキルに「Qk」と設定すれば刀装備時のみ発動という特技が設定できます
  • ヒント:必要スキル「Aa」「Bb」のみ発動、とする場合、同じ内容で2つ作成し、必要スキルのみ変更します

3. # Sub Fight # の修正

発動用のルーチンを埋め込みます。 2行を2箇所に追加するだけです:)

if ($result == 1) {
	$dmg = (1,1,$udice - $pdfd) [($udice <=> $pdfd) + 1];
	($php,$pav,$pdt,$prw,$hp,$av,$dt)
		= &fight_sub($nm,$hp,$sp,$ab,$bp,$ak,$av,$dt,$bn,$pnm,$php,$psp,$pbp,$pav,$pdt,$prw,$pbn);

の下に

require './sp_atk.pl';
($php,$pav,$hp,$dt) = &sp_atk($nm,$hp,$sp,$av,$pnm,$php,$pav,$pdt,$dmg,$udice);

を追加します。

if ($result == -1) {
	$dmg = (1,1,$pdice - $udfd) [($pdice <=> $udfd) + 1];
	($hp,$av,$dt,$rw,$php,$pav,$pdt)
		= &fight_sub($pnm,$php,$psp,$pab,$pbp,$pak,$pav,$pdt,$pbn,$nm,$hp,$sp,$bp,$av,$dt,$rw,$bn);

の下に

require './sp_atk.pl';
($hp,$av,$php,$pdt) = &sp_atk($pnm,$php,$psp,$pav,$nm,$hp,$av,$dt,$dmg,$pdice);

を追加します。

以上で導入は完了です。

次のステップとして、ご自身で色々と工夫しながら改造してみてくださいな。

差分

Version 1.00→Version 1.10

……あ、確認前に古いファイル消しちゃったお;-;

#発動率チェック

のあった2行を削除。

$sp_rnd = int(rand(100)); # 発動率

を6行目に追加。

$Lh  = 0        if $sp_ef =~ /F/; # 即死

if ($Lh <= 0) { $Lh = 0; $Lv = 'dead'; $Lt ++ } # 調整&死亡カウント

の2行を修正。

push (@castlines,$splines[$_]) if $Ws =~ /$sp_sp/ && $sp_rt < $sp_rnd; # 特技選定・発動率チェック

の行を修正。

だと思います……

おまけ

ラテン語の勉強でもしましょうか:)

  • Solvet In Favilla
    • 灰燼に帰せよ
      • Solvet なる
      • In ~に
      • Favilla 灰
  • Absorbeat Eas Obscurum
    • 闇に飲まれよ
      • Absorbeat 呑込む
      • Eas 彼ら
      • Obscurum 暗黒
  • Dona Eis Requiem
    • 死を与え給へ
      • Dona 与える
      • Eis 彼らに
      • Requiem 安息
  • Salva Fons Pietatis
    • 救え慈悲の泉よ
      • Salva 救う
      • Fons 泉
      • Pietatis 慈悲の

コメント

コメントはありません。 Comments/改造/戦闘関連強化・特技&魔法?

お名前:

添付ファイル: filesp_atk.pl 114件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-30 (火) 00:57:44 (954d)