Superaust
June 20th, 2010, 17:05
%100 CREDIT FOR THIS TUTORIAL GOES TO K4rn4ge
Here it is the 602+ skill interface, this is my "long" & "inefficient" one, the one that i currently use is only 24 lines where this one is 226. Anyways hope you enjoy :coolface:
Purpose: Adding 100% 602+ Skill Interface by K4rn4ge
Difficulty: 0/10
Edited Stuff: RSInterface.java & Client.java
Tested On: My Version of Galkon's Refactored
First client.java
Add this under "if (rsi.type == 9) {"
if (rsi.type == 10 && (anInt1500 == rsi.id || anInt1044 == rsi.id || anInt1129 == rsi.id) && !menuOpen) {
int boxWidth = 0;
int boxHeight = 0;
TextDrawingArea textDrawingArea_2 = regularText;
for (String s1 = rsi.message; s1.length() > 0;) {
int l7 = s1.indexOf("\\n");
String s4;
if (l7 != -1) {
s4 = s1.substring(0, l7);
s1 = s1.substring(l7 + 2);
} else {
s4 = s1;
s1 = "";
}
int j10 = textDrawingArea_2.getTextWidth(s4);
if (j10 > boxWidth) {
boxWidth = j10;
}
boxHeight += textDrawingArea_2.anInt1497 + 1;
}
boxWidth += 6;
boxHeight += 7;
int xPos = (k2 + rsi.width) - 5 - boxWidth;
int yPos = l2 + rsi.height + 5;
if (xPos < k2 + 5) {
xPos = k2 + 5;
}
if (xPos + boxWidth > k + class9.width) {
xPos = (k + class9.width) - boxWidth;
}
if (yPos + boxHeight > l + class9.height) {
yPos = (l + class9.height) - boxHeight;
}
if(rsi.inventoryhover){
if(xPos + boxWidth+k > 249){
xPos = 251 - boxWidth-k;
}
if(yPos+boxHeight+l >261 ){
yPos = 245 - boxHeight - l;
}
}
DrawingArea.drawPixels(boxHeight, yPos, xPos, 0xFFFFA0, boxWidth);
DrawingArea.fillPixels(xPos, boxWidth, boxHeight, 0, yPos);
String s2 = rsi.message;
for (int j11 = yPos + textDrawingArea_2.anInt1497 + 2; s2.length() > 0; j11 += textDrawingArea_2.anInt1497 + 1) {
int l11 = s2.indexOf("\\n");
String s5;
if (l11 != -1) {
s5 = s2.substring(0, l11);
s2 = s2.substring(l11 + 2);
} else {
s5 = s2;
s2 = "";
}
textDrawingArea_2.method389(false, xPos + 3, 0, s5, j11);
}
}
Then under "if (rsi.type == 9 && k >= i2 && i1 >= j2 && k < i2 + rsi.width" add this
if (rsi.type == 10 && k >= i2 && i1 >= j2 && k < i2 + rsi.width
&& i1 < j2 + rsi.height) {
anInt1315 = rsi.id;
}
add this somewhere
public int getXPForLevel(int level) {
int points = 0;
int output = 0;
for (int lvl = 1; lvl <= level; lvl++) {
points += Math.floor((double) lvl + 300.0 * Math.pow(2.0, (double) lvl / 7.0));
if (lvl >= level) {
return output;
}
output = (int) Math.floor(points / 4);
}
return 0;
}
Lastly under "drawFriendsListOrWelcomeScreen" add this
if(j == 204){
if(maxStats[0] < 99){
class9.message = "Attack: "+currentStats[0]+"/"+maxStats[0]+"\\nCurrent XP: "+getXPForLevel(currentStats[0])+"\\nNext level: "+getXPForLevel(maxStats[0]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[0]+1) - getXPForLevel(currentStats[0]));
return;
} else {
class9.message = "Attack: "+currentStats[0]+"/"+maxStats[0]+"\\nMax Level Reached";
return;
}
}
if(j == 205){
if(maxStats[3] < 99){
class9.message = "Hitpoints: "+currentStats[3]+"/"+maxStats[3]+"\\nCurrent XP: "+getXPForLevel(currentStats[3])+"\\nNext level: "+getXPForLevel(maxStats[3]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[3]+1) - getXPForLevel(currentStats[3]));
return;
} else {
class9.message = "Hitpoints: "+currentStats[3]+"/"+maxStats[3]+"\\nMax Level Reached";
return;
}
}
if(j == 206){
if(maxStats[14] < 99){
class9.message = "Mining: "+currentStats[14]+"/"+maxStats[14]+"\\nCurrent XP: "+getXPForLevel(currentStats[14])+"\\nNext level: "+getXPForLevel(maxStats[14]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[14]+1) - getXPForLevel(currentStats[14]));
return;
} else {
class9.message = "Mining: "+currentStats[14]+"/"+maxStats[14]+"\\nMax Level Reached";
return;
}
}
if(j == 207){
if(maxStats[2] < 99){
class9.message = "Strength: "+currentStats[2]+"/"+maxStats[2]+"\\nCurrent XP: "+getXPForLevel(currentStats[2])+"\\nNext level: "+getXPForLevel(maxStats[2]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[2]+1) - getXPForLevel(currentStats[2]));
return;
} else {
class9.message = "Strength: "+currentStats[2]+"/"+maxStats[2]+"\\nMax Level Reached";
return;
}
}
if(j == 208){
if(maxStats[16] < 99){
class9.message = "Agility: "+currentStats[16]+"/"+maxStats[16]+"\\nCurrent XP: "+getXPForLevel(currentStats[16])+"\\nNext level: "+getXPForLevel(maxStats[16]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[16]+1) - getXPForLevel(currentStats[16]));
return;
} else {
class9.message = "Agility: "+currentStats[16]+"/"+maxStats[16]+"\\nMax Level Reached";
return;
}
}
if(j == 209){
if(maxStats[13] < 99){
class9.message = "Smithing: "+currentStats[13]+"/"+maxStats[13]+"\\nCurrent XP: "+getXPForLevel(currentStats[13])+"\\nNext level: "+getXPForLevel(maxStats[13]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[13]+1) - getXPForLevel(currentStats[13]));
return;
} else {
class9.message = "Smithing: "+currentStats[13]+"/"+maxStats[13]+"\\nMax Level Reached";
return;
}
}
if(j == 210){
if(maxStats[1] < 99){
class9.message = "Defence: "+currentStats[1]+"/"+maxStats[1]+"\\nCurrent XP: "+getXPForLevel(currentStats[1])+"\\nNext level: "+getXPForLevel(maxStats[1]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[1]+1) - getXPForLevel(currentStats[1]));
return;
} else {
class9.message = "Defence: "+currentStats[1]+"/"+maxStats[1]+"\\nMax Level Reached";
return;
}
}
if(j == 211){
if(maxStats[15] < 99){
class9.message = "Herblore: "+currentStats[15]+"/"+maxStats[15]+"\\nCurrent XP: "+getXPForLevel(currentStats[15])+"\\nNext level: "+getXPForLevel(maxStats[15]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[15]+1) - getXPForLevel(currentStats[15]));
return;
} else {
class9.message = "Herblore: "+currentStats[15]+"/"+maxStats[15]+"\\nMax Level Reached";
return;
}
}
if(j == 212){
if(maxStats[10] < 99){
class9.message = "Fishing: "+currentStats[10]+"/"+maxStats[10]+"\\nCurrent XP: "+getXPForLevel(currentStats[10])+"\\nNext level: "+getXPForLevel(maxStats[10]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[10]+1) - getXPForLevel(currentStats[10]));
return;
} else {
class9.message = "Fishing: "+currentStats[10]+"/"+maxStats[10]+"\\nMax Level Reached";
return;
}
}
if(j == 213){
if(maxStats[4] < 99){
class9.message = "Ranged: "+currentStats[4]+"/"+maxStats[4]+"\\nCurrent XP: "+getXPForLevel(currentStats[4])+"\\nNext level: "+getXPForLevel(maxStats[4]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[4]+1) - getXPForLevel(currentStats[4]));
return;
} else {
class9.message = "Ranged: "+currentStats[4]+"/"+maxStats[4]+"\\nMax Level Reached";
return;
}
}
if(j == 214){
if(maxStats[17] < 99){
class9.message = "Thieving: "+currentStats[17]+"/"+maxStats[17]+"\\nCurrent XP: "+getXPForLevel(currentStats[17])+"\\nNext level: "+getXPForLevel(maxStats[17]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[17]+1) - getXPForLevel(currentStats[17]));
return;
} else {
class9.message = "Thieving: "+currentStats[17]+"/"+maxStats[17]+"\\nMax Level Reached";
return;
}
}
if(j == 215){
if(maxStats[7] < 99){
class9.message = "Cooking: "+currentStats[7]+"/"+maxStats[7]+"\\nCurrent XP: "+getXPForLevel(currentStats[7])+"\\nNext level: "+getXPForLevel(maxStats[7]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[7]+1) - getXPForLevel(currentStats[7]));
return;
} else {
class9.message = "Cooking: "+currentStats[7]+"/"+maxStats[7]+"\\nMax Level Reached";
return;
}
}
if(j == 216){
if(maxStats[5] < 99){
class9.message = "Prayer: "+currentStats[5]+"/"+maxStats[5]+"\\nCurrent XP: "+getXPForLevel(currentStats[5])+"\\nNext level: "+getXPForLevel(maxStats[5]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[5]+1) - getXPForLevel(currentStats[5]));
return;
} else {
class9.message = "Prayer: "+currentStats[5]+"/"+maxStats[5]+"\\nMax Level Reached";
return;
}
}
if(j == 217){
if(maxStats[12] < 99){
class9.message = "Crafting: "+currentStats[12]+"/"+maxStats[12]+"\\nCurrent XP: "+getXPForLevel(currentStats[12])+"\\nNext level: "+getXPForLevel(maxStats[12]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[12]+1) - getXPForLevel(currentStats[12]));
return;
} else {
class9.message = "Crafting: "+currentStats[12]+"/"+maxStats[12]+"\\nMax Level Reached";
return;
}
}
if(j == 218){
if(maxStats[11] < 99){
class9.message = "Firemaking: "+currentStats[11]+"/"+maxStats[11]+"\\nCurrent XP: "+getXPForLevel(currentStats[11])+"\\nNext level: "+getXPForLevel(maxStats[11]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[11]+1) - getXPForLevel(currentStats[11]));
return;
} else {
class9.message = "Firemaking: "+currentStats[11]+"/"+maxStats[11]+"\\nMax Level Reached";
return;
}
}
if(j == 219){
if(maxStats[6] < 99){
class9.message = "Magic: "+currentStats[6]+"/"+maxStats[6]+"\\nCurrent XP: "+getXPForLevel(currentStats[6])+"\\nNext level: "+getXPForLevel(maxStats[6]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[6]+1) - getXPForLevel(currentStats[6]));
return;
} else {
class9.message = "Magic: "+currentStats[6]+"/"+maxStats[6]+"\\nMax Level Reached";
return;
}
}
if(j == 220){
if(maxStats[9] < 99){
class9.message = "Fletching: "+currentStats[9]+"/"+maxStats[9]+"\\nCurrent XP: "+getXPForLevel(currentStats[9])+"\\nNext level: "+getXPForLevel(maxStats[9]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[9]+1) - getXPForLevel(currentStats[9]));
return;
} else {
class9.message = "Fletching: "+currentStats[6]+"/"+maxStats[6]+"\\nMax Level Reached";
return;
}
}
if(j == 221){
if(maxStats[8] < 99){
class9.message = "Woodcutting: "+currentStats[8]+"/"+maxStats[8]+"\\nCurrent XP: "+getXPForLevel(currentStats[8])+"\\nNext level: "+getXPForLevel(maxStats[8]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[8]+1) - getXPForLevel(currentStats[8]));
return;
} else {
class9.message = "Woodcutting: "+currentStats[8]+"/"+maxStats[8]+"\\nMax Level Reached";
return;
}
}
if(j == 222){
if(maxStats[20] < 99){
class9.message = "Runecrafting: "+currentStats[20]+"/"+maxStats[20]+"\\nCurrent XP: "+getXPForLevel(currentStats[20])+"\\nNext level: "+getXPForLevel(maxStats[20]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[20]+1) - getXPForLevel(currentStats[20]));
return;
} else {
class9.message = "Runecrafting: "+currentStats[20]+"/"+maxStats[20]+"\\nMax Level Reached";
return;
}
}
if(j == 223){
if(maxStats[18] < 99){
class9.message = "Slayer: "+currentStats[18]+"/"+maxStats[18]+"\\nCurrent XP: "+getXPForLevel(currentStats[18])+"\\nNext level: "+getXPForLevel(maxStats[18]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[18]+1) - getXPForLevel(currentStats[18]));
return;
} else {
class9.message = "Slayer: "+currentStats[18]+"/"+maxStats[18]+"\\nMax Level Reached";
return;
}
}
if(j == 224){
if(maxStats[19] < 99){
class9.message = "Farming: "+currentStats[19]+"/"+maxStats[19]+"\\nCurrent XP: "+getXPForLevel(currentStats[19])+"\\nNext level: "+getXPForLevel(maxStats[19]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[19]+1) - getXPForLevel(currentStats[19]));
return;
} else {
class9.message = "Farming: "+currentStats[19]+"/"+maxStats[19]+"\\nMax Level Reached";
return;
}
}
if(j == 225){
if(maxStats[21] < 99){
class9.message = "Construction: "+currentStats[21]+"/"+maxStats[21]+"\\nCurrent XP: "+getXPForLevel(currentStats[21])+"\\nNext level: "+getXPForLevel(maxStats[21]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[21]+1) - getXPForLevel(currentStats[21]));
return;
} else {
class9.message = "Construction: "+currentStats[21]+"/"+maxStats[21]+"\\nMax Level Reached";
return;
}
}
if(j == 226){
if(maxStats[22] < 99){
class9.message = "Hunter: "+currentStats[22]+"/"+maxStats[22]+"\\nCurrent XP: "+getXPForLevel(currentStats[22])+"\\nNext level: "+getXPForLevel(maxStats[22]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[22]+1) - getXPForLevel(currentStats[22]));
return;
} else {
class9.message = "Hunter: "+currentStats[22]+"/"+maxStats[22]+"\\nMax Level Reached";
return;
}
}
if(j == 227){
if(maxStats[23] < 99){
class9.message = "Summoning: "+currentStats[23]+"/"+maxStats[23]+"\\nCurrent XP: "+getXPForLevel(currentStats[23])+"\\nNext level: "+getXPForLevel(maxStats[23]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[23]+1) - getXPForLevel(currentStats[23]));
return;
} else {
class9.message = "Summoning: "+currentStats[23]+"/"+maxStats[23]+"\\nMax Level Reached";
return;
}
}
if(j == 228){
if(maxStats[24] < 99){
class9.message = "Dungeoneering: "+currentStats[24]+"/"+maxStats[24]+"\\nCurrent XP: "+getXPForLevel(currentStats[24])+"\\nNext level: "+getXPForLevel(maxStats[24]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[24]+1) - getXPForLevel(currentStats[24]));
return;
} else {
class9.message = "Dungeoneering: "+currentStats[24]+"/"+maxStats[24]+"\\nMax Level Reached";
return;
}
}
Now that we are done with client.java onto RSInterface.java
Add the methods
public static void Hovers(TextDrawingArea[] TDA) {
RSInterface Interface = interfaceCache[3984];
Interface.textDrawingAreas = TDA[2];
Interface.message = "Total level %1";
addSkillHovers(8654, 204);
addSkillHovers(8655, 205);
addSkillHovers(8656, 206);
addSkillHovers(8657, 207);
addSkillHovers(8658, 208);
addSkillHovers(8659, 209);
addSkillHovers(8660, 210);
addSkillHovers(8661, 211);
addSkillHovers(8662, 212);
addSkillHovers(8663, 213);
addSkillHovers(8664, 214);
addSkillHovers(8665, 215);
addSkillHovers(8666, 216);
addSkillHovers(8667, 217);
addSkillHovers(8668, 218);
addSkillHovers(8669, 219);
addSkillHovers(8670, 220);
addSkillHovers(8671, 221);
addSkillHovers(8672, 222);
addSkillHovers(12162, 223);
addSkillHovers(13928, 224);
addSkillHovers(27153, 225);
addSkillHovers(27154, 226);
addSkillHovers(27155, 227);
addSkillHovers(27156, 228);
}
public static void addSkillHovers(int i, int CT) {
RSInterface hover = addTabInterface(i);
hover.type = 10;
hover.contentType = CT;
hover.message = null;
hover.height = 27;
hover.width = 60;
}
public static void addSprite(int id, String spriteName, String T, int H, int X, int Y) {
RSInterface tab = interfaceCache[id] = new RSInterface();
tab.id = id;
tab.parentID = id;
tab.type = 5;
tab.atActionType = 1;
tab.contentType = -1;
tab.aByte254 = (byte) 0;
tab.mOverInterToTrigger = 52;
tab.sprite1 = imageLoader(spriteName);
tab.sprite2 = imageLoader(spriteName);
tab.tooltip = T;
tab.mOverInterToTrigger = H;
tab.width = X;
tab.height = Y;
}
public static void addText(int i, String s, int k, boolean l, boolean m, int a, TextDrawingArea[] TDA, int j) {
RSInterface rsinterface = addTabInterface(i);
rsinterface.parentID = i;
rsinterface.id = i;
rsinterface.type = 4;
rsinterface.atActionType = 0;
rsinterface.width = 0;
rsinterface.height = 0;
rsinterface.contentType = 0;
rsinterface.aByte254 = 0;
rsinterface.mOverInterToTrigger = a;
rsinterface.centerText = l;
rsinterface.textShadow = m;
rsinterface.textDrawingAreas = TDA[j];
rsinterface.message = s;
rsinterface.aString228 = "";
rsinterface.textColor = k;
}
Add the Interface itself
public static void skillTab(TextDrawingArea[] TDA) {
RSInterface sT = addTabInterface(27101);
addSprite(27102, "Skill/Button", "Open Attack Guide", 8654, 60, 27);
addSprite(27103, "Skill/Button", "Open Hitpoints Guide", 8655, 60, 27);
addSprite(27104, "Skill/Button", "Open Mining Guide", 8656, 60, 27);
addSprite(27105, "Skill/Button", "Open Strength Guide", 8657, 60, 27);
addSprite(27106, "Skill/Button", "Open Agility Guide", 8658, 60, 27);
addSprite(27107, "Skill/Button", "Open Smithing Guide", 8659, 60, 27);
addSprite(27108, "Skill/Button", "Open Defence Guide", 8660, 60, 27);
addSprite(27109, "Skill/Button", "Open Herblore Guide", 8661, 60, 27);
addSprite(27110, "Skill/Button", "Open Fishing Guide", 8662, 60, 27);
addSprite(27111, "Skill/Button", "Open Ranging Guide", 8663, 60, 27);
addSprite(27112, "Skill/Button", "Open Thieving Guide", 8664, 60, 27);
addSprite(27113, "Skill/Button", "Open Cooking Guide", 8665, 60, 27);
addSprite(27114, "Skill/Button", "Open Prayer Guide", 8666, 60, 27);
addSprite(27115, "Skill/Button", "Open Crafting Guide", 8667, 60, 27);
addSprite(27116, "Skill/Button", "Open Firemaking Guide", 8668, 60, 27);
addSprite(27117, "Skill/Button", "Open Magic Guide", 8669, 60, 27);
addSprite(27118, "Skill/Button", "Open Fletching Guide", 8670, 60, 27);
addSprite(27119, "Skill/Button", "Open Woodcutting Guide", 8671, 60, 27);
addSprite(27120, "Skill/Button", "Open Runecrafting Guide", 8672, 60, 27);
addSprite(27121, "Skill/Button", "Open Slaying Guide", 12162, 60, 27);
addSprite(27122, "Skill/Button", "Open Farming Guide", 13928, 60, 27);
addSprite(27123, "Skill/Button", "Open Construction Guide", 27153, 60, 27);
addSprite(27124, "Skill/Button", "Open Hunter Guide", 27154, 60, 27);
addSprite(27125, "Skill/Button", "Open Summoning Guide", 27155, 60, 27);
addSprite(27126, "Skill/Button", "Open Dungeoneering Guide", 27156, 60, 27);
addText(27127, "Total Level: 2475", 0xFFFF00, false, false, 52, TDA, 2);
addSprite(27128, "Skill/Dungeon");
addSprite(27129, "Skill/Attack");
addSprite(27130, "Skill/Strength");
addSprite(27131, "Skill/Defence");
addSprite(27132, "Skill/Range");
addSprite(27133, "Skill/Prayer");
addSprite(27134, "Skill/Mage");
addSprite(27135, "Skill/Rune");
addSprite(27136, "Skill/Construction");
addSprite(27137, "Skill/HP");
addSprite(27138, "Skill/Agility");
addSprite(27139, "Skill/Herblore");
addSprite(27140, "Skill/Thief");
addSprite(27141, "Skill/Craft");
addSprite(27142, "Skill/Fletch");
addSprite(27143, "Skill/Slay");
addSprite(27144, "Skill/Hunter");
addSprite(27145, "Skill/Mine");
addSprite(27146, "Skill/Smith");
addSprite(27147, "Skill/Fish");
addSprite(27148, "Skill/Cook");
addSprite(27149, "Skill/Fire");
addSprite(27150, "Skill/Wood");
addSprite(27151, "Skill/Farm");
addSprite(27152, "Skill/Summon");
addText(27157, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27158, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27159, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27160, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27161, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27162, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27163, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27164, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27165, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27166, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27167, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27168, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27169, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27170, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27171, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27172, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27173, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27174, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27175, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27176, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27177, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27178, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27179, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27180, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27181, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27182, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27183, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27184, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27185, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27186, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27187, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27188, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27189, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27190, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27191, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27192, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27193, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27194, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27195, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27196, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27197, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27198, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27199, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27200, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27201, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27202, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27203, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27204, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27205, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27206, "99", 0xFFFF00, false, true, -1, TDA, 0);
sT.totalChildren(126);
/*Buttons*/
sT.child(0, 27102, 3, 5);
sT.child(1, 27103, 66, 5);
sT.child(2, 27104, 128, 5);
sT.child(3, 27105, 3, 33);
sT.child(4, 27106, 66, 33);
sT.child(5, 27107, 128, 33);
sT.child(6, 27108, 3, 61);
sT.child(7, 27109, 66, 61);
sT.child(8, 27110, 128, 61);
sT.child(9, 27111, 3, 89);
sT.child(10, 27112, 66, 89);
sT.child(11, 27113, 128, 89);
sT.child(12, 27114, 3, 117);
sT.child(13, 27115, 66, 117);
sT.child(14, 27116, 128, 117);
sT.child(15, 27117, 3, 145);
sT.child(16, 27118, 66, 145);
sT.child(17, 27119, 128, 145);
sT.child(18, 27120, 3, 173);
sT.child(19, 27121, 66, 173);
sT.child(20, 27122, 128, 173);
sT.child(21, 27123, 3, 201);
sT.child(22, 27124, 66, 201);
sT.child(23, 27125, 128, 201);
sT.child(24, 27126, 3, 229);
/*Total Level Text*/
sT.child(25, 27127, 70, 235);
/*Icons*/
sT.child(26, 27128, 5, 231);
sT.child(27, 27129, 4, 7);
sT.child(28, 27130, 9, 35);
sT.child(29, 27131, 9, 65);
sT.child(30, 27132, 6, 93);
sT.child(31, 27133, 5, 118);
sT.child(32, 27134, 5, 147);
sT.child(33, 27135, 5, 174);
sT.child(34, 27136, 5, 203);
sT.child(35, 27137, 69, 9);
sT.child(36, 27138, 67, 34);
sT.child(37, 27139, 67, 63);
sT.child(38, 27140, 68, 94);
sT.child(39, 27141, 70, 120);
sT.child(40, 27142, 69, 147);
sT.child(41, 27143, 68, 174);
sT.child(42, 27144, 68, 202);
sT.child(43, 27145, 130, 7);
sT.child(44, 27146, 132, 38);
sT.child(45, 27147, 132, 62);
sT.child(46, 27148, 132, 91);
sT.child(47, 27149, 131, 119);
sT.child(48, 27150, 132, 147);
sT.child(49, 27151, 131, 175);
sT.child(50, 27152, 133, 203);
/*##/## Text*/
sT.child(51, 27157, 32, 231);
sT.child(52, 27158, 45, 242);
sT.child(53, 27159, 32, 7);
sT.child(54, 27160, 45, 18);
sT.child(55, 27161, 32, 35);
sT.child(56, 27162, 45, 46);
sT.child(57, 27163, 32, 63);
sT.child(58, 27164, 45, 74);
sT.child(59, 27165, 32, 91);
sT.child(60, 27166, 45, 102);
sT.child(61, 27167, 32, 119);
sT.child(62, 27168, 45, 130);
sT.child(63, 27169, 32, 147);
sT.child(64, 27170, 45, 158);
sT.child(65, 27171, 32, 175);
sT.child(66, 27172, 45, 186);
sT.child(67, 27173, 32, 203);
sT.child(68, 27174, 45, 214);
sT.child(69, 27175, 95, 7);
sT.child(70, 27176, 108, 18);
sT.child(71, 27177, 95, 35);
sT.child(72, 27178, 108, 46);
sT.child(73, 27179, 95, 63);
sT.child(74, 27180, 108, 74);
sT.child(75, 27181, 95, 91);
sT.child(76, 27182, 108, 102);
sT.child(77, 27183, 95, 119);
sT.child(78, 27184, 108, 130);
sT.child(79, 27185, 95, 147);
sT.child(80, 27186, 108, 158);
sT.child(81, 27187, 95, 175);
sT.child(82, 27188, 108, 186);
sT.child(83, 27189, 95, 203);
sT.child(84, 27190, 108, 214);
sT.child(85, 27191, 158, 7);
sT.child(86, 27192, 171, 18);
sT.child(87, 27193, 158, 35);
sT.child(88, 27194, 171, 46);
sT.child(89, 27195, 158, 63);
sT.child(90, 27196, 171, 74);
sT.child(91, 27197, 158, 91);
sT.child(92, 27198, 171, 102);
sT.child(93, 27199, 158, 119);
sT.child(94, 27200, 171, 130);
sT.child(95, 27201, 158, 147);
sT.child(96, 27202, 171, 158);
sT.child(97, 27203, 158, 175);
sT.child(98, 27204, 171, 186);
sT.child(99, 27205, 158, 203);
sT.child(100, 27206, 171, 214);
/*Hovers*/
sT.child(101, 8654, 3, 5);
sT.child(102, 8655, 66, 5);
sT.child(103, 8656, 128, 5);
sT.child(104, 8657, 3, 33);
sT.child(105, 8658, 66, 33);
sT.child(106, 8659, 128, 33);
sT.child(107, 8660, 3, 61);
sT.child(108, 8661, 66, 61);
sT.child(109, 8662, 128, 61);
sT.child(110, 8663, 3, 89);
sT.child(111, 8664, 66, 89);
sT.child(112, 8665, 128, 89);
sT.child(113, 8666, 3, 117);
sT.child(114, 8667, 66, 117);
sT.child(115, 8668, 128, 117);
sT.child(116, 8669, 3, 145);
sT.child(117, 8670, 66, 145);
sT.child(118, 8671, 128, 145);
sT.child(119, 8672, 3, 173);
sT.child(120, 12162, 66, 173);
sT.child(121, 13928, 128, 173);
sT.child(122, 27153, 3, 201);
sT.child(123, 27154, 66, 201);
sT.child(124, 27155, 128, 201);
sT.child(125, 27156, 3, 229);
}
Sprites Link (Only the registered members can see the link.)
Only the registered members can see the link.
public static void skillTab602(TextDrawingArea[] TDA) {
RSInterface sT = addTabInterface(27101);
String[] SkillTooltip = { "Attack", "Hitpoints", "Mining", "Strength", "Agility", "Smithing", "Defence", "Herblore", "Fishing", "Ranging", "Thieving", "Cooking", "Prayer", "Crafting", "Firemaking", "Magic", "Fletching", "Woodcutting", "Runecrafting", "Slaying", "Farming", "Construction", "Hunter", "Summoning", "Dungeoneering"};
int[] ButtonIDs = { 27102, 27103, 27104, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27117, 27118, 27119, 27120, 27121, 27122, 27123, 27124, 27125, 27126};
int[] ButtonX = { 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3};
int[] ButtonY = { 5, 5, 5, 33, 33, 33, 61, 61, 61, 89, 89, 89, 117, 117, 117, 145, 145, 145, 173, 173, 173, 201, 201, 201, 229};
String[] Icons = { "Dungeon", "Attack", "Strength", "Defence", "Range", "Prayer", "Mage", "Rune", "Construction", "HP", "Agility", "Herblore", "Thief", "Craft", "Fletch", "Slay", "Hunter", "Mine", "Smith", "Fish", "Cook", "Fire", "Wood", "Farm", "Summon"};
int[] IconIDs = { 27128, 27129, 27130, 27131, 27132, 27133, 27134, 27135, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27146, 27147, 27148, 27149, 27150, 27151, 27152};
int[] minTextIDs = { 27157, 27159, 27161, 27163, 27165, 27167, 27169, 27171, 27173, 27175, 27177, 27179, 27181, 27183, 27185, 27187, 27189, 27191, 27193, 27195, 27197, 27199, 27201, 27203, 27205};
int[] maxTextIDs = { 27158, 27160, 27162, 27164, 27166, 27168, 27170, 27172, 27174, 27176, 27178, 27180, 27182, 27184, 27186, 27188, 27190, 27192, 27194, 27196, 27198, 27200, 27202, 27204, 27206};
int[] setIDs = { 27102, 27103, 27104, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27117, 27118, 27119, 27120, 27121, 27122, 27123, 27124, 27125, 27126, 27128, 27129, 27130, 27131, 27132, 27133, 27134, 27135, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27146, 27147, 27148, 27149, 27150, 27151, 27152, 27157, 27159, 27161, 27163, 27165, 27167, 27169, 27171, 27173, 27175, 27177, 27179, 27181, 27183, 27185, 27187, 27189, 27191, 27193, 27195, 27197, 27199, 27201, 27203, 27205, 27158, 27160, 27162, 27164, 27166, 27168, 27170, 27172, 27174, 27176, 27178, 27180, 27182, 27184, 27186, 27188, 27190, 27192, 27194, 27196, 27198, 27200, 27202, 27204, 27206 };
int[] setX = { 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 5, 4, 9, 9, 6, 5, 5, 5, 5, 69, 67, 67, 68, 70, 69, 68, 68, 130, 132, 132, 132, 131, 132, 131, 133, 32, 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 95, 95, 95, 95, 95, 95, 158, 158, 158, 158, 158, 158, 158, 158, 45, 45, 45, 45, 45, 45, 45, 45, 45, 108, 108, 108, 108, 108, 108, 108, 108, 171, 171, 171, 171, 171, 171, 171, 171};
int[] setY = { 5, 5, 5, 33, 33, 33, 61, 61, 61, 89, 89, 89, 117, 117, 117, 145, 145, 145, 173, 173, 173, 201, 201, 201, 229, 231, 7, 35, 65, 93, 118, 147, 174, 203, 9, 34, 63, 94, 120, 147, 174, 202, 7, 38, 62, 91, 119, 147, 175, 203, 231, 7, 35, 63, 91, 119, 147, 175, 203, 7, 35, 63, 91, 119, 147, 175, 203, 7, 35, 63, 91, 119, 147, 175, 203, 242, 18, 46, 74, 102, 130, 158, 186, 214, 18, 46, 74, 102, 130, 158, 186, 214, 18, 46, 74, 102, 130, 158, 186, 214};
sT.totalChildren(ButtonIDs.length + IconIDs.length + minTextIDs.length + maxTextIDs.length);
for(int index = 0; index < ButtonIDs.length; index++) {
addSprite(ButtonIDs[index], "Skill/Button", "Open @or1@" +SkillTooltip[index]+ " Guide", -1, 60, 27);
addSprite(IconIDs[index], "Skill/"+Icons[index]);
addText(minTextIDs[index], "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(maxTextIDs[index], "99", 0xFFFF00, false, true, -1, TDA, 0);
}
for(int index = 0; index < ButtonIDs.length + IconIDs.length + minTextIDs.length + maxTextIDs.length; index++) {
sT.child(index, setIDs[index], setX[index], setY[index]);
}
}
Enjoy and tell me if i missed any methods :awesome:
Credits
K4rn4ge(Everything Else)
Stewie(Hover stuff)
Here it is the 602+ skill interface, this is my "long" & "inefficient" one, the one that i currently use is only 24 lines where this one is 226. Anyways hope you enjoy :coolface:
Purpose: Adding 100% 602+ Skill Interface by K4rn4ge
Difficulty: 0/10
Edited Stuff: RSInterface.java & Client.java
Tested On: My Version of Galkon's Refactored
First client.java
Add this under "if (rsi.type == 9) {"
if (rsi.type == 10 && (anInt1500 == rsi.id || anInt1044 == rsi.id || anInt1129 == rsi.id) && !menuOpen) {
int boxWidth = 0;
int boxHeight = 0;
TextDrawingArea textDrawingArea_2 = regularText;
for (String s1 = rsi.message; s1.length() > 0;) {
int l7 = s1.indexOf("\\n");
String s4;
if (l7 != -1) {
s4 = s1.substring(0, l7);
s1 = s1.substring(l7 + 2);
} else {
s4 = s1;
s1 = "";
}
int j10 = textDrawingArea_2.getTextWidth(s4);
if (j10 > boxWidth) {
boxWidth = j10;
}
boxHeight += textDrawingArea_2.anInt1497 + 1;
}
boxWidth += 6;
boxHeight += 7;
int xPos = (k2 + rsi.width) - 5 - boxWidth;
int yPos = l2 + rsi.height + 5;
if (xPos < k2 + 5) {
xPos = k2 + 5;
}
if (xPos + boxWidth > k + class9.width) {
xPos = (k + class9.width) - boxWidth;
}
if (yPos + boxHeight > l + class9.height) {
yPos = (l + class9.height) - boxHeight;
}
if(rsi.inventoryhover){
if(xPos + boxWidth+k > 249){
xPos = 251 - boxWidth-k;
}
if(yPos+boxHeight+l >261 ){
yPos = 245 - boxHeight - l;
}
}
DrawingArea.drawPixels(boxHeight, yPos, xPos, 0xFFFFA0, boxWidth);
DrawingArea.fillPixels(xPos, boxWidth, boxHeight, 0, yPos);
String s2 = rsi.message;
for (int j11 = yPos + textDrawingArea_2.anInt1497 + 2; s2.length() > 0; j11 += textDrawingArea_2.anInt1497 + 1) {
int l11 = s2.indexOf("\\n");
String s5;
if (l11 != -1) {
s5 = s2.substring(0, l11);
s2 = s2.substring(l11 + 2);
} else {
s5 = s2;
s2 = "";
}
textDrawingArea_2.method389(false, xPos + 3, 0, s5, j11);
}
}
Then under "if (rsi.type == 9 && k >= i2 && i1 >= j2 && k < i2 + rsi.width" add this
if (rsi.type == 10 && k >= i2 && i1 >= j2 && k < i2 + rsi.width
&& i1 < j2 + rsi.height) {
anInt1315 = rsi.id;
}
add this somewhere
public int getXPForLevel(int level) {
int points = 0;
int output = 0;
for (int lvl = 1; lvl <= level; lvl++) {
points += Math.floor((double) lvl + 300.0 * Math.pow(2.0, (double) lvl / 7.0));
if (lvl >= level) {
return output;
}
output = (int) Math.floor(points / 4);
}
return 0;
}
Lastly under "drawFriendsListOrWelcomeScreen" add this
if(j == 204){
if(maxStats[0] < 99){
class9.message = "Attack: "+currentStats[0]+"/"+maxStats[0]+"\\nCurrent XP: "+getXPForLevel(currentStats[0])+"\\nNext level: "+getXPForLevel(maxStats[0]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[0]+1) - getXPForLevel(currentStats[0]));
return;
} else {
class9.message = "Attack: "+currentStats[0]+"/"+maxStats[0]+"\\nMax Level Reached";
return;
}
}
if(j == 205){
if(maxStats[3] < 99){
class9.message = "Hitpoints: "+currentStats[3]+"/"+maxStats[3]+"\\nCurrent XP: "+getXPForLevel(currentStats[3])+"\\nNext level: "+getXPForLevel(maxStats[3]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[3]+1) - getXPForLevel(currentStats[3]));
return;
} else {
class9.message = "Hitpoints: "+currentStats[3]+"/"+maxStats[3]+"\\nMax Level Reached";
return;
}
}
if(j == 206){
if(maxStats[14] < 99){
class9.message = "Mining: "+currentStats[14]+"/"+maxStats[14]+"\\nCurrent XP: "+getXPForLevel(currentStats[14])+"\\nNext level: "+getXPForLevel(maxStats[14]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[14]+1) - getXPForLevel(currentStats[14]));
return;
} else {
class9.message = "Mining: "+currentStats[14]+"/"+maxStats[14]+"\\nMax Level Reached";
return;
}
}
if(j == 207){
if(maxStats[2] < 99){
class9.message = "Strength: "+currentStats[2]+"/"+maxStats[2]+"\\nCurrent XP: "+getXPForLevel(currentStats[2])+"\\nNext level: "+getXPForLevel(maxStats[2]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[2]+1) - getXPForLevel(currentStats[2]));
return;
} else {
class9.message = "Strength: "+currentStats[2]+"/"+maxStats[2]+"\\nMax Level Reached";
return;
}
}
if(j == 208){
if(maxStats[16] < 99){
class9.message = "Agility: "+currentStats[16]+"/"+maxStats[16]+"\\nCurrent XP: "+getXPForLevel(currentStats[16])+"\\nNext level: "+getXPForLevel(maxStats[16]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[16]+1) - getXPForLevel(currentStats[16]));
return;
} else {
class9.message = "Agility: "+currentStats[16]+"/"+maxStats[16]+"\\nMax Level Reached";
return;
}
}
if(j == 209){
if(maxStats[13] < 99){
class9.message = "Smithing: "+currentStats[13]+"/"+maxStats[13]+"\\nCurrent XP: "+getXPForLevel(currentStats[13])+"\\nNext level: "+getXPForLevel(maxStats[13]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[13]+1) - getXPForLevel(currentStats[13]));
return;
} else {
class9.message = "Smithing: "+currentStats[13]+"/"+maxStats[13]+"\\nMax Level Reached";
return;
}
}
if(j == 210){
if(maxStats[1] < 99){
class9.message = "Defence: "+currentStats[1]+"/"+maxStats[1]+"\\nCurrent XP: "+getXPForLevel(currentStats[1])+"\\nNext level: "+getXPForLevel(maxStats[1]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[1]+1) - getXPForLevel(currentStats[1]));
return;
} else {
class9.message = "Defence: "+currentStats[1]+"/"+maxStats[1]+"\\nMax Level Reached";
return;
}
}
if(j == 211){
if(maxStats[15] < 99){
class9.message = "Herblore: "+currentStats[15]+"/"+maxStats[15]+"\\nCurrent XP: "+getXPForLevel(currentStats[15])+"\\nNext level: "+getXPForLevel(maxStats[15]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[15]+1) - getXPForLevel(currentStats[15]));
return;
} else {
class9.message = "Herblore: "+currentStats[15]+"/"+maxStats[15]+"\\nMax Level Reached";
return;
}
}
if(j == 212){
if(maxStats[10] < 99){
class9.message = "Fishing: "+currentStats[10]+"/"+maxStats[10]+"\\nCurrent XP: "+getXPForLevel(currentStats[10])+"\\nNext level: "+getXPForLevel(maxStats[10]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[10]+1) - getXPForLevel(currentStats[10]));
return;
} else {
class9.message = "Fishing: "+currentStats[10]+"/"+maxStats[10]+"\\nMax Level Reached";
return;
}
}
if(j == 213){
if(maxStats[4] < 99){
class9.message = "Ranged: "+currentStats[4]+"/"+maxStats[4]+"\\nCurrent XP: "+getXPForLevel(currentStats[4])+"\\nNext level: "+getXPForLevel(maxStats[4]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[4]+1) - getXPForLevel(currentStats[4]));
return;
} else {
class9.message = "Ranged: "+currentStats[4]+"/"+maxStats[4]+"\\nMax Level Reached";
return;
}
}
if(j == 214){
if(maxStats[17] < 99){
class9.message = "Thieving: "+currentStats[17]+"/"+maxStats[17]+"\\nCurrent XP: "+getXPForLevel(currentStats[17])+"\\nNext level: "+getXPForLevel(maxStats[17]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[17]+1) - getXPForLevel(currentStats[17]));
return;
} else {
class9.message = "Thieving: "+currentStats[17]+"/"+maxStats[17]+"\\nMax Level Reached";
return;
}
}
if(j == 215){
if(maxStats[7] < 99){
class9.message = "Cooking: "+currentStats[7]+"/"+maxStats[7]+"\\nCurrent XP: "+getXPForLevel(currentStats[7])+"\\nNext level: "+getXPForLevel(maxStats[7]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[7]+1) - getXPForLevel(currentStats[7]));
return;
} else {
class9.message = "Cooking: "+currentStats[7]+"/"+maxStats[7]+"\\nMax Level Reached";
return;
}
}
if(j == 216){
if(maxStats[5] < 99){
class9.message = "Prayer: "+currentStats[5]+"/"+maxStats[5]+"\\nCurrent XP: "+getXPForLevel(currentStats[5])+"\\nNext level: "+getXPForLevel(maxStats[5]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[5]+1) - getXPForLevel(currentStats[5]));
return;
} else {
class9.message = "Prayer: "+currentStats[5]+"/"+maxStats[5]+"\\nMax Level Reached";
return;
}
}
if(j == 217){
if(maxStats[12] < 99){
class9.message = "Crafting: "+currentStats[12]+"/"+maxStats[12]+"\\nCurrent XP: "+getXPForLevel(currentStats[12])+"\\nNext level: "+getXPForLevel(maxStats[12]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[12]+1) - getXPForLevel(currentStats[12]));
return;
} else {
class9.message = "Crafting: "+currentStats[12]+"/"+maxStats[12]+"\\nMax Level Reached";
return;
}
}
if(j == 218){
if(maxStats[11] < 99){
class9.message = "Firemaking: "+currentStats[11]+"/"+maxStats[11]+"\\nCurrent XP: "+getXPForLevel(currentStats[11])+"\\nNext level: "+getXPForLevel(maxStats[11]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[11]+1) - getXPForLevel(currentStats[11]));
return;
} else {
class9.message = "Firemaking: "+currentStats[11]+"/"+maxStats[11]+"\\nMax Level Reached";
return;
}
}
if(j == 219){
if(maxStats[6] < 99){
class9.message = "Magic: "+currentStats[6]+"/"+maxStats[6]+"\\nCurrent XP: "+getXPForLevel(currentStats[6])+"\\nNext level: "+getXPForLevel(maxStats[6]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[6]+1) - getXPForLevel(currentStats[6]));
return;
} else {
class9.message = "Magic: "+currentStats[6]+"/"+maxStats[6]+"\\nMax Level Reached";
return;
}
}
if(j == 220){
if(maxStats[9] < 99){
class9.message = "Fletching: "+currentStats[9]+"/"+maxStats[9]+"\\nCurrent XP: "+getXPForLevel(currentStats[9])+"\\nNext level: "+getXPForLevel(maxStats[9]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[9]+1) - getXPForLevel(currentStats[9]));
return;
} else {
class9.message = "Fletching: "+currentStats[6]+"/"+maxStats[6]+"\\nMax Level Reached";
return;
}
}
if(j == 221){
if(maxStats[8] < 99){
class9.message = "Woodcutting: "+currentStats[8]+"/"+maxStats[8]+"\\nCurrent XP: "+getXPForLevel(currentStats[8])+"\\nNext level: "+getXPForLevel(maxStats[8]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[8]+1) - getXPForLevel(currentStats[8]));
return;
} else {
class9.message = "Woodcutting: "+currentStats[8]+"/"+maxStats[8]+"\\nMax Level Reached";
return;
}
}
if(j == 222){
if(maxStats[20] < 99){
class9.message = "Runecrafting: "+currentStats[20]+"/"+maxStats[20]+"\\nCurrent XP: "+getXPForLevel(currentStats[20])+"\\nNext level: "+getXPForLevel(maxStats[20]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[20]+1) - getXPForLevel(currentStats[20]));
return;
} else {
class9.message = "Runecrafting: "+currentStats[20]+"/"+maxStats[20]+"\\nMax Level Reached";
return;
}
}
if(j == 223){
if(maxStats[18] < 99){
class9.message = "Slayer: "+currentStats[18]+"/"+maxStats[18]+"\\nCurrent XP: "+getXPForLevel(currentStats[18])+"\\nNext level: "+getXPForLevel(maxStats[18]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[18]+1) - getXPForLevel(currentStats[18]));
return;
} else {
class9.message = "Slayer: "+currentStats[18]+"/"+maxStats[18]+"\\nMax Level Reached";
return;
}
}
if(j == 224){
if(maxStats[19] < 99){
class9.message = "Farming: "+currentStats[19]+"/"+maxStats[19]+"\\nCurrent XP: "+getXPForLevel(currentStats[19])+"\\nNext level: "+getXPForLevel(maxStats[19]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[19]+1) - getXPForLevel(currentStats[19]));
return;
} else {
class9.message = "Farming: "+currentStats[19]+"/"+maxStats[19]+"\\nMax Level Reached";
return;
}
}
if(j == 225){
if(maxStats[21] < 99){
class9.message = "Construction: "+currentStats[21]+"/"+maxStats[21]+"\\nCurrent XP: "+getXPForLevel(currentStats[21])+"\\nNext level: "+getXPForLevel(maxStats[21]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[21]+1) - getXPForLevel(currentStats[21]));
return;
} else {
class9.message = "Construction: "+currentStats[21]+"/"+maxStats[21]+"\\nMax Level Reached";
return;
}
}
if(j == 226){
if(maxStats[22] < 99){
class9.message = "Hunter: "+currentStats[22]+"/"+maxStats[22]+"\\nCurrent XP: "+getXPForLevel(currentStats[22])+"\\nNext level: "+getXPForLevel(maxStats[22]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[22]+1) - getXPForLevel(currentStats[22]));
return;
} else {
class9.message = "Hunter: "+currentStats[22]+"/"+maxStats[22]+"\\nMax Level Reached";
return;
}
}
if(j == 227){
if(maxStats[23] < 99){
class9.message = "Summoning: "+currentStats[23]+"/"+maxStats[23]+"\\nCurrent XP: "+getXPForLevel(currentStats[23])+"\\nNext level: "+getXPForLevel(maxStats[23]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[23]+1) - getXPForLevel(currentStats[23]));
return;
} else {
class9.message = "Summoning: "+currentStats[23]+"/"+maxStats[23]+"\\nMax Level Reached";
return;
}
}
if(j == 228){
if(maxStats[24] < 99){
class9.message = "Dungeoneering: "+currentStats[24]+"/"+maxStats[24]+"\\nCurrent XP: "+getXPForLevel(currentStats[24])+"\\nNext level: "+getXPForLevel(maxStats[24]+1)+"\\nRemainder: "+(getXPForLevel(maxStats[24]+1) - getXPForLevel(currentStats[24]));
return;
} else {
class9.message = "Dungeoneering: "+currentStats[24]+"/"+maxStats[24]+"\\nMax Level Reached";
return;
}
}
Now that we are done with client.java onto RSInterface.java
Add the methods
public static void Hovers(TextDrawingArea[] TDA) {
RSInterface Interface = interfaceCache[3984];
Interface.textDrawingAreas = TDA[2];
Interface.message = "Total level %1";
addSkillHovers(8654, 204);
addSkillHovers(8655, 205);
addSkillHovers(8656, 206);
addSkillHovers(8657, 207);
addSkillHovers(8658, 208);
addSkillHovers(8659, 209);
addSkillHovers(8660, 210);
addSkillHovers(8661, 211);
addSkillHovers(8662, 212);
addSkillHovers(8663, 213);
addSkillHovers(8664, 214);
addSkillHovers(8665, 215);
addSkillHovers(8666, 216);
addSkillHovers(8667, 217);
addSkillHovers(8668, 218);
addSkillHovers(8669, 219);
addSkillHovers(8670, 220);
addSkillHovers(8671, 221);
addSkillHovers(8672, 222);
addSkillHovers(12162, 223);
addSkillHovers(13928, 224);
addSkillHovers(27153, 225);
addSkillHovers(27154, 226);
addSkillHovers(27155, 227);
addSkillHovers(27156, 228);
}
public static void addSkillHovers(int i, int CT) {
RSInterface hover = addTabInterface(i);
hover.type = 10;
hover.contentType = CT;
hover.message = null;
hover.height = 27;
hover.width = 60;
}
public static void addSprite(int id, String spriteName, String T, int H, int X, int Y) {
RSInterface tab = interfaceCache[id] = new RSInterface();
tab.id = id;
tab.parentID = id;
tab.type = 5;
tab.atActionType = 1;
tab.contentType = -1;
tab.aByte254 = (byte) 0;
tab.mOverInterToTrigger = 52;
tab.sprite1 = imageLoader(spriteName);
tab.sprite2 = imageLoader(spriteName);
tab.tooltip = T;
tab.mOverInterToTrigger = H;
tab.width = X;
tab.height = Y;
}
public static void addText(int i, String s, int k, boolean l, boolean m, int a, TextDrawingArea[] TDA, int j) {
RSInterface rsinterface = addTabInterface(i);
rsinterface.parentID = i;
rsinterface.id = i;
rsinterface.type = 4;
rsinterface.atActionType = 0;
rsinterface.width = 0;
rsinterface.height = 0;
rsinterface.contentType = 0;
rsinterface.aByte254 = 0;
rsinterface.mOverInterToTrigger = a;
rsinterface.centerText = l;
rsinterface.textShadow = m;
rsinterface.textDrawingAreas = TDA[j];
rsinterface.message = s;
rsinterface.aString228 = "";
rsinterface.textColor = k;
}
Add the Interface itself
public static void skillTab(TextDrawingArea[] TDA) {
RSInterface sT = addTabInterface(27101);
addSprite(27102, "Skill/Button", "Open Attack Guide", 8654, 60, 27);
addSprite(27103, "Skill/Button", "Open Hitpoints Guide", 8655, 60, 27);
addSprite(27104, "Skill/Button", "Open Mining Guide", 8656, 60, 27);
addSprite(27105, "Skill/Button", "Open Strength Guide", 8657, 60, 27);
addSprite(27106, "Skill/Button", "Open Agility Guide", 8658, 60, 27);
addSprite(27107, "Skill/Button", "Open Smithing Guide", 8659, 60, 27);
addSprite(27108, "Skill/Button", "Open Defence Guide", 8660, 60, 27);
addSprite(27109, "Skill/Button", "Open Herblore Guide", 8661, 60, 27);
addSprite(27110, "Skill/Button", "Open Fishing Guide", 8662, 60, 27);
addSprite(27111, "Skill/Button", "Open Ranging Guide", 8663, 60, 27);
addSprite(27112, "Skill/Button", "Open Thieving Guide", 8664, 60, 27);
addSprite(27113, "Skill/Button", "Open Cooking Guide", 8665, 60, 27);
addSprite(27114, "Skill/Button", "Open Prayer Guide", 8666, 60, 27);
addSprite(27115, "Skill/Button", "Open Crafting Guide", 8667, 60, 27);
addSprite(27116, "Skill/Button", "Open Firemaking Guide", 8668, 60, 27);
addSprite(27117, "Skill/Button", "Open Magic Guide", 8669, 60, 27);
addSprite(27118, "Skill/Button", "Open Fletching Guide", 8670, 60, 27);
addSprite(27119, "Skill/Button", "Open Woodcutting Guide", 8671, 60, 27);
addSprite(27120, "Skill/Button", "Open Runecrafting Guide", 8672, 60, 27);
addSprite(27121, "Skill/Button", "Open Slaying Guide", 12162, 60, 27);
addSprite(27122, "Skill/Button", "Open Farming Guide", 13928, 60, 27);
addSprite(27123, "Skill/Button", "Open Construction Guide", 27153, 60, 27);
addSprite(27124, "Skill/Button", "Open Hunter Guide", 27154, 60, 27);
addSprite(27125, "Skill/Button", "Open Summoning Guide", 27155, 60, 27);
addSprite(27126, "Skill/Button", "Open Dungeoneering Guide", 27156, 60, 27);
addText(27127, "Total Level: 2475", 0xFFFF00, false, false, 52, TDA, 2);
addSprite(27128, "Skill/Dungeon");
addSprite(27129, "Skill/Attack");
addSprite(27130, "Skill/Strength");
addSprite(27131, "Skill/Defence");
addSprite(27132, "Skill/Range");
addSprite(27133, "Skill/Prayer");
addSprite(27134, "Skill/Mage");
addSprite(27135, "Skill/Rune");
addSprite(27136, "Skill/Construction");
addSprite(27137, "Skill/HP");
addSprite(27138, "Skill/Agility");
addSprite(27139, "Skill/Herblore");
addSprite(27140, "Skill/Thief");
addSprite(27141, "Skill/Craft");
addSprite(27142, "Skill/Fletch");
addSprite(27143, "Skill/Slay");
addSprite(27144, "Skill/Hunter");
addSprite(27145, "Skill/Mine");
addSprite(27146, "Skill/Smith");
addSprite(27147, "Skill/Fish");
addSprite(27148, "Skill/Cook");
addSprite(27149, "Skill/Fire");
addSprite(27150, "Skill/Wood");
addSprite(27151, "Skill/Farm");
addSprite(27152, "Skill/Summon");
addText(27157, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27158, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27159, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27160, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27161, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27162, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27163, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27164, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27165, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27166, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27167, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27168, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27169, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27170, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27171, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27172, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27173, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27174, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27175, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27176, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27177, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27178, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27179, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27180, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27181, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27182, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27183, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27184, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27185, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27186, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27187, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27188, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27189, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27190, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27191, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27192, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27193, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27194, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27195, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27196, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27197, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27198, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27199, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27200, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27201, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27202, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27203, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27204, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27205, "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(27206, "99", 0xFFFF00, false, true, -1, TDA, 0);
sT.totalChildren(126);
/*Buttons*/
sT.child(0, 27102, 3, 5);
sT.child(1, 27103, 66, 5);
sT.child(2, 27104, 128, 5);
sT.child(3, 27105, 3, 33);
sT.child(4, 27106, 66, 33);
sT.child(5, 27107, 128, 33);
sT.child(6, 27108, 3, 61);
sT.child(7, 27109, 66, 61);
sT.child(8, 27110, 128, 61);
sT.child(9, 27111, 3, 89);
sT.child(10, 27112, 66, 89);
sT.child(11, 27113, 128, 89);
sT.child(12, 27114, 3, 117);
sT.child(13, 27115, 66, 117);
sT.child(14, 27116, 128, 117);
sT.child(15, 27117, 3, 145);
sT.child(16, 27118, 66, 145);
sT.child(17, 27119, 128, 145);
sT.child(18, 27120, 3, 173);
sT.child(19, 27121, 66, 173);
sT.child(20, 27122, 128, 173);
sT.child(21, 27123, 3, 201);
sT.child(22, 27124, 66, 201);
sT.child(23, 27125, 128, 201);
sT.child(24, 27126, 3, 229);
/*Total Level Text*/
sT.child(25, 27127, 70, 235);
/*Icons*/
sT.child(26, 27128, 5, 231);
sT.child(27, 27129, 4, 7);
sT.child(28, 27130, 9, 35);
sT.child(29, 27131, 9, 65);
sT.child(30, 27132, 6, 93);
sT.child(31, 27133, 5, 118);
sT.child(32, 27134, 5, 147);
sT.child(33, 27135, 5, 174);
sT.child(34, 27136, 5, 203);
sT.child(35, 27137, 69, 9);
sT.child(36, 27138, 67, 34);
sT.child(37, 27139, 67, 63);
sT.child(38, 27140, 68, 94);
sT.child(39, 27141, 70, 120);
sT.child(40, 27142, 69, 147);
sT.child(41, 27143, 68, 174);
sT.child(42, 27144, 68, 202);
sT.child(43, 27145, 130, 7);
sT.child(44, 27146, 132, 38);
sT.child(45, 27147, 132, 62);
sT.child(46, 27148, 132, 91);
sT.child(47, 27149, 131, 119);
sT.child(48, 27150, 132, 147);
sT.child(49, 27151, 131, 175);
sT.child(50, 27152, 133, 203);
/*##/## Text*/
sT.child(51, 27157, 32, 231);
sT.child(52, 27158, 45, 242);
sT.child(53, 27159, 32, 7);
sT.child(54, 27160, 45, 18);
sT.child(55, 27161, 32, 35);
sT.child(56, 27162, 45, 46);
sT.child(57, 27163, 32, 63);
sT.child(58, 27164, 45, 74);
sT.child(59, 27165, 32, 91);
sT.child(60, 27166, 45, 102);
sT.child(61, 27167, 32, 119);
sT.child(62, 27168, 45, 130);
sT.child(63, 27169, 32, 147);
sT.child(64, 27170, 45, 158);
sT.child(65, 27171, 32, 175);
sT.child(66, 27172, 45, 186);
sT.child(67, 27173, 32, 203);
sT.child(68, 27174, 45, 214);
sT.child(69, 27175, 95, 7);
sT.child(70, 27176, 108, 18);
sT.child(71, 27177, 95, 35);
sT.child(72, 27178, 108, 46);
sT.child(73, 27179, 95, 63);
sT.child(74, 27180, 108, 74);
sT.child(75, 27181, 95, 91);
sT.child(76, 27182, 108, 102);
sT.child(77, 27183, 95, 119);
sT.child(78, 27184, 108, 130);
sT.child(79, 27185, 95, 147);
sT.child(80, 27186, 108, 158);
sT.child(81, 27187, 95, 175);
sT.child(82, 27188, 108, 186);
sT.child(83, 27189, 95, 203);
sT.child(84, 27190, 108, 214);
sT.child(85, 27191, 158, 7);
sT.child(86, 27192, 171, 18);
sT.child(87, 27193, 158, 35);
sT.child(88, 27194, 171, 46);
sT.child(89, 27195, 158, 63);
sT.child(90, 27196, 171, 74);
sT.child(91, 27197, 158, 91);
sT.child(92, 27198, 171, 102);
sT.child(93, 27199, 158, 119);
sT.child(94, 27200, 171, 130);
sT.child(95, 27201, 158, 147);
sT.child(96, 27202, 171, 158);
sT.child(97, 27203, 158, 175);
sT.child(98, 27204, 171, 186);
sT.child(99, 27205, 158, 203);
sT.child(100, 27206, 171, 214);
/*Hovers*/
sT.child(101, 8654, 3, 5);
sT.child(102, 8655, 66, 5);
sT.child(103, 8656, 128, 5);
sT.child(104, 8657, 3, 33);
sT.child(105, 8658, 66, 33);
sT.child(106, 8659, 128, 33);
sT.child(107, 8660, 3, 61);
sT.child(108, 8661, 66, 61);
sT.child(109, 8662, 128, 61);
sT.child(110, 8663, 3, 89);
sT.child(111, 8664, 66, 89);
sT.child(112, 8665, 128, 89);
sT.child(113, 8666, 3, 117);
sT.child(114, 8667, 66, 117);
sT.child(115, 8668, 128, 117);
sT.child(116, 8669, 3, 145);
sT.child(117, 8670, 66, 145);
sT.child(118, 8671, 128, 145);
sT.child(119, 8672, 3, 173);
sT.child(120, 12162, 66, 173);
sT.child(121, 13928, 128, 173);
sT.child(122, 27153, 3, 201);
sT.child(123, 27154, 66, 201);
sT.child(124, 27155, 128, 201);
sT.child(125, 27156, 3, 229);
}
Sprites Link (Only the registered members can see the link.)
Only the registered members can see the link.
public static void skillTab602(TextDrawingArea[] TDA) {
RSInterface sT = addTabInterface(27101);
String[] SkillTooltip = { "Attack", "Hitpoints", "Mining", "Strength", "Agility", "Smithing", "Defence", "Herblore", "Fishing", "Ranging", "Thieving", "Cooking", "Prayer", "Crafting", "Firemaking", "Magic", "Fletching", "Woodcutting", "Runecrafting", "Slaying", "Farming", "Construction", "Hunter", "Summoning", "Dungeoneering"};
int[] ButtonIDs = { 27102, 27103, 27104, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27117, 27118, 27119, 27120, 27121, 27122, 27123, 27124, 27125, 27126};
int[] ButtonX = { 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3};
int[] ButtonY = { 5, 5, 5, 33, 33, 33, 61, 61, 61, 89, 89, 89, 117, 117, 117, 145, 145, 145, 173, 173, 173, 201, 201, 201, 229};
String[] Icons = { "Dungeon", "Attack", "Strength", "Defence", "Range", "Prayer", "Mage", "Rune", "Construction", "HP", "Agility", "Herblore", "Thief", "Craft", "Fletch", "Slay", "Hunter", "Mine", "Smith", "Fish", "Cook", "Fire", "Wood", "Farm", "Summon"};
int[] IconIDs = { 27128, 27129, 27130, 27131, 27132, 27133, 27134, 27135, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27146, 27147, 27148, 27149, 27150, 27151, 27152};
int[] minTextIDs = { 27157, 27159, 27161, 27163, 27165, 27167, 27169, 27171, 27173, 27175, 27177, 27179, 27181, 27183, 27185, 27187, 27189, 27191, 27193, 27195, 27197, 27199, 27201, 27203, 27205};
int[] maxTextIDs = { 27158, 27160, 27162, 27164, 27166, 27168, 27170, 27172, 27174, 27176, 27178, 27180, 27182, 27184, 27186, 27188, 27190, 27192, 27194, 27196, 27198, 27200, 27202, 27204, 27206};
int[] setIDs = { 27102, 27103, 27104, 27105, 27106, 27107, 27108, 27109, 27110, 27111, 27112, 27113, 27114, 27115, 27116, 27117, 27118, 27119, 27120, 27121, 27122, 27123, 27124, 27125, 27126, 27128, 27129, 27130, 27131, 27132, 27133, 27134, 27135, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27146, 27147, 27148, 27149, 27150, 27151, 27152, 27157, 27159, 27161, 27163, 27165, 27167, 27169, 27171, 27173, 27175, 27177, 27179, 27181, 27183, 27185, 27187, 27189, 27191, 27193, 27195, 27197, 27199, 27201, 27203, 27205, 27158, 27160, 27162, 27164, 27166, 27168, 27170, 27172, 27174, 27176, 27178, 27180, 27182, 27184, 27186, 27188, 27190, 27192, 27194, 27196, 27198, 27200, 27202, 27204, 27206 };
int[] setX = { 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 66, 128, 3, 5, 4, 9, 9, 6, 5, 5, 5, 5, 69, 67, 67, 68, 70, 69, 68, 68, 130, 132, 132, 132, 131, 132, 131, 133, 32, 32, 32, 32, 32, 32, 32, 32, 32, 95, 95, 95, 95, 95, 95, 95, 95, 158, 158, 158, 158, 158, 158, 158, 158, 45, 45, 45, 45, 45, 45, 45, 45, 45, 108, 108, 108, 108, 108, 108, 108, 108, 171, 171, 171, 171, 171, 171, 171, 171};
int[] setY = { 5, 5, 5, 33, 33, 33, 61, 61, 61, 89, 89, 89, 117, 117, 117, 145, 145, 145, 173, 173, 173, 201, 201, 201, 229, 231, 7, 35, 65, 93, 118, 147, 174, 203, 9, 34, 63, 94, 120, 147, 174, 202, 7, 38, 62, 91, 119, 147, 175, 203, 231, 7, 35, 63, 91, 119, 147, 175, 203, 7, 35, 63, 91, 119, 147, 175, 203, 7, 35, 63, 91, 119, 147, 175, 203, 242, 18, 46, 74, 102, 130, 158, 186, 214, 18, 46, 74, 102, 130, 158, 186, 214, 18, 46, 74, 102, 130, 158, 186, 214};
sT.totalChildren(ButtonIDs.length + IconIDs.length + minTextIDs.length + maxTextIDs.length);
for(int index = 0; index < ButtonIDs.length; index++) {
addSprite(ButtonIDs[index], "Skill/Button", "Open @or1@" +SkillTooltip[index]+ " Guide", -1, 60, 27);
addSprite(IconIDs[index], "Skill/"+Icons[index]);
addText(minTextIDs[index], "99", 0xFFFF00, false, true, -1, TDA, 0);
addText(maxTextIDs[index], "99", 0xFFFF00, false, true, -1, TDA, 0);
}
for(int index = 0; index < ButtonIDs.length + IconIDs.length + minTextIDs.length + maxTextIDs.length; index++) {
sT.child(index, setIDs[index], setX[index], setY[index]);
}
}
Enjoy and tell me if i missed any methods :awesome:
Credits
K4rn4ge(Everything Else)
Stewie(Hover stuff)