|
|||||||||||||||
|
|
#1 (permalink) |
|
Registered Member
![]() Join Date: Jan 2007
Posts: 382
Thanks: 1
Thanked 0 Times in 0 Posts
Rep Power: 57 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[TUT] FULL bank rearrange (refilling, swapping, inserting)
Purpose: Fill your empty bank spots with the currently available items, Add fully working insert and swap option. Difficulty: 2-10 Assumed Knowledge: Very basic Java Server Base: All servers from winterlove? Required integers: bankItems[x], bankItemsN[x], playerBankSize Required voids: openUpBank(), moveItems() Classes Modified: client Procedure Some of you may think that all sources already have full swapping, like I did... It works for some of your bankslots, but not all. This also fixes that bug. Step 1: If you haven't done my first tutorial for empty spot refilling: http://www.rune-server.org/showthrea...498#post441498 Step 2: Open your client.java Declare this under public class client extends Player implements Runnable: Code:
public String bankRearrange = "swap"; Search for: Code:
public void moveItems Code:
if (moveWindow == 34453 && from >= 0 && to >= 0 && from < playerBankSize && to < playerBankSize) {
int tempI;
int tempN;
tempI = bankItems[from];
tempN = bankItemsN[from];
bankItems[from] = bankItems[to];
bankItemsN[from] = bankItemsN[to];
bankItems[to] = tempI;
bankItemsN[to] = tempN;
}
if (moveWindow == 34453) {
resetBank();
}
Code:
if (moveWindow == 34453) {
if (bankRearrange == "insert") {
from -= 65280;
if (to < 0) { int temp = 128 - (to*-1);
to = 128 + temp; }
}
if (bankRearrange == "swap") {
from = from;
if (to < 0) { int temp = 128 - (to*-1);
to = 128 + temp; }
}
if (from >= 0 && to >= 0 && from < playerBankSize && to < playerBankSize) {
if (bankRearrange != "insert") {
int tempI = bankItems[from];
int tempN = bankItemsN[from];
bankItems[from] = bankItems[to];
bankItemsN[from] = bankItemsN[to];
bankItems[to] = tempI;
bankItemsN[to] = tempN;
}
if (bankRearrange == "insert") {
int tempItemFrom = bankItems[from];
int tempNFrom = bankItemsN[from];
int tempItemTo = bankItems[to];
int tempNTo = bankItemsN[to];
boolean gotSlot = false;
int totalItems = 0;
int highestSlot = 0;
for (int i = 0; i < playerBankSize; i++) {
if (bankItems[i] != 0) {
totalItems ++;
if (highestSlot <= i) highestSlot = i;
} }
bankItems[from] = 0;
bankItemsN[from] = 0;
if (from > to) {
for (int i = from; i <= from && i >= to; i--) {
if (i != to) {
bankItems[i] = bankItems[i - 1];
bankItemsN[i] = bankItemsN[i - 1];
}
if (i == to) {
bankItems[i] = tempItemFrom;
bankItemsN[i] = tempNFrom;
}
}
}
if (from < to) {
for (int i = from; i >= from && i <= to; i++) {
if (i != to) {
bankItems[i] = bankItems[i + 1];
bankItemsN[i] = bankItemsN[i + 1];
}
if (i == to) {
bankItems[i] = tempItemFrom;
bankItemsN[i] = tempNFrom;
}
}
}
int totalItemsAfter = 0;
for (int i = 0; i < playerBankSize; i++) {
if (bankItems[i] != 0) { totalItemsAfter ++; } }
if (totalItems != totalItemsAfter) outStream.createFrame(109); //disconnects when duping. Just to be sure
} resetBank();
}
}
Search for: Code:
switch(actionButtonId) Code:
/*banking [D]ruidje */ case 31195: //insert bankRearrange = "insert"; break; case 31194: //swap bankRearrange = "swap"; break; Search for: Code:
public void initialize() Code:
//banking setconfig(304, 0); //sets to swap setconfig(115, 0); //sets to item declare this: (NOT mine) Code:
public void setconfig(int settingID, int value) {
cframe(36);
outStream.writeWordBigEndian(settingID);
outStream.writeByte(value);
}
FOLLOW THIS IF YOU DON'T HAVE A moveItems void: declare this void: Code:
public void moveItems(int from, int to, int moveWindow) {
if (moveWindow == 34453) {
if (bankRearrange == "insert") {
from -= 65280;
if (to < 0) { int temp = 128 - (to*-1);
to = 128 + temp; }
}
if (bankRearrange == "swap") {
from = from;
if (to < 0) { int temp = 128 - (to*-1);
to = 128 + temp; }
}
if (from >= 0 && to >= 0 && from < playerBankSize && to < playerBankSize) {
if (bankRearrange != "insert") {
int tempI = bankItems[from];
int tempN = bankItemsN[from];
bankItems[from] = bankItems[to];
bankItemsN[from] = bankItemsN[to];
bankItems[to] = tempI;
bankItemsN[to] = tempN;
}
if (bankRearrange == "insert") {
int tempItemFrom = bankItems[from];
int tempNFrom = bankItemsN[from];
int tempItemTo = bankItems[to];
int tempNTo = bankItemsN[to];
boolean gotSlot = false;
int totalItems = 0;
int highestSlot = 0;
for (int i = 0; i < playerBankSize; i++) {
if (bankItems[i] != 0) {
totalItems ++;
if (highestSlot <= i) highestSlot = i;
} }
bankItems[from] = 0;
bankItemsN[from] = 0;
if (from > to) {
for (int i = from; i <= from && i >= to; i--) {
if (i != to) {
bankItems[i] = bankItems[i - 1];
bankItemsN[i] = bankItemsN[i - 1];
}
if (i == to) {
bankItems[i] = tempItemFrom;
bankItemsN[i] = tempNFrom;
}
}
}
if (from < to) {
for (int i = from; i >= from && i <= to; i++) {
if (i != to) {
bankItems[i] = bankItems[i + 1];
bankItemsN[i] = bankItemsN[i + 1];
}
if (i == to) {
bankItems[i] = tempItemFrom;
bankItemsN[i] = tempNFrom;
}
}
}
int totalItemsAfter = 0;
for (int i = 0; i < playerBankSize; i++) {
if (bankItems[i] != 0) { totalItemsAfter ++; } }
if (totalItems != totalItemsAfter) outStream.createFrame(109); //disconnects when duping. Just to be sure
} resetBank();
}
}
}
Code:
case 214: // change item places Code:
somejunk = inStream.readUnsignedWordA(); //junk int itemFrom = inStream.readUnsignedWordA();// slot1 int itemTo = (inStream.readUnsignedWordA() - 128);// slot2 Code:
moveItems(itemFrom, itemTo, somejunk); ![]() Post any errors. Credits: 99% by me (don't know who made the setconfig method )
|
|
|
|
|
#9 (permalink) |
|
Registered Member
![]() Join Date: Jan 2007
Posts: 382
Thanks: 1
Thanked 0 Times in 0 Posts
Rep Power: 57 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
I'm glad it works... But I didn't add that line without a reason lol :P
That line is meant for the safety of anti-duping. I have been testing this for like umm.. 10 mins for a dupe glitch, but found nothing. On your server however there is a dupe glitch, thats why it disconnects :P |
|
|
![]() |
|
| Tags |
| bank, banking, insert, option, swap |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
|
|