[Realm Relay] Cloak timer

Posts 1–15 of 19 · Page 1 of 2
[Realm Relay] Cloak timer
Thanks @Necc for the idea
 
cloaktimer.js
Code:
//cloaktimer.js

var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_UPDATE = $.findPacketId("UPDATE");

var playerId = -1;
var tier = -1;

function onServerPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_CREATE_SUCCESS: {
			playerId = packet.objectId;
			break;
		}
		case ID_NEW_TICK: {
			if (packet.statuses != undefined) {
				for (var i = 0; i < packet.statuses.length; i++) {
					var status = packet.statuses[i];
					if (status.objectId == playerId) {
						for (var j = 0; j < status.data.length; j++){
							var statData = status.data[j];

							if (statData.obf0 == 29) {
								if (statData.obf1 == 4096) {
									if (tier == 0) {
										displayNotification(event, playerId, 0x00ffff, "3.0");
										$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "2.5");
										$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.0");
										$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "1.5");
										$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.0");
										$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "0.5");
										$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.0");
									} else if (tier == 1) {
										displayNotification(event, playerId, 0x00ffff, "3.5");
										$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.0");
										$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.5");
										$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.0");
										$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.5");
										$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.0");
										$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.5");
										$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.0");
									} else if (tier == 2) {
										displayNotification(event, playerId, 0x00ffff, "4.0");
										$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.5");
										$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.0");
										$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.5");
										$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.0");
										$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.5");
										$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.0");
										$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.5");
										$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.0");
									} else if (tier == 3) {
										displayNotification(event, playerId, 0x00ffff, "4.5");
										$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.0");
										$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.5");
										$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.0");
										$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.5");
										$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.0");
										$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.5");
										$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.0");
										$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.5");
										$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.0");
									} else if (tier == 4) {
										displayNotification(event, playerId, 0x00ffff, "5.0");
										$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.5");
										$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.0");
										$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.5");
										$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.0");
										$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.5");
										$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.0");
										$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.5");
										$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.0");
										$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.5");
										$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.0");
									} else if (tier == 5) {
										displayNotification(event, playerId, 0x00ffff, "5.5");
										$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "5.0");
										$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.5");
										$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "4.0");
										$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.5");
										$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "3.0");
										$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.5");
										$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "2.0");
										$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.5");
										$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "1.0");
										$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.5");
										$.scheduleEvent(5.5, "displayNotification", playerId, 0x00ffff, "0.0");
									}
								}
							}
						}
					}
				}
			}
			break;
		}
		case ID_UPDATE: {
			for (var i = 0; i < packet.newObjs.length; i++) {
				var objectData = packet.newObjs[i];
				if(objectData == null)
					continue;

				var objid = objectData.status.objectId;
				if (objid == playerId) {
					for (var j = 0; j < objectData.status.data.length; j++) {
						var statData = objectData.status.data[j];
						if (statData != null && statData.obf0 == 9) {
							if (statData.obf1 == 2646) {
								tier = 0;
							} else if (statData.obf1 == 2647) {
								tier = 1;
							} else if (statData.obf1 == 2648) {
								tier = 2;
							} else if (statData.obf1 == 2779) {
								tier = 3;
							} else if (statData.obf1 == 2649) {
								tier = 4;
							} else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
								tier = 5;
							}
						}
					}
				}
			}
			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);
}


 
cloaktimer.js v2
Code:
//cloaktimer.js

var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_UPDATE = $.findPacketId("UPDATE");

var playerId = -1;
var tier = 2;

function onServerPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_CREATE_SUCCESS: {
			playerId = packet.objectId;
			break;
		}
		case ID_NEW_TICK: {
			if (packet.statuses != undefined) {
				for (var i = 0; i < packet.statuses.length; i++) {
					var status = packet.statuses[i];
					if (status.objectId == playerId) {
						for (var j = 0; j < status.data.length; j++){
							var statData = status.data[j];
							
							if (statData != null && statData.obf0 == 9) {
								if (statData.obf1 == 2646) {
									tier = 0;
								} else if (statData.obf1 == 2647) {
									tier = 1;
								} else if (statData.obf1 == 2779) {
									tier = 3;
								} else if (statData.obf1 == 2649) {
									tier = 4;
								} else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
									tier = 5;
								}
							} else if (statData.obf0 == 29) {
								if (statData.obf1 == 4096) {
									cloakTimer(event, tier);
								} else {
									var obfvalue = statData.obf1;
									for (var k = 30; k > 0; k--) {
										if (obfvalue == 4096) {
											obfvalue = 0;
											cloakTimer(event, tier);
											break;
										} else if (obfvalue < 4096) {
											break;
										} else if (obfvalue >= Math.pow(2, k)) {
											if (Math.pow(2, k) == 4096) {
												cloakTimer(event, tier);
												break;
											} else {
												obfvalue -= Math.pow(2, k);
											}
										}
									}
								}
							}
						}
					}
				}
			}
			break;
		}
		case ID_UPDATE: {
			for (var i = 0; i < packet.newObjs.length; i++) {
				var objectData = packet.newObjs[i];
				if(objectData == null)
					continue;

				var objid = objectData.status.objectId;
				if (objid == playerId) {
					for (var j = 0; j < objectData.status.data.length; j++) {
						var statData = objectData.status.data[j];
						if (statData != null && statData.obf0 == 9) {
							if (statData.obf1 == 2646) {
								tier = 0;
							} else if (statData.obf1 == 2647) {
								tier = 1;
							} else if (statData.obf1 == 2779) {
								tier = 3;
							} else if (statData.obf1 == 2649) {
								tier = 4;
							} else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
								tier = 5;
							}
						}
					}
				}
			}
			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 cloakTimer(event, cloak) {
	if (tier == 0) {
		displayNotification(event, playerId, 0x00ffff, "3.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 1) {
		displayNotification(event, playerId, 0x00ffff, "3.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 2) {
		displayNotification(event, playerId, 0x00ffff, "4.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 3) {
		displayNotification(event, playerId, 0x00ffff, "4.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 4) {
		displayNotification(event, playerId, 0x00ffff, "5.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 5) {
		displayNotification(event, playerId, 0x00ffff, "5.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "5.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(5.5, "displayNotification", playerId, 0x00ffff, "0.0");
	}
}

Changes:
- Supports multiple status effects at the same time
- Supports ghost rum
- Supports changing cloak

 
cloaktimer.js v3
Code:
//cloaktimer.js

var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_USEITEM = $.findPacketId("USEITEM");

var playerId = -1;

function onClientPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_USEITEM: {
			if (packet.slotObject.objectType == 2646) {
				cloakTimer(event, 0);
			} else if (packet.slotObject.objectType == 2647) {
				cloakTimer(event, 1);
			} else if (packet.slotObject.objectType == 3109 || packet.slotObject.objectType == 2648) {
				cloakTimer(event, 2);
			} else if (packet.slotObject.objectType == 2779) {
				cloakTimer(event, 3);
			} else if (packet.slotObject.objectType == 2649) {
				cloakTimer(event, 4);
			} else if (packet.slotObject.objectType == 2785 || packet.slotObject.objectType == 2855 || packet.slotObject.objectType == 2650) {
				cloakTimer(event, 5);
			}
			break;
		}
	}
}

function onServerPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_CREATE_SUCCESS: {
			playerId = packet.objectId;
			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 cloakTimer(event, cloak) {
	var sec = ["5.5","5.0","4.5","4.0","3.5","3.0","2.5","2.0","1.5","1.0","0.5","0.0"];
	var sec2 = 0.0;
	var colors = [0x30FF00,0x50FF00,0x70FF00,0xB0FF00,0xD0FF00,0xF0FF00,0xFFD000,0xFFB000,0xFF9000,0xFF5000,0xFF3000,0xFF1000];
	for (var i = 5 - cloak; i < sec.length; i++) {
		$.scheduleEvent(sec2, "displayNotification", playerId, colors[i], sec[i]);
		sec2 += 0.5;
	}
}

Changes:
- Supports ghost rum on rogue
- Should work faster
- Added colors
I like your style! You deserve my thanks
Awesome idea. Never thought of that.

I made my own version with colors and less delays
Quote Originally Posted by Alde. View Post
Awesome idea. Never thought of that.

I made my own version with colors and less delays
mind sharing?
Quote Originally Posted by Alde. View Post
Awesome idea. Never thought of that.

I made my own version with colors and less delays
Mind posting the script here?

Nice work Jani.
Quote Originally Posted by soalokin View Post
To change the color codes for this, grab the color code you want from here
Then open up the script in notepad++ and replace all instances of 0xCC00CC with the new code using the replace function.
Quote Originally Posted by Pepsi Cola View Post


Mind posting the script here?
Quote Originally Posted by soalokin View Post
mind sharing?
Code:
//cloaktimer.js
 
var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_UPDATE = $.findPacketId("UPDATE");
 
var playerId = -1;
var tier = -1;
 
function onServerPacket(event) {
    var packet = event.getPacket();
    switch (packet.id()) {
        case ID_CREATE_SUCCESS: {
            playerId = packet.objectId;
            break;
        }
        case ID_NEW_TICK: {
            if (packet.statuses != undefined) {
                for (var i = 0; i < packet.statuses.length; i++) {
                    var status = packet.statuses[i];
                    if (status.objectId == playerId) {
                        for (var j = 0; j < status.data.length; j++){
                            var statData = status.data[j];
 
                            if (statData.obf0 == 29) {
                                if (statData.obf1 == 4096) {
                                    if (tier == 0) {
 
                                        displayNotification(event, playerId, 0xFF0000, "3.0");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0xFF2000, "2.5");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0xFF4000, "2.0");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0xFF6000, "1.5");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0xFF8000, "1.0");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0xFFA000, "0.5");
                                        $.scheduleEvent(2.6, "displayNotification", playerId, 0xFFC000, "0.4");
                                        $.scheduleEvent(2.7, "displayNotification", playerId, 0xE0FF00, "0.3");
                                        $.scheduleEvent(2.8, "displayNotification", playerId, 0x80FF00, "0.2");
                                        $.scheduleEvent(2.9, "displayNotification", playerId, 0x40FF00, "0.1");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0x10FF00, "0.0");
                                    } else if (tier == 1) {
                                        displayNotification(event, playerId, 0xFF0000, "3.5");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0xFF2000, "3.0");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0xFF4000, "2.5");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0xFF6000, "2.0");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0xFF8000, "1.5");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0xFFA000, "1.0");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0xFFC000, "0.5");
                                        $.scheduleEvent(3.1, "displayNotification", playerId, 0xE0FF00, "0.4");
                                        $.scheduleEvent(3.2, "displayNotification", playerId, 0xA0FF00, "0.3");
                                        $.scheduleEvent(3.3, "displayNotification", playerId, 0x80FF00, "0.2");
                                        $.scheduleEvent(3.4, "displayNotification", playerId, 0x40FF00, "0.1");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0x10FF00, "0.0");
                                    } else if (tier == 2) {
                                        displayNotification(event, playerId, 0xFF0000, "4.0");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0xFF2000, "3.5");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0xFF4000, "3.0");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0xFF6000, "2.5");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0xFF8000, "2.0");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0xFFA000, "1.5");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0xFFC000, "1.0");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0xFFE000, "0.5");
                                        $.scheduleEvent(3.6, "displayNotification", playerId, 0xE0FF00, "0.4");
                                        $.scheduleEvent(3.7, "displayNotification", playerId, 0xC0FF00, "0.3");
                                        $.scheduleEvent(3.8, "displayNotification", playerId, 0xA0FF00, "0.2");
                                        $.scheduleEvent(3.9, "displayNotification", playerId, 0x40FF00, "0.1");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0x10FF00, "0.0");
                                    } else if (tier == 3) {
                                        displayNotification(event, playerId, 0xFF0000, "4.5");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0xFF2000, "4.0");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0xFF4000, "3.5");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0xFF6000, "3.0");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0xFF8000, "2.5");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0xFFA000, "2.0");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0xFFC000, "1.5");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0xFFE000, "1.0");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0xE0FF00, "0.5");
                                        $.scheduleEvent(4.1, "displayNotification", playerId, 0xC0FF00, "0.4");
                                        $.scheduleEvent(4.2, "displayNotification", playerId, 0xA0FF00, "0.3");
                                        $.scheduleEvent(4.3, "displayNotification", playerId, 0x80FF00, "0.2");
                                        $.scheduleEvent(4.4, "displayNotification", playerId, 0x40FF00, "0.1");
                                        $.scheduleEvent(4.5, "displayNotification", playerId, 0x10FF00, "0.0");
                                    } else if (tier == 4) {
                                        displayNotification(event, playerId, 0xFF0000, "5.0");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0xFF2000, "4.5");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0xFF4000, "4.0");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0xFF6000, "3.5");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0xFF8000, "3.0");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0xFFA000, "2.5");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0xFFC000, "2.0");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0xFFE000, "1.5");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0xE0FF00, "1.0");
                                        $.scheduleEvent(4.5, "displayNotification", playerId, 0xC0FF00, "0.5");
                                        $.scheduleEvent(4.6, "displayNotification", playerId, 0xA0FF00, "0.4");
                                        $.scheduleEvent(4.7, "displayNotification", playerId, 0x80FF00, "0.3");
                                        $.scheduleEvent(4.8, "displayNotification", playerId, 0x40FF00, "0.2");
                                        $.scheduleEvent(4.9, "displayNotification", playerId, 0x20FF00, "0.1");
                                        $.scheduleEvent(5.0, "displayNotification", playerId, 0x10FF00, "0.0");
                                    } else if (tier == 5) {
                                        displayNotification(event, playerId, 0xFF0000, "5.5");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0xFF2000, "5.0");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0xFF4000, "4.5");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0xFF6000, "4.0");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0xFF8000, "3.5");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0xFFA000, "3.0");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0xFFC000, "2.5");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0xFFE000, "2.0");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0xE0FF00, "1.5");
                                        $.scheduleEvent(4.5, "displayNotification", playerId, 0xC0FF00, "1.0");
                                        $.scheduleEvent(5.0, "displayNotification", playerId, 0xA0FF00, "0.5");
                                        $.scheduleEvent(5.1, "displayNotification", playerId, 0x80FF00, "0.4");
                                        $.scheduleEvent(5.2, "displayNotification", playerId, 0x40FF00, "0.3");
                                        $.scheduleEvent(5.3, "displayNotification", playerId, 0x30FF00, "0.2");
                                        $.scheduleEvent(5.4, "displayNotification", playerId, 0x20FF00, "0.1");
                                        $.scheduleEvent(5.5, "displayNotification", playerId, 0x10FF00, "0.0");
                                    }
                                }
                            }
                        }
                    }
                }
            }
            break;
        }
        case ID_UPDATE: {
            for (var i = 0; i < packet.newObjs.length; i++) {
                var objectData = packet.newObjs[i];
                if(objectData == null)
                    continue;
 
                var objid = objectData.status.objectId;
                if (objid == playerId) {
                    for (var j = 0; j < objectData.status.data.length; j++) {
                        var statData = objectData.status.data[j];
                        if (statData != null && statData.obf0 == 9) {
                            if (statData.obf1 == 2646) {
                                tier = 0;
                            } else if (statData.obf1 == 2647) {
                                tier = 1;
                            } else if (statData.obf1 == 2648) {
                                tier = 2;
                            } else if (statData.obf1 == 2779) {
                                tier = 3;
                            } else if (statData.obf1 == 2649) {
                                tier = 4;
                            } else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
                                tier = 5;
                            }
                        }
                    }
                }
            }
            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);
}
Quote Originally Posted by CrazyJani View Post
Thanks @Necc for the idea
 
