PDA

View Full Version : Skill interface quick chat



hellman2741
February 14th, 2011, 22:45
First ever tutorial. I know this is VERY easy. But, I'm quite proud that I actually managed to code this, because I'm quite new. So, no flaming please.

What this will do: When you click on a skill in your skills interface, it will basically do the quickchat of that skill instead of pop up a skill guide.
Classes modified: actionbuttonpackethandler.java
Difficulty: 1/10

First, open actionbuttonpackethandler.java and search for

case 320:

Replace this
case 320:
/*
* Skills tab.
*/
boolean lvlup = false;
int skillMenu = -1;
switch(buttonId) {
case 125: //Attack
skillMenu = 1;
if(player.getTemporaryAttribute("leveledUp[0]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 1);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 10);
}
break;
case 126: //Strength
skillMenu = 2;
if(player.getTemporaryAttribute("leveledUp[2]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 2);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 20);
}
break;
case 127: //Defence
skillMenu = 5;
if(player.getTemporaryAttribute("leveledUp[1]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 5);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 40);
}
break;
case 128: //Ranged
skillMenu = 3;
if(player.getTemporaryAttribute("leveledUp[4]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 3);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 30);
}
break;
case 129: //Prayer
if(player.getTemporaryAttribute("leveledUp[5]") != Boolean.TRUE) {
skillMenu = 7;
player.getActionSender().sendConfig(965, 7);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 60);
}
break;
case 130: //Magic
if(player.getTemporaryAttribute("leveledUp[6]") != Boolean.TRUE) {
skillMenu = 4;
player.getActionSender().sendConfig(965, 4);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 33);
}
break;
case 131: //Runecrafting
if(player.getTemporaryAttribute("leveledUp[20]") != Boolean.TRUE) {
skillMenu = 12;
player.getActionSender().sendConfig(965, 12);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 100);
}
break;
case 132: //Construction
skillMenu = 22;
if(player.getTemporaryAttribute("leveledUp[22]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 22);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 698);
}
break;
case 133: //Hitpoints
skillMenu = 6;
if(player.getTemporaryAttribute("leveledUp[3]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 6);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 50);
}
break;
case 134: //Agility
skillMenu = 8;
if(player.getTemporaryAttribute("leveledUp[16]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 8);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 65);
}
break;
case 135: //Herblore
skillMenu = 9;
if(player.getTemporaryAttribute("leveledUp[15]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 9);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 75);
}
break;
case 136: //Thieving
skillMenu = 10;
if(player.getTemporaryAttribute("leveledUp[17]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 10);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 80);
}
break;
case 137: //Crafting
skillMenu = 11;
if(player.getTemporaryAttribute("leveledUp[12]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 11);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 90);
}
break;
case 138: //Fletching
skillMenu = 19;
if(player.getTemporaryAttribute("leveledUp[9]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 19);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 665);
}
break;
case 139: //Slayer
skillMenu = 20;
if(player.getTemporaryAttribute("leveledUp[18]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 20);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 673);
}
break;
case 140: //Hunter
skillMenu = 23;
if(player.getTemporaryAttribute("leveledUp[21]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 23);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 689);
}
break;
case 141: //Mining
skillMenu = 13;
if(player.getTemporaryAttribute("leveledUp[14]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 13);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 110);
}
break;
case 142: //Smithing
skillMenu = 14;
if(player.getTemporaryAttribute("leveledUp[13]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 14);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 115);
}
break;
case 143: //Fishing
skillMenu = 15;
if(player.getTemporaryAttribute("leveledUp[10]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 15);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 120);
}
break;
case 144: //Cooking
skillMenu = 16;
if(player.getTemporaryAttribute("leveledUp[7]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 16);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 641);
}
break;
case 145: //Firemaking
skillMenu = 17;
if(player.getTemporaryAttribute("leveledUp[11]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 17);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 649);
}
break;
case 146: //Woodcutting
skillMenu = 18;
if(player.getTemporaryAttribute("leveledUp[8]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 18);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 660);
}
break;
case 147: //Farming
skillMenu = 21;
if(player.getTemporaryAttribute("leveledUp[19]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 21);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 681);
}
break;
case 148: //Summoning
skillMenu = 24;
if(player.getTemporaryAttribute("leveledUp[23]") != Boolean.TRUE) {
player.getActionSender().sendConfig(965, 24);
} else {
lvlup = true;
player.getActionSender().sendConfig(1230, 705);
}
break;
}
if(lvlup) {
player.getActionSender().sendInterface(741, false);
} else {
player.getActionSender().sendInterface(499, false);
}
for(int i = 0; i < 25; i++) {
player.removeTemporaryAttribute("leveledUp["+i+"]");
}
if(skillMenu != -1) {
player.setTemporaryAttribute("skillMenu", skillMenu);
}
break;
case 499:
/*
* Skill information.
*/
skillMenu = -1;
if(player.getTemporaryAttribute("skillMenu") != null) {
skillMenu = (Integer) player.getTemporaryAttribute("skillMenu");
}
switch(buttonId) {
case 10:
player.getActionSender().sendConfig(965, skillMenu);
break;
case 11:
player.getActionSender().sendConfig(965, 1024 + skillMenu);
break;
case 12:
player.getActionSender().sendConfig(965, 2048 + skillMenu);
break;
case 13:
player.getActionSender().sendConfig(965, 3072 + skillMenu);
break;
case 14:
player.getActionSender().sendConfig(965, 4096 + skillMenu);
break;
case 15:
player.getActionSender().sendConfig(965, 5120 + skillMenu);
break;
case 16:
player.getActionSender().sendConfig(965, 6144 + skillMenu);
break;
case 17:
player.getActionSender().sendConfig(965, 7168 + skillMenu);
break;
case 18:
player.getActionSender().sendConfig(965, 8192 + skillMenu);
break;
case 19:
player.getActionSender().sendConfig(965, 9216 + skillMenu);
break;
case 20:
player.getActionSender().sendConfig(965, 10240 + skillMenu);
break;
case 21:
player.getActionSender().sendConfig(965, 11264 + skillMenu);
break;
case 22:
player.getActionSender().sendConfig(965, 12288 + skillMenu);
break;
case 23:
player.getActionSender().sendConfig(965, 13312 + skillMenu);
break;
}

With mine:

case 320:
/*
* Skills tab.
*/
boolean lvlup = false;
switch(buttonId) {
case 125: //Attack
player.forceChat("<img=3>My Attack level is "+player.getSkills().getLevelForXp(0)+".");
break;
case 126: //Strength
player.forceChat("<img=3>My Strength level is "+player.getSkills().getLevelForXp(2)+".");
break;
case 127: //Defence
player.forceChat("<img=3>My Defence level is "+player.getSkills().getLevelForXp(1)+".");
break;
case 128: //Ranged
player.forceChat("<img=3>My Ranged level is "+player.getSkills().getLevelForXp(4)+".");
break;
case 129: //Prayer
player.forceChat("<img=3>My Prayer level is "+player.getSkills().getLevelForXp(5)+".");
break;
case 130: //Magic
player.forceChat("<img=3>My Magic level is "+player.getSkills().getLevelForXp(6)+".");
break;
case 131: //Runecrafting
player.forceChat("<img=3>My Runecrafting level is "+player.getSkills().getLevelForXp(20)+".");
break;
case 132: //Construction
player.forceChat("<img=3>My Construction level is "+player.getSkills().getLevelForXp(22)+".");
break;
case 133: //Hitpoints
player.forceChat("<img=3>My Hitpoints level is "+player.getSkills().getLevelForXp(3)+".");
break;
case 134: //Agility
player.forceChat("<img=3>My Agility level is "+player.getSkills().getLevelForXp(16)+".");
break;
case 135: //Herblore
player.forceChat("<img=3>My Herblore level is "+player.getSkills().getLevelForXp(15)+".");
break;
case 136: //Thieving
player.forceChat("<img=3>My Thieving level is "+player.getSkills().getLevelForXp(17)+".");
break;
case 137: //Crafting
player.forceChat("<img=3>My Crafting level is "+player.getSkills().getLevelForXp(12)+".");
break;
case 138: //Fletching
player.forceChat("<img=3>My Fletching level is "+player.getSkills().getLevelForXp(9)+".");
break;
case 139: //Slayer
player.forceChat("<img=3>My Slayer level is "+player.getSkills().getLevelForXp(18)+".");
break;
case 140: //Hunter
player.forceChat("<img=3>My Hunter level is "+player.getSkills().getLevelForXp(21)+".");
break;
case 141: //Mining
player.forceChat("<img=3>My Mining level is "+player.getSkills().getLevelForXp(14)+".");
break;
case 142: //Smithing
player.forceChat("<img=3>My Smithing level is "+player.getSkills().getLevelForXp(13)+".");
break;
case 143: //Fishing
player.forceChat("<img=3>My Fishing level is "+player.getSkills().getLevelForXp(10)+".");
break;
case 144: //Cooking
player.forceChat("<img=3>My Cooking level is "+player.getSkills().getLevelForXp(7)+".");
break;
case 145: //Firemaking
player.forceChat("<img=3>My Firemaking level is "+player.getSkills().getLevelForXp(11)+".");
break;
case 146: //Woodcutting
player.forceChat("<img=3>My Woodcutting level is "+player.getSkills().getLevelForXp(8)+".");
break;
case 147: //Farming
player.forceChat("<img=3>My Farming level is "+player.getSkills().getLevelForXp(19)+".");
break;
case 148: //Summoning
player.forceChat("<img=3>My Summoning level is "+player.getSkills().getLevelForXp(23)+".");
break;
}

Now compile and run :D

Explanation:
The first code is telling the server to open up the skill guide when you click and, if you had leveled up, to open the "Congratulations!" interface.

My code: is instead telling it to force your player to say the code which will say your skill level.
You can change these to say basically anything though.

This can also be changed to teleport the person to the skill area.
To do that, find the skill you want them to teleport when they click.
Let's use.... Farming for this example

case 147: //Farming
player.forceChat("<img=3>My Farming level is "+player.getSkills().getLevelForXp(19)+".");
break;
Instead of putting
player.forceChat("<img=3>My Farming level is "+player.getSkills().getLevelForXp(19)+".");
You would put:
player.getTele().telePlayer(player, XCOORD, YCOORD, 0, 0);
You can figure out the wilderness level stuff for the teleport one, I don't feel like typing it ;)

Have fun, please post any errors you get.

vanweele
February 15th, 2011, 00:42
This is how 317's do it it's like a ghetto quick chat.

tedhead2
February 15th, 2011, 02:07
i happen to like stuff like this a lot, i hate opening up QC.

battlezone
February 16th, 2011, 02:17
i would say good job but you leeched this from emily so you fail bad kid..

David
February 16th, 2011, 16:23
Quickchat has already been released by Emily.

hellman2741
February 16th, 2011, 18:57
Quickchat has already been released by Emily.
Which is what made me release my version of quickchat...
I personally, and probably others, hate going all the way through quickchat...
So, a while back (For the person that's saying I just ripped this off from Emily) I decided to make this on my other server...
Then, when I saw Emily's tutorial, I remembered it, and switched it over to my current server, and made a tutorial...
This also shows how to teleport using skill interface :D

David
February 16th, 2011, 19:07
Which is what made me release my version of quickchat...
I personally, and probably others, hate going all the way through quickchat...
So, a while back (For the person that's saying I just ripped this off from Emily) I decided to make this on my other server...
Then, when I saw Emily's tutorial, I remembered it, and switched it over to my current server, and made a tutorial...
This also shows how to teleport using skill interface :D

Which ruins your server...

hellman2741
February 16th, 2011, 19:56
How...? Because people can't look at the skill guide?
How many people actually look at that anyways...?

David
February 16th, 2011, 20:08
How...? Because people can't look at the skill guide?
How many people actually look at that anyways...?

You'll be shocked how many people look at that.

hellman2741
February 17th, 2011, 02:18
You'll be shocked how many people look at that.

I look at it on Real rs. But, I barely ever look at it on RSPS', nor do I know other people that do.
Very well though, perhaps I'll make it for the quest interface later or something... But, I'm sure not everyone wants to modify they're caches so that they see "Quick chat" in their quest interfaces.... lol

I'll find something else though. Or, I can make it so that it'll open the skill interface AND say the quick chat. But, I can't do that until after I get my computer back at the end of the weekend so... Yea.

I'll think about it though.

David
February 17th, 2011, 06:39
I look at it on Real rs. But, I barely ever look at it on RSPS', nor do I know other people that do.
Very well though, perhaps I'll make it for the quest interface later or something... But, I'm sure not everyone wants to modify they're caches so that they see "Quick chat" in their quest interfaces.... lol

I'll find something else though. Or, I can make it so that it'll open the skill interface AND say the quick chat. But, I can't do that until after I get my computer back at the end of the weekend so... Yea.

I'll think about it though.

You do realize you can't edit the quest interface, don't you?

hellman2741
February 18th, 2011, 23:18
It is technically possible.

David
February 19th, 2011, 08:43
It is technically possible.

Yes it is, but try to learn that to new ppl.

Acrylix
February 19th, 2011, 12:12
You do realize you can't edit the quest interface, don't you?

sendstring

0r4nge ownz
February 19th, 2011, 12:26
Yes it is, but try to learn that to new ppl.

Lol, editing the quest tab is something beginner's should know..

All your doing is replacing a string.

David
February 19th, 2011, 12:27
sendstring

Or editing the cache

Acrylix
February 19th, 2011, 12:40
Barely anyone can edit the 562 cache.

0r4nge ownz
February 19th, 2011, 13:30
Barely anyone can edit the 562 cache.

Exactly, and its far more easyier to do from the source..

David
February 19th, 2011, 13:34
I never said editing the cache was easier, but it is better.

Acrylix
February 19th, 2011, 23:12
Not really sendstring from the client would be the best.

David
February 20th, 2011, 09:28
Not really sendstring from the client would be the best.

No, the more codes you have in there, the more chance you get lagg. When you edit the cache do do not have any chance on that.

Acrylix
February 20th, 2011, 09:37
On a good dedi server you don't really need to worry about lag.

David
February 20th, 2011, 09:41
On a good dedi server you don't really need to worry about lag.

I know, but do you think everyone has a good dedi server?

Chief Smart
February 25th, 2011, 20:26
Niiiice I really like this! ;o

aaronalluyn
October 13th, 2011, 19:21
omg!!!! thxthxthx this post is perfect for me its exactly what i needed !!! :p love ya !

titandino
October 13th, 2011, 22:04
No, the more codes you have in there, the more chance you get lagg. When you edit the cache do do not have any chance on that.

Come on really? The "lag" excuse? You would have to fuck up supppperrrr bad to create any kind of lag on a good framework.. Plus, like Acrylix said above, if you don't have a dinosaur for a computer, the extra .01 ms of lag that sending a string causes will not be an issue.