★Ragnarok(PC初心者お断り)BOT板(8)★

このエントリーをはてなブックマークに追加
482ネトゲ廃人@名無し
fldファイルからxbmへコンバータを作ることで、ルティエとかのマップ表示
できました。fldファイルにこのスクリプトを入れて「perl cv.pl」とかやる
と勝手にxbmファイルを同一フォルダ上に作るんで、そこでできたxbmをmap
フォルダにぶち込んでください。
#fld to xbm convert cv.pl
opendir(DATA,"./");@file=readdir(DATA);closedir(DATA);
foreach (@file){if($_=~/(.*)\.fld$/){$fname=$1;print "conv $fname\n";
$i=(stat("$fname\.fld"))[7];if ($i<10){exit;}open (DATA,"<$fname\.fld");
binmode(DATA);sysread(DATA,$buffer,$i);close(DATA);@data=unpack("C*",$buffer);
$x=$data[0]+$data[1]*256;$y=$data[2]+$data[3]*256;$dump=0;$line='';
if (($x % 8)==0){$hx=$x;}else{$hx=$x+(8-($x % 8));
}for($j=0;$j<$y;$j++){$hy=($x*($y-$j-1))+4;for($k=0;$k<$hx;$k++){$dump+=$data[$hy+$k]*256;
$dump=$dump/2;if(($k % 8) ==7){$line.=sprintf("0x%02x\,",$dump);$dump=0;}
}}$line=~s/\,$//;open (DATA,">$fname\.xbm");
print DATA "#define data_width $x\n#define data_height $y\n";
print DATA "static unsigned char data_bits[] = {\n";print DATA $line;print DATA "};";
close(DATA);}}