cloaktimer.js
Code:
//cloaktimer.js

var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_UPDATE = $.findPacketId("UPDATE");

var playerId = -1;
var tier = -1;

function onServerPacket(event) {
    var packet = event.getPacket();
    switch (packet.id()) {
        case ID_CREATE_SUCCESS: {
            playerId = packet.objectId;
            break;
        }
        case ID_NEW_TICK: {
            if (packet.statuses != undefined) {
                for (var i = 0; i < packet.statuses.length; i++) {
                    var status = packet.statuses[i];
                    if (status.objectId == playerId) {
                        for (var j = 0; j < status.data.length; j++){
                            var statData = status.data[j];

                            if (statData.obf0 == 29) {
                                if (statData.obf1 == 4096) {
                                    if (tier == 0) {
                                        displayNotification(event, playerId, 0x00ffff, "3.0");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "2.5");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.0");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "1.5");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.0");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "0.5");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.0");
                                    } else if (tier == 1) {
                                        displayNotification(event, playerId, 0x00ffff, "3.5");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.0");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.5");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.0");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.5");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.0");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.5");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.0");
                                    } else if (tier == 2) {
                                        displayNotification(event, playerId, 0x00ffff, "4.0");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.5");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.0");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.5");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.0");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.5");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.0");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.5");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.0");
                                    } else if (tier == 3) {
                                        displayNotification(event, playerId, 0x00ffff, "4.5");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.0");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.5");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.0");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.5");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.0");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.5");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.0");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.5");
                                        $.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.0");
                                    } else if (tier == 4) {
                                        displayNotification(event, playerId, 0x00ffff, "5.0");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.5");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.0");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.5");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.0");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.5");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.0");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.5");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.0");
                                        $.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.5");
                                        $.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.0");
                                    } else if (tier == 5) {
                                        displayNotification(event, playerId, 0x00ffff, "5.5");
                                        $.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "5.0");
                                        $.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.5");
                                        $.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "4.0");
                                        $.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.5");
                                        $.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "3.0");
                                        $.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.5");
                                        $.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "2.0");
                                        $.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.5");
                                        $.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "1.0");
                                        $.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.5");
                                        $.scheduleEvent(5.5, "displayNotification", playerId, 0x00ffff, "0.0");
                                    }
                                }
                            }
                        }
                    }
                }
            }
            break;
        }
        case ID_UPDATE: {
            for (var i = 0; i < packet.newObjs.length; i++) {
                var objectData = packet.newObjs[i];
                if(objectData == null)
                    continue;

                var objid = objectData.status.objectId;
                if (objid == playerId) {
                    for (var j = 0; j < objectData.status.data.length; j++) {
                        var statData = objectData.status.data[j];
                        if (statData != null && statData.obf0 == 9) {
                            if (statData.obf1 == 2646) {
                                tier = 0;
                            } else if (statData.obf1 == 2647) {
                                tier = 1;
                            } else if (statData.obf1 == 2648) {
                                tier = 2;
                            } else if (statData.obf1 == 2779) {
                                tier = 3;
                            } else if (statData.obf1 == 2649) {
                                tier = 4;
                            } else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
                                tier = 5;
                            }
                        }
                    }
                }
            }
            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);
}

Sweet! Now if only I could get RR working again...
To change the color codes for this, grab the color code you want from here
Then open up the script in notepad++ and replace all instances of 0xCC00CC with the new code using the replace function.
So, this thing checks if the player is a rogue or if he used a cloak as a special (or whatever)?
Quote Originally Posted by Zasx View Post
So, this thing checks if the player is a rogue or if he used a cloak as a special (or whatever)?
It checks if player is invisible and what cloak player is using.
Currently it does not support having 2 status effects (eg. damaging + invisible) but maybe I'll fix that later
Also it doesn't start the counter if player is not wearing a cloak (eg. using ghost rum on knight) that can be easily fixed as well so maybe I'll do v2 when I have time
T6 And Planewalker don't work
Quote Originally Posted by kills64 View Post
T6 And Planewalker don't work
They do .
 
cloaktimer.js v2
Code:
//cloaktimer.js

var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_UPDATE = $.findPacketId("UPDATE");

var playerId = -1;
var tier = 2;

function onServerPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_CREATE_SUCCESS: {
			playerId = packet.objectId;
			break;
		}
		case ID_NEW_TICK: {
			if (packet.statuses != undefined) {
				for (var i = 0; i < packet.statuses.length; i++) {
					var status = packet.statuses[i];
					if (status.objectId == playerId) {
						for (var j = 0; j < status.data.length; j++){
							var statData = status.data[j];
							
							if (statData != null && statData.obf0 == 9) {
								if (statData.obf1 == 2646) {
									tier = 0;
								} else if (statData.obf1 == 2647) {
									tier = 1;
								} else if (statData.obf1 == 2779) {
									tier = 3;
								} else if (statData.obf1 == 2649) {
									tier = 4;
								} else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
									tier = 5;
								}
							} else if (statData.obf0 == 29) {
								if (statData.obf1 == 4096) {
									cloakTimer(event, tier);
								} else {
									var obfvalue = statData.obf1;
									for (var k = 30; k > 0; k--) {
										if (obfvalue == 4096) {
											obfvalue = 0;
											cloakTimer(event, tier);
											break;
										} else if (obfvalue < 4096) {
											break;
										} else if (obfvalue >= Math.pow(2, k)) {
											if (Math.pow(2, k) == 4096) {
												cloakTimer(event, tier);
												break;
											} else {
												obfvalue -= Math.pow(2, k);
											}
										}
									}
								}
							}
						}
					}
				}
			}
			break;
		}
		case ID_UPDATE: {
			for (var i = 0; i < packet.newObjs.length; i++) {
				var objectData = packet.newObjs[i];
				if(objectData == null)
					continue;

				var objid = objectData.status.objectId;
				if (objid == playerId) {
					for (var j = 0; j < objectData.status.data.length; j++) {
						var statData = objectData.status.data[j];
						if (statData != null && statData.obf0 == 9) {
							if (statData.obf1 == 2646) {
								tier = 0;
							} else if (statData.obf1 == 2647) {
								tier = 1;
							} else if (statData.obf1 == 2779) {
								tier = 3;
							} else if (statData.obf1 == 2649) {
								tier = 4;
							} else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
								tier = 5;
							}
						}
					}
				}
			}
			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 cloakTimer(event, cloak) {
	if (tier == 0) {
		displayNotification(event, playerId, 0x00ffff, "3.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 1) {
		displayNotification(event, playerId, 0x00ffff, "3.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 2) {
		displayNotification(event, playerId, 0x00ffff, "4.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 3) {
		displayNotification(event, playerId, 0x00ffff, "4.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 4) {
		displayNotification(event, playerId, 0x00ffff, "5.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 5) {
		displayNotification(event, playerId, 0x00ffff, "5.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "5.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(5.5, "displayNotification", playerId, 0x00ffff, "0.0");
	}
}

Changes:
- Supports multiple status effects at the same time
- Supports ghost rum
- Supports changing cloak

@Lovroman add this to the original post, please
Quote Originally Posted by CrazyJani View Post
 
cloaktimer.js v2
Code:
//cloaktimer.js

var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_NEW_TICK = $.findPacketId("NEW_TICK");
var ID_UPDATE = $.findPacketId("UPDATE");

var playerId = -1;
var tier = 2;

function onServerPacket(event) {
	var packet = event.getPacket();
	switch (packet.id()) {
		case ID_CREATE_SUCCESS: {
			playerId = packet.objectId;
			break;
		}
		case ID_NEW_TICK: {
			if (packet.statuses != undefined) {
				for (var i = 0; i < packet.statuses.length; i++) {
					var status = packet.statuses[i];
					if (status.objectId == playerId) {
						for (var j = 0; j < status.data.length; j++){
							var statData = status.data[j];
							
							if (statData != null && statData.obf0 == 9) {
								if (statData.obf1 == 2646) {
									tier = 0;
								} else if (statData.obf1 == 2647) {
									tier = 1;
								} else if (statData.obf1 == 2779) {
									tier = 3;
								} else if (statData.obf1 == 2649) {
									tier = 4;
								} else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
									tier = 5;
								}
							} else if (statData.obf0 == 29) {
								if (statData.obf1 == 4096) {
									cloakTimer(event, tier);
								} else {
									var obfvalue = statData.obf1;
									for (var k = 28; k > 0; k--) {
										if (obfvalue == 4096) {
											obfvalue = 0;
											cloakTimer(event, tier);
											break;
										} else if (obfvalue < 4096) {
											break;
										} else if (obfvalue >= Math.pow(2, k)) {
											if (Math.pow(2, k) == 4096) {
												cloakTimer(event, tier);
												break;
											} else {
												obfvalue -= Math.pow(2, k);
											}
										}
									}
								}
							}
						}
					}
				}
			}
			break;
		}
		case ID_UPDATE: {
			for (var i = 0; i < packet.newObjs.length; i++) {
				var objectData = packet.newObjs[i];
				if(objectData == null)
					continue;

				var objid = objectData.status.objectId;
				if (objid == playerId) {
					for (var j = 0; j < objectData.status.data.length; j++) {
						var statData = objectData.status.data[j];
						if (statData != null && statData.obf0 == 9) {
							if (statData.obf1 == 2646) {
								tier = 0;
							} else if (statData.obf1 == 2647) {
								tier = 1;
							} else if (statData.obf1 == 2779) {
								tier = 3;
							} else if (statData.obf1 == 2649) {
								tier = 4;
							} else if (statData.obf1 == 2785 || statData.obf1 == 2855 || statData.obf1 == 2650) {
								tier = 5;
							}
						}
					}
				}
			}
			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 cloakTimer(event, cloak) {
	if (tier == 0) {
		displayNotification(event, playerId, 0x00ffff, "3.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 1) {
		displayNotification(event, playerId, 0x00ffff, "3.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 2) {
		displayNotification(event, playerId, 0x00ffff, "4.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 3) {
		displayNotification(event, playerId, 0x00ffff, "4.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 4) {
		displayNotification(event, playerId, 0x00ffff, "5.0");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "4.5");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.0");
	} else if (tier == 5) {
		displayNotification(event, playerId, 0x00ffff, "5.5");
		$.scheduleEvent(0.5, "displayNotification", playerId, 0x00ffff, "5.0");
		$.scheduleEvent(1.0, "displayNotification", playerId, 0x00ffff, "4.5");
		$.scheduleEvent(1.5, "displayNotification", playerId, 0x00ffff, "4.0");
		$.scheduleEvent(2.0, "displayNotification", playerId, 0x00ffff, "3.5");
		$.scheduleEvent(2.5, "displayNotification", playerId, 0x00ffff, "3.0");
		$.scheduleEvent(3.0, "displayNotification", playerId, 0x00ffff, "2.5");
		$.scheduleEvent(3.5, "displayNotification", playerId, 0x00ffff, "2.0");
		$.scheduleEvent(4.0, "displayNotification", playerId, 0x00ffff, "1.5");
		$.scheduleEvent(4.5, "displayNotification", playerId, 0x00ffff, "1.0");
		$.scheduleEvent(5.0, "displayNotification", playerId, 0x00ffff, "0.5");
		$.scheduleEvent(5.5, "displayNotification", playerId, 0x00ffff, "0.0");
	}
}

Changes:
- Supports multiple status effects at the same time
- Supports ghost rum
- Supports changing cloak

@Lovroman add this to the original post, please
Done .
Quote Originally Posted by Lovroman View Post

Done .
Forgot to include unstable and darkness, please change the line:
Code:
for (var k = 28; k > 0; k--) {
to:
Code:
for (var k = 30; k > 0; k--) {
@Lovroman
Posts 1–15 of 19 · Page 1 of 2

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us