Code:
// wc.js
var ID_CREATE_SUCCESS = 47;
var ID_NOTIFICATION = 91;
var ID_PLAYER_TEXT = 80;
var ID_UPDATE = 66;
var helloPacket = null;
var player_id = null;
var inc_holders = {};
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_PLAYER_TEXT: {
var text = packet.text;
if(text == "/wc"){
event.cancel();
var toPrint = "Inc Holders:\\n";
for (var id in inc_holders){
if (!inc_holders.hasOwnProperty(id))
continue;
toPrint += inc_holders[id] + "\\n"
}
this.displayRealmRelayNotification(event, player_id, 0xFF7700, toPrint);
}
break;
}
}
}
function onServerPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_CREATE_SUCCESS: {
player_id = packet.objectId;
inc_holders = {};
break;
}
case ID_UPDATE: {
if(packet.newObjs == null)
break;
var boss = this;
// New objects
for (var i = 0; i < packet.newObjs.length; i++) {
var objectData = packet.newObjs[i];
if(objectData != null){// && objectData.status.objectId != player_id){
var inc = false;
for (var j = 0; j < objectData.status.data.length; j++) {
var statData = objectData.status.data[j];
if(statData != null && ((statData.obf0 >= 8 && statData.obf0 <= 19) || (statData.obf0 >= 71 && statData.obf0 <= 78))){
if(statData.obf1 == 1826) { //1826 - Value for incantation
inc = true;
}
}
if(inc && statData.obf0 == 31){
inc_holders[objectData.status.objectId] = statData.obf2;
boss.displayRealmRelayNotification(event, player_id, 0xFF7700, statData.obf2 + " has an inc!");
}
}
}
}
// Removed objects
for (var i = 0; i < packet.drops.length; i++) {
var droppedObjectId = packet.drops[i];
if(inc_holders[droppedObjectId] != null){
boss.displayRealmRelayNotification(event, player_id, 0xFF7700, inc_holders[droppedObjectId] + " has left.");
delete inc_holders[droppedObjectId];
}
}
break;
}
}
}
function displayRealmRelayNotification(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);
}