Advertisement
Guest User

Untitled

a guest
Aug 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.23 KB | None | 0 0
  1. var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
  2. var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
  3. var ID_PLAYER_TEXT = $.findPacketId("PLAYERTEXT");
  4. var ID_UPDATE = $.findPacketId("UPDATE");
  5. var ID_TELEPORT = $.findPacketId("TELEPORT");
  6. var ID_NEW_TICK = $.findPacketId("NEW_TICK");
  7. var ID_MOVE = $.findPacketId("MOVE");
  8.  
  9. var player_id = -1;
  10. var follow_id = -1;
  11. var follow_pos = -1;
  12. var following = false;
  13. var playerLocs = {};
  14. var players = {};
  15. var playerLoc = null;
  16. var myLoc = null;
  17. var who = null;
  18.  
  19. function onClientPacket(event) {
  20.    var packet = event.getPacket();
  21.    switch (packet.id()) {
  22.       case ID_PLAYER_TEXT: {
  23.          var text = packet.text.toLowerCase();
  24.          if(text.contains("/follow ")){
  25.             event.cancel();
  26.             who = text.substring('/follow '.length)
  27.             $.echo("follow " + who);
  28.             if(who == "off"){
  29.                 following = false;
  30.                this.displayNotification(event, player_id, 0xFF0000, "follow " + who);
  31.             }
  32.             else{
  33.                 following = true;
  34.                this.displayNotification(event, player_id, 0x00FF00, "follow " + who);
  35.                findplayers(event,who);
  36.             }
  37.          }
  38.          break;
  39.       }
  40.       case ID_MOVE: {
  41.          break;
  42.       }
  43.    }
  44. }
  45. function findplayers(event,who){
  46.    if(following){
  47.       for(var player in players){
  48.          var name = players[player].toLowerCase();
  49.          if (who == name){
  50.             follow_id = player;
  51.             autotp(event,follow_id);
  52.             break;
  53.          }
  54.       }
  55.    }
  56. }
  57. function autotp(event,playerObjectId){
  58.    if(following){
  59.       var tp_packet = event.createPacket(ID_TELEPORT);
  60.       tp_packet.objectId = playerObjectId;
  61.       event.sendToServer(tp_packet);
  62.       event.scheduleEvent(10, "findplayers",who);
  63.    }
  64. }
  65. function onServerPacket(event) {
  66.    var packet = event.getPacket();
  67.    switch (packet.id()) {
  68.       case ID_CREATE_SUCCESS: {
  69.          player_id = packet.objectId;
  70.          break;
  71.       }
  72.       case ID_UPDATE: {
  73.          // New objects
  74.          for (var i = 0; i < packet.newObjs.length; i++) {
  75.             var objectData = packet.newObjs[i];
  76.             var type = objectData.objectType;
  77.                if(objectData.status.objectId == follow_id){
  78.                   playerLoc = objectData.status.pos;
  79.                   log("playerLoc",follow_id ,playerLoc);
  80.                }
  81.                if(objectData.status.objectId == player_id){
  82.                   myLoc = objectData.status.pos;
  83.                   log("myLoc",player_id ,myLoc);
  84.                }
  85.             if(type == 768 || type == 775 || type == 782 || type == 784 || (type >= 797 && type <= 806)){ // player classes
  86.                playerLocs[objectData.status.objectId] = objectData.status.pos;
  87.                for (var j = 0; j < objectData.status.data.length; j++) {
  88.                   var statData = objectData.status.data[j];                  
  89.                   if(statData != null && statData.obf0 == 31){
  90.                      players[objectData.status.objectId] = statData.obf2;
  91.                      break;
  92.                   }
  93.                }  
  94.             }            
  95.          }
  96.          // Removed objects
  97.          for (var i = 0; i < packet.drops.length; i++) {
  98.             var droppedObjectId = packet.drops[i];
  99.             if(playerLocs[droppedObjectId] != null){
  100.                delete playerLocs[droppedObjectId];      
  101.             }
  102.             else if(droppedObjectId == follow_id){
  103.                follow_id = -1;
  104.                playerLoc = null;
  105.             }
  106.             else if(droppedObjectId == player_id){
  107.                player_id = -1;
  108.                myLoc = null;
  109.             }
  110.          }
  111.          break;
  112.       }
  113.    }
  114. }      
  115. function displayNotification(event, playerObjectId, color, text) {
  116.    var notificationPacket = event.createPacket(ID_NOTIFICATION);
  117.    notificationPacket.objectId = playerObjectId;
  118.    notificationPacket.message = "{\"key\":\"blank\",\"tokens\":{\"data\":\"" + text + "\"}}";
  119.    notificationPacket.color = color;
  120.    event.sendToClient(notificationPacket);
  121. }
  122. function log(title,id,data){
  123.    $.echo(title);
  124.    $.echo(id);
  125.    $.echo(data);  
  126. }  \\created by 059 & Nilly & Oblivien & Hai
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement