function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()){
case ID_PLAYERSHOOT: {
if(packet.time == 42){
masterx = packet.startingPos.x;
mastery = packet.startingPos.y;
event.cancel();
}
break;
}
}
}
function sendMasterPacket(){
masterLocPacket = $.createPacket(ID_AOE);
masterLocPacket.effect = 42;
masterLocPacket.radius = masterx;
masterLocPacket.duration = mastery;
// Doesn't matter:
locDummy = $.createLocation();
locDummy.x = 0;
locDummy.y = 0;
masterLocPacket.pos = locDummy;
masterLocPacket.damage = 0;
masterLocPacket.origType = 0;
$.sendToClient(masterLocPacket);
}



// quickbox.js
// Made by QuickNick - MPGH.net
var ID_PLAYERSHOOT = $.findPacketId("PLAYERSHOOT");
var ID_MOVE = $.findPacketId("MOVE");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_AOE = $.findPacketId("AOE");
var ID_TELEPORT = $.findPacketId("TELEPORT");
var ID_UPDATE = $.findPacketId("UPDATE");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_USEITEM = $.findPacketId("USEITEM");
var ID_USEPORTAL = $.findPacketId("USEPORTAL");
var masterx = 0;
var mastery = 0
var masterid = 0;
var isMaster = false;
var playerLocation = -1;
var playerId = 0;
var players = new Object();
var playersHP = new Object();
var playersMaxHP = new Object();
var playersMana = new Object();
var playersMaxMana = new Object();
var playersLocations = new Object();
var masterPortal = 0;
var isHealer = false;
var healingTome = 0;
var lastTp = 0;
var STATS_HP = 1;
var STATS_MANA = 4;
var clientTime = 0;
function onClientPacket(event) {
var packet = event.getPacket();
if (packet.time && packet.time != 42)
{
clientTime = packet.time;
}
switch (packet.id()){
case ID_PLAYERSHOOT: {
if(packet.time == 42){
if(!isMaster && playerId > 0){
isMaster = true;
masterid = playerId;
$.setGlobal("masterid", masterid);
}
masterx = packet.startingPos.x;
mastery = packet.startingPos.y;
$.setGlobal("masterx", masterx);
$.setGlobal("mastery", mastery);
sendMasterPacket();
event.cancel();
}
break;
}
case ID_MOVE: {
playerLocation = packet.newPosition;
break;
}
case ID_USEPORTAL: {
$.setGlobal("masterPortal", packet.objectId);
break;
}
}
if(masterx != $.getGlobal("masterx") || mastery != $.getGlobal("mastery")){
sendMasterPacket();
}
}
function onServerPacket(event) {
if(!isMaster && $.getGlobal("masterid") > 0 && playerLocation != -1){
checkForTp();
}
var packet = event.getPacket();
if(masterx != $.getGlobal("masterx") || mastery != $.getGlobal("mastery")){
sendMasterPacket();
}
switch (packet.id()){
case ID_CREATE_SUCCESS: {
playerId = packet.objectId;
$.setGlobal("masterPortal", 0);
break;
}
case ID_UPDATE: {
var newObjs = packet.newObjs;
// Find playerids
for (var i in newObjs){
var type = newObjs[i].objectType;
if(type == 768 || type == 775 || type == 782 || type == 784 || (type >= 797 && type <= 806)){
var data = newObjs[i].status.data;
var objId = newObjs[i].status.objectId;
for (var j in data){
if (data[j].obf0 == 31){
var objName = data[j].obf2.toLowerCase();
players[objName] = objId;
}
if (data[j].obf0 == 9 && (data[j].obf1 == 2609 || data[j].obf1 == 2775 || data[j].obf1 == 2610 || data[j].obf1 == 2776 || data[j].obf1 == 2611 || data[j].obf1 == 2651 || data[j].obf1 == 2853 || data[j].obf1 == 3081 || data[j].obf1 == 3102) && objId == playerId){
isHealer = true;
healingTome = data[j].obf1;
}
}
}
}
break;
}
case ID_NEW_TICK: {
var statuses = packet.statuses;
for (var i in statuses){
for (var name in players){
var id = players[name];
if (statuses[i].objectId == id){
var data = statuses[i].data;
playersLocations[id] = statuses[i].pos;
for (var j in data){
if (data[j].obf0 == STATS_HP){
playersHP[id] = data[j].obf1;
if(playersMaxHP[id] == undefined || playersHP[id] > playersMaxHP[id]){
playersMaxHP[id] = playersHP[id];
}
}
if (data[j].obf0 == STATS_MANA){
playersMana[id] = data[j].obf1;
if(playersMaxMana[id] == undefined || playersHP[id] > playersMaxMana[id]){
playersMaxMana[id] = playersMana[id];
}
}
}
}
}
}
checkForHeal();
break;
}
}
}
function checkForTp(){
if ((Math.abs(masterx - playerLocation.x) > 5 || Math.abs(mastery - playerLocation.y) > 5) && clientTime - lastTp > 10000) {
var tpPacket = $.createPacket(ID_TELEPORT);
tpPacket.objectId = $.getGlobal("masterid");
$.sendToServer(tpPacket);
lastTp = clientTime;
}
if ($.getGlobal("masterPortal") != 0){
var usePortalPacket = $.createPacket(ID_USEPORTAL);
usePortalPacket.objectId = $.getGlobal("masterPortal");
$.sendToServer(usePortalPacket);
}
}
function checkForHeal(){
for (var name in players) {
var id = players[name];
if (playersHP[id] < playersMaxHP[id] * 0.65 && playersMana[playerId] >= 80 && isHealer){
var distance = playerLocation.distanceTo(playersLocations[id]);
if (distance < 6){
heal();
}
}
}
}
function heal(){
var slotObj = $.createSlotObject();
slotObj.objectId = playerId;
slotObj.slotId = 1;
slotObj.objectType = healingTome;
var useItemPacket = $.createPacket(ID_USEITEM);
useItemPacket.time = clientTime;
useItemPacket.slotObject = slotObj;
useItemPacket.itemUsePos = playerLocation;
useItemPacket.useType = 1;
$.sendToServer(useItemPacket);
}
function sendMasterPacket(){
masterx = $.getGlobal("masterx");
mastery = $.getGlobal("mastery");
masterLocPacket = $.createPacket(ID_AOE);
masterLocPacket.effect = 42;
masterLocPacket.radius = masterx;
masterLocPacket.duration = mastery;
locDummy = $.createLocation();
locDummy.x = 0;
locDummy.y = 0;
masterLocPacket.pos = locDummy;
masterLocPacket.damage = 0;
masterLocPacket.origType = 0;
$.sendToClient(masterLocPacket);
}
if (data[j].obf0 == STATS_HP){
playersHP[id] = data[j].obf1;
if(playersMaxHP[id] == undefined || playersHP[id] > playersMaxHP[id]){
playersMaxHP[id] = playersHP[id];
}
}
if (data[j].obf0 == STATS_MANA){
playersMana[id] = data[j].obf1;
if(playersMaxMana[id] == undefined || playersHP[id] > playersMaxMana[id]){
playersMaxMana[id] = playersMana[id];
}
}