// tp.js
var ID_PLAYER_TEXT = $.findPacketId("PLAYERTEXT");
var ID_UPDATE = $.findPacketId("UPDATE");
var ID_TELEPORT = $.findPacketId("TELEPORT");
var players = {};
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_PLAYER_TEXT: {
var text = packet.text.toLowerCase();
if(text.length() >= 3 && text.substring(0,3) == "/tp"){
event.cancel();
if(text.length() <= 4){
break;
}
var toTp = text.substring(4, text.length());
for(var player in players){
var name = players[player].toLowerCase();
if(name.length() < toTp.length())
continue;
if (toTp == name.substring(0,toTp.length())){
//send tp packet
var tp_packet = event.createPacket(ID_TELEPORT);
tp_packet.objectId = player;
event.sendToServer(tp_packet);
break;
}
}
}
break;
}
}
}
function onServerPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_UPDATE: {
// New objects
for (var i = 0; i < packet.newObjs.length; i++) {
var objectData = packet.newObjs[i];
var type = objectData.objectType;
if(type == 768 || type == 775 || type == 782 || type == 784 || (type >= 797 && type <= 806)){ // player classes
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(players[droppedObjectId] != null){
delete players[droppedObjectId];
}
}
break;
}
}
}
// tq.js
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_QUEST_OBJECTID = $.findPacketId("QUESTOBJID");
var questObjectId = -1;
var questLoc = null;
var playerLocs = {};
var myId = -1;
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_PLAYER_TEXT: {
var text = packet.text.toLowerCase();
if(text == "/tq"){
event.cancel();
if(questObjectId == -1 || questLoc == null){
break;
}
var minDist = questLoc.distanceSquaredTo(playerLocs[myId]);
var toTp = myId;
for(var player in playerLocs){
var distToQuest = questLoc.distanceSquaredTo(playerLocs[player]);
if(distToQuest < minDist){
minDist = distToQuest;
toTp = player;
}
}
if (toTp != myId){
//send tp packet
var tp_packet = event.createPacket(ID_TELEPORT);
tp_packet.objectId = toTp;
event.sendToServer(tp_packet);
break;
}
}
break;
}
}
}
function onServerPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_CREATE_SUCCESS: {
myId = 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(type == 768 || type == 775 || type == 782 || type == 784 || (type >= 797 && type <= 806)){ // player classes
playerLocs[objectData.status.objectId] = objectData.status.pos;
}else{
if(objectData.status.objectId == questObjectId){
questLoc = objectData.status.pos;
}
}
}
// 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 == questObjectId){
questObjectId = -1;
questLoc = null;
}
}
break;
}
case ID_NEW_TICK: {
for (var i = 0; i < packet.statuses.length; i++) {
var status = packet.statuses[i];
for (player in playerLocs){
if(status.objectId == player){
playerLocs[player] = status.pos;
break;
}
}
}
break;
}
case ID_QUEST_OBJECTID: {
questObjectId = packet.objectId;
break;
}
}
}
// wc.js
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_PLAYER_TEXT = $.findPacketId("PLAYERTEXT");
var ID_UPDATE = $.findPacketId("UPDATE");
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.displayNotification(event, player_id, 0xFF8000, toPrint);
}
break;
}
}
}
function onServerPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_CREATE_SUCCESS: {
player_id = packet.objectId;
break;
}
case ID_UPDATE: {
var boss = this;
// New objects
for (var i = 0; i < packet.newObjs.length; i++) {
var objectData = packet.newObjs[i];
if(objectData == null)
continue;
var type = objectData.objectType;
if(type == 768 || type == 775 || type == 782 || type == 784 || (type >= 797 && type <= 806)){ // player classes
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.displayNotification(event, player_id, 0xFF8000, statData.obf2 + " has an inc!");
break;
}
}
}
}
// Removed objects
for (var i = 0; i < packet.drops.length; i++) {
var droppedObjectId = packet.drops[i];
if(inc_holders[droppedObjectId] != null){
boss.displayNotification(event, player_id, 0xFF8000, inc_holders[droppedObjectId] + " has left.");
delete inc_holders[droppedObjectId];
}
}
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);
}
// connect.js
var ID_PLAYER_TEXT = $.findPacketId("PLAYERTEXT");
var servers = { "usw" : "54.241.208.233",
"usw2" : "54.193.168.4",
"use" : "4.224.68.81",
"use2" : "54.204.50.57",
"use3" : "54.226.214.216",
"uss" : "23.22.180.212",
"uss2" : "50.19.7.133",
"uss3" : "54.80.250.47",
"usmw" : "54.80.67.112",
"usmw2" : "50.17.143.165",
"ussw" : "54.219.44.205",
"usnw" : "50.18.24.120",
"euw" : "54.195.57.43",
"euw2" : "54.195.154.140",
"eue" : "46.137.30.179",
"eus" : "54.195.179.215",
"eun" : "54.195.96.152",
"eun2" : "54.216.200.98",
"eusw" : "54.217.63.70",
"ae" : "175.41.201.80",
"ase" : "54.255.15.39" };
var usage =
"Usage: /con <server>\n \
\t\tusw \n \
\t\tusw2 \n \
\t\tuse \n \
\t\tuse2 \n \
\t\tuse3 \n \
\t\tuss \n \
\t\tuss2 \n \
\t\tuss3 \n \
\t\tusmw \n \
\t\tusmw2 \n \
\t\tussw \n \
\t\tusnw \n \
\t\teuw \n \
\t\teuw2 \n \
\t\teue \n \
\t\teus \n \
\t\teun \n \
\t\teun2 \n \
\t\teusw \n \
\t\tae \n \
\t\tase \n";
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_PLAYER_TEXT: {
var text = packet.text.toLowerCase();
if(text.length() >= 4 && text.substring(0,4) == "/con"){
event.cancel();
if(text.length() <= 5){
event.echo(usage)
break;
}
var server = text.substring(5, text.length());
if(servers[server] == null)
event.echo("Server " + server + " not found.");
else{
event.setGameIdSocketAddress(-2, servers[server], event.getRemotePort());
event.kickUser();
}
}
break;
}
}
}
// ability.js
var ID_MOVE = $.findPacketId("MOVE");
var ID_USE_ITEM = $.findPacketId("USEITEM");
var ID_UPDATE = $.findPacketId("UPDATE");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_PLAYER_TEXT = $.findPacketId("PLAYERTEXT");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_PLAYER_SHOOT = $.findPacketId("PLAYER_SHOOT");
var playerLocation = null;
var toHitIds = {};
var ability = true;
var player_id = -1;
var type = -1;
var enemies = {
"5952" : "Oryx 1",
"2354" : "Oryx 2",
"3425" : "Hermit God",
"3412" : "Sphinx",
"3417" : "Cube God",
"3414" : "Skull Shrine",
"3422" : "Pentaract",
"3639" : "Ghost Ship",
"24184" : "Rock Dragon",
"3408" : "LotLL",
"3334" : "Limon",
"3472" : "Septavius",
"5894" : "Thessal",
"2357" : "Crystal",
"2369" : "C Prisoner",
"1618" : "Sprite God",
"1620" : "Medusa",
"1621" : "Ent God",
"1622" : "Beholder",
"1623" : "Flying Brain",
"1624" : "Slime God",
"1625" : "Ghost God",
"1752" : "Leviathan",
"2309" : "Rock Bot",
"2330" : "Djinn",
// "1540" : "Scorpion Queen" // Non-Lethal test - Found on beaches
};
// Maybe add distance check
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_MOVE: {
playerLocation = packet.newPosition;
break;
}
case ID_USE_ITEM: {
var itemId = event.findItem(packet.slotObject.objectType).id.toLowerCase();
if(!ability || toHitIds == {} || itemId.indexOf("prism") != -1 || itemId.indexOf("planewalker") != -1)
break;
// Targets closest desired enemy
var min_dist = -1;
var toHitLoc = null;
for(var objId in toHitIds){
var dist = playerLocation.distanceSquaredTo(toHitIds[objId]);
if(min_dist == -1 || dist < min_dist){
toHitLoc = toHitIds[objId];
min_dist = dist;
}
}
if(min_dist <= 200 && toHitLoc != null){
packet.itemUsePos.x = toHitLoc.x;
packet.itemUsePos.y = toHitLoc.y + .01; // If the location is exact, all bullets miss.
}
break;
}
case ID_PLAYER_TEXT: {
var text = packet.text;
if(text == "/abi"){
event.cancel();
ability = !ability;
if(ability)
this.displayNotification(event, player_id, 0xFF3333, "Auto-Aim abilities enabled");
else
this.displayNotification(event, player_id, 0xFF3333, "Auto-Aim abilities disabled");
}
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(enemies[type] != null){
// A Challenger Appears
toHitIds[objectData.status.objectId] = objectData.status.pos;
}
}
// Removed objects
for (var i = 0; i < packet.drops.length; i++) {
var droppedObjectId = packet.drops[i];
if(toHitIds[droppedObjectId] != null){
delete toHitIds[droppedObjectId];
}
}
break;
}
case ID_NEW_TICK: {
for (var i = 0; i < packet.statuses.length; i++) {
var status = packet.statuses[i];
if(toHitIds[status.objectId] != null){
// Location Updated
toHitIds[status.objectId] = status.pos;
}
}
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);
}
