Extension簡単作成

Last-modified: 2016-04-29 (金) 19:19:55

ULVに入ってない、競走馬のスピードを75にするExtensionの作成を例題とする

作成手順

①csファイルの作成

ここでは、Extensionのファイルを作成する。
文字コード関係が面倒なので、既存ファイルをコピーして作ることにする。
Extensionフォルダ内の{01d62b6e-d3d9-4e90-b7b1-2644f7e42abb}.csを同フォルダ内にコピーし、{77a1f70e-1212-4d2d-aa6d-b9de1e21d2e2}.csと名前変更する。

②Extensionの記述

ここでは、Extensionの中身を記述する。ExtensionはC#で記述されている。
プログラミング経験が無いとSpoilerに比べ使いこなすのは大変ではあるが、単純な記述で様々なデータを一括で変更できるため頑張ってほしい。
①で作成した{77a1f70e-1212-4d2d-aa6d-b9de1e21d2e2}.csを開く。

	using System;
	using KOEI.WP8_2016;
	using KOEI.WP8_2016.Datastruct;
	/// <summary>
	/// 競走馬の気性を1良くするWP8_2016ULV拡張スクリプト
	/// </summary>
	class WP8_2016ULV_Extension {
		public static HRaceData CommandMain( WP8 wp, UInt32 horse_num, HRaceData data ) {
			var abl_data = new HAblData();
			wp.HAblTable.GetData( data.abl_num, ref abl_data );
			if( abl_data.kisyou < 4 ) {
				abl_data.kisyou += 1;
			}
			wp.HAblTable.SetData( data.abl_num, ref abl_data );
			wp.HAblTable.Commit( data.abl_num );
			return data;
		}
	}

何が書いてあるか簡単に説明する。

	using System;
	using KOEI.WP8_2016;
	using KOEI.WP8_2016.Datastruct;

最初の3行は、Extensionに必要なおまじないだと理解してほしい。他のExtensionでもこの3行は使用されている。

	/// <summary>
	/// 競走馬の気性を1良くするWP8_2016ULV拡張スクリプト
	/// </summary>

次の3行はコメントである。
コメントは、プログラムに影響しないため、書かなくても良いが、Extensionの内容を一目見てわかるように記述している。
また、C#のコメントは『//』で行える。

	class WP8_2016ULV_Extension {
		public static HRaceData CommandMain( WP8 wp, UInt32 horse_num, HRaceData data ) {
			・・・
			~略~
			・・・
		}
	}

ここでの1行目 『class WP8_2016ULV_Extension』 は、Extensionに必要なおまじないです。
2行目 『public static HRaceData CommandMain( WP8 wp, UInt32 horse_num, HRaceData data ) 』は競走馬用のExtensionに必要な記述です。
競走馬なら『HRaceData』、繁殖牝馬なら『HDamData』、種牡馬なら『HSireData』、幼駒なら『HChildData』を記述する。
3行目以降、中括弧{}で囲まれた部分がプログラムの内容である。

			var abl_data = new HAblData();
			wp.HAblTable.GetData( data.abl_num, ref abl_data );

ここからはプログラムの内容を説明する。
この2行は、馬の能力(HAblData)の取得を行っている。
1行目では、馬の能力のデータの入れ物を作成する記述である。
ここでは、HAblDataの入れ物を作る記述でありabl_dataがその入れ物の名前である。
2行目では、実際に馬の能力データの入れ物に、データを入れる作業を行っている。
ここでは、abl_dataという入れ物に、data.abl_num番の馬の能力データを入れている。
data.abl_numは、選択している馬の番号で、Extensionを使用する時の反転している馬である。
そのため、data.abl_numに数値を入れると、その数値の馬の能力データがabl_dataに入る。
また、『wp.~.GetData( ~ );』というのはExtensionでは頻繁に使う記述なので覚えておくとよい。

			if( abl_data.kisyou < 4 ) {
				abl_data.kisyou += 1;
			}

この3行は、気性が最大(大人)で無ければ、一段階上昇させるという記述である。

			wp.HAblTable.SetData( data.abl_num, ref abl_data );
			wp.HAblTable.Commit( data.abl_num );

この2行では、先ほど気性を良くしたデータをゲームに反映させる処理を行う記述である。
1行目では、data.abl_numは馬番号、abl_dataは馬の能力データである。
2行目では、SetDataしたら、Commitすることでゲームに変更したパラメータ反映させる。

			return data;

最後の行ではおまじないだと思ってください。

③Extensionの記述変更

ここでは、②で説明した事を踏まえて、競走馬のスピードを変更する記述を行う。

			if( abl_data.kisyou < 4 ) {
				abl_data.kisyou += 1;
			}

この部分を以下のように書き換える。

			abl_data.speed = 75;

これで、記述の変更は終わりである。
他にも、スタミナを変更したいなら、『abl_data.stamina = 75;』とすれば競走馬のパラメータを変更できる。
HAblDataをみて、『abl_data.~ = ▲;』の~に変更したいパラメータの種類を、▲にパラメータの値をいれることで、他のパラメータを変更できる。

④Extensions.xmlの追記