If your using MHS you can just use the ms delay on the script from mhs forums,
Code:
int timenow=0;
// Reduce cooldown for this slot?
bool lock_slot[]={
// Sword slots
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 0..15
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 16..31
// Magic slots
0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, // 0..15
0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0 // 16..31
};
// Reduce cooldown time by 'cd_reduce' seconds (one for each slot)
float cd_reduce[]= {
// sword
0.5, 0.5, 0.5, 0.5, //0..3
0.5, 0.5, 0.5, 0.5, //4..7
0.5, 0.5, 0.5, 0.5, //8..11
0.5, 0.5, 0.5, 0.5, //12..15
0.5, 0.5, 0.5, 0.5, //16..19
0.5, 0.5, 0.5, 0.5, //20..23
0.5, 0.5, 0.5, 0.5, //24..27
0.5, 0.5, 0.5, 0.5, //28..31
// magic
0.5, 0.5, 0.5, 1.5, //0..3
0.5, 0.5, 0.5, 0.5, //4..7
0.5, 0.5, 0.5, 0.5, //8..11
0.5, 0.5, 0.5, 0.5, //12..15
0.5, 0.5, 1.0, 0.5, //16..19
100.5, 0.5, 0.5, 0.5, //20..23
0.5, 0.5, 0.5, 0.5, //24..27
0.5, 0.5, 0.5, 0.5, //28..31
};
float lastused[]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
VOID Lock(MHS_ADDRESS address, INT ItemID) {
extern UINT_PTR slotsptr={"",address};
int time=Time();
int i=0;
if (time - timenow > 250) { // limit the rate to save CPU cycles
timenow=time;
for (i=0;i<64;i++) {
if (lock_slot[i]) {
lockSlotById(slotsptr,i);
}
}
}
}
VOID lockSlotById(UINT_PTR address, INT sid) {
extern UINT_PTR slotptr={"",address+(sid*4)};
UINT_PTR test;
//if (IsBadReadPtr((void *)slotptr, sizeof(DWORD))) return;
if (!slotptr) {
PrintF("ERROR: coulnd't get a pointer to the desired skill slot!");
return;
}
test=slotptr;
extern float cdvalue={"",slotptr+0x20};
extern float cdvaltwo={"",slotptr+0x28};
// Avoid catching multiple keypresses on one by waiting 250ms between triggers for a single cooldown
if (cdvalue-lastused[sid] > 0.250) {
lastused[sid]=cdvalue;
cdvalue-=cd_reduce[sid];
cdvaltwo=cdvalue;
PrintF("Applying lowCoolDown to %s skill on slot %i. Time reduced by %f secs.",(sid>31)?"magic":"sword",(sid>31)?sid-31:sid+1,cd_reduce[sid]);
} else if(cdvalue < lastused[sid])
lastused[sid]=cdvalue;
}
// [[05A9B924]+(i*4)]+0x20
I hope thats not a big deal posting the link to the source on altnerate forums, I'm not trying to advertise or anything, and I realize its made for MHS not CE, I used it in MHS about a year or so ago and it does good job at keeping you from spamming the attack key too much, you can fiddle with it a little and increase the time of ms per swing so you can spam all you want but the hits will stay at a steady consistent rate.
Having the no skill delay value froze at 1 might cause disconnections as normally it switches from 1 to 0 in-between casts so regardless of how many ms delay you put, it may or may not still d/c after a while, although I don't recall it being a huge issue; however I would try to toggle off delay every few mins just to be sure.