perl2exe forRO

このエントリーをはてなブックマークに追加
952 ◆5otivffc :02/09/26 17:43
升スレでJKoreがまたexe化されてると聞いたので戻ってきました(´Д`;)

>>722
若干コードを追加すれば出来ないことはないけど、チャットばかり開いてると
余計怪しまれるかと。
>>768
JKore独自仕様です。
>>843
JKoreはそのあたり設定済なんですが…(version 5)
升スレでJKoreをexe化したヤシに文句たれて下さい。
>>886
JKoreはconfig.txt内のsleepTimeを大きめに設定してるので、Koreと比べると
反応が遅れる傾向があるためだと思います。
>>895
効率を求めようとするからみんなattackAutoを1にする。
効率を求めようとするからあっさりBOTと見破られる。
…反撃のみだとBOTだと気付く人少ないですよね…
もっともJKoreもKoreであることには変わりないので、特徴さえわかれば
簡単に見破れるはずなんですが。
>>932
ciコマンドは解決済み。cartコマンド関係は実装が適当なので知らん。
>899あたりを参照して自分で直してください。
>>945
情報交換スレッドだと使い方とかそっちの情報交換に陥ると思うので
開発・改良スレッドのほうがいいかと。
あと、次スレ建てるならJKoreの文字は消してください(´Д`;)
Kore2だろうとJKoreだろうと、Koreの改造品なんですから。
早いかも知れんが夜が来る前に
次スレhttp://pc3.2ch.net/test/read.cgi/tech/1033031207/
9551:02/09/26 18:09
うっわ鬱だ 削除依頼出してくる  ∧||∧
014B ってなんだ?

変なのがきたんだけど

>hina_gengengenki
>karen_desu
>>956
マナーポイント貰った。当然マイナスだろうな
>>957
4B 01 01 〜
なんだけど
S 0149 <ID>.l <type>.B
IDにマナーポイントを与える。type=00 プラス type=01 マイナス
R 014a <fail>.l
マナーポイントを与えた結果。fail=0 成功 fail=1 失敗
R 014b <type>.B <nick>.24B
マナーポイントを貰った。type=00 プラス type=01 マイナス

表記法に関しては以下略
マイナスマナーもらった時に名前抜いてtxt保存できるようにしたらおもしろいかも・・・
ちょっと調べてみよ。
BOTマジなんですけど、蟻の巣に放置していると蟻を溜め込んでるアホ剣士からの
罵倒メッセージが入りまくってるんですが、これはどうにかならないのでしょうか?
↑の過去ログに多少その話題が出たたかな?
個人的に溜め込みVit嫌いなのでBotのルーチンには不満はありませんがw
>>950
> でさ、アイテムナンバーなんだけど
> 付け直しはせずに
> ROEみたく inc したらどうだろう?
> 必ずしも0〜の連番でなくてもいいと思うのだが

ROE というのを知らないのでどういう動作をするのか説明かソースを見せて。
取りあえず、原典の動作に戻してみた。これだと売ってくれるので、問題の原因がさっぱり。

