ナポレオンの通常版Ver1.33とVerLite1.12以降にオンラインランキング機能を付けました。
これは、PCがオンラインであれば、ゲーム最後のポイント集計時にインターネット上にあるCGIに現在のポイント数を送り、ランキング登録するものです。
ゲームでは本名を設定しておられる方もおられるでしょうから、この名前をそのまま送ることをせず、送る前にご自分でハンドルネームを入れてもらうようにしてあります。
こういう処理をしています↓。
ポイント集計時にネットワーク上のlist3.txtを読み込む試みをして、それができれば読み込む
AnsiString Url ="http://ee.uuhp.com/~yama/list3.txt";
HINTERNET hSession;
hSession = InternetOpen( "MyApp", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 );
if( hSession )
{
HINTERNET hService;
hService = InternetOpenUrl( hSession, Url.c_str(), NULL, 0, 0, 0 );
if(hService)
{
while(1)
{
char lpBuffer[1024+1]; //一度に読み込むバイト数
DWORD dwBytesRead; //読み込んだbyte数
InternetReadFile(hService, lpBuffer, 1024, &dwBytesRead);
if(dwBytesRead == 0) break; //読み込んだbyte数が0になったらループを抜ける
lpBuffer[dwBytesRead] = 0; //読み込んだデータの最後に0を書き込み文字列化
Label183->Caption=lpBuffer; //htmlに追加
}
} //読み込めたらオンラインと判断しLabel183に記録。
InternetCloseHandle(hService);
}
InternetCloseHandle(hSession);
}
次に、Label183の記録を調べてオンライン上のlist3.txtが記録されていればオンラインと判断し、オンラインランキングボタンを表示します。
try{
GetHttpFile3();//アップデート確認
if(Label183->Caption!=0)Image142->Visible=true;
else Image142->Visible=false;
}
catch(...){}
オンラインランキングボタンが押されると、html文書を作成し、表示します。
こういうわけですの