Untitled
unknown
plain_text
a year ago
27 kB
4
Indexable
//================================================================================ // MagicSkillWnd. //================================================================================ class MagicSkillWnd extends UICommonAPI; enum SkillTypeP { Equipment, Extra }; enum SkillType { Initial, Essential, Summon, Buff, Noblesse, Hero, Extra }; var bool m_bShow; var string m_WindowName; var private WindowHandle ; var private ItemWindowHandle [7]; var private WindowHandle [7]; var private WindowHandle [7]; var private int [7]; var private TextureHandle [7]; var private ItemWindowHandle [2]; var private WindowHandle [2]; var private WindowHandle [2]; var private int [2]; var private TextureHandle [2]; var bool othersMax; var int skillsNum; var int lastSkillsNum; var int newSkillsNum; var bool showNewSkill; var private WindowHandle ; var private TextureHandle ; var array<int> SkillTypeInitial; var array<int> SkillTypeEssential; var array<int> SkillTypeSummon; var array<int> SkillTypeBuff; var array<int> SkillTypeNoblesse; var array<int> SkillTypeHero; var array<int> SkillTypePassive; var array<int> BlockeableSkills; var int lastSkillIndex; const BETWEEN_NAME_ITEM= 3; const NAME_WND_HEIGHT= 20; const TOP_MARGIN= 5; const SKILL_SLOTBG_WIDTH= 216; const SKILL_ITEMWND_WIDTH= 223; const Skill_GROUP_COUNT_P= 2; const Skill_GROUP_COUNT= 7; const Skill_MAX_COUNT= 24; const = 24464; const Teste= 50; function OnLoad () { local int i; RegisterEvent(1280); RegisterEvent(1290); RegisterEvent(1900); = GetHandle(m_WindowName); = GetHandle("SkillNotificationWnd"); = !("SkillNotificationWnd.IconNotify"); [0] = (m_WindowName $ ".ASkill.ASkill" $ string(0) $ ".SkillItem"); [1] = (m_WindowName $ ".ASkill.ASkill" $ string(1) $ ".ActionBasicItem"); [2] = (m_WindowName $ ".ASkill.ASkill" $ string(2) $ ".MacroItem"); [3] = (m_WindowName $ ".ASkill.ASkill" $ string(3) $ ".ActionPartyItem"); //buff [4] = (m_WindowName $ ".ASkill.ASkill" $ string(4) $ ".ActionSocialItem"); //nobless [5] = (m_WindowName $ ".ASkill.ASkill" $ string(5) $ ".SummonedActionWnd"); //hero [6] = (m_WindowName $ ".ASkill.ASkill" $ string(6) $ ".PetActionWnd"); //extra i = 0; if ( i < 7 ) { [i] = GetHandle(m_WindowName $ ".ASkill.ASkill" $ string(i)); [i] = GetHandle(m_WindowName $ ".ASkill.ASkillName" $ string(i)); [i] = !(m_WindowName $ ".ASkill.ASkillName" $ string(i) $ ".ASkillBtn" $ string(i)); i++; goto JL0248; } i = 0; if ( i < 2 ) { [i] = (m_WindowName $ ".PSkill.PSkill" $ string(i) $ ".PSkillItem" $ string(i)); [i] = GetHandle(m_WindowName $ ".PSkill.PSkill" $ string(i)); [i] = GetHandle(m_WindowName $ ".PSkill.PSkillName" $ string(i)); [i] = !(m_WindowName $ ".PSkill.PSkillName" $ string(i) $ ".PSkillBtn" $ string(i)); i++; goto JL031A; } skillsNum = 0; lastSkillsNum = 0; newSkillsNum = 0; othersMax = GetOptionBool("MagicSkillsWnd","OthersMaximized"); } function OnShow () { RequestSkillList(); m_bShow = True; (m_WindowName $ ".ASkill.ASkillScroll").SetScrollPosition(0); (m_WindowName $ ".PSkill.PSkillScroll").SetScrollPosition(0); HideWindowTutorial("MenuWnd.BtnSkill"); newSkillsNum = 0; .HideWindow(); } function OnDragItemStart (string strID, ItemInfo infItem) { HideWindowTutorial("SkillItem"); } function OnHide () { HideWindowTutorial("SkillItem"); m_bShow = False; } function OnTimer (private int ) { if ( == 24464 ) { showNewSkill = True; .KillTimer(24464); } } function OnExitState (name a_PreStateName) { showNewSkill = False; newSkillsNum = 0; if ( .IsShowWindow() ) { .HideWindow(); } } function OnEvent (int Event_ID, string param) { if ( Event_ID == 1280 ) { HandleSkillListStart(); } else { if ( Event_ID == 1290 ) { HandleSkillList(param); if ( .IsShowWindow() ) { (); (); } } else { if ( Event_ID == 1900 ) { HandleLanguageChanged(); } } } } function OnClickItem (string strID, int Index) { local int i; local ItemInfo infItem; i = 0; if ( i < 7 ) { if ( strID == [i].GetWindowName() ) { if ( [i].GetItem(Index,infItem) ) { UseSkill(infItem.ClassID); } } i++; goto JL0007; } } function OnClickButton (string strID) { local int i; local int Index; local int nWndWidth; local int nWndHeight; Index = int(Right(strID,1)); if ( InStr(strID,"ASkillHiddenBtn") > -1 ) { if ( [Index] == 1 ) { if ( Index == 1 ) { othersMax = False; } [Index].GetWindowSize(nWndWidth,nWndHeight); [Index].SetTexture("l2ui_ch3.QuestWnd.QuestWndPlusBtn"); [Index] = 2; [Index].HideWindow(); if ( Index < 7 ) { i = Index + 1; if ( i < 7 ) { if ( [i] > 0 ) { [i].ClearAnchor(); [i].SetAnchor(m_WindowName $ ".ASkill.ASkillName" $ string(Index),"BottomCenter","TopCenter",0,5); } else { i++; goto JL00EA; } } } } else { if ( [Index] == 2 ) { if ( Index == 1 ) { othersMax = True; } [Index].GetWindowSize(nWndWidth,nWndHeight); [Index].SetTexture("l2ui_ch3.QuestWnd.QuestWndMinusBtn"); [Index] = 1; [Index].ShowWindow(); if ( Index < 7 ) { i = Index + 1; if ( i < 7 ) { if ( [i] > 0 ) { [i].ClearAnchor(); [i].SetAnchor(m_WindowName $ ".ASkill.ASkillName" $ string(Index),"BottomCenter","TopCenter",0,nWndHeight + 3 + 5); } else { i++; goto JL023A; } } } } } SetOptionBool("MagicSkillsWnd","OthersMaximized",othersMax); } else { if ( InStr(strID,"PSkillHiddenBtn") > -1 ) { if ( [Index] == 1 ) { [Index].GetWindowSize(nWndWidth,nWndHeight); [Index].SetTexture("l2ui_ch3.QuestWnd.QuestWndPlusBtn"); [Index] = 2; [Index].HideWindow(); if ( Index < 2 ) { i = Index + 1; if ( i < 2 ) { if ( [i] > 0 ) { [i].ClearAnchor(); [i].SetAnchor(m_WindowName $ ".PSkill.PSkillName" $ string(Index),"BottomCenter","TopCenter",0,5); } else { i++; goto JL03D0; } } } } else { if ( [Index] == 2 ) { [Index].GetWindowSize(nWndWidth,nWndHeight); JL03D0: [Index].SetTexture("l2ui_ch3.QuestWnd.QuestWndMinusBtn"); [Index] = 1; [Index].ShowWindow(); if ( Index < 2 ) { i = Index + 1; if ( i < 2 ) { if ( [i] > 0 ) { [i].ClearAnchor(); [i].SetAnchor(m_WindowName $ ".PSkill.PSkillName" $ string(Index),"BottomCenter","TopCenter",0,nWndHeight + 3 + 5); } else { i++; goto JL050D; } } } } } } } } function OnMinOthers () { local int i; local int Index; local int nWndWidth; local int nWndHeight; Index = 1; if ( Index == 1 ) { if ( [Index] == 1 ) { [Index].GetWindowSize(nWndWidth,nWndHeight); [Index].SetTexture("l2ui_ch3.QuestWnd.QuestWndPlusBtn"); [Index] = 2; [Index].HideWindow(); if ( Index < 7 ) { i = Index + 1; if ( i < 7 ) { if ( [i] > 0 ) { [i].ClearAnchor(); [i].SetAnchor(m_WindowName $ ".ASkill.ASkillName" $ string(Index),"BottomCenter","TopCenter",0,5); } else { i++; goto JL00B7; } } } } } } function HandleLanguageChanged () { RequestSkillList(); } function HandleSkillListStart () { if ( !showNewSkill ) { .KillTimer(24464); .SetTimer(24464,1000); } lastSkillsNum = skillsNum; skillsNum = 0; Clear(); } function Clear () { local int i; i = 0; if ( i < 7 ) { [i] = 0; [i].SetTexture("l2ui_ch3.QuestWnd.QuestWndMinusBtn"); [i].HideWindow(); [i].HideWindow(); [i].Clear(); i++; goto JL0007; } i = 0; if ( i < 2 ) { [i] = 0; [i].SetTexture("l2ui_ch3.QuestWnd.QuestWndMinusBtn"); [i].HideWindow(); [i].HideWindow(); [i].Clear(); i++; goto JL00A9; } } function HandleSkillList (string param) { local int tmp; local ESkillCategory Type; local int SkillLevel; local int Lock; local int SkillID; local string strIconName; local string strSkillName; local string strDescription; local string strEnchantName; local string strCommand; local int iCanEnchant; local ItemInfo infItem; ParseInt(param,"ClassID",SkillID); ParseInt(param,"Type",tmp); ParseInt(param,"Level",SkillLevel); ParseInt(param,"Lock",Lock); ParseString(param,"Name",strSkillName); ParseString(param,"IconName",strIconName); ParseString(param,"Description",strDescription); ParseString(param,"EnchantName",strEnchantName); ParseString(param,"Command",strCommand); ParseInt(param,"CanEnchant",iCanEnchant); infItem.ClassID = SkillID; infItem.Level = SkillLevel; infItem.Name = strSkillName; infItem.AdditionalName = strEnchantName; infItem.IconName = strIconName; infItem.Description = strDescription; infItem.ItemSubType = 2; infItem.MacroCommand = strCommand; if ( LockByWeapon(SkillID) ) { Lock = 1; } if ( Lock > 0 ) { infItem.bIsLock = True; } else { infItem.bIsLock = False; } infItem.Reserved = iCanEnchant; Type = tmp; if ( Type != 1 ) { skillsNum++; } if ( (skillsNum > lastSkillsNum) && showNewSkill ) { (); } (SkillID,infItem,Type); } function () { newSkillsNum += skillsNum - lastSkillsNum; if ( newSkillsNum > 9 ) { .SetTexture("L2UI_CH3.MenuNotification.SkillCount_09plus"); } else { .SetTexture("L2UI_CH3.MenuNotification.SkillCount_0" $ string(newSkillsNum)); } .ShowWindow(); lastSkillsNum++; } function (private int , private ItemInfo , private ESkillCategory ) { if ( == 1 ) { [GetSkillTypeP()].AddItem(); } else { [GetSkillType()].AddItem(); } } function () { local int i; local int nItemNum; local int nItemWndHeight; local int nWndWidth; i = 0; if ( i < 7 ) { nItemNum = [i].GetItemNum(); if ( nItemNum < 1 ) { [i] = 0; [i].GetWindowSize(nWndWidth,nItemWndHeight); [i].SetWindowSize(nWndWidth,0); } else { [i] = 1; nItemWndHeight = ((nItemNum - 1) / 6 + 1) * 32 + (nItemNum - 1) / 6 * 4 + 12; [i].SetWindowSize(223,nItemWndHeight); [i].SetRow((nItemNum - 1) / 6 + 2); if ( ![i].IsShowWindow() ) { [i].ShowWindow(); } if ( ![i].IsShowWindow() ) { [i].ShowWindow(); } } i++; goto JL0007; } i = 0; if ( i < 2 ) { nItemNum = [i].GetItemNum(); if ( nItemNum < 1 ) { [i] = 0; [i].GetWindowSize(nWndWidth,nItemWndHeight); [i].SetWindowSize(nWndWidth,0); } else { [i] = 1; nItemWndHeight = ((nItemNum - 1) / 6 + 1) * 32 + (nItemNum - 1) / 6 * 4 + 12; [i].SetWindowSize(223,nItemWndHeight); [i].SetRow((nItemNum - 1) / 6 + 2); if ( ![i].IsShowWindow() ) { [i].ShowWindow(); } if ( ![i].IsShowWindow() ) { [i].ShowWindow(); } } i++; goto JL016F; } } function () { local int i; local int j; local int nWndWidth; local int nWndHeight; if ( [0] == 0 ) { i = 1; if ( i < 7 ) { if ( [i] > 0 ) { [i].SetAnchor(m_WindowName $ ".ASkillScroll","TopLeft","TopLeft",5,4); [i].ClearAnchor(); } else { i++; goto JL0014; } } } i = 0; if ( i < 7 ) { if ( [i] > 0 ) { j = i + 1; if ( j < 7 ) { if ( [j] > 0 ) { if ( [i] == 1 ) { [i].GetWindowSize(nWndWidth,nWndHeight); [j].SetAnchor(m_WindowName $ ".ASkill.ASkillName" $ string(i),"BottomCenter","TopCenter",0,nWndHeight + 3 + 5); goto JL01ED; } else { if ( [i] == 2 ) { [j].SetAnchor(m_WindowName $ ".ASkill.ASkillName" $ string(i),"BottomCenter","TopCenter",0,5); } else { j++; goto JL00C6; } } } } } i++; goto JL009B; } if ( [0] == 0 ) { i = 1; if ( i < 2 ) { if ( [i] > 0 ) { [i].SetAnchor(m_WindowName $ ".PSkillScroll","TopLeft","TopLeft",5,4); [i].ClearAnchor(); } else { i++; goto JL020B; } } } i = 0; if ( i < 2 ) { if ( [i] > 0 ) { j = i + 1; if ( j < 2 ) { if ( [j] > 0 ) { if ( [i] == 1 ) { [i].GetWindowSize(nWndWidth,nWndHeight); [j].SetAnchor(m_WindowName $ ".PSkill.PSkillName" $ string(i),"BottomCenter","TopCenter",0,nWndHeight + 3 + 5); goto JL03E4; } else { if ( [i] == 2 ) { [j].SetAnchor(m_WindowName $ ".PSkill.PSkillName" $ string(i),"BottomCenter","TopCenter",0,5); } else { j++; goto JL02BD; } } } } } i++; goto JL0292; } } function bool LockByWeapon (int SkillID) { local ItemInfo item; local ItemInfo itemShield; local ItemWindowHandle RHand; local ItemWindowHandle LHand; RHand = ("InventoryWnd.EquipItem_RHand"); RHand.GetItem(0,item); LHand = ("InventoryWnd.EquipItem_LHand"); LHand.GetItem(0,itemShield); if ( isBlockeableSkill(SkillID) ) { if ( itemShield.ItemType == 1 ) { switch (SkillID) { case 92: case 350: case 351: case 352: case 353: case 368: return False; default: } } if ( item.WeaponType == 1 ) { switch (SkillID) { case 3: case 6: case 7: case 8: case 9: case 190: case 223: case 255: case 315: case 362: case 400: case 401: return False; default: } } else { if ( item.WeaponType == 2 ) { switch (SkillID) { case 3: case 6: case 7: case 8: case 9: case 100: case 190: case 255: case 260: case 315: case 400: case 401: case 348: case 362: return False; default: } } else { if ( item.WeaponType == 3 ) { switch (SkillID) { case 11: case 12: case 16: case 30: case 96: case 223: case 263: case 321: case 344: case 355: case 356: case 357: case 358: case 409: case 410: return False; default: } } else { if ( item.WeaponType == 4 ) { switch (SkillID) { case 36: case 48: case 245: case 320: case 347: case 361: case 421: case 452: return False; default: } } else { if ( item.WeaponType == 5 ) { switch (SkillID) { case 17: case 29: case 35: case 50: case 54: case 76: case 81: case 83: case 109: case 120: case 280: case 281: case 282: case 284: case 292: case 298: case 346: case 425: case 443: return False; default: } } else { if ( item.WeaponType == 6 ) { switch (SkillID) { case 24: case 19: case 56: case 101: case 313: case 314: case 343: case 354: case 369: case 414: return False; default: } } else { if ( item.WeaponType == 8 ) { switch (SkillID) { case 1: case 5: case 6: case 7: case 8: case 9: case 84: case 223: case 261: case 271: case 272: case 273: case 274: case 275: case 276: case 277: case 307: case 309: case 310: case 311: case 345: case 365: case 366: case 442: case 451: return False; default: } } } } } } } } return True; } return False; } function int GetSkillType (private int ) { switch () { case 3: case 16: case 29: case 36: case 56: case 36: case 190: case 196: case 197: case 245: case 320: case 1001: case 1090: case 1100: case 1147: case 1172: case 1177: case 1178: case 1181: case 1184: case 1274: case 1275: case 1220: return 0; case 1: case 2: case 4: case 5: case 6: case 7: case 8: case 9: case 11: case 12: case 17: case 18: case 19: case 22: case 24: case 28: case 30: case 42: case 48: case 50: case 54: case 60: case 69: case 72: case 76: case 78: case 81: case 82: case 86: case 92: case 94: case 95: case 98: case 99: case 100: case 101: case 110: case 111: case 112: case 115: case 116: case 120: case 121: case 122: case 130: case 131: case 139: case 176: case 181: case 222: case 254: case 256: case 260: case 261: case 263: case 278: case 279: case 280: case 281: case 284: case 286: case 287: case 288: case 296: case 297: case 298: case 302: case 312: case 313: case 314: case 315: case 317: case 318: case 320: case 321: case 322: case 334: case 335: case 337: case 339: case 340: case 341: case 342: case 343: case 344: case 345: case 346: case 347: case 350: case 351: case 353: case 352: case 354: case 355: case 356: case 357: case 358: case 361: case 362: case 367: case 368: case 369: case 400: case 401: case 402: case 403: case 404: case 406: case 407: case 408: case 409: case 410: case 412: case 413: case 414: case 420: case 421: case 422: case 423: case 424: case 425: case 438: case 439: case 440: case 441: case 442: case 443: case 445: case 446: case 447: case 449: case 450: case 451: case 452: case 453: case 461: case 1015: case 1016: case 1056: case 1064: case 1069: case 1071: case 1074: case 1083: case 1092: case 1097: case 1099: case 1104: case 1148: case 1157: case 1159: case 1160: case 1164: case 1169: case 1170: case 1171: case 1174: case 1176: case 1201: case 1208: case 1217: case 1218: case 1219: case 1230: case 1231: case 1234: case 1235: case 1236: case 1237: case 1239: case 1245: case 1246: case 1247: case 1248: case 1254: case 1255: case 1256: case 1263: case 1265: case 1267: case 1269: case 1295: case 1298: case 1283: case 1305: case 1306: case 1307: case 1311: case 1335: case 1336: case 1337: case 1338: case 1339: case 1340: case 1341: case 1342: case 1343: case 1344: case 1345: case 1350: case 1351: case 1358: case 1360: case 1361: case 1366: case 1381: case 1387: case 1394: case 1398: case 1401: case 1402: case 1403: case 1409: case 1410: case 1411: case 1412: case 1417: case 1418: return 1; case 1144: case 1262: case 1111: case 1126: case 1127: case 1139: case 1140: case 1141: case 1225: case 1276: case 1299: case 1300: case 1301: case 1331: case 1346: case 1349: case 1383: case 1406: case 1384: case 1145: case 1226: case 1227: case 1332: case 1347: case 1407: case 1277: case 1128: case 1146: case 1228: case 1278: case 1333: case 1348: case 1385: case 1408: case 13: case 25: case 299: case 301: case 448: case 1129: case 1334: case 1382: case 1154: case 283: case 10: case 1279: case 1328: case 67: case 1280: case 1329: case 33: case 1281: case 1330: return 2; case 271: case 273: case 275: case 277: case 309: case 311: case 272: case 274: case 276: case 307: case 310: case 365: case 264: case 266: case 268: case 270: case 305: case 308: case 364: case 265: case 267: case 269: case 304: case 306: case 363: case 349: case 1068: case 1085: case 1204: case 1035: case 1243: case 1240: case 1048: case 1036: case 1389: case 1259: case 1397: case 1059: case 1040: case 1078: case 1077: case 1062: case 1242: case 1045: case 1086: case 1388: case 1087: case 1304: case 1303: case 1268: case 1257: case 1073: case 1044: case 1010: case 1033: case 1032: case 1352: case 1392: case 1393: case 1354: case 1191: case 1182: case 1353: case 1189: case 1043: case 1363: case 1413: case 1356: case 1357: case 1355: case 1416: case 1414: case 4699: case 4700: case 4702: case 4703: case 1007: case 1009: case 1252: case 1310: case 1251: case 1391: case 1284: case 1006: case 1002: case 1253: case 1309: case 1308: case 1390: case 1362: case 1003: case 1005: case 1008: case 1260: case 1004: case 1250: case 1261: case 1249: case 1282: case 1364: case 1365: case 1415: case 1416: case 1414: case 4551: case 4552: case 4553: case 4554: return 3; case 325: case 326: case 327: case 1323: case 1324: case 1325: case 1326: case 1327: return 4; case 395: case 396: case 1374: case 1375: case 1376: return 5; default: } return 6; } function int GetSkillTypeP (private int ) { switch () { case 239: case 227: case 233: case 236: case 235: case 251: case 234: case 259: case 231: case 232: case 253: return 0; default: } return 1; } function bool isBlockeableSkill (private int ) { switch () { case 1: case 3: case 5: case 6: case 7: case 8: case 9: case 11: case 12: case 16: case 17: case 19: case 24: case 29: case 30: case 35: case 36: case 48: case 50: case 54: case 56: case 76: case 81: case 83: case 84: case 92: case 96: case 100: case 101: case 109: case 120: case 190: case 223: case 245: case 255: case 260: case 261: case 263: case 271: case 272: case 273: case 274: case 275: case 276: case 277: case 280: case 281: case 282: case 284: case 292: case 298: case 307: case 309: case 310: case 311: case 313: case 314: case 315: case 320: case 321: case 343: case 344: case 345: case 346: case 347: case 348: case 350: case 351: case 352: case 353: case 354: case 355: case 356: case 357: case 358: case 361: case 362: case 365: case 366: case 368: case 369: case 400: case 401: case 409: case 410: case 414: case 421: case 425: case 442: case 443: case 451: case 452: return True; default: } } defaultproperties { m_WindowName="MagicSkillWnd" }
Editor is loading...
Leave a Comment