Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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(text.contains("/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 + "\"}}";
- notificationPacket.color = color;
- event.sendToClient(notificationPacket);
- }
- function log(title,id,data){
- $.echo(title);
- $.echo(id);
- $.echo(data);
- } \\created by 059 & Nilly & Oblivien & Hai
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement