Jump to content

Self-target function on hot key "Space" (Interface)


Rolo

Recommended Posts

The information is more relevant for Interlude, but will work for the chronicles above as well. According to this example, you can bind any function (from calling the window for inserting a LAN, to your unique bypass, or some function like "target loss protection") to any hotkey or key combination.

First of all, go to xdat, Interface \ Shortcuts \ GamingStateShortcut and select a key / key combination, for example like this:
 

<ShortcutItem Key="IK_Space" SubKey1="IK_Alt">SelfTarget</ShortcutItem>

Now for target self you need to hold down the viola and click the space bar.
The key codes are sometimes obvious (IK_F1, IK_B, IK_Enter), and sometimes not very, just in case:

Spoiler

IK_None = 0
IK_LeftMouse = 1
IK_RightMouse = 2
IK_Cancel = 3
IK_MiddleMouse = 4
IK_Unknown05 = 5
IK_Unknown06 = 6
IK_Unknown07 = 7
IK_Backspace = 8
IK_Tab = 9
IK_Unknown0A = 10
IK_Unknown0B = 11
IK_Unknown0C = 12
IK_Enter = 13
IK_Unknown0E = 14
IK_Unknown0F = 15
IK_Shift = 16
IK_Ctrl = 17
IK_Alt = 18
IK_Pause = 19
IK_CapsLock = 20
IK_Unknown15 = 21
IK_Unknown16 = 22
IK_Unknown17 = 23
IK_Unknown18 = 24
IK_Unknown19 = 25
IK_Unknown1A = 26
IK_Escape = 27
IK_Unknown1C = 28
IK_Unknown1D = 29
IK_Unknown1E = 30
IK_Unknown1F = 31
IK_Space = 32
IK_PageUp = 33
IK_PageDown = 34
IK_End = 35
IK_Home = 36
IK_Left = 37
IK_Up = 38
IK_Right = 39
IK_Down = 40
IK_Select = 41
IK_Print = 42
IK_Execute = 43
IK_PrintScrn = 44
IK_Insert = 45
IK_Delete = 46
IK_Help = 47
IK_0 = 48
IK_1 = 49
IK_2 = 50
IK_3 = 51
IK_4 = 52
IK_5 = 53
IK_6 = 54
IK_7 = 55
IK_8 = 56
IK_9 = 57
IK_Unknown3A = 58
IK_Unknown3B = 59
IK_Unknown3C = 60
IK_Unknown3D = 61
IK_Unknown3E = 62
IK_Unknown3F = 63
IK_Unknown40 = 64
IK_A = 65
IK_B = 66
IK_C = 67
IK_D = 68
IK_E = 69
IK_F = 70
IK_G = 71
IK_H = 72
IK_I = 73
IK_J = 74
IK_K = 75
IK_L = 76
IK_M = 77
IK_N = 78
IK_O = 79
IK_P = 80
IK_Q = 81
IK_R = 82
IK_S = 83
IK_T = 84
IK_U = 85
IK_V = 86
IK_W = 87
IK_X = 88
IK_Y = 89
IK_Z = 90
IK_Unknown5B = 91
IK_Unknown5C = 92
IK_Unknown5D = 93
IK_Unknown5E = 94
IK_Unknown5F = 95
IK_NumPad0 = 96
IK_NumPad1 = 97
IK_NumPad2 = 98
IK_NumPad3 = 99
IK_NumPad4 = 100
IK_NumPad5 = 101
IK_NumPad6 = 102
IK_NumPad7 = 103
IK_NumPad8 = 104
IK_NumPad9 = 105
IK_GreyStar = 106
IK_GreyPlus = 107
IK_Separator = 108
IK_GreyMinus = 109
IK_NumPadPeriod = 110
IK_GreySlash = 111
IK_F1 = 112
IK_F2 = 113
IK_F3 = 114
IK_F4 = 115
IK_F5 = 116
IK_F6 = 117
IK_F7 = 118
IK_F8 = 119
IK_F9 = 120
IK_F10 = 121
IK_F11 = 122
IK_F12 = 123
IK_F13 = 124
IK_F14 = 125
IK_F15 = 126
IK_F16 = 127
IK_F17 = 128
IK_F18 = 129
IK_F19 = 130
IK_F20 = 131
IK_F21 = 132
IK_F22 = 133
IK_F23 = 134
IK_F24 = 135
IK_Unknown88 = 136
IK_Unknown89 = 137
IK_Unknown8A = 138
IK_Unknown8B = 139
IK_Unknown8C = 140
IK_Unknown8D = 141
IK_Unknown8E = 142
IK_Unknown8F = 143
IK_NumLock = 144
IK_ScrollLock = 145
IK_TRACKIR_PITCHUP = 146
IK_TRACKIR_PITCHDOWN = 147
IK_TRACKIR_YAWRIGHT = 148
IK_TRACKIR_YAWLEFT = 149
IK_TRACKIR_ROLLRIGHT = 150
IK_TRACKIR_ROLLLEFT = 151
IK_TRACKIR_MOVEUP = 152
IK_TRACKIR_MOVEDOWN = 153
IK_TRACKIR_MOVELEFT = 154
IK_TRACKIR_MOVERIGHT = 155
IK_TRACKIR_MOVEFORWARD = 156
IK_TRACKIR_MOVEBACKWARD = 157
IK_Unknown9E = 158
IK_Unknown9F = 159
IK_LShift = 160
IK_RShift = 161
IK_LControl = 162
IK_RControl = 163
IK_UnknownA4 = 164
IK_UnknownA5 = 165
IK_UnknownA6 = 166
IK_UnknownA7 = 167
IK_UnknownA8 = 168
IK_UnknownA9 = 169
IK_UnknownAA = 170
IK_UnknownAB = 171
IK_UnknownAC = 172
IK_UnknownAD = 173
IK_UnknownAE = 174
IK_UnknownAF = 175
IK_UnknownB0 = 176
IK_UnknownB1 = 177
IK_UnknownB2 = 178
IK_UnknownB3 = 179
IK_UnknownB4 = 180
IK_UnknownB5 = 181
IK_UnknownB6 = 182
IK_UnknownB7 = 183
IK_UnknownB8 = 184
IK_Unicode = 185
IK_Semicolon = 186
IK_Equals = 187
IK_Comma = 188
IK_Minus = 189
IK_Period = 190
IK_Slash = 191
IK_Tilde = 192
IK_Mouse4 = 193
IK_Mouse5 = 194
IK_Mouse6 = 195
IK_Mouse7 = 196
IK_Mouse8 = 197
IK_UnknownC6 = 198
IK_UnknownC7 = 199
IK_Joy1 = 200
IK_Joy2 = 201
IK_Joy3 = 202
IK_Joy4 = 203
IK_Joy5 = 204
IK_Joy6 = 205
IK_Joy7 = 206
IK_Joy8 = 207
IK_Joy9 = 208
IK_Joy10 = 209
IK_Joy11 = 210
IK_Joy12 = 211
IK_Joy13 = 212
IK_Joy14 = 213
IK_Joy15 = 214
IK_Joy16 = 215
IK_UnknownD8 = 216
IK_UnknownD9 = 217
IK_UnknownDA = 218
IK_LeftBracket = 219
IK_Backslash = 220
IK_RightBracket = 221
IK_SingleQuote = 222
IK_UnknownDF = 223
IK_UnknownE0 = 224
IK_UnknownE1 = 225
IK_UnknownE2 = 226
IK_UnknownE3 = 227
IK_MouseX = 228
IK_MouseY = 229
IK_MouseZ = 230
IK_MouseW = 231
IK_JoyU = 232
IK_JoyV = 233
IK_JoySlider1 = 234
IK_JoySlider2 = 235
IK_MouseWheelUp = 236
IK_MouseWheelDown = 237
IK_Unknown10E = 238
UK_Unknown10F = 239
IK_JoyX = 240
IK_JoyY = 241
IK_JoyZ = 242
IK_JoyR = 243
IK_UnknownF4 = 244
IK_UnknownF5 = 245
IK_Attn = 246
IK_CrSel = 247
IK_ExSel = 248
IK_ErEof = 249
IK_Play = 250
IK_Zoom = 251
IK_NoName = 252


Next, you need to describe the "SelfTarget" command itself. The easiest option is to go into the Interface \ Classes \ Shortcut scripts and find function HandleShortcutCommand (String a_Param) there and add:
 

 case "SelfTarget":
            RequestSelfTarget();
            break;


But, of course, you can insert a command into any class, but then you will have to create in it:

function OnEvent( int a_EventID, String a_Param )
{
    switch( a_EventID )
    {
    case EV_ShortcutCommand:
        HandleShortcutCommand( a_Param );
        break;
    }
}

as well as the Handler itself :

function HandleShortcutCommand( String a_Param )
{
    local String Command;
   
    if( ParseString( a_Param, "Command", Command ) )
    {
        switch( Command )
        {
        case "SelfTarget":
            RequestSelfTarget();
            break;
        }
    }
}


That's all, with the help of these examples, you can call any function, in any class, to any key combination you need. Please note that if you call two different functions with one key, from different classes, but with the same name, they will be called simultaneously. It is convenient to use, for example, to simultaneously enable auto-buff and skill-spam panels from different classes. 

Edited by Celestine
  • Thanks 1
  • Upvote 2
Link to comment
Share on other sites

  • Celestine changed the title to Self-target function on hot key "Space" (Interface)
27 minutes ago, lolpwnz89 said:

