過去ログ

記事一覧

l1itemdb.exe動作に関する現時点での問題

    4 / 4.5 / 4.6
XP  ○   ×   ×
Vista ○   ○   ○
7    ○   ○   ○
8    ×   ○   ○
10   ×   ×   ○

という事で、XPに合わせると8~10で動かず、7以上に合わせるとXPで動かずという事になるような感じっぽい。

【Lineage】.net版アイテムデータベース アルファ版テスト公開

なんとなく形が纏まってきたので公開してみます。
スタンドアロン版なのでインターネット環境が無くても動作し、現時点ではどこへも通信しません。
将来的にはアップデートのお知らせ等を盛り込められたらと思います。

ダウンロードはこちら
http://www.lbtg2.com/lbtg/l1db/l1itemdb.zip
(サーバー上のサイズ:10,198,980バイト)
(ウイルスバスター11.0.1745にて検索済み)

.NET Framework未インストールの方は下記2点をインストールしてください。
------------------------------------------------------------
Microsoft .NET Framework 4.5
https://www.microsoft.com/ja-jp/download/details.aspx?id=30653

Microsoft .NET Framework 4.5 Language Pack
https://www.microsoft.com/ja-jp/download/details.aspx?id=30667
------------------------------------------------------------

.NETのインストールが終わり、l1itemdb.zipを解凍したら出てくる「l1itemdb.exe」を起動すると次の画面になります。

ファイル 3441-1.png

「Items」タブではアイテムの種類別にリスト表示できます。「カテゴリ全て」ボタンのある個所は武器、防具、アクセサリで仕分けできるようになっています。

アイテムリスト上部の「Job」では各職業毎の絞り込みができますが、使用可能職業が指定されていない一部アイテムが表示されませんのでその場合は職業絞り込みを解除してください。


「Status」タブをクリックすると次の画面になります。

ファイル 3441-2.png

このページではアイテムの性能毎に絞り込みができます。また「Items」ページで指定した条件を引き継ぎます。
条件のクリアはタブページ下部にある「このタブ全てクリア」にて行ってください。反対側のページ条件をクリアしたい場合は「右(左)のタブ全てクリア」で実行できます。

リスト表示されたアイテムをクリックすると右側の大アイコン表示と、リストには表示されていない詳細性能が表示されます。
リスト表示されたアイテムをダブルクリックすると装備状態となり、ステータスが性能に応じて変動します。
一度装備したアイテムを解除するには装備個所のアイコンダブルクリックで行います。

今のところネット版よりデータ検索が速くて、多少絞り込みが有利で、装備個所への移動ができるのでなんとなく嬉しいくらいではありますが、不具合報告など頂戴できましたら幸いです。


以下、免責事項
・登録データの信頼性については担保しません(間違いもあるという事)
・このアプリを使って生じた損害については補償しません
・www.lbtg2.comドメイン以外からダウンロードした本アプリについて如何なる苦情も受け付けません

【.net VB】オブジェクト(コントロール)名を変数に代入するとか

エクセルVBAでコントロール名をループで扱う場合には

For i=1 to 5
 Form1.Contorols("Label" & i).Text=""
Next

とするだけで良く、これはそもそもVBのTipsから学んだやりかたでした。
しかし.netではこうした手法が使えないので大変不便です。
そんなときの代替案はといいますと、

MSDN「Visual Basic 6.0 の優れた機能を取り戻す 」
https://msdn.microsoft.com/ja-jp/library/dd313997.aspx

にあるようなコントロール配列を作ることで対応します。

Dim colMyLabels As ArrayList
Private Sub BuildLabelCollection()
 colMyLabels = New ArrayList
 colMyLabels .Add(Label1)
 colMyLabels .Add(Label2)
 colMyLabels .Add(Label3)
 colMyLabels .Add(Label4)
 colMyLabels .Add(Label5)
End Sub

これをForm1_Load内で実行するとコントロール配列として利用できます。

For i=0 to 4
 colMyLabels(i).Text=""
Next

わぁ便利!
.netVB初心者の方の参考になれば幸いです。

アイテムDBの進捗はまずまずでして、なんとなく形になってきました。

ファイル 3440-1.png

