Realm Relay autoloot

Posts 16–30 of 73 · Page 2 of 5
Quote Originally Posted by dg123 View Post
well if i have more then 3 scripts i cant connect to usw .... even if i disable your auto aim with the text chat
Ah yes that is an issue. I gave up trying to connect to usw through the proxy. You might still manage it by having the enable/disable variable apply to the update and new tick packets as well. This would break the scripts until the next time you use a portal but it might reduce latency enough to actually connect to usw. The enable variable will have to be global as well.
Quote Originally Posted by Nisuxen View Post
Ah yes that is an issue. I gave up trying to connect to usw through the proxy. You might still manage it by having the enable/disable variable apply to the update and new tick packets as well. This would break the scripts until the next time you use a portal but it might reduce latency enough to actually connect to usw. The enable variable will have to be global as well.
I looked into this issue. It is a problem with the realm relay code. I will tell DeVoidCoder about the possible fix for it.

If you know how to compile java code, message me and I'll give details on what to change.
Just wondering, since you can make an unauthorized backpack where your items basically are hidden from the server wouldnt item hacking be really easy?
Quote Originally Posted by DANWARPER View Post
Just wondering, since you can make an unauthorized backpack where your items basically are hidden from the server wouldn't item hacking be really easy?
The items aren't hidden. All characters have the backpack inventory spaces, they just become visible and mostly usable when the client thinks the server sent a 1 instead of a 0 in a certain spot. All it means is that the server doesn't check whether a character should have items in the backpack inventory slots when they don't own a backpack.
Ok so you couldnt just like send the id of the item as a command in the chat box and have it sent to your backpack
thanks for clearing that up!
I love this script. Thanks. Has anyone had issues with the backpack feature since the update to 17.4? Thanks again for sharing this.
Quote Originally Posted by asimm View Post
I love this script. Thanks. Has anyone had issues with the backpack feature since the update to 17.4? Thanks again for sharing this.
I have. If you double click an item you can use that is in your backpack, it will disappear. Just lost a gsorc this way.

Also if you drop things from your backpack, they don't appear on the ground and are also gone forever.
Quote Originally Posted by 059 View Post
I have. If you double click an item you can use that is in your backpack, it will disappear. Just lost a gsorc this way.

Also if you drop things from your backpack, they don't appear on the ground and are also gone forever.
Also, i've notice when autolooting the items; slots from 2-8 dissapears, i can use only slot 1, even if i move items manually, so i'm not using this script anymore. I could take off the backpack from script, but i'm too lazzy to this xD
Quote Originally Posted by 059 View Post
I have. If you double click an item you can use that is in your backpack, it will disappear. Just lost a gsorc this way.

Also if you drop things from your backpack, they don't appear on the ground and are also gone forever.
You have to move the item from the backback into your vault and then into your REAL 1-8 slots
How do I slow down the process of the auto looter looting the items i specify?

I tried making it auto loot health and mana potions....the pots you can only have 6 of and it tries to pick them up SUPER FAST and makes me dc from the server.

Any ideas on how to slow that down?

Health Potion Id = 0xa22
Mana Potion Id = 0xa23

Also would you know how to make my left mouse clicks double click when only clicking once with an autohotkey script?
So the backpack is even more buggy now so here's the script with it removed. The backpack is still usable but there seems to be a decent risk of losing items. It's ridiculously easy to set back up if you want it, just set obf1 to 1 when obf0 is 79. Look in original code for how.

 
autoloot.js
Code:
// autoloot.js

var ID_MOVE = $.findPacketId("MOVE");
var ID_UPDATE = $.findPacketId("UPDATE");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_INV_SWAP = $.findPacketId("INVSWAP");

var player_id = -1;
var playerLocation = null;
var lootbags = {};
var lootbaglocs = {};
var playerInventory = [-1,-1,-1,-1,-1,-1,-1,-1];

var tier = 11; // Minimum tier of items to be autolooted

var desirables = [
					0xa20, // Def Pot
					0xa1f, // Att Pot
					0xa21, // Spd Pot
					0xa34, // Vit Pot
					0xa35, // Wis Pot
					0xa4c, // Dex Pot
					0xae9, // Life Pot
					0xaea  // Mana Pot
				];

function onClientPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_MOVE: {
			var time = packet.time;
			playerLocation = packet.newPosition;

			for(var bag in lootbags){
				if(lootbaglocs[bag].distanceSquaredTo(playerLocation) <= 2){
					for(var idx in lootbags[bag]){
						if(lootbags[bag][idx] != -1){
							for(var i = 0; i < playerInventory.length; i++){
								if(playerInventory[i] == -1){
									var swapPacket = event.createPacket(ID_INV_SWAP);
									swapPacket.time = time;
									swapPacket.position = playerLocation;
									swapPacket.slotObject1 = event.createSlotObject();
									swapPacket.slotObject1.objectId = bag;
									swapPacket.slotObject1.slotId = idx;
									swapPacket.slotObject1.objectType = lootbags[bag][idx];
									swapPacket.slotObject2 = event.createSlotObject();
									swapPacket.slotObject2.objectId = player_id;
									swapPacket.slotObject2.slotId = i + 4;
									swapPacket.slotObject2.objectType = -1;
									event.sendToServer(swapPacket);
									playerInventory[i] = lootbags[bag][idx];
									break;
								}
							}
						}
					}
				}
			}
			break;
		}
	}
}

function onServerPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_CREATE_SUCCESS: {
			player_id = packet.objectId;
			break;
		}
		case ID_UPDATE: {
			// New objects
			for (var i = 0; i < packet.newObjs.length; i++) {
				var objectData = packet.newObjs[i];
				if(objectData == null)
					break;

				var type = objectData.objectType;

				if(type == 1280 || type == 1283 || (type >= 1286 && type <= 1296)){
					// new loot bag
					var bagId = objectData.status.objectId;
					lootbags[bagId] = [-1,-1,-1,-1,-1,-1,-1,-1];
					lootbaglocs[bagId] = objectData.status.pos;

					for (var j = 0; j < objectData.status.data.length; j++){
						var statData = objectData.status.data[j];
						if(statData.obf0 >= 8 && statData.obf0 <= 15){
							if(statData.obf1 != -1){
								var item = $.findItem(statData.obf1);

								if(item.tier >= tier || item.bagType == 4 || desirables.indexOf(statData.obf1) != -1){
									lootbags[bagId][statData.obf0 - 8] = statData.obf1;
								}
							}

						}
					}
				}

				if(objectData.status.objectId == player_id){
					for (var j = 0; j < objectData.status.data.length; j++){
						var statData = objectData.status.data[j];

						if(statData.obf0 >= 12 && statData.obf0 <= 19){
							playerInventory[statData.obf0-12] = statData.obf1;
						}
					}
				}
			}

			// Removed objects
			for (var i = 0; i < packet.drops.length; i++) {
				var droppedObjectId = packet.drops[i];

				if(lootbags[droppedObjectId] != null){
					delete lootbags[droppedObjectId];
					delete lootbaglocs[droppedObjectId];		
				}
			}

			break;
		}
		case ID_NEW_TICK: {
			for (var i = 0; i < packet.statuses.length; i++) {
				var status = packet.statuses[i];

				if(lootbags[status.objectId] != null){
					for (var j = 0; j < status.data.length; j++){
						var statData = status.data[j];
						if(statData.obf0 >= 8 && statData.obf0 <= 15){
							if(statData.obf1 == -1){
								lootbags[status.objectId][statData.obf0 - 8] = statData.obf1;
							}else{
								var item = $.findItem(statData.obf1);

								if(item.tier >= tier || item.bagType == 4 || desirables.indexOf(statData.obf1) != -1){
									lootbags[status.objectId][statData.obf0 - 8] = statData.obf1;
								}
							}

						}
					}
				}

				if(status.objectId == player_id){
					for (var j = 0; j < status.data.length; j++){
						var statData = status.data[j];

						if(statData.obf0 >= 12 && statData.obf0 <= 19){
							playerInventory[statData.obf0-12] = statData.obf1;
						}
					}
				}
			}
			break;
		}
	}
}
Lol, I didn't see the updated code so I just used the old one (with the broken bag) and lost an ass..
GG.
this doesnt even seem to work for me,
Hello, I recently tried adding the Id's for HP and MP Pots along with the other desirables in the script. In testing the script, the HP pots aren't autolooted, and oddly enough, when I try to add them manually, they instantly pop back into the bag O.o. Lol does anyone have any tips?
Quote Originally Posted by JavaNewb View Post
Hello, I recently tried adding the Id's for HP and MP Pots along with the other desirables in the script. In testing the script, the HP pots aren't autolooted, and oddly enough, when I try to add them manually, they instantly pop back into the bag O.o. Lol does anyone have any tips?
That's because HP and MP pots have their own special slot that they go to. You can force them into going into your inventory by swapping them with an item. It's poorly designed if you ask me.

I think the slots are 12 and 13.
Posts 16–30 of 73 · Page 2 of 5
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?