The KGB Oracle
Serving the online gaming community since 1997
Visit www.the-kgb.com
For additional information

Join KGB DISCORD: http://discord.gg/KGB
 
KGB Information
Untitled 1

Visit KGB HQ
www.the-kgb.com

Who's Online Now
0 members (), 11 guests, and 16 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Today's Birthdays
There are no members with birthdays on this day.
Newest Members
Luckystrikes, Shingen, BillNyeCommieSpy, Lamp, AllenGlines
1,477 Registered Users
Forum Statistics
Forums53
Topics13,095
Posts116,357
Members1,477
Most Online276
Aug 3rd, 2023
Top Likes Received (30 Days)
None yet
Top Posters(30 Days)
Sini 1
Popular Topics(Views)
2,055,287 Trump card
1,348,493 Picture Thread
483,370 Romney
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 2 of 4 1 2 3 4
Joined: Jun 2009
Posts: 240
Former Member
Offline
Former Member
Joined: Jun 2009
Posts: 240
I'm digging it, took a little time to figure it out but once Arkh helped me through it, its completly customizible and allows more room for spells and skills on the G13!

Joined: Aug 2006
Posts: 3,147
Likes: 14
Former KGB Member
***
Offline
Former KGB Member
***
Joined: Aug 2006
Posts: 3,147
Likes: 14
OK..so I have a G15..how would I apply this Arkh? I am beginning to determine that I lose fights, and other things, as I am still manually doing everything with the limited in game hot bar, mostly cause I am a dip and can not figure out the scripts, since I have not tried to use them for years..I will have to take some time and figure this out.


[Linked Image from nodiatis.com]
Joined: Nov 2005
Posts: 1,876
Likes: 10
Arkh Offline OP
KGB Supreme Court Justice
KGB Supreme Knight
****
OP Offline
KGB Supreme Court Justice
KGB Supreme Knight
****
Joined: Nov 2005
Posts: 1,876
Likes: 10
Ok, new skills, new rules : new config to do.
I checked, a script can change what profile is on so I think I'll do something like M1 = melee/bow, M2 = magic, M3 = newb or mount or another magic ?

Now, for the left and upper part of the pad, I think I'll stay with the same thing : food, mount, gank, using things. Maybe G3/G4 for the different lean on mount.
For M1 :
- G13 = whirlwind (cycle throw all whirlwind so it select the good one)
- G22 = disabling shot
- G14 = knockback
- G18 = power attack

