しかし、「コード行のない日ではない」というすばらしいフレーズがあります。
それで、今週末、私は脳のウォームアップを手配することにしました:-)
バトルフィールドシリーズが大好きです。 まあ、私は彼女が好きです!
Battlefield 3のBattlelogには素晴らしいサーバーキューがありました。 クリックしてお待ちください。
4番目のパートでは、友達と遊ぶために座ってボタンを押さなければならないことを発見したとき、私は失望しました。
最初に思いついたのは、単純なタイマーです。
setInterval(function(){var button=document.getElementById('ugm-reconnect'); if(button != null) button.click();},1000);
再接続ボタンを1秒に1回押します。
しかし! 第一に、これは正しくありません。すでにサーバーに接続しているときに「空白」クリックでブラウザーとプロセッサーをロードするからです。
次に、DICEがこれらのクリッカーを追跡する場合はどうなりますか?
DICEコードを調べてみると、かなり高度なフロントエンドフレームワークがあり、そこに「ネイティブ」ハンドラーが見つかりました。
具体的には、registerForEvent()メソッドを持つランチャーオブジェクトがあります。
私は彼ら自身がそれをどのように使用するかを見て、この簡単なコードを書きました:
// generic launcher.registerForEvent("error.generic", function(event, game, personaId, errorType, errorCode, errorString) { // " " if(errorType == "ERR_SERVERCONNECT_SERVERFULL") { var button = jQuery("#ugm-reconnect"); if(button.length > 0){ // setTimeout(function(){ button.click(); },Math.floor((Math.random()*1000)+1000)); } } });
まあ、毎回コンソールに書き込まないために、 ChromeとFirefoxの拡張機能を作成しました。