勉強用に作ってるのであれですが、ステータスシミュレーター代わりにならんかなーみたいな方向で進行中であります。

【.net VB】シングルクリックとダブルクリックを使い分ける

リストボックスのアイテムをドラッグした、またはダブルクリックした時に指定の場所へ画像をコピーするという動作をする場合、

DOBON.NET プログラミング道さんの「Drag&Dropを行う」
http://dobon.net/vb/dotnet/control/draganddrop.html

この記事でリストボックスからのMouseDownイベントからドラッグを行う動作は分かったのですが、MouseDownがダブルクリックでもフックされてしまい、ダブルクリックイベントを発生させられません。
ネットで検索するとe.Clicksが1の場合はシングルクリック、2の場合はダブルクリックと判別できる旨の記事(場所は忘れた)を発見したのでe.Clicksの値に応じて分岐してみると、


'ListBox1でマウスボタンが押された時
Private Sub ListBox1_MouseDown(
 ByVal sender As Object, ByVal e As MouseEventArgs)
 ListBox1_SelectedIndexChanged(sender, e)

 'ドラッグの準備
 Dim lbx As ListBox = CType(sender, ListBox)
 'ドラッグするアイテムのインデックスを取得する
 Dim itemIndex As Integer = lbx.IndexFromPoint(e.X, e.Y)
  If itemIndex < 0 Then
   Return
  End If 'ドラッグするアイテムの内容を取得する
 Dim itembmp As Bitmap = lbx.Items(itemIndex)

 If e.Clicks = 1 Then
 'マウスの左ボタンだけが押されている時のみドラッグできるようにする
  If e.Button = MouseButtons.Left Then
  'ドラッグ&ドロップ処理を開始する
   Dim dde As DragDropEffects = lbx.DoDragDrop(itembmp, DragDropEffects.All)
  End If
 ElseIf e.Clicks = 2 Then
  If xdat(ListBox1.SelectedIndex, 9) = "ヘルム" Then
   'PictureBox2.Image = PictureBox1.Image
   'ドロップされたデータ(Bitmap型)を取得
   PictureBox2.Image = itembmp
   Dim dataid As Integer = xdat(ListBox1.SelectedIndex, 0)
   Label5.Text = CStr(dataid)
  End If
 End If
End Sub

こうする事でドラッグとダブルクリックの動作を分けつつMouseDownイベントだけで処理できます。

ファイル 3439-1.png

これでリストをダブルクリックしても、ヘルム位置にドラッグしても同じ様にアイテム画像を装備枠に移動できました。

【Lineage1】.netVBでオフライン版アイテムDB作成中

もうスマホなんて当たり前の世界で、いつ何時でもネットができるのは水道を捻ったら水が出てくるくらい当たり前の時代になりつつあります。
私もスマホをASUSのZenFoneLeaserに変えたのですが、キャリア版スマホと違い無料でテザリングができますから、ノートPCやタブレットを持って出かけても通信環境に困ることはありません。

それでもオフライン版の需要ってあるんじゃないかな、といいますか.netを覚えるにあたって自分が欲しいものをとりあえず作ってみるのがいいだろうという事でウンウンと唸りながら頭を掻き毟っております。

40超えると新しい事を覚えるのって本当に大変で、昔は暗記できたことも今ではこまめにメモを取ったりネット事例のブックマークを取ったりと衰えを感じてはいますが、「何かを作る」っていうのは本当に楽しい。

ファイル 3438-1.png

まだ全件読み込んでリスト表示し、クリックしたアイテム詳細を表示するくらいしか作っていません。これから絞り込みなどを追加しないといけないわけでまだまだ道程は長いのです。
しかしネット版ItemDBはAmigoDataBaseさんの作ったデータベース用cgiを加工しているだけなのでカスタマイズが非常に難しく、またSHIFT-JIS~UTF-8の変換が未だにうまくいかないのでデータはUTF-8なのに詳細検索のアイテム名がSHIFT-JISのまま変更できず検索に支障をきたしたりなど問題は様々。
それをイチから自分で作るのであればカスタマイズも楽だし、条件もすべて自分が設定するわけですし(自分が使う上で)細かいトコロに手が届けばいいなぁと思っております。