懐かしさ
残念ながら、現在、多くのゲーム開発者はこのモードを追加していません-分割画面を使用した新しいゲームは、ほとんど片手の指で数えることができます。 ある春の夕方、開発者によって課せられた制限を回避し、分割画面ゲームモードをよりアクセスしやすくしようとするアイデアが思い浮かびました。
ゲームの
1.一緒にプレイする機能。このモードは「 小隊 」と呼ばれます。
2.最小設定でプレイするのは十分ではありません-パフォーマンスの平均的なPCは2コピーをプルするはずです。
3.戦車のゲームプレイは非常に単純ですが、開発者は「ロールプレイングゲーム、シューティングゲーム、戦略の要素を備えたアクションの分野での大規模なマルチプレイヤーオンラインゲーム」( Wikipedia )として位置付けられています。 しかし、私
4.おそらく最も基本的な理由-私は、週に数時間、私の一番下の息子が撮影するのが大好きです。 長老と一緒にPortal2に行くこともありますが、そこにはテレビ用の分割画面モードがあります。
これらの人たちが多くの人に馴染みのあることを願っています;)
テレビで一緒にタンクのすべてのコンポーネントのより詳細な研究は、以下につながりました:
1. 2つのコピーを起動できるようにゲームクライアントを構成します
2.テレビ画面を2つの仮想画面に分割する必要があります。
3.ボタンの押下を送信する/ゲームパッドから非アクティブなウィンドウにスティックを拒否する問題を解決します。
4.さまざまなクライアントからさまざまなゲームパッドに振動を送信します。
決定プロセスの詳細をご覧ください。
1. 2つのクライアントの起動。
デフォルトでは、Wargamingの開発者は2つのコピーを同時に起動する機能を削除しました。 「サンドボックス」のすべての魅力については説明しません- あなたを助けるサンドボックス。
2.テレビ画面を2つの部分に分割します。
ウィンドウモードの「WoT」の最小解像度は1024x768です。FullHDTVを半分に分割する場合、各ウィンドウの解像度は少なくとも960x1080である必要があり、ウィンドウフレームとタイトルバーがあればさらに小さくなります。 つまり スナップを介した標準の「ホットキー」を使用すると、異なる方向でウィンドウを開くと、ウィンドウの部分的なオーバーラップが発生します。 デスクトップを2つの部分に分割するその他のユーティリティは、同様の機能を使用し、ゲームの幅の最小解像度に影響を与えることはありません。
膨大な量を試した後、 仮想ディスプレイマネージャーに出会いました。名前に「デスクトップ」という言葉がなかったためです。
ユーティリティは正しいことを行いました-2つの仮想ディスプレイの構成を追加し、ウィンドウを正しいものに移動します-ゲームは必要な価値を引き継ぎます。つまり、画面のちょうど半分を占有します。
3.非アクティブなウィンドウにキーストロークを送信します。
この決断は
解像度1366x768。
この問題を解決するために、私はAutoHotkeyの知り合いに促されました。 本当に「AutoHotkeyはWindows用の無料のオープンソースユーティリティであり、優れた機能を備えたスクリプト言語であり、原則としてインストールも必要ありません。」( リンク )
時には戦いに乗ることさえできる最初のスクリプト
#InstallKeybdHook
w ::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc11 Down}、ahk_pid%wot%
KeyWait、w
ControlSend、{sc11 Up}、ahk_pid%wot%
戻る
::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc1E Down}、ahk_pid%wot%
KeyWait、
ControlSend、{sc1E Up}、ahk_pid%wot%
戻る
s ::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc1F Down}、ahk_pid%wot%
KeyWait、s
ControlSend、{sc1F Up}、ahk_pid%wot%
戻る
d ::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc20 Down}、ahk_pid%wot%
KeyWait、d
ControlSend、{sc20 Up}、ahk_pid%wot%
戻る
w ::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc11 Down}、ahk_pid%wot%
KeyWait、w
ControlSend、{sc11 Up}、ahk_pid%wot%
戻る
::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc1E Down}、ahk_pid%wot%
KeyWait、
ControlSend、{sc1E Up}、ahk_pid%wot%
戻る
s ::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc1F Down}、ahk_pid%wot%
KeyWait、s
ControlSend、{sc1F Up}、ahk_pid%wot%
戻る
d ::
WinGet、wot、PID、WoTクライアント
ControlSend、{sc20 Down}、ahk_pid%wot%
KeyWait、d
ControlSend、{sc20 Up}、ahk_pid%wot%
戻る
スクリプトが機能した理由は、私にはまだ不明でした。
何度も失敗した後、解決策が見つかりました。 SendMessageを介して、ウィンドウにアクティブであることを伝え、キーストロークを送信します。 そのような独特の欺ception。
スクリプトは、矢印、WASD、およびスペース(ゲーム内のショットに再割り当て)を非アクティブなウィンドウに送信します。
#SingleInstance
#InstallKeybdHook
SetControlDelay -1
vk49 ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk57 Down}、WoTクライアント
KeyWait、vk49
ControlSend、{vk57 Up}、WoTクライアント
戻る
vk4A ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk41 Down}、WoTクライアント
KeyWait、vk4A
ControlSend、{vk41 Up}、WoTクライアント
戻る
vk4B ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk53 Down}、WoTクライアント
KeyWait、vk4B
ControlSend、{vk53 Up}、WoTクライアント
戻る
vk4C ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk44 Down}、WoTクライアント
KeyWait、vk4C
ControlSend、{vk44 Up}、WoTクライアント
戻る
テンキー::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {up Down}、WoTクライアント
KeyWait、numpadup
ControlSend、{up Up}、WoTクライアント
戻る
テンキーダウン::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{down Down}、WoTクライアント
KeyWait、テンキーダウン
ControlSend 、、 {down Up}、WoTクライアント
戻る
numpadleft ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{left Down}、WoTクライアント
KeyWait、numpadleft
ControlSend、{left Up}、WoTクライアント
戻る
numpadright ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{right Down}、WoTクライアント
KeyWait、numpadright
ControlSend、{right Up}、WoTクライアント
戻る
NumpadEnter ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk20 Down}、WoTクライアント
KeyWait、NumpadEnter
ControlSend、{vk20 Up}、WoTクライアント
戻る
#InstallKeybdHook
SetControlDelay -1
vk49 ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk57 Down}、WoTクライアント
KeyWait、vk49
ControlSend、{vk57 Up}、WoTクライアント
戻る
vk4A ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk41 Down}、WoTクライアント
KeyWait、vk4A
ControlSend、{vk41 Up}、WoTクライアント
戻る
vk4B ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk53 Down}、WoTクライアント
KeyWait、vk4B
ControlSend、{vk53 Up}、WoTクライアント
戻る
vk4C ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk44 Down}、WoTクライアント
KeyWait、vk4C
ControlSend、{vk44 Up}、WoTクライアント
戻る
テンキー::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {up Down}、WoTクライアント
KeyWait、numpadup
ControlSend、{up Up}、WoTクライアント
戻る
テンキーダウン::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{down Down}、WoTクライアント
KeyWait、テンキーダウン
ControlSend 、、 {down Up}、WoTクライアント
戻る
numpadleft ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{left Down}、WoTクライアント
KeyWait、numpadleft
ControlSend、{left Up}、WoTクライアント
戻る
numpadright ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{right Down}、WoTクライアント
KeyWait、numpadright
ControlSend、{right Up}、WoTクライアント
戻る
NumpadEnter ::
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk20 Down}、WoTクライアント
KeyWait、NumpadEnter
ControlSend、{vk20 Up}、WoTクライアント
戻る
それからもっと楽しくなりました。
World_Of_Tanks_Split_screen
JoyMultiplier = 5
JoyThreshold = 5
JoyThresholdUpper:= 50 + JoyThreshold
JoyThresholdLower:= 50-JoyThreshold
#永続的
SetTimer、WatchAxisFirstJoyMoveForwardAndZoom、10
SetTimer、WatchAxisFirstJoyMoveRotate、10
SetTimer、WatchAxisFirstJoyCameraRotateVert、10
SetTimer、WatchAxisFirstJoyCameraRotateHoriz、10
SetTimer、WatchAxisFirstJoyShoot、10
SetTimer、WatchFirstJoyPOV、10
SetTimer、WatchAxisSecondJoyMoveForwardAndZoom、10
SetTimer、WatchAxisSecondJoyMoveRotate、10
SetTimer、WatchAxisSecondJoyCameraRotate、10
SetTimer、WatchAxisSecondJoyShoot、10
SetTimer、WatchSecondJoyPOV、10
帰る
;;;;;;;;;;;;;;;; ウィンドウのタイトルを削除する
^!+ s ::
WinWait、WoTクライアント
WinSet、スタイル、-0xC00000
WinWait、[#] WoTクライアント[#]
WinSet、スタイル、-0xC00000
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウで最初のゲームパッドが前後に移動し、ズームする
WatchAxisFirstJoyMoveForwardAndZoom:
GetKeyState、1JoyY、1JoyY
GetKeyState、1JoyZ、1JoyZ
GetKeyState、1Joy2、1Joy2
GetKeyState、1Joy3、1Joy3
FirstJoyMoveForwardAndZoomPrev =%FirstJoyMoveForwardAndZoom%
1Joy2 = Dの場合
GoSub、FirstJoyConsumables
その他の場合、1Joy3 = D
GoSub、FirstJoyConsumables
他に
{
1JoyZ> 70の場合
{
1JoyY <30の場合
FirstJoyMoveForwardAndZoom = PgDn
それ以外の場合は、1JoyY> 70
FirstJoyMoveForwardAndZoom = PgUp
他に
FirstJoyMoveForwardAndZoom =
}
それ以外の場合、1JoyY <30
FirstJoyMoveForwardAndZoom = vk57
それ以外の場合は、1JoyY> 70
FirstJoyMoveForwardAndZoom = vk53
他に
FirstJoyMoveForwardAndZoom =
}
FirstJoyMoveForwardAndZoom =%FirstJoyMoveForwardAndZoomPrev%の場合
帰る
SetKeyDelay -1
FirstJoyMoveForwardAndZoomの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyMoveForwardAndZoom%down}、WoTクライアント
}
}
FirstJoyMoveForwardAndZoomPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {%FirstJoyMoveForwardAndZoomPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドの左右の動き
WatchAxisFirstJoyMoveRotate:
GetKeyState、1JoyX、1JoyX
GetKeyState、1Joy2、1Joy2
GetKeyState、1Joy3、1Joy3
FirstJoyMoveRotatePrev =%FirstJoyMoveRotate%
1Joy2 = Dの場合
GoSub、SecondJoyConsumables
その他の場合、1Joy3 = D
GoSub、SecondJoyConsumables
他に
{
1JoyX> 80の場合
FirstJoyMoveRotate = vk44
それ以外の場合、1JoyX <20
FirstJoyMoveRotate = vk41
他に
FirstJoyMoveRotate =
}
FirstJoyMoveRotate =%FirstJoyMoveRotatePrev%の場合
帰る
SetKeyDelay -1
FirstJoyMoveRotateの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyMoveRotate%down}、WoTクライアント
}
}
FirstJoyMoveRotatePrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyMoveRotatePrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウの消耗品メニューの最初のゲームパッド
FirstJoyConsumables:
FirstJoyConsumablesPrev =%FirstJoyConsumables%
1JoyX <20の場合
{
1JoyY <20の場合
FirstJoyConsumables = vk38
それ以外の場合、1JoyYが40〜60の場合
FirstJoyConsumables = vk37
それ以外の場合は1JoyY> 80
FirstJoyConsumables = vk36
それ以外の場合FirstJoyConsumables =
}
1JoyXが40〜60の場合
{
1JoyY <10の場合
FirstJoyConsumables = vk31
それ以外の場合は、1JoyY> 90
FirstJoyConsumables = vk35
それ以外の場合FirstJoyConsumables =
}
それ以外の場合、1JoyX> 80の場合
{
1JoyY <20の場合
FirstJoyConsumables = vk32
それ以外の場合、1JoyYが40〜60の場合
FirstJoyConsumables = vk33
それ以外の場合は1JoyY> 80
FirstJoyConsumables = vk34
それ以外の場合FirstJoyConsumables =
}
それ以外の場合FirstJoyConsumables =
FirstJoyConsumables =%SFirstJoyConsumablesPrev%の場合
帰る
SetKeyDelay -1
FirstJoyConsumablesの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {%FirstJoyConsumables%down}、WoTクライアント
}
}
FirstJoyConsumablesPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyConsumablesPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; アクティブでないウィンドウでの最初のゲームパッドの左/右レビュー
WatchAxisFirstJoyCameraRotateVert:
GetKeyState、1JoyU、1JoyU
GetKeyState、1Joy5、1Joy5
FirstJoyCameraRotateVertPrev =%FirstJoyCameraRotateVert%
1Joy5 = Dの場合
GoSub、FirstJoyCommandMenu
他に
{
1JoyU> 70の場合
FirstJoyCameraRotateVert =右
それ以外の場合、1JoyU <30
FirstJoyCameraRotateVert =左
他に
FirstJoyCameraRotateVert =
}
FirstJoyCameraRotateVert =%FirstJoyCameraRotateVertPrev%の場合
帰る
SetKeyDelay -1
FirstJoyCameraRotateVertの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCameraRotateVert%down}、WoTクライアント
}
}
FirstJoyCameraRotateVertPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCameraRotateVertPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドのアップ/ダウンレビュー
WatchAxisFirstJoyCameraRotateHoriz:
GetKeyState、1JoyR、1JoyR
GetKeyState、1Joy5、1Joy5
FirstJoyCameraRotateHorizPrev =%FirstJoyCameraRotateHoriz%
1Joy5 = Dの場合
GoSub、FirstJoyCommandMenu
他に
{
1JoyR> 70の場合
FirstJoyCameraRotateHoriz = Down
それ以外の場合、1JoyR <30
FirstJoyCameraRotateHoriz = Up
他に
FirstJoyCameraRotateHoriz =
}
FirstJoyCameraRotateHoriz =%FirstJoyCameraRotateHorizPrev%の場合
帰る
SetKeyDelay -1
FirstJoyCameraRotateHorizの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCameraRotateHoriz%down}、WoTクライアント
}
}
FirstJoyCameraRotateHorizPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {%FirstJoyCameraRotateHorizPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 最初のゲームパッド注文メニュー
FirstJoyCommandMenu:
FirstJoyCommandMenuPrev =%FirstJoyCommandMenu%
1JoyU <20の場合
{
1JoyR <20の場合
FirstJoyCommandMenu = Numpad8
1JoyRが40〜60の場合
FirstJoyCommandMenu = Numpad7
それ以外の場合は1JoyR> 80
FirstJoyCommandMenu = Numpad6
それ以外の場合FirstJoyCommandMenu =
}
それ以外の場合、1JoyUが40〜60の場合
{
1JoyR <10の場合
FirstJoyCommandMenu = vk54
それ以外の場合は、1JoyR> 90
FirstJoyCommandMenu = Numpad5
それ以外の場合FirstJoyCommandMenu =
}
それ以外の場合は1JoyU> 80
{
1JoyR <20の場合
FirstJoyCommandMenu = Numpad2
1JoyRが40〜60の場合
FirstJoyCommandMenu = Numpad3
それ以外の場合は1JoyR> 80
FirstJoyCommandMenu = Numpad4
それ以外の場合FirstJoyCommandMenu =
}
それ以外の場合FirstJoyCommandMenu =
FirstJoyCommandMenu =%FirstJoyCommandMenuPrev%の場合
帰る
SetKeyDelay -1
FirstJoyCommandMenuの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCommandMenu%down}、WoTクライアント
}
}
FirstJoyCommandMenuPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCommandMenuPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウで撮影された最初のゲームパッド
WatchAxisFirstJoyShoot:
GetKeyState、1JoyZ、1JoyZ
FirstJoyShootPrev =%FirstJoyShoot%
1JoyZ <30の場合
FirstJoyShoot = LButton
他に
FirstJoyShoot =
FirstJoyShoot =%FirstJoyShootPrev%の場合
帰る
SetKeyDelay -1
FirstJoyShootの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x201 、、、、 WoTクライアント
}
}
FirstJoyShootPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x202 、、、、 WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドのクロス
WatchFirstJoyPOV:
GetKeyState、1JoyPOV、1JoyPOV
FirstJoyPOVPrev =%FirstJoyPOV%
1JoyPOV = 0の場合
FirstJoyPOV = vk52
それ以外の場合、1JoyPOV = 18000の場合
FirstJoyPOV = vk46
それ以外の場合、1JoyPOV = 27000の場合
FirstJoyPOV = vk58
それ以外の場合、1JoyPOV = 9000の場合
FirstJoyPOV = vk43
それ以外の場合FirstJoyPOV =
FirstJoyPOV =%FirstJoyPOVPrev%の場合
帰る
SetKeyDelay -1
FirstJoyPOVの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyPOV%down}、WoTクライアント
}
}
FirstJoyPOVPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyPOVprev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; アクティブでないウィンドウでの最初のLShiftゲームパッド
1Joy10 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vkA0 Down}、WoTクライアント
KeyWait、1Joy10
ControlSend、{vkA0 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のSpaceゲームパッド
1Joy9 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk20 Down}、WoTクライアント
KeyWait、1Joy9
ControlSend、{vk20 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでのシェルの最初のゲームパッド選択
1Joy1 ::
Gosub、FirstSubToggle
戻る
FirstSubToggle:
FirstToggle ++
FirstToggle = 1の場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk31 down}、WoTクライアント
睡眠10
ControlSend、{vk31 up}、WoTクライアント
睡眠10
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk31 down}、WoTクライアント
睡眠10
ControlSend、{vk31 up}、WoTクライアント
}
}
FirstToggle = 2の場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk32 down}、WoTクライアント
睡眠10
ControlSend、{vk32 up}、WoTクライアント
睡眠10
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk32 down}、WoTクライアント
睡眠10
ControlSend、{vk32 up}、WoTクライアント
}
}
FirstToggle = 3の場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk33 down}、WoTクライアント
睡眠10
ControlSend、{vk33 up}、WoTクライアント
睡眠10
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk33 down}、WoTクライアント
睡眠10
ControlSend、{vk33 up}、WoTクライアント
}
FirstToggle = 0
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッド消火器
1Joy4 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk35 Down}、WoTクライアント
KeyWait、1Joy4
ControlSend、{vk35 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; アクティブでないウィンドウでの最初のゲームパッド自動視界
1Joy6 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x204、1 、、、 WoTクライアント
KeyWait、1Joy6
SendMessage、0x205、1 、、、 WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 最初のウィンドウ内メニューのゲームパッド
1Joy8 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk1B Down}、WoTクライアント
KeyWait、1Joy8
ControlSend、{vk1B Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 最初のゲームパッドは非アクティブなウィンドウでミニマップを非表示
1Joy7 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk4D Down}、WoTクライアント
KeyWait、1Joy7
ControlSend、{vk4D Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドの修復
1Joy3 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk34 Down}、WoTクライアント
KeyWait、1Joy3
ControlSend、{vk34 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッド処理
1Joy2 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk36 Down}、WoTクライアント
KeyWait、1Joy2
ControlSend、{vk36 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; セカンドゲームパッド
;;;;;;;;;;;;;;;; アクティブなウィンドウで2番目のゲームパッドを前後に移動してズーム
WatchAxisSecondJoyMoveForwardAndZoom:
GetKeyState、2JoyY、2JoyY
GetKeyState、2JoyZ、2JoyZ
GetKeyState、2Joy2、2Joy2
GetKeyState、2Joy3、2Joy3
SecondJoyMoveForwardAndZoomPrev =%SecondJoyMoveForwardAndZoom%
2Joy2 = Dの場合
GoSub、SecondJoyConsumables
それ以外の場合、2Joy3 = Dの場合
GoSub、SecondJoyConsumables
他に
{
2JoyZ> 70の場合
{
2JoyY <30の場合
SecondJoyMoveForwardAndZoom = PgDn
それ以外の場合、2JoyY> 70の場合
SecondJoyMoveForwardAndZoom = PgUp
他に
SecondJoyMoveForwardAndZoom =
}
それ以外の場合、2JoyY <30
SecondJoyMoveForwardAndZoom = vk57
それ以外の場合、2JoyY> 70の場合
SecondJoyMoveForwardAndZoom = vk53
他に
SecondJoyMoveForwardAndZoom =
}
SecondJoyMoveForwardAndZoom =%SecondJoyMoveForwardAndZoomPrev%の場合
帰る
SetKeyDelay -1
SecondJoyMoveForwardAndZoomの場合
{
ControlSend、{%SecondJoyMoveForwardAndZoom%down}、[#] WoTクライアント[#]
}
SecondJoyMoveForwardAndZoomPrevの場合
{
ControlSend ,, {%SecondJoyMoveForwardAndZoomPrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; アクティブなウィンドウでの2番目のゲームパッドの左右の動き
WatchAxisSecondJoyMoveRotate:
GetKeyState、2JoyX、2JoyX
GetKeyState、2Joy2、2Joy2
GetKeyState、2Joy3、2Joy3
SecondJoyMoveRotatePrev =%SecondJoyMoveRotate%
2Joy2 = Dの場合
GoSub、SecondJoyConsumables
それ以外の場合、2Joy3 = Dの場合
GoSub、SecondJoyConsumables
他に
{
2JoyX> 80の場合
SecondJoyMoveRotate = vk44
それ以外の場合、2JoyX <20
SecondJoyMoveRotate = vk41
他に
SecondJoyMoveRotate =
}
SecondJoyMoveRotate =%SecondJoyMoveRotatePrev%の場合
帰る
SetKeyDelay -1
SecondJoyMoveRotateの場合
{
ControlSend、{%SecondJoyMoveRotate%down}、[#] WoTクライアント[#]
}
SecondJoyMoveRotatePrevの場合
{
ControlSend ,, {%SecondJoyMoveRotatePrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドメニューの消耗品
SecondJoyConsumables:
SecondJoyConsumablesPrev =%SecondJoyConsumables%
2JoyX <20の場合
{
2JoyY <20の場合
SecondJoyConsumables = vk38
それ以外の場合、2JoyYが40〜60の場合
SecondJoyConsumables = vk37
それ以外の場合、2JoyY> 80の場合
SecondJoyConsumables = vk36
else SecondJoyConsumables =
}
それ以外の場合、2JoyXが40〜60の場合
{
2JoyY <10の場合
SecondJoyConsumables = vk31
それ以外の場合、2JoyY> 90
SecondJoyConsumables = vk35
else SecondJoyConsumables =
}
それ以外の場合、2JoyX> 80の場合
{
2JoyY <20の場合
SecondJoyConsumables = vk32
それ以外の場合、2JoyYが40〜60の場合
SecondJoyConsumables = vk33
それ以外の場合、2JoyY> 80の場合
SecondJoyConsumables = vk34
else SecondJoyConsumables =
}
else SecondJoyConsumables =
SecondJoyConsumables =%SecondJoyConsumablesPrev%の場合
帰る
SetKeyDelay -1
SecondJoyConsumablesの場合
{
ControlSend、{%SecondJoyConsumables%down}、[#] WoTクライアント[#]
}
SecondJoyConsumablesPrevの場合
{
ControlSend ,, {%SecondJoyConsumablesPrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドレビューとアクティブウィンドウでのマウス
WatchAxisSecondJoyCameraRotate:
MouseNeedsToBeMoved:= false
SetFormat、float、03
GetKeyState、2JoyU、2JoyU
GetKeyState、2JoyR、2JoyR
GetKeyState、2Joy5、2Joy5
2Joy5 = Dの場合
GoSub、SecondJoyCommandMenu
それ以外の場合、2Joy5 = Uの場合
{
if 2JoyU>%JoyThresholdUpper%
{
MouseNeedsToBeMoved:= true
DeltaU:= 2JoyU-JoyThresholdUpper
}
それ以外の場合、2JoyU <%JoyThresholdLower%の場合
{
MouseNeedsToBeMoved:= true
DeltaU:= 2JoyU-JoyThresholdLower
}
他に
DeltaU = 0
2JoyR>%JoyThresholdUpper%の場合
{
MouseNeedsToBeMoved:= true
DeltaR:= 2JoyR-JoyThresholdUpper
}
それ以外の場合、2JoyR <%JoyThresholdLower%
{
MouseNeedsToBeMoved:= true
DeltaR:= 2JoyR-JoyThresholdLower
}
他に
DeltaR = 0
}
SetKeyDelay -1
MouseNeedsToBeMovedの場合
{
SetMouseDelay、-1; 動きをスムーズにします
x:=(DeltaU / 30)*(ABS(DeltaU)/ 30)* JoyMultiplier
y:=(DeltaR / 30)*(ABS(DeltaR)/ 30)* JoyMultiplier
DllCall( "mouse_event"、uint、1、int、x、int、y、uint、0、int、0)
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッド注文メニュー
SecondJoyCommandMenu:
SecondJoyCommandMenuPrev =%SecondJoyCommandMenu%
2JoyU <20の場合
{
2JoyR <20の場合
SecondJoyCommandMenu = Numpad8
それ以外の場合、2JoyRが40〜60の場合
SecondJoyCommandMenu = Numpad7
それ以外の場合、2JoyR> 80の場合
SecondJoyCommandMenu = Numpad6
その他SecondJoyCommandMenu =
}
それ以外の場合、2JoyUが40〜60の場合
{
2JoyR <10の場合
SecondJoyCommandMenu = vk54
それ以外の場合、2JoyR> 90
SecondJoyCommandMenu = Numpad5
その他SecondJoyCommandMenu =
}
それ以外の場合、2JoyU> 80
{
2JoyR <20の場合
SecondJoyCommandMenu = Numpad2
それ以外の場合、2JoyRが40〜60の場合
SecondJoyCommandMenu = Numpad3
それ以外の場合、2JoyR> 80の場合
SecondJoyCommandMenu = Numpad4
その他SecondJoyCommandMenu =
}
その他SecondJoyCommandMenu =
SecondJoyCommandMenu =%SecondJoyCommandMenuPrev%の場合
帰る
SetKeyDelay -1
SecondJoyCommandMenuの場合
{
ControlSend、{%SecondJoyCommandMenu%down}、[#] WoTクライアント[#]
}
SecondJoyCommandMenuPrevの場合
{
ControlSend ,, {%SecondJoyCommandMenuPrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; アクティブウィンドウで2番目のゲームパッドショット
WatchAxisSecondJoyShoot:
GetKeyState、2JoyZ、2JoyZ
SecondJoyShootPrev =%SecondJoyShoot%
2JoyZ <30の場合
SecondJoyShoot = LButton
他に
SecondJoyShoot =
SecondJoyShoot =%SecondJoyShootPrev%の場合
帰る
SetKeyDelay -1
SecondJoyShootの場合
{
送信、{%SecondJoyShoot%down}
}
SecondJoyShootPrevの場合
{
送信、{%SecondJoyShootPrev%up}
}
帰る
;;;;;;;;;;;;;;;;;; アクティブなウィンドウの2番目のゲームパッドクロス
WatchSecondJoyPOV:
GetKeyState、2JoyPOV、2JoyPOV
SecondJoyPOVPrev =%SecondJoyPOV%
2JoyPOV = 0の場合
SecondJoyPOV = vk52
それ以外の場合、2JoyPOV = 18000の場合
SecondJoyPOV = vk46
それ以外の場合、2JoyPOV = 27000
SecondJoyPOV = vk58
それ以外の場合、2JoyPOV = 9000の場合
SecondJoyPOV = vk43
else SecondJoyPOV =
SecondJoyPOV =%SecondJoyPOVPrev%の場合
帰る
SetKeyDelay -1
SecondJoyPOVの場合
{
ControlSend ,, {%SecondJoyPOV%down}、[#] WoT Client [#]
}
SecondJoyPOVPrevの場合
{
ControlSend ,, {%SecondJoyPOVprev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; アクティブなウィンドウの2番目のLShiftゲームパッド
2Joy10 ::
{
ControlSend ,, {vkA0 Down}、[#] WoT Client [#]
KeyWait、2Joy10
ControlSend、{vkA0 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; アクティブなウィンドウの2番目のスペースゲームパッド
2Joy9 ::
{
ControlSend、{vk20 Down}、[#] WoTクライアント[#]
KeyWait、2Joy9
ControlSend、{vk20 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでのシェルの2番目のゲームパッド選択
2Joy1 ::
Gosub、SecondSubToggle
戻る
SecondSubToggle:
SecondToggle ++
SecondToggle = 1の場合
{
ControlSend、{vk31 down}、[#] WoTクライアント[#]
睡眠10
ControlSend ,, {vk31 up}、[#] WoT Client [#]
睡眠10
ControlSend、{vk31 down}、[#] WoTクライアント[#]
睡眠10
ControlSend ,, {vk31 up}、[#] WoT Client [#]
}
SecondToggle = 2の場合
{
ControlSend、{vk32 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk32 up}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk32 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk32 up}、[#] WoTクライアント[#]
}
SecondToggle = 3の場合
{
ControlSend、{vk33 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk33 up}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk33 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk33 up}、[#] WoTクライアント[#]
SecondToggle = 0
}
帰る
;;;;;;;;;;;;;;;; アクティブウィンドウ内の2番目のゲームパッド消火器
2Joy4 ::
{
ControlSend ,, {vk35 Down}、[#] WoT Client [#]
KeyWait、2Joy4
ControlSend、{vk35 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; アクティブウィンドウでの2番目のゲームパッド自動視界
2Joy6 ::
{
送信、{RButton Down}
KeyWait、2Joy6
送信、{RButton up}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウの2番目のゲームパッドメニュー
2Joy8 ::
{
ControlSend、{vk1B Down}、[#] WoTクライアント[#]
KeyWait、2Joy8
ControlSend ,, {vk1B Up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドはアクティブウィンドウでミニマップを非表示にします
2Joy7 ::
{
ControlSend、{vk4D Down}、[#] WoTクライアント[#]
KeyWait、2Joy7
ControlSend、{vk4D Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドはアクティブウィンドウでミニマップを非表示にします
2Joy5 ::
{
ControlSend、{vk5A Down}、[#] WoTクライアント[#]
KeyWait、2Joy5
ControlSend、{vk5A Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドの修理
2Joy3 ::
{
ControlSend、{vk34 Down}、[#] WoTクライアント[#]
KeyWait、2Joy3
ControlSend、{vk34 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 第二のゲームパッド治療
2Joy2 ::
{
ControlSend ,, {vk36 Down}、[#] WoT Client [#]
KeyWait、2Joy2
ControlSend ,, {vk36 Up}、[#] WoT Client [#]
}
帰る
JoyThreshold = 5
JoyThresholdUpper:= 50 + JoyThreshold
JoyThresholdLower:= 50-JoyThreshold
#永続的
SetTimer、WatchAxisFirstJoyMoveForwardAndZoom、10
SetTimer、WatchAxisFirstJoyMoveRotate、10
SetTimer、WatchAxisFirstJoyCameraRotateVert、10
SetTimer、WatchAxisFirstJoyCameraRotateHoriz、10
SetTimer、WatchAxisFirstJoyShoot、10
SetTimer、WatchFirstJoyPOV、10
SetTimer、WatchAxisSecondJoyMoveForwardAndZoom、10
SetTimer、WatchAxisSecondJoyMoveRotate、10
SetTimer、WatchAxisSecondJoyCameraRotate、10
SetTimer、WatchAxisSecondJoyShoot、10
SetTimer、WatchSecondJoyPOV、10
帰る
;;;;;;;;;;;;;;;; ウィンドウのタイトルを削除する
^!+ s ::
WinWait、WoTクライアント
WinSet、スタイル、-0xC00000
WinWait、[#] WoTクライアント[#]
WinSet、スタイル、-0xC00000
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウで最初のゲームパッドが前後に移動し、ズームする
WatchAxisFirstJoyMoveForwardAndZoom:
GetKeyState、1JoyY、1JoyY
GetKeyState、1JoyZ、1JoyZ
GetKeyState、1Joy2、1Joy2
GetKeyState、1Joy3、1Joy3
FirstJoyMoveForwardAndZoomPrev =%FirstJoyMoveForwardAndZoom%
1Joy2 = Dの場合
GoSub、FirstJoyConsumables
その他の場合、1Joy3 = D
GoSub、FirstJoyConsumables
他に
{
1JoyZ> 70の場合
{
1JoyY <30の場合
FirstJoyMoveForwardAndZoom = PgDn
それ以外の場合は、1JoyY> 70
FirstJoyMoveForwardAndZoom = PgUp
他に
FirstJoyMoveForwardAndZoom =
}
それ以外の場合、1JoyY <30
FirstJoyMoveForwardAndZoom = vk57
それ以外の場合は、1JoyY> 70
FirstJoyMoveForwardAndZoom = vk53
他に
FirstJoyMoveForwardAndZoom =
}
FirstJoyMoveForwardAndZoom =%FirstJoyMoveForwardAndZoomPrev%の場合
帰る
SetKeyDelay -1
FirstJoyMoveForwardAndZoomの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyMoveForwardAndZoom%down}、WoTクライアント
}
}
FirstJoyMoveForwardAndZoomPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {%FirstJoyMoveForwardAndZoomPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドの左右の動き
WatchAxisFirstJoyMoveRotate:
GetKeyState、1JoyX、1JoyX
GetKeyState、1Joy2、1Joy2
GetKeyState、1Joy3、1Joy3
FirstJoyMoveRotatePrev =%FirstJoyMoveRotate%
1Joy2 = Dの場合
GoSub、SecondJoyConsumables
その他の場合、1Joy3 = D
GoSub、SecondJoyConsumables
他に
{
1JoyX> 80の場合
FirstJoyMoveRotate = vk44
それ以外の場合、1JoyX <20
FirstJoyMoveRotate = vk41
他に
FirstJoyMoveRotate =
}
FirstJoyMoveRotate =%FirstJoyMoveRotatePrev%の場合
帰る
SetKeyDelay -1
FirstJoyMoveRotateの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyMoveRotate%down}、WoTクライアント
}
}
FirstJoyMoveRotatePrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyMoveRotatePrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウの消耗品メニューの最初のゲームパッド
FirstJoyConsumables:
FirstJoyConsumablesPrev =%FirstJoyConsumables%
1JoyX <20の場合
{
1JoyY <20の場合
FirstJoyConsumables = vk38
それ以外の場合、1JoyYが40〜60の場合
FirstJoyConsumables = vk37
それ以外の場合は1JoyY> 80
FirstJoyConsumables = vk36
それ以外の場合FirstJoyConsumables =
}
1JoyXが40〜60の場合
{
1JoyY <10の場合
FirstJoyConsumables = vk31
それ以外の場合は、1JoyY> 90
FirstJoyConsumables = vk35
それ以外の場合FirstJoyConsumables =
}
それ以外の場合、1JoyX> 80の場合
{
1JoyY <20の場合
FirstJoyConsumables = vk32
それ以外の場合、1JoyYが40〜60の場合
FirstJoyConsumables = vk33
それ以外の場合は1JoyY> 80
FirstJoyConsumables = vk34
それ以外の場合FirstJoyConsumables =
}
それ以外の場合FirstJoyConsumables =
FirstJoyConsumables =%SFirstJoyConsumablesPrev%の場合
帰る
SetKeyDelay -1
FirstJoyConsumablesの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {%FirstJoyConsumables%down}、WoTクライアント
}
}
FirstJoyConsumablesPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyConsumablesPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; アクティブでないウィンドウでの最初のゲームパッドの左/右レビュー
WatchAxisFirstJoyCameraRotateVert:
GetKeyState、1JoyU、1JoyU
GetKeyState、1Joy5、1Joy5
FirstJoyCameraRotateVertPrev =%FirstJoyCameraRotateVert%
1Joy5 = Dの場合
GoSub、FirstJoyCommandMenu
他に
{
1JoyU> 70の場合
FirstJoyCameraRotateVert =右
それ以外の場合、1JoyU <30
FirstJoyCameraRotateVert =左
他に
FirstJoyCameraRotateVert =
}
FirstJoyCameraRotateVert =%FirstJoyCameraRotateVertPrev%の場合
帰る
SetKeyDelay -1
FirstJoyCameraRotateVertの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCameraRotateVert%down}、WoTクライアント
}
}
FirstJoyCameraRotateVertPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCameraRotateVertPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドのアップ/ダウンレビュー
WatchAxisFirstJoyCameraRotateHoriz:
GetKeyState、1JoyR、1JoyR
GetKeyState、1Joy5、1Joy5
FirstJoyCameraRotateHorizPrev =%FirstJoyCameraRotateHoriz%
1Joy5 = Dの場合
GoSub、FirstJoyCommandMenu
他に
{
1JoyR> 70の場合
FirstJoyCameraRotateHoriz = Down
それ以外の場合、1JoyR <30
FirstJoyCameraRotateHoriz = Up
他に
FirstJoyCameraRotateHoriz =
}
FirstJoyCameraRotateHoriz =%FirstJoyCameraRotateHorizPrev%の場合
帰る
SetKeyDelay -1
FirstJoyCameraRotateHorizの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCameraRotateHoriz%down}、WoTクライアント
}
}
FirstJoyCameraRotateHorizPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {%FirstJoyCameraRotateHorizPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 最初のゲームパッド注文メニュー
FirstJoyCommandMenu:
FirstJoyCommandMenuPrev =%FirstJoyCommandMenu%
1JoyU <20の場合
{
1JoyR <20の場合
FirstJoyCommandMenu = Numpad8
1JoyRが40〜60の場合
FirstJoyCommandMenu = Numpad7
それ以外の場合は1JoyR> 80
FirstJoyCommandMenu = Numpad6
それ以外の場合FirstJoyCommandMenu =
}
それ以外の場合、1JoyUが40〜60の場合
{
1JoyR <10の場合
FirstJoyCommandMenu = vk54
それ以外の場合は、1JoyR> 90
FirstJoyCommandMenu = Numpad5
それ以外の場合FirstJoyCommandMenu =
}
それ以外の場合は1JoyU> 80
{
1JoyR <20の場合
FirstJoyCommandMenu = Numpad2
1JoyRが40〜60の場合
FirstJoyCommandMenu = Numpad3
それ以外の場合は1JoyR> 80
FirstJoyCommandMenu = Numpad4
それ以外の場合FirstJoyCommandMenu =
}
それ以外の場合FirstJoyCommandMenu =
FirstJoyCommandMenu =%FirstJoyCommandMenuPrev%の場合
帰る
SetKeyDelay -1
FirstJoyCommandMenuの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCommandMenu%down}、WoTクライアント
}
}
FirstJoyCommandMenuPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyCommandMenuPrev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウで撮影された最初のゲームパッド
WatchAxisFirstJoyShoot:
GetKeyState、1JoyZ、1JoyZ
FirstJoyShootPrev =%FirstJoyShoot%
1JoyZ <30の場合
FirstJoyShoot = LButton
他に
FirstJoyShoot =
FirstJoyShoot =%FirstJoyShootPrev%の場合
帰る
SetKeyDelay -1
FirstJoyShootの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x201 、、、、 WoTクライアント
}
}
FirstJoyShootPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x202 、、、、 WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドのクロス
WatchFirstJoyPOV:
GetKeyState、1JoyPOV、1JoyPOV
FirstJoyPOVPrev =%FirstJoyPOV%
1JoyPOV = 0の場合
FirstJoyPOV = vk52
それ以外の場合、1JoyPOV = 18000の場合
FirstJoyPOV = vk46
それ以外の場合、1JoyPOV = 27000の場合
FirstJoyPOV = vk58
それ以外の場合、1JoyPOV = 9000の場合
FirstJoyPOV = vk43
それ以外の場合FirstJoyPOV =
FirstJoyPOV =%FirstJoyPOVPrev%の場合
帰る
SetKeyDelay -1
FirstJoyPOVの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyPOV%down}、WoTクライアント
}
}
FirstJoyPOVPrevの場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{%FirstJoyPOVprev%up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; アクティブでないウィンドウでの最初のLShiftゲームパッド
1Joy10 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vkA0 Down}、WoTクライアント
KeyWait、1Joy10
ControlSend、{vkA0 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のSpaceゲームパッド
1Joy9 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk20 Down}、WoTクライアント
KeyWait、1Joy9
ControlSend、{vk20 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでのシェルの最初のゲームパッド選択
1Joy1 ::
Gosub、FirstSubToggle
戻る
FirstSubToggle:
FirstToggle ++
FirstToggle = 1の場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk31 down}、WoTクライアント
睡眠10
ControlSend、{vk31 up}、WoTクライアント
睡眠10
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk31 down}、WoTクライアント
睡眠10
ControlSend、{vk31 up}、WoTクライアント
}
}
FirstToggle = 2の場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk32 down}、WoTクライアント
睡眠10
ControlSend、{vk32 up}、WoTクライアント
睡眠10
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk32 down}、WoTクライアント
睡眠10
ControlSend、{vk32 up}、WoTクライアント
}
}
FirstToggle = 3の場合
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk33 down}、WoTクライアント
睡眠10
ControlSend、{vk33 up}、WoTクライアント
睡眠10
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk33 down}、WoTクライアント
睡眠10
ControlSend、{vk33 up}、WoTクライアント
}
FirstToggle = 0
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッド消火器
1Joy4 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend 、、 {vk35 Down}、WoTクライアント
KeyWait、1Joy4
ControlSend、{vk35 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; アクティブでないウィンドウでの最初のゲームパッド自動視界
1Joy6 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x204、1 、、、 WoTクライアント
KeyWait、1Joy6
SendMessage、0x205、1 、、、 WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 最初のウィンドウ内メニューのゲームパッド
1Joy8 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk1B Down}、WoTクライアント
KeyWait、1Joy8
ControlSend、{vk1B Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 最初のゲームパッドは非アクティブなウィンドウでミニマップを非表示
1Joy7 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk4D Down}、WoTクライアント
KeyWait、1Joy7
ControlSend、{vk4D Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッドの修復
1Joy3 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk34 Down}、WoTクライアント
KeyWait、1Joy3
ControlSend、{vk34 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでの最初のゲームパッド処理
1Joy2 ::
{
IfWinNotActive、WoTクライアント
{
SendMessage、0x06、1 、、、 WoTクライアント
ControlSend、{vk36 Down}、WoTクライアント
KeyWait、1Joy2
ControlSend、{vk36 Up}、WoTクライアント
}
}
帰る
;;;;;;;;;;;;;;;; セカンドゲームパッド
;;;;;;;;;;;;;;;; アクティブなウィンドウで2番目のゲームパッドを前後に移動してズーム
WatchAxisSecondJoyMoveForwardAndZoom:
GetKeyState、2JoyY、2JoyY
GetKeyState、2JoyZ、2JoyZ
GetKeyState、2Joy2、2Joy2
GetKeyState、2Joy3、2Joy3
SecondJoyMoveForwardAndZoomPrev =%SecondJoyMoveForwardAndZoom%
2Joy2 = Dの場合
GoSub、SecondJoyConsumables
それ以外の場合、2Joy3 = Dの場合
GoSub、SecondJoyConsumables
他に
{
2JoyZ> 70の場合
{
2JoyY <30の場合
SecondJoyMoveForwardAndZoom = PgDn
それ以外の場合、2JoyY> 70の場合
SecondJoyMoveForwardAndZoom = PgUp
他に
SecondJoyMoveForwardAndZoom =
}
それ以外の場合、2JoyY <30
SecondJoyMoveForwardAndZoom = vk57
それ以外の場合、2JoyY> 70の場合
SecondJoyMoveForwardAndZoom = vk53
他に
SecondJoyMoveForwardAndZoom =
}
SecondJoyMoveForwardAndZoom =%SecondJoyMoveForwardAndZoomPrev%の場合
帰る
SetKeyDelay -1
SecondJoyMoveForwardAndZoomの場合
{
ControlSend、{%SecondJoyMoveForwardAndZoom%down}、[#] WoTクライアント[#]
}
SecondJoyMoveForwardAndZoomPrevの場合
{
ControlSend ,, {%SecondJoyMoveForwardAndZoomPrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; アクティブなウィンドウでの2番目のゲームパッドの左右の動き
WatchAxisSecondJoyMoveRotate:
GetKeyState、2JoyX、2JoyX
GetKeyState、2Joy2、2Joy2
GetKeyState、2Joy3、2Joy3
SecondJoyMoveRotatePrev =%SecondJoyMoveRotate%
2Joy2 = Dの場合
GoSub、SecondJoyConsumables
それ以外の場合、2Joy3 = Dの場合
GoSub、SecondJoyConsumables
他に
{
2JoyX> 80の場合
SecondJoyMoveRotate = vk44
それ以外の場合、2JoyX <20
SecondJoyMoveRotate = vk41
他に
SecondJoyMoveRotate =
}
SecondJoyMoveRotate =%SecondJoyMoveRotatePrev%の場合
帰る
SetKeyDelay -1
SecondJoyMoveRotateの場合
{
ControlSend、{%SecondJoyMoveRotate%down}、[#] WoTクライアント[#]
}
SecondJoyMoveRotatePrevの場合
{
ControlSend ,, {%SecondJoyMoveRotatePrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドメニューの消耗品
SecondJoyConsumables:
SecondJoyConsumablesPrev =%SecondJoyConsumables%
2JoyX <20の場合
{
2JoyY <20の場合
SecondJoyConsumables = vk38
それ以外の場合、2JoyYが40〜60の場合
SecondJoyConsumables = vk37
それ以外の場合、2JoyY> 80の場合
SecondJoyConsumables = vk36
else SecondJoyConsumables =
}
それ以外の場合、2JoyXが40〜60の場合
{
2JoyY <10の場合
SecondJoyConsumables = vk31
それ以外の場合、2JoyY> 90
SecondJoyConsumables = vk35
else SecondJoyConsumables =
}
それ以外の場合、2JoyX> 80の場合
{
2JoyY <20の場合
SecondJoyConsumables = vk32
それ以外の場合、2JoyYが40〜60の場合
SecondJoyConsumables = vk33
それ以外の場合、2JoyY> 80の場合
SecondJoyConsumables = vk34
else SecondJoyConsumables =
}
else SecondJoyConsumables =
SecondJoyConsumables =%SecondJoyConsumablesPrev%の場合
帰る
SetKeyDelay -1
SecondJoyConsumablesの場合
{
ControlSend、{%SecondJoyConsumables%down}、[#] WoTクライアント[#]
}
SecondJoyConsumablesPrevの場合
{
ControlSend ,, {%SecondJoyConsumablesPrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドレビューとアクティブウィンドウでのマウス
WatchAxisSecondJoyCameraRotate:
MouseNeedsToBeMoved:= false
SetFormat、float、03
GetKeyState、2JoyU、2JoyU
GetKeyState、2JoyR、2JoyR
GetKeyState、2Joy5、2Joy5
2Joy5 = Dの場合
GoSub、SecondJoyCommandMenu
それ以外の場合、2Joy5 = Uの場合
{
if 2JoyU>%JoyThresholdUpper%
{
MouseNeedsToBeMoved:= true
DeltaU:= 2JoyU-JoyThresholdUpper
}
それ以外の場合、2JoyU <%JoyThresholdLower%の場合
{
MouseNeedsToBeMoved:= true
DeltaU:= 2JoyU-JoyThresholdLower
}
他に
DeltaU = 0
2JoyR>%JoyThresholdUpper%の場合
{
MouseNeedsToBeMoved:= true
DeltaR:= 2JoyR-JoyThresholdUpper
}
それ以外の場合、2JoyR <%JoyThresholdLower%
{
MouseNeedsToBeMoved:= true
DeltaR:= 2JoyR-JoyThresholdLower
}
他に
DeltaR = 0
}
SetKeyDelay -1
MouseNeedsToBeMovedの場合
{
SetMouseDelay、-1; 動きをスムーズにします
x:=(DeltaU / 30)*(ABS(DeltaU)/ 30)* JoyMultiplier
y:=(DeltaR / 30)*(ABS(DeltaR)/ 30)* JoyMultiplier
DllCall( "mouse_event"、uint、1、int、x、int、y、uint、0、int、0)
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッド注文メニュー
SecondJoyCommandMenu:
SecondJoyCommandMenuPrev =%SecondJoyCommandMenu%
2JoyU <20の場合
{
2JoyR <20の場合
SecondJoyCommandMenu = Numpad8
それ以外の場合、2JoyRが40〜60の場合
SecondJoyCommandMenu = Numpad7
それ以外の場合、2JoyR> 80の場合
SecondJoyCommandMenu = Numpad6
その他SecondJoyCommandMenu =
}
それ以外の場合、2JoyUが40〜60の場合
{
2JoyR <10の場合
SecondJoyCommandMenu = vk54
それ以外の場合、2JoyR> 90
SecondJoyCommandMenu = Numpad5
その他SecondJoyCommandMenu =
}
それ以外の場合、2JoyU> 80
{
2JoyR <20の場合
SecondJoyCommandMenu = Numpad2
それ以外の場合、2JoyRが40〜60の場合
SecondJoyCommandMenu = Numpad3
それ以外の場合、2JoyR> 80の場合
SecondJoyCommandMenu = Numpad4
その他SecondJoyCommandMenu =
}
その他SecondJoyCommandMenu =
SecondJoyCommandMenu =%SecondJoyCommandMenuPrev%の場合
帰る
SetKeyDelay -1
SecondJoyCommandMenuの場合
{
ControlSend、{%SecondJoyCommandMenu%down}、[#] WoTクライアント[#]
}
SecondJoyCommandMenuPrevの場合
{
ControlSend ,, {%SecondJoyCommandMenuPrev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; アクティブウィンドウで2番目のゲームパッドショット
WatchAxisSecondJoyShoot:
GetKeyState、2JoyZ、2JoyZ
SecondJoyShootPrev =%SecondJoyShoot%
2JoyZ <30の場合
SecondJoyShoot = LButton
他に
SecondJoyShoot =
SecondJoyShoot =%SecondJoyShootPrev%の場合
帰る
SetKeyDelay -1
SecondJoyShootの場合
{
送信、{%SecondJoyShoot%down}
}
SecondJoyShootPrevの場合
{
送信、{%SecondJoyShootPrev%up}
}
帰る
;;;;;;;;;;;;;;;;;; アクティブなウィンドウの2番目のゲームパッドクロス
WatchSecondJoyPOV:
GetKeyState、2JoyPOV、2JoyPOV
SecondJoyPOVPrev =%SecondJoyPOV%
2JoyPOV = 0の場合
SecondJoyPOV = vk52
それ以外の場合、2JoyPOV = 18000の場合
SecondJoyPOV = vk46
それ以外の場合、2JoyPOV = 27000
SecondJoyPOV = vk58
それ以外の場合、2JoyPOV = 9000の場合
SecondJoyPOV = vk43
else SecondJoyPOV =
SecondJoyPOV =%SecondJoyPOVPrev%の場合
帰る
SetKeyDelay -1
SecondJoyPOVの場合
{
ControlSend ,, {%SecondJoyPOV%down}、[#] WoT Client [#]
}
SecondJoyPOVPrevの場合
{
ControlSend ,, {%SecondJoyPOVprev%up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; アクティブなウィンドウの2番目のLShiftゲームパッド
2Joy10 ::
{
ControlSend ,, {vkA0 Down}、[#] WoT Client [#]
KeyWait、2Joy10
ControlSend、{vkA0 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; アクティブなウィンドウの2番目のスペースゲームパッド
2Joy9 ::
{
ControlSend、{vk20 Down}、[#] WoTクライアント[#]
KeyWait、2Joy9
ControlSend、{vk20 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウでのシェルの2番目のゲームパッド選択
2Joy1 ::
Gosub、SecondSubToggle
戻る
SecondSubToggle:
SecondToggle ++
SecondToggle = 1の場合
{
ControlSend、{vk31 down}、[#] WoTクライアント[#]
睡眠10
ControlSend ,, {vk31 up}、[#] WoT Client [#]
睡眠10
ControlSend、{vk31 down}、[#] WoTクライアント[#]
睡眠10
ControlSend ,, {vk31 up}、[#] WoT Client [#]
}
SecondToggle = 2の場合
{
ControlSend、{vk32 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk32 up}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk32 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk32 up}、[#] WoTクライアント[#]
}
SecondToggle = 3の場合
{
ControlSend、{vk33 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk33 up}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk33 down}、[#] WoTクライアント[#]
睡眠10
ControlSend、{vk33 up}、[#] WoTクライアント[#]
SecondToggle = 0
}
帰る
;;;;;;;;;;;;;;;; アクティブウィンドウ内の2番目のゲームパッド消火器
2Joy4 ::
{
ControlSend ,, {vk35 Down}、[#] WoT Client [#]
KeyWait、2Joy4
ControlSend、{vk35 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; アクティブウィンドウでの2番目のゲームパッド自動視界
2Joy6 ::
{
送信、{RButton Down}
KeyWait、2Joy6
送信、{RButton up}
}
帰る
;;;;;;;;;;;;;;;; 非アクティブなウィンドウの2番目のゲームパッドメニュー
2Joy8 ::
{
ControlSend、{vk1B Down}、[#] WoTクライアント[#]
KeyWait、2Joy8
ControlSend ,, {vk1B Up}、[#] WoT Client [#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドはアクティブウィンドウでミニマップを非表示にします
2Joy7 ::
{
ControlSend、{vk4D Down}、[#] WoTクライアント[#]
KeyWait、2Joy7
ControlSend、{vk4D Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドはアクティブウィンドウでミニマップを非表示にします
2Joy5 ::
{
ControlSend、{vk5A Down}、[#] WoTクライアント[#]
KeyWait、2Joy5
ControlSend、{vk5A Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 2番目のゲームパッドの修理
2Joy3 ::
{
ControlSend、{vk34 Down}、[#] WoTクライアント[#]
KeyWait、2Joy3
ControlSend、{vk34 Up}、[#] WoTクライアント[#]
}
帰る
;;;;;;;;;;;;;;;; 第二のゲームパッド治療
2Joy2 ::
{
ControlSend ,, {vk36 Down}、[#] WoT Client [#]
KeyWait、2Joy2
ControlSend ,, {vk36 Up}、[#] WoT Client [#]
}
帰る
もちろん、キーボード/マウスでテレビで遊ぶ人はいませんでした。 タンク制御は、Xbox360の2つのゲームパッドを使用して実行されます。 基本は、Xbox 360のバージョンからコントロールを選択しました。
Xbox 360の管理設定
一般的に、私はこのようなことをしました。
PC管理設定
切り替えてシェルのタイプを選択-一度押すと-1番目のタイプ、2番目-2番目、3番目-3番目、最初にリセット(1-2-3)。 シェルはすぐに使用されます-AHKはゲームをダブルクリックします。
注文メニューは、左バンパーと右スティックの組み合わせ、左スティックと組み合わせた「X」および「B」ボタンの処理と修理です。
切り替えてシェルのタイプを選択-一度押すと-1番目のタイプ、2番目-2番目、3番目-3番目、最初にリセット(1-2-3)。 シェルはすぐに使用されます-AHKはゲームをダブルクリックします。
注文メニューは、左バンパーと右スティックの組み合わせ、左スティックと組み合わせた「X」および「B」ボタンの処理と修理です。
分割画面モードでのビデオゲームプレイ:
ビデオはドラフトスクリプトで記録されました-戦車、砲塔、狙撃モード、およびスペースバーショットの制御のみがあった場合。
4.ゲームパッドの振動を構成します。
ここでは、ゲームパッドでゲームに振動を追加することについて既に書いています。 このゲームの変更では、Webサービスを使用してバイブレーションを送信し、2番目のゲームパッドに送信するため、Flaskポートを変更する必要がありました。
しかし、振動するゲームパッドの「分割画面」でプレイするには、独自のmodを使用して「サンドボックス」(別の名前の隣のフォルダーをコピー)でクライアントの完全なコピーを実行し、Python27を「サンドボックス」にコピーする必要があります。
結果。
この解決策は多くのゲームに適用することができるようです。 解決策は非常に不便であることが判明しました-あらゆる種類の「しかし」。 しかし、「ファン」向けのゲームは成功したと言えます。 戦いのすべての人に幸運を!
グレイフォーラムとティードリンカーモデレーターであるコリアンランダムとinj3ct0rに感謝します。 ありがとう!!! また、私を助言し、助け、支えてくれたすべての人々にも。
PSメインおよび「サンド」クライアント用のmod(注文のメニュー、スナイパーモードとバイブロの切り替え)を広めました。 また、アーカイブには、WinL + LButtonキーの組み合わせを押すことにより、クライアントの周囲のフレームを完全に削除するスクリプトがあります。