- Joined
- Apr 30, 2007
- Messages
- 40
- Reaction score
- 0
If you notice anything outta place just let me know and I'll add it, Looks like its all there though, so if any problems, just give me a shout, took me a while to put together.
Credits: +80 BamBam, +10 Fox2007, +10 OtherGuy
Purpose: To better suit your server for Silabsoft client?, Pretty much were gonna use Fox2007 tutorial, but improve it and make it so it doesn't interfere with your welcome screens plus add a little bit more to it on receiving the capes, and then making NPC Shops work only for Sib Client.
Difficulty: 1?
Assumed Knowledge: Reading. A lot of reading.
Server Base: Cheeze, Others?
Classes Modified: Client.java, Shop.CFG, AutoSpawn.CFG
////////CLIENT.JAVA\\\\\\\\\
1. Lets start off by adding theses booleans which are included in FOX2007 post, underneath your public class client extends Player implements Runnable
2. Now search for this newWalkCmdSteps = packetSize - 5;, you should see something like this.
Above that else { add this.
So, it should look like this
3. Add theses above you public boolean process.
4. Add this right below your case 9157
now add theses below case 9158
5. now here comes a nice chunk of code, add this below your case 185: //clicking most buttons
6. Add theses with your other More Info Tokens
Now add theses with your Public loadmoreinfo() void
7. Add this with your other voids.
Now add this with your commands
8. Now for the shops. Search for case 155: //first Click npc and add theses below boolean PutNPCCoords = false; also make sure you change the shops id's if you are using those.
Now search for case 17: //second Click npc and add theses below boolean PutNPCCoords = false;
\\\\\\\\\END OF CLIENT.JAVA/////////
////////BEGIN AUTOSPAWN.CFG\\\\\\\\\
9. Add these into your AUTOSPAWN.CFG, the xxxx are your CoordX and CoordY
\\\\\\\\\END OF AUTOSPAWN.CFG////////
////////BEGIN SHOP.CFG\\\\\\\\\
And heres Fox2007's Shops
\\\\\\\\\END OF SHOP.CFG/////////
Recap: You just made it so when someone on your server reaches the maxed out level 0f 99, they can click on the stat they are maxed out on and get a cape and hood, after they use it, they wont be able to use it again, and if there not on silab client it will tell them they need to be on silab client to access this feature, including with the shops, this also makes it so when they first login and click to move, it will pop up saying what client there using and make them select it, allow you to still have your welcome page pop up on login, if your users happen to lose their cape, i just threw this in as a add on, they can type ::resetcapes and it will reset their skillcapes, but they can also only use this command onces, so skill capes wont get out of hand and make people actually earn them. So pretty full proof system. Took me a while to write and Not sure if i added it all, but looks correct. Enjoy.
Short Recap: You made it so skill capes are obtained by max exp and are got from the stat menu, by clicking on the stat which is maxed, they can only get capes once. they can type ::resetcapes to restore their cape limit to get another set, this also only works once. You also made it so some shops are off limits on mparscape.
Pictures:
Guess thats it :s
Credits: +80 BamBam, +10 Fox2007, +10 OtherGuy
Purpose: To better suit your server for Silabsoft client?, Pretty much were gonna use Fox2007 tutorial, but improve it and make it so it doesn't interfere with your welcome screens plus add a little bit more to it on receiving the capes, and then making NPC Shops work only for Sib Client.
Difficulty: 1?
Assumed Knowledge: Reading. A lot of reading.
Server Base: Cheeze, Others?
Classes Modified: Client.java, Shop.CFG, AutoSpawn.CFG
////////CLIENT.JAVA\\\\\\\\\
1. Lets start off by adding theses booleans which are included in FOX2007 post, underneath your public class client extends Player implements Runnable
Code:
public boolean silabsoft = false;
public boolean loginchoose = false;
Code:
else {
newWalkCmdSteps = packetSize - 5;
if(newWalkCmdSteps % 2 != 0)
println_debug("Warning: walkTo("+packetType+") command malformed: "+misc.Hex(inStream.buffer, 0, packetSize));
newWalkCmdSteps /= 2;
Code:
else if(clientsib == 0) {
clientsib = 1;
loginchoose = true;
selectoption("Choose What Client You'll Be Using", "Silabsoft Client", "Moparscape Client", "...");
}
Code:
else if(clientsib == 0) {
clientsib = 1;
loginchoose = true;
selectoption("Choose What Client You'll Be Using", "Silabsoft Client", "Moparscape Client", ".");
}
else {
newWalkCmdSteps = packetSize - 5;
if(newWalkCmdSteps % 2 != 0)
println_debug("Warning: walkTo("+packetType+") command malformed: "+misc.Hex(inStream.buffer, 0, packetSize));
newWalkCmdSteps /= 2;
Code:
public int capeatta = 0;
public int capestre = 0;
public int capedefe = 0;
public int capehitp = 0;
public int caperang = 0;
public int capemage = 0;
public int capepray = 0;
public int capefish = 0;
public int capecook = 0;
public int capeslay = 0;
public int clientsib = 0;
Code:
if (loginchoose) {
silabsoft = true;
sendMessage("You are now configured for Silabsoft Client.");
RemoveAllWindows();
loginchoose = false;
}
Code:
if (loginchoose) {
silabsoft = false;
sendMessage("You are now configured for Moparscape Client.");
RemoveAllWindows();
loginchoose = false;
}
Code:
//////skill capes rewards//////
case 33206: //attack cape
if((playerXP[0]) >= 14391160 && capeatta <= 0 && silabsoft == true) {
capeatta = 1;
addItem(10704, 1);
addItem(10706, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a attack skill cape and hood.");
} else if ((playerXP[0]) <= 98) {
sendMessage("You need to max out attack before getting this skill cape.");
} else if (capeatta >= 1) {
sendMessage("you already got your attack skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33209: // strength cape
if((playerXP[2]) >= 14391160 && capestre <= 0 && silabsoft == true) {
capestre = 1;
addItem(10707, 1);
addItem(10709, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a strength skill cape and hood.");
} else if ((playerXP[2]) <= 14391160) {
sendMessage("You need to max out strength before getting this skill cape.");
} else if (capestre >= 1) {
sendMessage("you already got your strength skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33212: //defense cape
if((playerXP[1]) >= 14391160 && capedefe <= 0 && silabsoft == true) {
capedefe = 1;
addItem(10710, 1);
addItem(10712, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a defense skill cape and hood.");
} else if ((playerXP[1]) <= 14391160) {
sendMessage("You need to max out defense before getting this skill cape.");
} else if (capedefe >= 1) {
sendMessage("you already got your defense skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33215: //range cape
if((playerXP[4]) >= 14391160 && caperang <= 0 && silabsoft == true) {
caperang = 1;
addItem(10713, 1);
addItem(10715, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a range skill cape and hood.");
} else if ((playerXP[4]) <= 14391160) {
sendMessage("You need to max out range before getting this skill cape.");
} else if (caperang >= 1) {
sendMessage("you already got your range skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33218: //prayer cape
if((playerXP[5]) >= 14391160 && capepray <= 0 && silabsoft == true) {
capepray = 1;
addItem(10716, 1);
addItem(10718, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a prayer skill cape and hood.");
} else if ((playerXP[5]) <= 14391160) {
sendMessage("You need to max out prayer before getting this skill cape.");
} else if (capepray >= 1) {
sendMessage("you already got your prayer skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33221: //magic cape
if((playerXP[6]) >= 14391160 && capemage <= 0 && silabsoft == true) {
capemage = 1;
addItem(10719, 1);
addItem(10721, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a magic skill cape and hood.");
} else if ((playerXP[6]) <= 14391160) {
sendMessage("You need to max out magic before getting this skill cape.");
} else if (capemage >= 1) {
sendMessage("you already got your magic skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33207: //hitpoint cape
if((playerXP[3]) >= 14391160 && capehitp <= 0 && silabsoft == true) {
capehitp = 1;
addItem(10725, 1);
addItem(10727, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a hitpoints skill cape and hood.");
} else if ((playerXP[3]) <= 14391160) {
sendMessage("You need to max out hitpoints before getting this skill cape.");
} else if (capehitp >= 1) {
sendMessage("you already got your hitpoints skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33214: //fishing cape
if((playerXP[10]) >= 14391160 && capefish <= 0 && silabsoft == true) {
capefish = 1;
addItem(10755, 1);
addItem(10757, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a fishing skill cape and hood.");
} else if ((playerXP[10]) <= 14391160) {
sendMessage("You need to max out fishing before getting this skill cape.");
} else if (capefish >= 1) {
sendMessage("you already got your fishing skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 33217: //cooking cape
if((playerXP[7]) >= 14391160 && capecook <= 0 && silabsoft == true) {
capecook = 1;
addItem(10758, 1);
addItem(10760, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a cooking skill cape and hood.");
} else if ((playerXP[7]) <= 14391160) {
sendMessage("You need to max out cooking before getting this skill cape.");
} else if (capecook >= 1) {
sendMessage("you already got your cooking skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
case 47130: //slayer cape
if((playerXP[18]) >= 14391160 && capeslay <= 0 && silabsoft == true) {
capeslay = 1;
addItem(10743, 1);
addItem(10745, 1);
updateRequired = true;
appearanceUpdateRequired = true;
sendMessage("You get a slayer skill cape and hood.");
} else if ((playerXP[18]) <= 14391160) {
sendMessage("You need to max out slayer before getting this skill cape.");
} else if (capeslay >= 1) {
sendMessage("you already got your slayer skill cape and hood.");
} else if (silabsoft == false) {
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
break;
//////////Skill cape rewards end////////////
Code:
characterfile.write("[SKILLCAPES]", 0, 12);
characterfile.newLine();
characterfile.write("character-capeatta = ", 0, 21);
characterfile.write(Integer.toString(capeatta), 0, Integer.toString(capeatta).length());
characterfile.newLine();
characterfile.write("character-capestre = ", 0, 21);
characterfile.write(Integer.toString(capestre), 0, Integer.toString(capestre).length());
characterfile.newLine();
characterfile.write("character-capedefe = ", 0, 21);
characterfile.write(Integer.toString(capedefe), 0, Integer.toString(capedefe).length());
characterfile.newLine();
characterfile.write("character-capehitp = ", 0, 21);
characterfile.write(Integer.toString(capehitp), 0, Integer.toString(capehitp).length());
characterfile.newLine();
characterfile.write("character-caperang = ", 0, 21);
characterfile.write(Integer.toString(caperang), 0, Integer.toString(caperang).length());
characterfile.newLine();
characterfile.write("character-capemage = ", 0, 21);
characterfile.write(Integer.toString(capemage), 0, Integer.toString(capemage).length());
characterfile.newLine();
characterfile.write("character-capepray = ", 0, 21);
characterfile.write(Integer.toString(capepray), 0, Integer.toString(capepray).length());
characterfile.newLine();
characterfile.write("character-capefish = ", 0, 21);
characterfile.write(Integer.toString(capefish), 0, Integer.toString(capefish).length());
characterfile.newLine();
characterfile.write("character-capecook = ", 0, 21);
characterfile.write(Integer.toString(capecook), 0, Integer.toString(capecook).length());
characterfile.newLine();
characterfile.write("character-capeslay = ", 0, 21);
characterfile.write(Integer.toString(capeslay), 0, Integer.toString(capeslay).length());
characterfile.newLine();
characterfile.write("character-resetcap = ", 0, 21);
characterfile.write(Integer.toString(resetcap), 0, Integer.toString(resetcap).length());
characterfile.newLine();
characterfile.newLine();
Code:
} else if (token.equals("character-capeatta")) {
capeatta = Integer.parseInt(token2);
} else if (token.equals("character-capestre")) {
capestre = Integer.parseInt(token2);
} else if (token.equals("character-capedefe")) {
capedefe = Integer.parseInt(token2);
} else if (token.equals("character-capehitp")) {
capehitp = Integer.parseInt(token2);
} else if (token.equals("character-capemage")) {
capemage = Integer.parseInt(token2);
} else if (token.equals("character-caperang")) {
caperang = Integer.parseInt(token2);
} else if (token.equals("character-capepray")) {
capepray = Integer.parseInt(token2);
} else if (token.equals("character-capefish")) {
capefish = Integer.parseInt(token2);
} else if (token.equals("character-capecook")) {
capecook = Integer.parseInt(token2);
} else if (token.equals("character-capeslay")) {
capeslay = Integer.parseInt(token2);
} else if (token.equals("character-resetcap")) {
resetcap = Integer.parseInt(token2);
Code:
public void resetcapes() { //could have done this better, but wasn't thinking stairt. - BamBam
if((capeatta >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capeatta = 0;
resetcap = 1;
}
if((capestre >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capestre = 0;
resetcap = 1;
}
if((capedefe >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capedefe = 0;
resetcap = 1;
}
if((capepray >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capepray = 0;
resetcap = 1;
}
if((capemage >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capemage = 0;
resetcap = 1;
}
if((capehitp >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capehitp = 0;
resetcap = 1;
}
if((capeslay >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capeslay = 0;
resetcap = 1;
}
if((capefish >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capefish = 0;
resetcap = 1;
}
if((capecook >= 1)){
sendMessage("You reset the cape limit for your character, you may now get another cape.");
capecook = 0;
resetcap = 1;
}
}
Code:
else if (command.startsWith("restorecapes") && resetcap <= 0)
{
resetcapes();
}
Code:
} else if (NPCID == 755 && silabsoft == true) { //Morgan - He looks scared.
sendMessage("You trade with Morgan.");
PutNPCCoords = true;
WanneShop = 17;
} else if (NPCID == 223 && silabsoft == true) { //Brother Kojo - A peaceful monk.
sendMessage("You trade with Brother Kojo.");
PutNPCCoords = true;
WanneShop = 18;
} else if (NPCID == 668 && silabsoft == true) { //Johnathon - A well dressed nobleman.
sendMessage("You trade with Johnathon.");
PutNPCCoords = true;
WanneShop = 19;
} else if (NPCID == 338 && silabsoft == true) { //Chancy - He's ready for a bet.
sendMessage("You trade with Chancy.");
PutNPCCoords = true;
WanneShop = 20;
} else if (NPCID == 518 && silabsoft == true) { //Captain Shanks - He's the Captain of the 'Lady of the Waves'.
sendMessage("You trade with Captain Shanks.");
PutNPCCoords = true;
WanneShop = 22;
} else if (NPCID == 755 && silabsoft == false) { //Morgan - He looks scared.
sendMessage("You need to be on Silabsoft Client to use this feature.");
} else if (NPCID == 223 && silabsoft == false) { //Brother Kojo - A peaceful monk.
sendMessage("You need to be on Silabsoft Client to use this feature.");
} else if (NPCID == 668 && silabsoft == false) { //Johnathon - A well dressed nobleman.
sendMessage("You need to be on Silabsoft Client to use this feature.");
} else if (NPCID == 338 && silabsoft == false) { //Chancy - He's ready for a bet.
sendMessage("You need to be on Silabsoft Client to use this feature.");
} else if (NPCID == 518 && silabsoft == false) { //Captain Shanks - He's the Captain of the 'Lady of the Waves'.
sendMessage("You need to be on Silabsoft Client to use this feature.");
Code:
} else if (NPCID == 515 && silabsoft == true) { //Yanni Salika - Yanni Salika - He buys and sells antiques.
sendMessage("You trade with Vanni Salika.");
PutNPCCoords = true;
WanneShop = 21;
} else if (NPCID == 586 && silabsoft == true) { //Gaius - Ironically, makes a living from swords.
sendMessage("You trade with Gaius.");
PutNPCCoords = true;
WanneShop = 23;
} else if (NPCID == 649 && silabsoft == true) { //Archer - She looks quite experienced.
sendMessage("You trade with Archer.");
PutNPCCoords = true;
WanneShop = 24;
} else if (NPCID == 515 && silabsoft == false) { //Yanni Salika - Yanni Salika - He buys and sells antiques.
sendMessage("You need to be on Silabsoft Client to use this feature.");
} else if (NPCID == 586 && silabsoft == false) { //Gaius - Ironically, makes a living from swords.
sendMessage("You need to be on Silabsoft Client to use this feature.");
} else if (NPCID == 649 && silabsoft == false) { //Archer - She looks quite experienced.
sendMessage("You need to be on Silabsoft Client to use this feature.");
}
////////BEGIN AUTOSPAWN.CFG\\\\\\\\\
9. Add these into your AUTOSPAWN.CFG, the xxxx are your CoordX and CoordY
Code:
//Silabsoft Shops//
spawn = 755 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Morgan - He looks scared.
spawn = 223 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Brother Kojo - A peaceful monk.
spawn = 668 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Johnathon - A well dressed nobleman.
spawn = 338 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Chancy - He's ready for a bet.
spawn = 515 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Yanni Salika - Yanni Salika - He buys and sells antiques.
spawn = 518 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Captain Shanks - He's the Captain of the 'Lady of the Waves'.
spawn = 586 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Gaius - Ironically, makes a living from swords.
spawn = 649 xxxx xxxx 0 xxxx xxxx xxxx xxxx 1 Archer - She looks quite experienced.
////////BEGIN SHOP.CFG\\\\\\\\\
And heres Fox2007's Shops
Code:
shop = 17 @red@Fox's Silabsoft Shop 1 2 2 10705 10000 10706 10000 10707 10000 10708 10000 10709 10000 10710 10000 10711 10000 10712 10000 10713 10000 10714 10000 10715 10000 10716 10000 10717 10000 10718 10000 10719 10000 10720 10000 10721 10000 10722 10000 10723 10000 10724 10000 10725 10000 10726 10000 10728 10000 10729 10000 10730 10000 10731 10000 10732 10000 10733 10000 10734 10000 10735 10000 10736 10000 10737 10000 10738 10000 10739 10000 10740 10000 10741 10000 10742 10000 10743 10000 10744 10000 10745 10000
shop = 18 @red@Fox's Silabsoft Shop 2 2 2 10746 10000 10747 10000 10748 10000 10749 10000 10750 10000 10751 10000 10752 10000 10753 10000 10754 10000 10755 10000 10756 10000 10757 10000 10758 10000 10759 10000 10760 10000 10761 10000 10762 10000 10763 10000 10764 10000 10765 10000 10766 10000 10767 10000 10768 10000 10769 10000 10770 10000 10771 10000
shop = 19 @red@Fox's Silabsoft Shop 3 2 2 11153 10000 11154 10000 11155 10000 11156 10000 11157 10000 11158 10000 11159 10000 11160 10000 11161 10000 11162 10000 11163 10000 11164 10000 11824 10000 11981 10000 11980 10000 11962 10000 11963 10000 11964 10000 11965 10000 11973 10000 11490 10000 11152 10000 11151 10000 11150 10000 11134 10000 11135 10000 11136 10000 11137 10000 11138 10000 11139 10000 11140 10000 11141 10000 11142 10000 11143 10000 11145 10000
shop = 20 @red@Fox's Silabsoft Shop 4 2 2 11189 10000 11190 10000 11191 10000 11192 10000 11193 10000 11194 10000 11195 10000 11196 10000 11197 10000 11198 10000 11199 10000 11200 10000 11201 10000 11202 10000 11203 10000 11204 10000 11205 10000 10926 10000 10927 10000 10928 10000 10929 10000 10930 10000 10931 10000 10931 10000 10932 10000 10933 10000 10934 10000 10935 10000 10936 10000 10937 10000 10938 10000 10939 10000 10940 10000 10941 10000 10942 10000 10947 10000
shop = 21 @red@Fox's Silabsoft Shop 5 2 2 11774 10000 11775 10000 11776 10000 11777 10000 11778 10000 11779 10000 11780 10000 11781 10000 11782 10000 11783 10000 11784 10000 11785 10000 11786 10000 11153 10000 11154 10000 11155 10000 11156 10000 11157 10000 11158 10000 11159 10000 11160 10000 11161 10000 11162 10000 11163 10000 11164 10000 11134 10000 11135 10000 11136 10000 11137 10000 11268 10000 11265 10000
shop = 22 @red@Fox's Silabsoft Shop 6 2 2 10222 10000 10223 10000 10224 10000 10225 10000 10226 10000 10227 10000 10228 10000 10229 10000 10230 10000 10231 10000 10232 10000 10234 10000 10296 10000 10297 10000 10298 10000 10299 10000 10300 10000 10301 10000 10302 10000 10310 10000 10311 10000 10312 10000 10313 10000 10314 10000 10315 10000 10327 10000 10328 10000 10329 10000 10330 10000
shop = 23 @red@Fox's Silabsoft Shop 7 2 2 10379 10000 10380 10000 10381 10000 10382 10000 10383 10000 10384 10000 10385 10000 10407 10000 10408 10000 10409 10000 10410 10000 10411 10000 10412 10000 10413 10000 10425 10000 10426 10000 10427 10000 10428 10000 10429 10000 10430 10000 10431 10000 10432 10000 10932 10000 10933 10000 10934 10000 10935 10000 10936 10000 10937 10000 10938 10000 10939 10000 10940 10000 10941 10000 10942 10000 11107 10000 11108 10000 11109 10000
shop = 24 @red@Fox's Silabsoft Shop 8 2 2 11169 10000 11171 10000 11172 10000 11173 10000 11174 10000 11175 10000 11176 10000 11177 10000 11178 10000 11179 10000 11180 10000 11181 10000 11182 10000 11183 10000 11184 10000 11185 10000 11186 10000 11187 10000 11188 10000 11273 10000 11274 10000 11275 10000 11276 10000 11281 10000 11298 10000 11814 10000
Recap: You just made it so when someone on your server reaches the maxed out level 0f 99, they can click on the stat they are maxed out on and get a cape and hood, after they use it, they wont be able to use it again, and if there not on silab client it will tell them they need to be on silab client to access this feature, including with the shops, this also makes it so when they first login and click to move, it will pop up saying what client there using and make them select it, allow you to still have your welcome page pop up on login, if your users happen to lose their cape, i just threw this in as a add on, they can type ::resetcapes and it will reset their skillcapes, but they can also only use this command onces, so skill capes wont get out of hand and make people actually earn them. So pretty full proof system. Took me a while to write and Not sure if i added it all, but looks correct. Enjoy.
Short Recap: You made it so skill capes are obtained by max exp and are got from the stat menu, by clicking on the stat which is maxed, they can only get capes once. they can type ::resetcapes to restore their cape limit to get another set, this also only works once. You also made it so some shops are off limits on mparscape.
Pictures:
![BamBamBam - [Tut] My Version. Adding Silabsoft Client Features. - RaGEZONE Forums BamBamBam - [Tut] My Version. Adding Silabsoft Client Features. - RaGEZONE Forums](https://forum.ragezone.com/images/404_image.png)
![BamBamBam - [Tut] My Version. Adding Silabsoft Client Features. - RaGEZONE Forums BamBamBam - [Tut] My Version. Adding Silabsoft Client Features. - RaGEZONE Forums](https://forum.ragezone.com/images/404_image.png)
![BamBamBam - [Tut] My Version. Adding Silabsoft Client Features. - RaGEZONE Forums BamBamBam - [Tut] My Version. Adding Silabsoft Client Features. - RaGEZONE Forums](https://forum.ragezone.com/images/404_image.png)
Guess thats it :s
Last edited: