Lineageを複数PCでプレイするときに使うと幸せになれるかもしれません。
作成した背景:
リネでは、「所持アイテムの並び順」と「ショートカット登録内容」を
クライアント側で(ファイルとして)保存していたりします。
んで、この情報が無かったり古かったりすると悲しいことになるので、
ネットカフェとかで遊ぶ時には、その情報ファイルを持ち歩いているわけで。
まぁ決まりきった作業なのでバッチにしてしまえ、と。
使用例:
家のPCからFDへコピー -> ネットカフェでHDDへコピー -> リネで遊ぶ
-> HDDからFDにコピー -> HDD掃除 -> 家のPCにコピー -> リネで遊ぶ
お約束:
・言うまでもないですが無保証なので、使う人は自己責任で。
・改造はご自由に。てか、改造しないと使えない環境もあるし。
・使いたい人は、この日記にコメント付けてね♪
補足とか注意点とか:
・WSHを使ってますので、素のWin95では使えないはず。
・WSHを使ってますので、素のWinNT4.0では使えません。
が、どーせリネが動かないので関係ないね :-p
・Win98SEとWin2Kでは動かしました。
・リネのインストールフォルダを"C:\Program Files\Lineage\"、
FDのドライブを"A:\"と決め打ちしています。
・vbsとbatとtxtは、全て同じフォルダに入れる。てかFDに入れて持ち運ぼう。
・ファイル名が全部"00"で始まっているのは、並び替えをする時の都合です。
・見れば分かると思うけど、実行するのはバッチファイルね。
vbsを直接実行しても怒られるだけです。引数が必要なので。
・上書き確認とかは一切していないので、間違って新しいファイルを消しちゃうかも。
・複数サーバで同じ名前のキャラ使った場合は、うまくいきません。
てか、それは「リネの仕様」なのでどーしよーも無いです。
足りない機能とか希望とか:
・ファイル上書き時にタイムスタンプチェックした方が良いかも。
・リネフォルダはレジストリを漁れば取れたような。
・FDドライブは決め打ちしてるけど、「カレントフォルダ」にした方が良いかも。
でないと、他のリムーバブルメディアが使いづらい・・・
・リストファイル名を引数に渡せると便利かも。複数鯖対応に使えるかも。
・フォルダ名を引数に渡せると便利かも。複数環境のリムーバブルメディアとか・・・
-- 00CPYDEL.vbs
'00CPYDEL.vbs
' リストされたファイルをFDHDD間でコピー、HDDのファイル削除
'引数
' FD2HDD FD->HDDへコピー
' HDD2FD HDD->FDへコピー
' DELHDD HDD内のファイルを削除
Option Explicit
Dim strListFile
Dim strFDDir
Dim strHDDDir
Dim fsoList 'リストファイル処理用
Dim fpList
Dim strChaName 'キャラ名格納用
Dim strExt : strExt = ".inv" ' 拡張子
'キャラ名リストファイル名
strListFile = ".\00List.txt"
'FDのフォルダ
strFDDir = "A:\"
'HDDのフォルダ
strHDDDir = "C:\Program Files\Lineage\"
Const cintFD2HDD = 1
Const cintHDD2FD = 2
Const cintDELHDD = 4
Dim intArgs
Dim objArgs
Dim intIndex
intArgs = 0
Set objArgs = wscript.Arguments
for intIndex = 0 to objArgs.Count - 1
Select Case objArgs(intIndex)
Case "FD2HDD"
intArgs = intArgs + cintFD2HDD
Case "HDD2FD"
intArgs = intArgs + cintHDD2FD
Case "DELHDD"
intArgs = intArgs + cintDELHDD
End Select
Next
If intArgs = 0 Then
WScript.Echo "正しい引数を指定してください"
WScript.Quit
End If
If (intArgs And cintFD2HDD) 0 And (intArgs And cintHDD2FD) 0 Then
WScript.Echo "FD2HDD と HDD2FD を同時に指定する事は出来ません"
WScript.Quit
End If
'リストファイルを開く
Set fsoList = CreateObject("Scripting.FileSystemObject")
Set fpList = fsoList.OpenTextFile(strListFile, 1) 'ForReading(1):読みこみ専用 ForWriting(2):書込み専用 ForAppending(8):追加書込み
wscript.echo "FD側フォルダ[" + strFDDir + "]"
wscript.echo "HDD側フォルダ[" + strHDDDir + "]"
wscript.echo ""
Do While Not fpList.AtEndOfStream
strChaName = fpList.ReadLine 'リストから1行取得
'wscript.echo "キャラ名:" + strChaName 'DEBUG
If (intArgs And cintFD2HDD) 0 Then
wscript.echo "(FD->HDD)[" + strChaName + strExt + "]コピー中..."
fsoList.CopyFile strFDDir + strChaName + strExt, strHDDDir
End If
If (intArgs And cintHDD2FD) 0 Then
wscript.echo "(HDD->FD)[" + strChaName + strExt + "]コピー中..."
fsoList.CopyFile strHDDDir + strChaName + strExt, strFDDir
End If
If (intArgs And cintDELHDD) 0 Then
wscript.echo "[" + strChaName + strExt + "]削除中..."
fsoList.DeleteFile strHDDDir + strChaName + strExt
End If
Loop
'fsoList.CloseTextFile()
'Set fpList = Null
'Set fsoList = Null
wscript.echo ""
wscript.echo "処理終了!"
[EOF]
-- 00FDからHDDへコピー.bat
@cscript 00CPYDEL.vbs FD2HDD
[EOF]
-- 00HDDからFDへコピー.bat
@cscript 00CPYDEL.vbs HDD2FD DELHDD
[EOF]
-- 00HDDからFDへコピーしたあとHDD掃除.bat
@cscript 00CPYDEL.vbs HDD2FD DELHDD
[EOF]
-- 00HDD内のファイル掃除.bat
@cscript 00CPYDEL.vbs DELHDD
[EOF]
-- 00List.txt
キャラ名1
キャラ名2
キャラ名3
・・・(以下1行1キャラ名で気が済むまで並べる)
キャラ名n
[EOF]