
Originally Posted by
AQWMexi
Can someone show me how to put that into this build? I'd love to see that back again :c
Download Realm Relay from the releases section.
Make a script called lootnotif.js using notepad and put the stuff inside the code tags inside that file. (Edit it with Notepad)
Put said file in the scripts folder. You're good to go.
Code:
// lootnotif.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_NOTIFICATION = $.findPacketId("NOTIFICATION");
var player_id = -1;
var playerLocation = null;
var lootbags = {};
var lootbaglocs = {};
var send_notif = true;
var tier = 11; // Minimum tier of items to be notifi'ied
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
0xadd, // Minor Health Potion
0xab0, // Minor Magic Potion
0xa22, // Health Potion
0xa23 // Magic Potion
];
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_MOVE: {
var time = packet.time;
playerLocation = packet.newPosition;
if(send_notif){
for(var bag in lootbags){
if(lootbaglocs[bag].distanceSquaredTo(playerLocation) <= 200){
var params = {}
toNotif = "";
for(var idx in lootbags[bag]){
if(lootbags[bag][idx] != -1){
var item = $.findItem(lootbags[bag][idx]);
toNotif += "\\n" + item.id
}
}
if(toNotif == ""){
continue;
}
this.displayNotification(event,bag,0x00ffff,toNotif);
}
}
send_notif = false;
$.scheduleEvent(2, "refresh_notif");
}
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;
}
}
}
}
}
}
// 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;
}
}
}
}
}
}
break;
}
}
}
function displayNotification(event, playerObjectId, color, text) {
var notificationPacket = event.createPacket(ID_NOTIFICATION);
notificationPacket.objectId = playerObjectId;
notificationPacket.message = "{\"key\":\"blank\",\"tokens\":{\"data\":\"" + text + "\"}}";
notificationPacke*****lor = color;
event.sendToClient(notificationPacket);
}
function refresh_notif(event) {
send_notif = true;
}