HelpRealm Relay

Posts 1–3 of 3 · Page 1 of 1
Realm Relay
can anyone fix this. this would supposed to be working, right?
Code:
var ID_MOVE = $.findPacketId("MOVE");
var ID_UPDATE = $.findPacketId("UPDATE");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_USEITEM = $.findPacketId("USEITEM");
var ID_PLAYERHIT = $.findPacketId("PLAYERHIT");

var playerObjectId = -1;
var health = -1;
var maxHealth = -1;
var defenceBonus = -1;
var playerLocation = null;
var TIMEOUTOFFSET = 250;
var potHealthPercentage = 45;
var clientTime = 0;
var potHealthCount = 0;
var skipHealthPotion = true;
var timeoutAt = -1;

function onClientPacket(event) {
	var packet = event.getPacket();
	if (packet.time) {
		clientTime = packet.time;
		if (skipHealthPotion && timeoutAt < clientTime) {
			skipHealthPotion = false;
		}
	}
	switch (packet.id()) {
		case ID_MOVE: {
			playerLocation = packet.newPosition;
			break;
		}
		case ID_PLAYERHIT: {
			var curPercentage = 100 * health / maxHealth;
			if (!skipHealthPotion && potHealthCount > 0 && curPercentage <= potHealthPercentage) {
				useHealthPotion();
			}
			break;
		}
	}
}

function onServerPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_UPDATE: {
			for (var i = 0; i < packet.newObjs.length; i++) {
				var objectData = packet.newObjs[i];
				if (objectData.status.objectId == playerObjectId) {
					for (var j = 0; j < objectData.status.data.length; j++) {
						var statData = objectData.status.data[j];
						if (statData.obf0 == 0) {
							maxHealth = statData.obf1;
						} else if (statData.obf0 == 1) {
							health = statData.obf1;
						} else if (statData.obf0 == 49) {
							defenceBonus = statData.obf1;
						} else if (statData.obf0 == 69) {
							potHealthCount = statData.obf1;
						}
					}
				}
			}
			break;
		}
		case ID_CREATE_SUCCESS: {
			playerObjectId = packet.objectId;
			break;
		}
		case ID_NEW_TICK: {
			for (var i = 0; i < packet.statuses.length; i++) {
				var status = packet.statuses[i];
				if (status.objectId == playerObjectId) {
					for (var j = 0; j < status.data.length; j++) {
						var statData = status.data[j];
						if (statData.obf0 == 1) {
							health = statData.obf1;
						} else if (statData.obf0 == 49) {
							defenceBonus = statData.obf1;
						} else if (statData.obf0 == 69) {
							potHealthCount = statData.obf1;
						}
					}
				}
			}
			break;
		}
	}
}

function useHealthPotion() {
	potHealthCount--;
	var useitemPacket = $.createPacket(ID_USEITEM);
	useitemPacket.time = clientTime;
	useitemPacket.slotObject = $.createSlotObject();
	useitemPacket.slotObject.objectType = 2594;
	useitemPacket.slotObject.slotId = 254;
	useitemPacket.slotObject.objectId = playerObjectId;
	useitemPacket.itemUsePos = playerLocation;
	useitemPacket.useType = 0;
	$.sendToServer(useitemPacket);
	skipHealthPotion = true;
	timeoutAt = clientTime + TIMEOUTOFFSET;
}
@CrazyJani I hope you didn't abandoned on it. I'll be waiting for it if it works again. thanks in advz.
Quote Originally Posted by undd View Post
@CrazyJani I hope you didn't abandoned on it.
Yeah, pretty much stopped playing RotMG so I don't have the same motivation anymore, sorry
Posts 1–3 of 3 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us