レギュレーション

目的

WW2空戦レギュにおいての重武装機の非現実的な弾幕射撃を防ぐため、 一度の空戦での使用弾薬数に制限を設ける。

制限法

制限の方法は以下のとおり

弾薬コスト

補給について

導入の手引

Script編

以下のコードで弾薬ポイントをカウントできます

if _E(ARMのチップ番号) = 0 { 弾薬ポイント - 弾薬コスト }

あらかじめ、機体に合わせた弾薬ポイントの変数(350、500、1200のいずれか)を用意しておき、ARM一枚ごとにこのコードを書いていってください。

Lua編

以下の関数により弾薬ポイントをカウントできます。
この切り取り線内をLuaにコピペすると、どんなモデルでも自動的カウントします。
残ポイントの表示とか弾切れ時の発射ロックとかは各自実装してください。

LimitAmmo = 0		--自機の持つ残り弾薬ポイント。残弾表示やフラグに使ってください。
LimitAmmoMax = 0;
isJetPlaneLimitAmmo = false--ジェット機ならtrueに汁
isLimitAmmoInitialized = false;--内部的な初期化フラグ。いじったらだめーよw
Cost100k = 12		--100k(Option=100000)以上のARMの弾薬コスト
Cost50k = 2		--50k以上100k未満の弾薬コスト
ListChipType = {}	--ARMのチップ番号を格納
ArmCostList = {} --発見されたArmのコストを順に収納
function LimitAmmoRegulation()
	--初期設定
	if not isLimitAmmoInitialized then
		--重量に応じて弾薬ポイントを決定
		if isJetPlaneLimitAmmo then
			LimitAmmo = 1200
		else
			if _WEIGHT() >= 1100 and _WEIGHT() < 2200 then
				LimitAmmo = (_WEIGHT() -1300) /100 *20 +350
			elseif _WEIGHT() >= 2200 then
				LimitAmmo = 500
			end
		end
		LimitAmmoMax= LimitAmmo
		local chipNum = _CHIPS() - 1
		for i = 1, chipNum do
			--ARMチェック
			if _TYPE(i) == 10 then
				--50kの場合、100kの場合でそれぞれ弾薬コストを格納
				if _OPTION(i) == 50000 then
					table.insert(ListChipType, i)
					table.insert(ArmCostList, Cost50k)
				elseif _OPTION(i) >= 100000 then
					table.insert(ListChipType, i)
					table.insert(ArmCostList, Cost100k)
				end
			end 
		end
		isLimitAmmoInitialized = true
	elseif _TICKS() > 150 then
		--発射カウント
		local n = table.getn(ListChipType)
		for i = 1, n do
			--発射判定
			if _E(ListChipType[i]) == 0 and _TOP(ListChipType[i]) == 0 then
				LimitAmmo = LimitAmmo - ArmCostList[i]	--弾薬ポイントから弾薬コストを減算
			end
		end
		local h = _H(0);
		local speed = _VZ(0);
		if (0 < h and h < 2) and math.abs(speed) < 1.5 then
			if isJetPlaneLimitAmmo then
				LimitAmmo = LimitAmmo + 1;
			else
				LimitAmmo = LimitAmmo + 0.5;
			end
			if LimitAmmo > LimitAmmoMax then LimitAmmo = LimitAmmoMax; end
		end
	end
end

更新履歴


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-08-10 (土) 20:05:49