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.
Realm Relay autoloot
Just wondering, since you can make an unauthorized backpack where your items basically are hidden from the server wouldnt 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!
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.
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?
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.
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?
This thread is closed for replies.
Similar Threads
Realm of the Mad God Hacks & CheatsRealm Relay v1.0.0 - Proxy for RotMG 17.2DE 126 Realm of the Mad God Help & RequestsPLEASE NEED HELP WITH REALM RElAY
18 Realm of the Mad God Hacks & CheatsRealm Relay Command Script!
7 Realm of the Mad God Tutorials & Source CodeRealm Relay /wcNI 5 Realm of the Mad God Tutorials & Source CodeRealm Relay /conNI 5
