★RO kore情報交換所 中級者のマクロ(11体目)★
>>947 jkore改造の露店BOTだけど、暗号化・復号化処理入れただけで
カート関連もほぼ問題なく動いてるよ
むしろ処理できないパケや断片パケ(?)が増えているのに
話題にならないのが不思議
>>952 ならお前が話題にしろよ。
解析もしないで偉そうな御託並べてんじゃねーよ。
だいたい別に不明パケは増えちゃいない。
それに0.89.2の暗号化/復元化は若干欠陥があるしな。
おかしななパケばかり送ってネズミ捕りに引っかからないようにしろよ
カート内アイテムの表示で個数がめちゃくちゃになる、ってのはあるね。
あんま不都合無かったからほっといたけど、ちょっと直してみるか。
HP減ったら別のMAPで休むっていうルーチンほしいんだけど、
何かいいアイディアないかな
>>956 HP規定量以下に減少
→lockMapを指定マップに変更&自動攻撃、自動探索etcをoff
→HP回復
→lockMapその他設定をを元の値に戻す
>>956 HPチェックして、指定%以下ならLockMapを変更する。
指定%以上になったら元のMapをLockMapに変更する。
>>960 正直ビックブリッジの死闘にはガッカリ。
本人がアレンジすると聞いてかなり期待していたんだけど、
いまいちだったなぁ。
963 :
962:03/01/26 16:09 ID:???
あ、でもYのボス戦と妖星乱舞が入ってるから、
あとはそれに期待かな。すれ違いスマソ。
初心者スレに張ったらこっちに誘導されちまいました
perl2exe -I D:\Perl\lib Kore.pl
でコンバートはされるんだけど、Exeを起動すると
"0x10001544"の命令が"0x00000000"のメモリを参照しました
とでてエラーオチしてしまう。対策方法誰か教えてくれ
>>952 833がそれっぽいが、見事にスルーされてるな。
JKoreでもクリスマスパッチ辺りから不明パケメッセージ出てたけど、
解析なんてマンドクセ
koreのMap表示ルーチンを、xbmファイルの変換を内臓して
koreに持ってるデータだけで表示できるように改良できました。
config.sysに以下のエントリを追加します
#windowmode =1 (flag) 0ならばウィンドゥは表示しません
windowMode 1
#u秒単位でwindowの更新頻度/メインループの速度を指定
window_sleepTime 100
以下2行のある所を、コメントアウトもしくは削除し、その部分に下記コードを入れます
#while ($quit != 1) {
#usleep($config{'sleepTime'});
----コード
#ウィンドゥ作画
use Tk;
if ($config{'windowMode'}) {$mvw_x=500;$mvw_y=500;$my =MainWindow ->new;$can =$my->Canvas( -width =>$mvw_x,-height =>$mvw_y,-background =>white )->pack();
#ウインドゥのサイズのみ変更
$mvw_geo=$my->geometry;$mvw_geo=~/(\+.*)/;$my->geometry('100x50'.$1);
##ウィンドゥに必要な図形部品の描画
$can->createText(50,20,-text =>'Waiting..',-tags=>'map');
$can->createOval(1,1,3,3,-fill => 'red', -width =>2 ,-outline=>'red',-tags=>'chpoint');
##キー入力イベントの作成
$my->bind('<Double-1>', [\&dblchk , Ev('x') , Ev('y')]);
$my->bind('<1>', [\&pointchk , Ev('x') , Ev('y')]);
$my->after($config{'window_sleepTime'}, \&koretimes);
MainLoop;
}else{
##usleep はu秒単位のsleep命令ッス。window版の場合は描画で時間食われてるし…
while(1){usleep($config{'sleepTime'});&koremainloop;if ($quit >0){ &quitkore;}}
}
#####マップをクリツクすると座標が出る
sub pointchk{$mvcpx=$_[1];$mvcpy = $mvw_y - $_[2];$my->title("$mvw - $mvw_px $mvw_py \[$mvcpx $mvcpy\]");$my ->update;}
sub dblchk{$mvcpx=$_[1];$mvcpy = $mvw_y - $_[2];$input="move $mvcpx $mvcpy";print "Move $mvcpx\,$mvcpy\n";parseInput($input);$my->title("$mvw - $mvw_px $mvw_py \[$mvcpx $mvcpy\]");$my ->update;}
####xbm画像をfldから作成
sub xbmmake{my $i,$j,$k,$hx,$hy;my $line=0;my $dump='';my @data=[];
$mvw_x=$field{'width'};$mvw_y=$field{'height'};
if (($mvw_x % 8)==0){$hx=$mvw_x;}else{$hx=$mvw_x+(8-($mvw_x % 8));}
for($j=0;$j<$mvw_y;$j++){$hy=($mvw_x*($mvw_y-$j-1));
for($k=0;$k<$hx;$k++){
$dump+=($field{'field'}[$hy+$k])*256;$dump=$dump/2;
if(($k % 8) ==7){$line.=sprintf("0x%02x\,",$dump);$dump=0;}
}}
$line="#define data_width $mvw_x\n#define data_height $mvw_y\nstatic unsigned char data_bits[] = {\n".$line."};";
return \$line;
}
#####ウィンドゥモードようサブ
sub koretimes{&koremainloop;&koremapview;if ($quit >0){ &quitkore;}$my->after($config{'window_sleepTime'}, \&koretimes); }
sub quitkore{close($server_socket);close($input_socket);kill 9, $input_pid;killConnection(\$remote_socket);print "Bye!\n";print $versionText;exit;}
##割り込み用地図表示メイン処理です
sub koremapview{
if ($map_name =~ /([\s\S]*)\.gat/){;$mvw=$1;}
##マップ変更があった場合
if ($mvw ne ''){
if ($mvw_old ne $mvw){
$can->delete('map');$mvw_old=$mvw;
#読み込まれたfldからbmpイメージを作りimageで表示
$mvw_img=$can->Bitmap(-data=>${&xbmmake($mvw)});
$can->createImage(0,0,-image =>$mvw_img,-tags=>'map');
$can->move ('map',($mvw_x /2),($mvw_y /2));
$mvw_geo=$my->geometry;$mvw_geo=~/(\+.*)/;
$my->geometry('='.$mvw_x.'x'.$mvw_y.$1);
#mapsizeが変わると相対位置もかわるので座標を再計算
}
$mvw_px=$chars[$config{'char'}]{'pos_to'}{'x'};
$mvw_py=$chars[$config{'char'}]{'pos_to'}{'y'};
#x座標が変化した場合描画
if (($mvw_ox != $mvw_px)||($mvw_oy !=$mvw_py)){
$mvw_ref++;
$my->title("$mvw - $mvw_px $mvw_py \[$mvcpx $mvcpy\]");
$can->raise('chpoint');
#move は相対座標
@mvw_bmp=$can->bbox('chpoint');
$can->move('chpoint'
,$mvw_px-$mvw_bmp[0]-2
,($mvw_y-$mvw_py-1)-$mvw_bmp[1]-2);
$mvw_ox=$mvw_px;$mvw_oy=$mvw_py;
$my ->update;
}}}
sub koremainloop{
必死だな(わら
うお、すげえ
うわ、すご。...あんたイイ仕事してるよ。
重そうだな…('A`)マンドクセ
>>974 スクリプト見てマップを読み込んで表示するのが重そう、と解釈したが
実際
・マップロードの時、コマンドを速くおくりすぎて落ちることがある
ので、遅い方がいい場合もあるし
・ファイルの読み込みと配列変換をしないのでその分の時間がカットできる
から一概に重くなったとは限らない。
それより、新スレキボンヌ。
ここの板は950番取った人が立てるのでいいのか?
こりゃすごいな…。
977 :
952:03/01/26 20:50 ID:???
>966
DUMP取って処理できない固定的なパケットをスルーさせてるけど、
案外多いからパケットによって復号化が違うように思えたもので・・・
スクリプトキッズにはこのあたりが限界なので
本家と比べながらパケットエラーの波でも眺めてるわ
やあ僕BOTさっき初めて見た。思わず吹いた
>>977 暗号化は一律ですよん。
ただ、解析しきれていないパケットが案外多い模様です。
戦闘中のものだと敵の向き変更だとか、そういったもののようにも見えるす。
要は無視してもいいもの。
そういえば0088が133改造koreだとデータをひろっているようだけど
0088って何のパケだかわかる人います?
>>980 自分の近くに人が入ってきたら発言じゃねーの?たしか
BOTのオープン発言記録機能ってイイな・・・。
*RX-78* : やあボクBOT!でもご主〜・・・
(゚∀。)アヒャw
いまさらだが546氏ありがとう。ありがたく使わせてもらってます。
546の再うpきぼんぬ
梅
>>967−969
すげーなオイ。むっちゃ便利。
誰も埋める気なしかよ・・・・
,ノ^シ'从ヽ
(`ー´;ヾ)
(^ヾw ツ^)
|/^l^ヽ, ヽ,
(__(__ヽ_,ゝ
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。