
Console.WriteLine("trying to select slots");
ChangeTradePacket pkt = (ChangeTradePacket)Packet.Create(PacketType.CHANGETRADE);
pkt.Offers = new bool[8];
pkt.Offers[0] = true;
pkt.Offers[1] = true;
pkt.Offers[2] = true;
pkt.Offers[3] = false;
pkt.Offers[4] = false;
pkt.Offers[5] = false;
pkt.Offers[6] = false;
pkt.Offers[7] = false;
Console.WriteLine("Sending select packet");
client.SendToServer(pkt);
Console.WriteLine("done");
pkt.Offers = new bool[12]; pkt.Offers[0] = false; pkt.Offers[1] = false; pkt.Offers[2] = false; pkt.Offers[3] = false; pkt.Offers[4] = true; pkt.Offers[5] = true; pkt.Offers[6] = true; pkt.Offers[7] = false; pkt.Offers[8] = false; pkt.Offers[9] = false; pkt.Offers[10] = false; pkt.Offers[11] = false;
var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_PLAYER_TEXT = $.findPacketId("PLAYERTEXT");
var ID_UPDATE = $.findPacketId("UPDATE");
var ID_TELEPORT = $.findPacketId("TELEPORT");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_MOVE = $.findPacketId("MOVE");
var player_id = -1;
var follow_id = -1;
var follow_pos = -1;
var following = false;
var playerLocs = {};
var players = {};
var playerLoc = null;
var myLoc = null;
var who = null;
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_PLAYER_TEXT: {
var text = packet.text.toLowerCase();
if(tex*****ntains("/follow ")){
event.cancel();
who = text.substring('/follow '.length)
$.echo("follow " + who);
if(who == "off"){
following = false;
this.displayNotification(event, player_id, 0xFF0000, "follow " + who);
}
else{
following = true;
this.displayNotification(event, player_id, 0x00FF00, "follow " + who);
findplayers(event,who);
}
}
break;
}
case ID_MOVE: {
break;
}
}
}
function findplayers(event,who){
if(following){
for(var player in players){
var name = players[player].toLowerCase();
if (who == name){
follow_id = player;
autotp(event,follow_id);
break;
}
}
}
}
function autotp(event,playerObjectId){
if(following){
var tp_packet = event.createPacket(ID_TELEPORT);
tp_packet.objectId = playerObjectId;
event.sendToServer(tp_packet);
event.scheduleEvent(10, "findplayers",who);
}
}
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];
var type = objectData.objectType;
if(objectData.status.objectId == follow_id){
playerLoc = objectData.status.pos;
log("playerLoc",follow_id ,playerLoc);
}
if(objectData.status.objectId == player_id){
myLoc = objectData.status.pos;
log("myLoc",player_id ,myLoc);
}
if(type == 768 || type == 775 || type == 782 || type == 784 || (type >= 797 && type <= 806)){ // player classes
playerLocs[objectData.status.objectId] = objectData.status.pos;
for (var j = 0; j < objectData.status.data.length; j++) {
var statData = objectData.status.data[j];
if(statData != null && statData.obf0 == 31){
players[objectData.status.objectId] = statData.obf2;
break;
}
}
}
}
// Removed objects
for (var i = 0; i < packet.drops.length; i++) {
var droppedObjectId = packet.drops[i];
if(playerLocs[droppedObjectId] != null){
delete playerLocs[droppedObjectId];
}
else if(droppedObjectId == follow_id){
follow_id = -1;
playerLoc = null;
}
else if(droppedObjectId == player_id){
player_id = -1;
myLoc = null;
}
}
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 log(title,id,data){
$.echo(title);
$.echo(id);
$.echo(data);
}
got to be cheeky m8.