Download autohotkey
www.autohotkey.com/
Download CELO
http://www.coh2.org/topic/18454/celo--company-of-elo
Download X mouse button control if you have buttons on the side of your mouse
http://download.cnet.com/X-Mouse-Button-Control/3000-20432_4-75362562.html
Use CELO hotkey creator to change the buttons and abilities to whatever you want,if youre not good at "coding"
Once you finish,you can view the script,copy it,compile it with autohotkey
You can also do this by manually typing it into an ahk file...but thats complicated
button youre changing:button you want

For example
I want the X key (throw grenade) to be number 2
so X:2
and have this; so your chat isnt messed up from changing the keys around
~F12 :: Suspend
+~F12 :: Suspend
(no space
)
I dont see much that scripts can do in coh2. Only attack move capping queue that i did so far.
Here is my SC script for comparission it does like 40% of work for you.
#InstallKeybdHook
#InstallMouseHook
;;; VAR DEFENITIONS
x := 534
y := 292
Unit1X := 378
Unit1Y := 550
diffMenu := 34
diff := 70
diffSpore := 60
Unit5X := 515
Unit5Y := 550
UpperLeftX := 186
UpperLeftY := 53
LowerRightX := 822
LowerRightY := 460
;;;; FUNCTION DEFENITIONS ;;;;;;;
temp(Unit1X, Unit1Y){
send 0qq
sleep 200
click %Unit1X%, %Unit1Y%
send +{8}
}
BASE_DEFFENSE(x, y) {
setkeydelay 200
*
sporeX := x - 130
spineX := x + 130
send 8zz
click %spineX%, %Y%
send 8zx
click %sporeX%, %Y%
}
BASE_DEFFENSE_1(x, y) {
setkeydelay 200
sporeY := y - 130
spineY := y + 130
sleep 500
send 8zz
click %x%, %spineY%
send 8zx
click %x%, %sporeY%
}
GET_2QUEENS(unit1X, unit1Y, UpperLeftX, UpperLeftY, LowerRightX, LowerRightY) {
send j
Click down %UpperLeftX%, %UpperLeftY%
Click up %LowerRightX%, %LowerRightY%
Send ^{Click %Unit1X%, %Unit1Y%}
Send {ALT DOWN} {9} {alt up}
send j
Click down %UpperLeftX%, %UpperLeftY%
Click up %LowerRightX%, %LowerRightY%
Send ^{Click %Unit1X%, %Unit1Y%}
Send {shift}+{9}
}
3drones() {
send 0qqqq
}
LarvaAuto4(x, y) {
loop 30 {
blockinput on
send !{f7}
send !7
MOUSEMOVE %x%,%y%
send a
loop 6 {
send {j}{z}{z}
}
send {f7}
send 7
blockinput off
sleep, 30000
SoundBeep, 650, 500
while(A_TimeIdlePhysical < 700)
continue
}
}
QUEEN_VISIBLE(x, y, Unit1X, Unit1Y, UpperLeftX, UpperLeftY, LowerRightX, LowerRightY) {
MouseClickDrag, left,%UpperLeftX%, %UpperLeftY%, %LowerRightX%, %LowerRightY%
send ^{click %Unit1X%, %Unit1Y%}
send +a
}
QUEENS_TO9_5LOOP(unit1X, unit1Y, UpperLeftX, UpperLeftY, LowerRightX, LowerRightY) {
send j
Click down %UpperLeftX%, %UpperLeftY%
Click up %LowerRightX%, %LowerRightY%
send ^{click %Unit1X%, %Unit1Y%}
Send {ALT DOWN} {7} {alt up}
loop 5 {
send j
Click down %UpperLeftX%, %UpperLeftY%
Click up %LowerRightX%, %LowerRightY%
Send ^{Click %Unit1X%, %Unit1Y%}
Send {shift}+{7}
}
send 7
send ^{click %Unit1X%, %Unit1Y%}
Send {ALT DOWN} {9} {alt up}
}
GROUPBASES(x, y){
send 0
setkeydelay 30
send j
click %x%,%y%
send !0
loop 6 {
send j
click %x%,%y%
send {f1}
}
}
START(x, y, Unit1X, Unit1Y, UpperLeftX, UpperLeftY, LowerRightX, LowerRightY) {
setdelays1()
send j
click %x%, 230
send {Q}{Q}
click %x%, 230
Send {F1}
Click down %UpperLeftX%, %UpperLeftY%
Click up %LowerRightX%, %LowerRightY%
click %unit1x%, %unit1y%
MOUSEMOVE %x%,%y%
sleep 4000
setkeydelay 30
ElapsedTime := 0
StartTime := A_TickCount
while(ElapsedTime < 160000) {
while(A_TimeIdlePhysical > 700) {
send 0qq
ElapsedTime := A_TickCount - StartTime
}
}
}
UNIT_INTO_4_GROUPS( x, y, Unit1X, Unit1Y, Unit5X, Unit5Y, UpperLeftX, UpperLeftY, LowerRightX, LowerRightY) {
SEND 0J
Click down %UpperLeftX%, %UpperLeftY%
Click up %LowerRightX%, %LowerRightY%
Send {ALT}+{5}
i =1
LOOP 4 {
; shift+leftClick
Send +{Click %Unit5X%, %Unit5Y%, 11}
Send {alt}+{%i%}
SEND {5}
Send +{Click %Unit1X%, %Unit1Y%, 4}
Send {ALT DOWN} {5} {alt up}
i++
}
}
MOVE_UNIT(unit1x,unit1y){
send !7
setdelays0()
mouseGetPos xpos, ypos
click %unit1x%, %unit1y%
send q
click %xpos%, %ypos%
send 7
Send +{Click %unit1x%, %unit1y%}
mousemove %xpos%, %ypos%
setdelays1()
}
BURROW_SEND_UNIT(unit1x,unit1y){
send !7
setkeydelay 10
setmousedelay 1
mouseGetPos xpos, ypos
click %unit1x%, %unit1y%
send {space}
click right %xpos%, %ypos%
Send +{space}
send 7
Send +{Click %unit1x%, %unit1y%}
mousemove %xpos%, %ypos%
}
CTRLCLICKFIRSTUNIT(Unit1X, Unit1Y){
mouseGetPos xpos, ypos
blockinput on
send ^{click %Unit1X%, %Unit1Y%}
mousemove %xpos%, %ypos%
blockinput off
}