but i must in code write nickname or can use party window 1,2,3,4 etc? how it work on Interlude?

 

No, you don't need to enter character nicknames in the code.    You need the index of the group member, in default it looks like this:

 rectWnd = m_wndTop.GetRect();
    if (X > rectWnd.nX + 13 && X < rectWnd.nX + rectWnd.nWidth -10)
    {
        if (GetPlayerInfo(userinfo))
        {
            idx = (Y-rectWnd.nY) / NPARTYSTATUS_HEIGHT;
            RequestAssist(m_arrID[idx], userinfo.Loc);
        }
    }


As you can see, the position of the mouse and the index of the window by which the assist is taken are calculated. Accordingly, you can always set an assist by the party leader (as an example), or by a group member with an index of 1-8 (also, for example, you can add a form for entering the index of a group member for which the assist will be made). 

Link to comment
Share on other sites

Just now, lolpwnz89 said:

this code is in interfece.xdat? or .u?

It's * u, the functions themselves are there, * xdat is just markup, this file does not contain functions.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • I can use this folder system for High Five offline server?   The folder does not have a l2.exe file.   Thank you very much if anyone can help me.   https://drive.google.com/file/d/13kU-g_4JJ-sP-kg2F7pqkUOVKmQdubFm/view
    • I know, but...every time I have problem with IP address setup 😞
    • ENGLISH As you know, we have always profiled in the development of Java emulators, we continue to do our favorite thing, and now we have the opportunity to provide you with services in the field of private development of L2 assemblies Essence, Classic and High Five, which we have been doing in recent years, we have not been working on basic builds for a long time and work only on contracts for the world's best projects. These are the best builds we can offer, we have test servers and we can show them to you on the test, and if you are very good at gameplay, you will see a big difference in the quality and detail of the official content compared to the basic builds. These are the best top solutions in the world, which are currently used to implement the largest projects in the world. We guarantee 100% implementation of all official content. If you have any questions about testing, discussions, etc., please contact our studio and we will discuss everything. At the moment, you can get acquainted with the preliminary information and prices for Private L2 contracts here: Private Server packs L2 Essence 464, 447, 388, 362, 286 protocols Private server packs L2Classic Private server pack High Five РУССКИЙ --------------------------------------------- Как вы знаете мы всегда профилировались на разработке в сфере Java эмуляторов, мы продолжаем заниматься своим любимым делом, и сейчас у нас появилась возможность предоставлять вам услуги в сфере приватных разработок L2 сборок Essence, Classic и High Five, которыми мы занимаемся последние годы, мы уже давно не работаем над базовыми сборками и работаем только на контрактах для лучших мировых проектов. Это лучшие сборки, которые мы можем предложить, у нас есть тестовые сервера, и мы можем показать их вам на тесте, и если вы очень хорошо разбираетесь в игровом процессе, вы увидите большую разницу в качестве и детализации официального контента по сравнению с базовыми сборками. Это лучшие топовые решения в мире, которые на данный момент используются для реализации крупнейших проектов в мире. Мы даем гарантии - 100% реализации всего официального контента. По вопросам тестирования, обсуждений и тд - пишите по контактам нашей студии и мы все обсудим. На данный момент вы можете ознакомиться с предварительной информацией и ценами на Приватные контракты L2 тут: Приватные Сборки L2 Essence 464, 447, 388, 362, 286 protocols Приватные Сборки L2Classic Приватная Сборка High Five -------------------------------------------------------------- Contacts: Telegram: https://t.me/L2scripts Whatsapp, Viber: +1 (916) 226 1910 С уважением, Администрация !
  • Topics

×
×
  • Create New...