| 2008/05/18(Sun) 23:58:17 編集(投稿者)
結構空けました。どうも、中箱です。
特に意見も無いようですので、以下のような内容の新機能を来週末あたりにでもリクエストしたいと思います。
この機能によって可能になることあたりに関しては、No5871にあります。
以下、リクエスト部分 ==== 移動に関係する以下の関数をリクエストします。
1.指定するユニットが、ある地点から指定する座標まで移動する場合に費やす移動力が取得できる関数「TotalMoveCost」 2.指定するユニットが、指定する地形(座標)に進入するために必要な移動コストが取得できる関数「MoveCost」 3.指定するユニットが、指定する座標(地形)で停止できるかどうかを判定する関数「Stopable」 4.指定する座標に働くZOCのレベルを返す関数「ZocLevel」
●1 TotalMoveCost(ユニット,移動先X,移動先Y[,出発X,出発Y,陣営,最大移動力,位置,移動方法,Option])
・"ユニット"で指定したユニットが、座標("移動先X","移動先Y")まで移動する時に費やす移動力を返す。 ただし、"最大移動力"以上の移動力が必要な座標だった場合は「0」を返す。 ・出発X以下については省略可。
○ユニット メインパイロット名またはユニットIDまたはユニット名称 を指定。 (ユニット名称を指定した場合は、出発X,出発Y,陣営が省略不可) ○移動先X,Y 目標地点の座標を指定。
○出発X,Y 省略、もしくは「-」を指定した場合は"ユニット"の現在座標を用いる。 指定した場合は"ユニット"が座標("出発X","出発Y")に存在するものとして費やす移動力を算出する。 ○陣営 陣営名を指定する。省略もしくは「-」を指定した場合は現在の陣営を用いる
○最大移動力 算出時に考慮する移動力の最大値。 通常の式以外に、「制限無し」「+(数字)」が指定可。 (「+(数字)」を指定した場合は、数字分だけユニットの移動力が増減したものとして判定する。 この時の数字は0.5単位でマイナス値も指定できる) 省略もしくは「-」の場合は、ユニットの移動力を基に算出する。 ○位置 ユニットのAreaを指定する。 省略もしくは「-」の場合はユニットの現在のAreaで算出する。 ○移動方法 ユニットの移動方法(「通常」「-」「ジャンプ」「テレポート」)を指定する。 省略や「-」「通常」の場合は通常移動とみなす。 ○Option SP名称を指定することで、そのSPがかかっているものとして、指定座標まで移動するのに必要な移動力を返す。 SPを複数指定する場合は半角スペースで区切る。
※指定した座標に他の味方ユニットがいる場合など、返り値が0以上でも移動できない場合があることを ヘルプに注意書きとして書いてあると良いと思います。
移動できるかどうかの情報を確実に得たい場合には、Stopable関数と、 例えば IIf(Stopable(ユニット,X,Y),TotalMoveCost(ユニット,X,Y),0) のように、二つ組み合わせて使うことを想定しています。
●2 MoveCost(ユニット,X,Y[,位置,移動方法,Option]) or MoveCost(ユニット,地形名[,位置,移動方法,Option])
・左の、座標を指定する書式の場合は、"ユニット"で指定したユニットが、座標("X","Y")にあるマスに移動する場合の移動コストを返す。 右の、地形名を指定する書式の場合は、"ユニット"で指定したユニットが、地形名称が"地形名"のマスに移動する場合の移動コストを返す。 (TotalMoveCostと違い、ユニットが現在いる座標は無関係)
・進入できない場合は「0」を返す。それ以外は、必要な移動コストを返す。(その座標/地形に停止できるかどうかは無関係)
○ユニット,位置,移動方法,Optionは、上記のTotalMoveCostのものと同じ。
※片方の書式のみ実装される場合は、地形名を指定するのほうの書式でお願いします。
●3 Stopable(ユニット,X,Y[,位置,移動方法,「詳細」]) or Stopable(ユニット,地形名[,位置,移動方法])
・左の、座標を指定する書式の場合は、"ユニット"で指定したユニットが、座標("X","Y")上で停止できるかどうかを返す。 右の、地形名を指定する書式の場合は、"ユニット"で指定したユニットが、"地形名"上で停止できるかどうかを返す。 (ユニットが現在いる座標、移動力は無関係) ・元々進入できない場合、進入はできるが停止できない場合には「0」を返す。それ以外は、「1」を返す。
○「詳細」 これが指定された場合、停止できる/できない理由が特別にある場合は返り値がその理由に変更される。 停止可能な場合:「1」(通常)、「格納先」、「合体先」 停止不可能な場合:「0」(通常)、「ユニット」(いずれかのユニットが存在する場合)
※地形名を指定した場合は「詳細」を指定しても意味がないので書式から外してあります。
※片方の書式のみ実装される場合は、「詳細」の関係があるので座標を指定するのほうの書式でお願いします。
●4 ZocLevel(X,Y,ユニットまたは陣営)
・指定した陣営orユニットにとって、座標("X","Y")に働くZOCの強さ(レベル)を返す。 ・メインパイロット名、ユニットID、ユニット名、陣営のどれかを指定する。
・強制停止させられる座標ではない場合は「0」が返る。 強制停止させられる座標だった場合は、そのZOCのレベルが返る。 (Option ZOCによるZOCの場合は、「1」が返る) (特殊能力のZOCLv1によるZOCの場合は、特異値が返る) (移動停止効果を持つ地形の場合は、別の特異値が返る) ※特異値に関しては実装において都合の良い値で。
・指定したユニットがZOC無効化能力を持っている場合は、その能力を考慮した上での結果が返る。
=====
以上です。 では
|