オススメ→【出会い

##########################################################
#  撃墜数カウント&エースボーナス習得 インクルード  
# 製作者:漆黒の翼                   
# 最終更新日:(09/03/08)
# HP:http://www.mayaweb.jp/swabf/
# メールアドレス:yumi_swabf@hotmail.com
#
# スパロボのOGシリーズやAポータブルのような
# エースボーナスシステムを再現できるようにしてみました。
#
# Dataフォルダ直下のInclude.eveに直接書き込むなり導入方法はお好きにどうぞ。
#
# 改変・複製等は自由です。
# 習得処理内の特殊技能はあくまでも一例なので、
# シナリオ内のデータに合わせてお使いください(笑)
#
# 何か不具合などがありましたら、メールや日記のコメントで知らせてくれると助かります。
#
##########################################################

# # # # #

#シナリオ側で予め以下のように変数を宣言しておくこと。
#
#global 撃墜数
#global ACE

#ちなみに変数の詳細は以下の通り。
#
#
#撃墜数[パイロット名称]
# 撃墜数が格納されている。
#
#ACE[パイロット名称,0]
# エースボーナスを取得済みかのフラグ。とっていれば1、とっていなかったら0
#ACE[パイロット名称,1]
# エースボーナスの内容。略称表記、半角スペースで区切る
#ACE[パイロット名称,2]
# ステータス表示インクルードなどで表記させる時の文章。
# 初期値は"未習得です"


#―――――撃墜数関係―――――


#撃墜数をゼロクリアする。
#エースボーナス初期化と纏めてもいい気はする。

撃墜数初期化:
#引数……撃墜数を初期化したいパイロット

Set 撃墜数[Info(パイロット,Args(1),名称)] 0

Return



#敵または中立ユニットを破壊した味方パイロットの撃墜数を上げる。
#マップ兵器で複数破壊した場合でもちゃんと1機ずつ順番に処理されるようで一安心。

*破壊 敵:
*破壊 中立:

If Party(相手パイロット) = "味方" Then
撃墜数格納 Info(パイロット,相手パイロット,名称) 1
EndIf

Exit


#撃墜数を増減させる

撃墜数格納:
#第1引数……撃墜数を増減させたいパイロットの名称
#第2引数……増減数

Incr 撃墜数[Args(1)] Args(2)

#撃墜数が50以上に達し、かつエースボーナス未習得の場合のみ、
#エースボーナスの習得処理を行う

 If 撃墜数[Args(1)] >= 50 And ACE[Args(1),0] = 0 Then
エースボーナス取得 Args(1)
 EndIf


Return


#パイロット間で撃墜数を引き継ぐ時に使う。

撃墜数引継ぎ:
#第1引数のパイロットから第2引数のパイロットへ撃墜数を引き継ぐ。
#引数のパイロット名は共に名称で指定する事。

Set 撃墜数[Args(2)] 撃墜数[Args(1)]

Return



#―――――エースボーナス関係―――――


#エースボーナスを初期化する

エースボーナス初期化:
#第1引数……初期化を行いたいパイロット名
#第2引数……ボーナス内容。""で括る事
##

Local Name
Set Name Info(パイロット,Args(1),名称)

Set ACE[Name,0] 0
Set ACE[Name,1] Args(2)
Set ACE[Name,2] "未習得です"


Return



#パイロット間でエースボーナスの引継ぎを行う。
#既に習得済みの場合は、引き継いだパイロットに対する習得処理を行う。

エースボーナス引継ぎ:
#撃墜数と同じ様に、第1引数のパイロットから第2引数のパイロットへ。
#共に名称指定。

Set ACE[Args(2),0] ACE[Args(1),0]
Set ACE[Args(2),1] ACE[Args(1),1]
Set ACE[Args(2),2] ACE[Args(1),2]

If ACE[Args(1),0] = 1 Then
エースボーナス取得 Args(2)
EndIf

Return



#エースボーナスの習得処理。

エースボーナス取得:
#第1引数……パイロット名称

#表記用文字列。途中で改行させたい場合は色々と工夫が必要。
#私の場合はB-A-Dさんのステータス表示インクルで使いたい為に全角コロンを改行合図とした。
Local 変換文
Set 変換文 ""


#半角スペースをキーに文字列を分割する
Array 習得物 ACE[Args(1),1] " "



For i = 1 to Count(習得物)
Switch 習得物[i]


#例1:レベル指定がある技能を習得させたい場合
#
#Skill関数を用いることによって、もともと持っているものであれば+1、
#そうでなければ新規習得させるようにした。
#


Case "援攻"
SetSkill Args(1) 援護攻撃 (Skill(Args(1), 援護攻撃) + 1)
Set 変換文 (変換文 & "援護攻撃Lv+1")
If i <> Count(習得物) Then
Set 変換文 (変換文 & "、:")
EndIf
Case "援防"
SetSkill Args(1) 援護防御 (Skill(Args(1), 援護防御) + 1)
Set 変換文 (変換文 & "援護防御Lv+1")
If i <> Count(習得物) Then
Set 変換文 (変換文 & "、:")
EndIf
Case "連携"
SetSkill Args(1) 統率 (Skill(Args(1), 統率) + 1)
Set 変換文 (変換文 & "統率Lv+1")
If i <> Count(習得物) Then
Set 変換文 (変換文 & "、:")
EndIf



#例2:レベル指定がない技能を習得させたい場合
#
#この場合は普通に-1指定すればいい。
#

Case "集中力"
SetSkill Args(1) 集中力 -1
Set 変換文 (変換文 & "集中力習得")
If i <> Count(習得物) Then
Set 変換文 (変換文 & "、:")
EndIf

EndSw
Next


#表記用の文字列を変更する
Set ACE[Args(1),2] 変換文

#習得したと言うフラグとして、1を立てる
Set ACE[Args(1),0] 1

Return



#エースアイコン点灯のパイロットの気力を5上げる。

エース気力処理:
#第1引数……陣営またはグループID。

ForEach Args(1) (出撃 格納 待機)
If 撃墜数[Pilot(対象ユニットID)] >= 50 Then
IncreaseMorale 5
EndIf
Next

Return


#インクルここまで!!




戻る



HP編集|無料の携帯HP

オススメ出会い
金沢 デリヘル|デリヘル