sub removeInventory {
my $r_inventorys = shift;
my $arrayIndex = shift;
my $itemIndex = $$r_inventorys[$arrayIndex]->{'index'};
my $limit;

# splice(@$r_inventorys, $arrayIndex, 1);
undef($$r_inventorys[$arrayIndex]);
$limit = scalar(@$r_inventorys);
# for (my $i = 0; $i < $limit; $i++) {
# if ($itemIndex < $$r_inventorys[$i]->{'index'}) {
# $$r_inventorys[$i]->{'index'}--;
# }
# }

}
965 ◆5otivffc :02/09/26 21:45
# 毒解除(の雛型)
} elsif ($switch eq "0119") {
$ID = substr($msg, 2, 4);
$status = unpack("C1", substr($msg, 8, 1));
$unknown = unpack("C1", substr($msg, 10, 1));
if ($ID eq $accountID) {
if ($status & 0x01) {
## 解毒なり緑色ハーブなり緑ポーションなり
} else {
dumpData(substr($msg, 0, $msg_size));
}
}
966 ◆5otivffc :02/09/26 21:46
# ポタ逃げ
} elsif ($switch eq "011F") {
$coords{'x'} = unpack("S1",substr($msg, 10, 2));
$coords{'y'} = unpack("S1",substr($msg, 12, 2));
$ID = substr($msg, 6, 4);
$type = unpack("C1", substr($msg, 14, 1));
$fail = unpack("C1", substr($msg, 15, 1));
if ($fail) {
if ($type == 0x81) {
print "Portal opened at $coords{'x'}, $coords{'y'}\n";
if ($config{'PortalAvoid'}
&& $coords{'x'} eq $chars[$config{'char'}]{'pos_to'}{'x'}
&& $coords{'y'} eq $chars[$config{'char'}]{'pos_to'}{'y'}) {
sendTeleport(\$remote_socket, "Random") if $config{'PortalAvoid'};
}
} elsif ($type == 0x8d) {
print "Ice Wall setup at $coords{'x'}, $coords{'y'}\n";
} else {
dumpData(substr($msg, 0, $msg_size));
}
} else {
dumpData(substr($msg, 0, $msg_size));
}
967 ◆5otivffc :02/09/26 21:50
>>964
とりあえずJKoreではsub initConnectVarsの中に
>undef $chars[$config{'char'}]{'inventory'};
とか書いておきましたが、効果があるのかどうかは不明。

接続切れる→再接続→繋がる→アイテムリスト重複のパターンだけは
避けられるとは思うんですが、根拠は全く無し。
>>964
> 取りあえず、原典の動作に戻してみた。これだと売ってくれるので、問題の原因がさっぱり。

あ。このままだと配列がどんどん長くなっていくから、index の制限にでも引っかかるのかな。
何かkoreのログの取り方が良くわかんないです。
プレイヤーの発言やwis、GMのメッセージとかtxtにして出力させたいんですが
どうやればいいか教えてもらえませんか?
>>969
JKoreで実装されてますのでjkore.plを読みましょう
971969:02/09/26 23:56
MMO板のスレの>1にあるのをまた落として開いて見ました。
どこがどうなってるのか分かりませんでした…。
自分の場合jkore.plいじる前にperlの勉強しないといけないっぽいです…。
相手の座標を調べるコマンドできないでしょうかねぇ
NPCやPlayerの座標みれたらmoveしやすいし、
相手の座標確認しながらポタれるし便利だと思う。
でも相手の座標取得ロジックがわからず断念(つД`)
だれか相手の座標取得を教えてください。
>>972
$players{$ID}{'pos'}{'x'},$players{$ID}{'pos'}{'y'}

plでの#とIDの対応は@playersIDから取得
それとJkore起動できなかったのですが論外ですか?
某698.txt見ながらActivePerlインストしたりしたんですけど。
コマンドプロンプトからppm install Time-HiResとppm install HTTP-Liteを
実行というのもうまくできないです。
こういう質問って初心者板とかそっちのほうがいいのかな?
>>974
>>2
コマンドラインも使えないやつがBOTなんて使うな
976972:02/09/27 00:26
>>973
おお!ありがとうございます。
さっそく作ってみます。
おれコマンドプロプントとか何それって感じだったけど
このスレみていろいろやってたらわかるようになった。

優良スレage
今さらだが2次職名とスキル名がおかしいと思うのはオレだけでつか?
>>977 とかいいながらしっかり下げてる君をage
IWに囲まれたので無い知恵しぼって考えてみました

print "Ice Wall setup at $coords{'x'}, $coords{'y'}\n";
sendTeleport(\$remote_socket, "Random") if $config{'PortalAvoid'};#追加
} else {

これでアイスワールに対応してテレポできる?
98173歳BOTWiz:02/09/27 04:00
>>949
パッチ当ててそれなら
ai_skill_useとかai_attack_auto、ai_attack_giveup
あたりを短くしてみればうまくいくかも。

>>961
もしかして移動型?
定点狩り型(というか撒き餌型)にしたほうが
他の「BOTみたいに黙々と魔法撃ってるPCマジ」が
カモフラージュしてくれるからばれにくいと思うよ。
そこに剣士が来ても「俺領域を発動させてるPC」に見えるだろうし。
>>963
VBで書かれてるけどね
If Asc(Mid(RecvData, 4, 1)) < 1 Then
If Asc(Mid(RecvData, 31, 1)) > 3 And Asc(Mid(RecvData, 31, 1)) <> 10 Then
If MakePort(Mid(RecvData, 3, 2)) > UBound(Equip) Then ReDim Preserve Equip(MakePort(Mid(RecvData, 3, 2)))
If MakePort(Mid(RecvData, 3, 2)) > UBound(Inventory) Then ReDim Preserve Inventory(MakePort(Mid(RecvData, 3, 2)))
Equip(MakePort(Mid(RecvData, 3, 2))).Name = MakeString(Mid(RecvData, 7, 24))
Equip(MakePort(Mid(RecvData, 3, 2))).EquipID = 0
Equip(MakePort(Mid(RecvData, 3, 2))).Amount = MakePort(Mid(RecvData, 5, 2))
Equip(MakePort(Mid(RecvData, 3, 2))).Where = Mid(RecvData, 32, 1)
Inventory(MakePort(Mid(RecvData, 3, 2))).Use = 3
ElseIf (Asc(Mid(RecvData, 31, 1)) <= 3 Or Asc(Mid(RecvData, 31, 1)) = 10) Then
If MakePort(Mid(RecvData, 3, 2)) > UBound(Inventory) Then ReDim Preserve Inventory(MakePort(Mid(RecvData, 3, 2)))
Inventory(MakePort(Mid(RecvData, 3, 2))).Name = MakeString(Mid(RecvData, 7, 24))
Inventory(MakePort(Mid(RecvData, 3, 2))).Amount = Inventory(MakePort(Mid(RecvData, 3, 2))).Amount + MakePort(Mid(RecvData, 5, 2))
Inventory(MakePort(Mid(RecvData, 3, 2))).Use = Asc(Mid(RecvData, 31, 1))
Stat "You got " + MakeString(Mid(RecvData, 7, 24)) + " " + CStr(MakePort(Mid(RecvData, 5, 2))) + " EA" + vbCrLf
End If
UpdateInventory
End If
isコマンドでアイテム使ってくれない…

てのはitems.txtが古いせい?
>>983
i
で、リスト表示
is #(iで、表示される0〜の番号) で、使う
>>982
こっちだったかも
Case &H3D
If Len(RecvData) >= 6 Then
For x = 0 To UBound(Items) - 1
If Mid(RecvData, 3, 4) = Items(x).ID Then
If Items(x).ID = CurrItem Then
SkillUse = False
CurrItem = ""
End If
Items(x).Exist = False
If Items(x).Whose = True Then
YourItems = YourItems - 1
If YourItems < 0 Then
YourItems = 0
End If
End If
Stat MakeHex(Items(x).ID) + " (" + MakeString(Items(x).Name) + ") disappears" + vbCrLf
For y = x To UBound(Items) - 1
Items(y) = Items(y + 1)
Next
ReDim Preserve Items(UBound(Items) - 1)
Exit For
End If
Next
RecvData = Right(RecvData, Len(RecvData) - 6)
Else
NoJump = True
End If
>>984
ありがd
http://pc3.2ch.net/test/read.cgi/tech/1033030499/l50

そろそろ次スレに・・・
>>968

どうしても0〜にしたいんであれば

0.退避テーブルを作る
1.退避テーブルにアイテムテーブルから有効なものを移動
2.アイテムリストあぼ〜ん(初期化)
3.退避テーブルからアイテムリストへ移動&番号付ける
4.退避テーブルを消すor初期化

これをアイテム取得時等アイテムが変わるときに毎回やる
モンスターリストもやれば結構いけると思うのだが
続きかもしれない

怨念システム健在です

モンスター倒しても同じID持ってるモンスターに対して攻撃再開するようです
*すぐ近くに復活(?)した場合
>>989
兄貴D見れば言われずともわかるよ
大抵の場合、元のタゲに向かってくるけど、たまに違う奴に行くのが頭痛の種
HPが微妙に少ないことぐらいしか違いが無い
991
992
992
993
994
994
998
999
999デフォルトの名無しさん:02/09/27 12:04
ちんこもっこりはにゃ〜ん
1000デフォルトの名無しさん:02/09/27 12:05
>>1
糞スレ立てんな
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。