模拟城市吧 关注:86,317贴子:1,038,761
  • 6回复贴,共1

辅助相关-用autohotkey来改变sc4的键盘布局

只看楼主收藏回复

sc4原版的游戏键盘布局大约不能说是很合理吧,比如说home/end/pgup/pgdown这四个键是很少用到的按键,在比较小的键盘上也不一定会出现。


如果需要直接改游戏内的按键设定的话,需要复制并修改 simcity_1.dat 文件里的以下项:
PageUp = 0x6a935cc9 "Rotate Clockwise"
PageDown = 0x6a935ccc "Rotate Counterclockwise"
Home = 0x6a935cd5 "Rotate Building Clockwise"
End = 0x6a935cd1 "Rotate Building Counterclockwise"


一个比较简单的办法是使用autohotkey来改变键盘布局。
安装autohotkey后,新建一个ahk脚本,输入以下内容:


if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%" ; Requires v1.1.27.03+
ExitApp
}


SC056 & Left:: SendInput {Home}
SC056 & Right:: SendInput {End}
SC056 & Up:: SendInput {PgUp}
SC056 & Down:: SendInput {PgDn}


Requires 后跟随使用的ahk程序版本,然后运行后就可以了。
用类似的方法可以对游戏内的其他键位进行改变,也可以在脚本里添加限制条件为仅限于SC4Fix pre3程序中有效。


总的来说,这个方法比单独买一个全键盘更有意义。


IP属地:法国1楼2018-01-09 05:39回复
    这里用到的SC056键位是微软键盘的>/<键,位于左Shift旁边的。选择如此替换的原因是,autohotkey无法检测单独的Fn键,而Ctrl/Shift/Alt都是游戏内按键而且在小型键盘上除了Alt外其他按键都只有一个,Win也有用作切屏的需求。


    可以用以下指令来获取一个按键的键位值:


    GetScanCode:
    SetFormat, Integer, Hex
    Gui +ToolWindow -SysMenu +AlwaysOnTop
    Gui, Font, s14 Bold, Arial
    Gui, Add, Text, w100 h33 vSC 0x201 +Border, {SC000}
    Gui, Show,, % "// ScanCode //////////"
    Loop 9
    OnMessage( 255+A_Index, "ScanCode" ) ; 0x100 to 0x108
    Return


    ScanCode( wParam, lParam ) {
    Clipboard := "SC" SubStr((((lParam>>16) & 0xFF)+0xF000),-2)
    GuiControl,, SC, %Clipboard%
    }


    执行脚本后获取的键位值会在屏幕中间显示出来,然后就可以用在任何其他脚本里了。


    IP属地:法国2楼2018-01-09 05:44
    回复
      围观SC4技术员。个人感觉模拟城市4中唯一一个有价值的按键就是R键修路了,而规划区域的键位太不合理了


      IP属地:北京来自手机贴吧3楼2018-01-09 12:23
      收起回复
        话说改simcity dat文件使用ilves reader吧


        IP属地:北京5楼2018-01-09 21:49
        回复
          已经习惯了SC4的快捷键了。。。


          IP属地:广东6楼2018-01-10 22:49
          回复