したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

泥系雑談スレ-2-

863泥っぽい名無しさん:2014/02/22(土) 04:46:47
Q.map.iniの書式は?
A.以下抜粋
map.iniの書式をついでに書いておきますと、
AreaID = a,b,c,d, X1,Y1,Z1,X2,Y2,Z2, ....
a,b,c,d はFF上の座標を(x,y,z)とし、512x512のマップ上の座標を(X , Z)
(Y軸は高さになっているので、X , Zになります)としたときに、
a=0.1 c=-0.1 : フィールド
a=0.2 c=-0.2 : ダンジョン
a=0.4 c=-0.4 : 町
b=X/2-a*x d=Z/2-d*y
で表現することができます。なんでいちいちXとZを2で割っているかは、
ただ単に最初の実装が256x256に縮小したマップとの対応だったから
なので、深く考えないでください(精度落ちてるから割らない方がいいけど)

X1,Y1,Z1,X2,Y2,Z2は(X1,Y1,Z1)と(X2,Y2,Z2)を頂点とする直方体
(必ずX1<X2, Y1<Y2...)の内側にゲーム上の座標があれば、
そのエリアにいることとするという風にしてあります。このX1〜Z2の定義は
カンマで区切って複数列挙することができます。
ほとんどのマップの定義で -10000,-10000,-10000,10000,10000,10000
となっているのは、そのマップ上の全ての座標を含むというのを表現して
いるからです。

>>a,b,c,dの計算の話してる人
エラーチェックもろくに書いていない糞プログラムですが、

int main(int argc, char* argv[])
{
double x1,x2,y1,y2;

x1 = atof(argv[1])/2;
y1 = atof(argv[2])/2;
x2 = atof(argv[3]);
y2 = atof(argv[4]);

printf("0.1,%f,-0.1,%f\n",x1-0.1*x2,y1+0.1*y2);
printf("0.2,%f,-0.2,%f\n",x1-0.2*x2,y1+0.2*y2);
printf("0.4,%f,-0.4,%f\n",x1-0.4*x2,y1+0.4*y2);

return 0;
}

FF上とフォトショップか何かの座標が判るグラフィックツールでマップを出して、
現在キャラがいる位置の512x512のマップにおける座標を調べる(x , y)。
次に、FFAssistが表示している座標のXとZを見る。

<↑のプログラム> x y X Z

と実行すると
0.1,135,-0.1,95
0.2,126,-0.2,120
0.4,100,-0.4,135
のように表示されるので、テキトウに倍率の合いそうなものを選んで
実際に表示させて試してみる。

こんな程度で十分だったりします(;´Д`)




掲示板管理者へ連絡 無料レンタル掲示板