For M2 :
- G13 = Fireball and the acid one (jumpshot on both)
- G22 = heal (w/o witches brew in the cycle ?)
- G14 = Big ass AoE (I think I'll go with a virtuous wrath, volcano, maybe magma storm and even wall of force cycle), some AoE may have lesser CD than their global CD so they may be added (wall of fire and meteor strike for example)
- G19 = utility spells as usual (wall of force, confusion, launch, come hither)
- G16 = buffs and shields.
- G18 = heal other (heal other, sacrifice, maybe witches brew)
- G17 = buff other (hastes at least, arrow ward and iron skin, stats buffs, maybe some elemental wards)

Here is my current idea. What do you think about it ? Any stupid mistake to point out ?


[Linked Image from w3.the-kgb.com][Linked Image from w3.the-kgb.com]
Arkh #54219 12/07/09 03:24 PM
Joined: Nov 2005
Posts: 1,876
Likes: 10
Arkh Offline OP
KGB Supreme Court Justice
KGB Supreme Knight
****
OP Offline
KGB Supreme Court Justice
KGB Supreme Knight
****
Joined: Nov 2005
Posts: 1,876
Likes: 10
Ok, I can't test it tonight, but if it works you're gonna like this new script. Just some teaser :
Code:
{"ctrl+rbracket", "F11", "F12", "ctrl+F3"}, -- G17

Code:
-- list of macros to launch. Format : key = {"macro name", "profile to activate"}
macros = {  [26] = {"2HSpec", 1},
            [27] = {"N", 1},
            [28] = {"AoE", 2},
            [29] = {"1H Spec", 1}};


[Linked Image from w3.the-kgb.com][Linked Image from w3.the-kgb.com]
Arkh #54223 12/07/09 03:42 PM
S
Squared
Unregistered
Squared
Unregistered
S
Will these macros work with other game pads? I use the N52te. I'm thinking it should work. When you assign a value to the keys, you have choices between single key, macro, and script and maybe a couple of other options. Correct?

#54225 12/07/09 03:54 PM
Joined: Nov 2005
Posts: 1,876
Likes: 10
Arkh Offline OP
KGB Supreme Court Justice
KGB Supreme Knight
****
OP Offline
KGB Supreme Court Justice
KGB Supreme Knight
****
Joined: Nov 2005
Posts: 1,876
Likes: 10
It works with logitech programmable things. I don't know what the nostromo looks like for scripts.


[Linked Image from w3.the-kgb.com][Linked Image from w3.the-kgb.com]
Arkh #54227 12/07/09 04:38 PM
Joined: Nov 2005
Posts: 1,876
Likes: 10
Arkh Offline OP
KGB Supreme Court Justice
KGB Supreme Knight
****
OP Offline
KGB Supreme Court Justice
KGB Supreme Knight
****
Joined: Nov 2005
Posts: 1,876
Likes: 10
Ok, this seems to work. You can now use things like "shift+alt+ctrl+F2" or "F2+ctrl" or "alt F2". And it handles 3 or more profiles.

Code:
keyArray = {
                { -- Profile 1
                },
                { -- Profile 2
                },
                { -- Profile 3
                    [3] = {"V", "alt+F6"},                                              -- heal self
                    [13] = {"alt+U", "alt+I"},                                     -- r50 nukes
                    [14] = {"alt+O", "alt+K", "alt+B", "alt+J"}, -- big AoEs
                    [16] = {"ctrl+5", "ctrl+6", "ctrl+7", "ctrl+8"},               -- debuffs
                    [17] = {"alt+F1", "alt+F2", "alt+F3", "alt+F6", "alt+F7", "alt+F8", "alt+F9", "alt+F10", "alt+F11", "alt+F12"}, -- buff other
                    [18] = {"alt+1", "alt+2", "alt+3", "alt+4", "alt+5", "alt+6", "alt+7", "alt+8", "alt+9", "alt+0", "ctrl+1"}, -- buff self
                    [19] = {"ctrl+4", "ctrl+2", "ctrl+3"}, -- heal other
                    [22] = {"ctrl+I", "ctrl+O", "ctrl+P", "K"} -- Utility spells
                }
            };
-- list of macros to launch. Format : key = {"macro name", "profile to activate"}
macros = { [26] = {"2Hander", "2"},
           [27] = {"Bow", "2"},
           [28] = {"staff", "3"},
           [29] = {"1Hander", "2"}};
indexes = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
            {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
            {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
-- when the profile is changed the pad lose all pressed key, so we have to manage this
movements = {[4] = "W",
             [10] = "A",
             [11] = "S",
             [12] = "D"};
lastGkey = 0;
profile = 1;
lastMacro = 0;

function OnEvent(event, arg)
    if (event=="G_PRESSED" and arg ~=1) then
        -- gets profile number
        profile = GetMKeyState();
        pushKey(arg);
    end

    if (event=="G_RELEASED" and movements[arg]) then
        releaseKey(arg);
    end
    -- loot key, usefull for moving stuff quick (like 2000 pants)
    if(event=="G_PRESSED" and arg==1) then
        x, y = GetMousePosition();
        PressMouseButton(1);
        Sleep(10);
        MoveMouseTo(26532, 48321);
        Sleep(10);
        ReleaseMouseButton(1);
        Sleep(10);
        MoveMouseTo(x, y);
    end
end

function releaseKey(gkey)
   ReleaseKey(movements[gkey]);
end

function pushKey(gkey)
    -- launch macro if needed
    if(macros[gkey]) then
        macroKey(gkey);
        return;
    end

    -- manage movement if needed
    if(movements[gkey]) then
        PressKey(movements[gkey]);
        return;
    end

    -- gets key name
    -- we check if the last gkey used was the same, if yes, cycle
    if(lastGkey > 0 and lastGkey == gkey) then
        indexes[profile][gkey] = indexes[profile][gkey] + 1;
        if(indexes[profile][gkey] > table.getn(keyArray[profile][gkey])) then
            indexes[profile][gkey] = 1;
        end
    end
    lastGkey = gkey;
    i = indexes[profile][gkey];
    keyString = keyArray[profile][gkey][i];

    -- we get modifiers to use
    toCtrl = 0;
    toAlt = 0;
    toShift = 0;
    if(string.find(keyString, "ctrl")) then
        toCtrl = 1;
    end
    if(string.find(keyString, "alt")) then
        toAlt = 1;
    end
    if(string.find(keyString, "shift")) then
        toShift = 1;
    end

    -- now, we clean the key string to extract only the key
    keyString = string.gsub(keyString, "ctrl", "");
    keyString = string.gsub(keyString, "alt", "");
    keyString = string.gsub(keyString, "shift", "");
    keyString = string.gsub(keyString, "\+", "");
    key = string.gsub(keyString, " ", "");
    -- check if shift is already pushed
    isSprint = IsModifierPressed("shift");

    -- if needed release or press shift key
    if((toCtrl == 1 or toAlt == 1) and isSprint and toShift == 0) then
        ReleaseKey("lshift");
    elseif(not isSprint and toShift == 1) then
        PressKey("lshift");
    end

    -- press modifiers
    if toCtrl == 1 then
       PressKey("lctrl");
    end
    if toAlt == 1 then
        PressKey("lalt");
    end

    -- press and release key
    PressAndReleaseKey(key);

    -- release modifiers
     if toCtrl == 1 then
        ReleaseKey("lctrl");
    end
    if toAlt == 1 then
        ReleaseKey("lalt");
    end

    -- release or press shift if it was pressed before
    if((toCtrl == 1 or toAlt == 1) and isSprint and toShift == 0) then
        PressKey("lshift");
    elseif(not isSprint and toShift == 1) then
        ReleaseKey("lshift");
    end
end

-- I have macros set for these keys and some need to change the active profile
function macroKey(key)
    if(lastMacro ~= key) then
        -- Abort old macro
        AbortMacro();
    end
    -- Change profile
    SetMKeyState(macros[key][2]);
    -- Activate macro
    PlayMacro(macros[key][1]);
end

Last edited by Arkh; 12/11/09 07:47 PM.

[Linked Image from w3.the-kgb.com][Linked Image from w3.the-kgb.com]
Arkh #54908 12/15/09 12:12 PM
Joined: Nov 2005
Posts: 1,876
Likes: 10
Arkh Offline OP
KGB Supreme Court Justice
KGB Supreme Knight
****
OP Offline
KGB Supreme Court Justice
KGB Supreme Knight
****
Joined: Nov 2005
Posts: 1,876
Likes: 10
Last version, I debugged the "losing shift key when changing profile" problem.

Code:
keyArray = {
                { -- Profile 1
                },
                { -- Profile 2
                },
                { -- Profile 3
                    [3] = {"V", "alt+F6"},                                              -- heal self
                    [13] = {"alt+U", "alt+I"},                                     -- r50 nukes
                    [14] = {"alt+O", "alt+K", "alt+B", "alt+J"}, -- big AoEs
                    [16] = {"ctrl+5", "ctrl+6", "ctrl+7", "ctrl+8"},               -- debuffs
                    [17] = {"alt+F1", "alt+F2", "alt+F3", "alt+F6", "alt+F7", "alt+F8", "alt+F9", "alt+F10", "alt+F11", "alt+F12"}, -- buff other
                    [18] = {"alt+1", "alt+2", "alt+3", "alt+4", "alt+5", "alt+6", "alt+7", "alt+8", "alt+9", "alt+0", "ctrl+1"}, -- buff self
                    [19] = {"ctrl+4", "ctrl+2", "ctrl+3"}, -- heal other
                    [22] = {"ctrl+I", "ctrl+O", "ctrl+P", "K"} -- Utility spells
                }
            };
-- list of macros to launch. Format : key = {"macro name", "profile to activate"}
macros = { [26] = {"2Hander", 2},
           [27] = {"Bow", 2},
           [28] = {"staff", 3},
           [29] = {"1Hander", 2}};
indexes = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
            {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
            {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};
-- when the profile is changed the pad lose all pressed key, so we have to manage this
movements = {[4] = "W",
             [10] = "A",
             [11] = "S",
             [12] = "D"};
lastGkey = 0;
profile = 1;
lastMacro = 0;

function OnEvent(event, arg)
    if (event=="G_PRESSED" and arg ~=1) then
        -- gets profile number
        profile = GetMKeyState();
        pushKey(arg);
    end

    if (event=="G_RELEASED" and movements[arg]) then
        releaseKey(arg);
    end
    -- loot key, usefull for moving stuff quick (like 2000 pants)
    if(event=="G_PRESSED" and arg==1) then
        x, y = GetMousePosition();
        PressMouseButton(1);
        Sleep(10);
        MoveMouseTo(26532, 48321);
        Sleep(10);
        ReleaseMouseButton(1);
        Sleep(10);
        MoveMouseTo(x, y);
    end
end

function releaseKey(gkey)
   ReleaseKey(movements[gkey]);
end

function pushKey(gkey)
    -- launch macro if needed
    if(macros[gkey]) then
        macroKey(gkey);
        return;
    end

    -- manage movement if needed
    if(movements[gkey]) then
        PressKey(movements[gkey]);
        return;
    end

    -- gets key name
    -- we check if the last gkey used was the same, if yes, cycle
    if(lastGkey > 0 and lastGkey == gkey) then
        indexes[profile][gkey] = indexes[profile][gkey] + 1;
        if(indexes[profile][gkey] > table.getn(keyArray[profile][gkey])) then
            indexes[profile][gkey] = 1;
        end
    end
    lastGkey = gkey;
    i = indexes[profile][gkey];
    keyString = keyArray[profile][gkey][i];

    -- we get modifiers to use
    toCtrl = 0;
    toAlt = 0;
    toShift = 0;
    if(string.find(keyString, "ctrl")) then
        toCtrl = 1;
    end
    if(string.find(keyString, "alt")) then
        toAlt = 1;
    end
    if(string.find(keyString, "shift")) then
        toShift = 1;
    end

    -- now, we clean the key string to extract only the key
    keyString = string.gsub(keyString, "ctrl", "");
    keyString = string.gsub(keyString, "alt", "");
    keyString = string.gsub(keyString, "shift", "");
    keyString = string.gsub(keyString, "\+", "");
    key = string.gsub(keyString, " ", "");
    -- check if shift is already pushed
    isSprint = IsModifierPressed("shift");

    -- if needed release or press shift key
    if((toCtrl == 1 or toAlt == 1) and isSprint and toShift == 0) then
        ReleaseKey("lshift");
    elseif(not isSprint and toShift == 1) then
        PressKey("lshift");
    end

    -- press modifiers
    if toCtrl == 1 then
       PressKey("lctrl");
    end
    if toAlt == 1 then
        PressKey("lalt");
    end

    -- press and release key
    PressAndReleaseKey(key);

    -- release modifiers
     if toCtrl == 1 then
        ReleaseKey("lctrl");
    end
    if toAlt == 1 then
        ReleaseKey("lalt");
    end

    -- release or press shift if it was pressed before
    if((toCtrl == 1 or toAlt == 1) and isSprint and toShift == 0) then
        PressKey("lshift");
    elseif(not isSprint and toShift == 1) then
        ReleaseKey("lshift");
    end
end

-- I have macros set for these keys and some need to change the active profile
function macroKey(key)
    if(lastMacro ~= key) then
        -- Abort old macro
        AbortMacro();
    end
    isSprint = IsModifierPressed("lshift");
    oldState = GetMKeyState();
    -- Activate macro
    PlayMacro(macros[key][1]);
    -- Change profile
    SetMKeyState(macros[key][2]);

    if(isSprint and (macros[key][2] ~= oldState)) then
        ReleaseKey("lshift");
        Sleep(20);
        PressKey("lshift");
    end
end





[Linked Image from w3.the-kgb.com][Linked Image from w3.the-kgb.com]
Arkh #55425 12/23/09 08:56 PM
Joined: Jun 2009
Posts: 240
Former Member
Offline
Former Member
Joined: Jun 2009
Posts: 240
I'll have to get you in vent and ask some questions Arkh but it looks to be even better than the last!

S
Squared
Unregistered
Squared
Unregistered
S
Can we sticky this one? Seems that quite a few number of us have the G13 now. Out of stock at Best Buy, on sale at Amazon for $59.99 with free shipping as well. Should have mine next week.

Page 2 of 4 1 2 3 4

Link Copied to Clipboard
Powered by UBB.threads™ PHP Forum Software 7.7.5