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.~ = ▲;』の~に変更したいパラメータの種類を、▲にパラメータの値をいれることで、他のパラメータを変更できる。