Results 1 to 5 of 5
  1. #1
    Hurcan's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    53
    Reputation
    10
    Thanks
    1

    about rr auto nexus hp pot

    sometimes rr nexuses even i have almost full hp, i guess its about predicting the damage that the bullet does. i love the auto pot drinker and %25 auto nexus but is there a way to remove the predict thingy or make it so it wont nexus with such high hp?

  2. #2
    CrazyJani's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    2,475
    Reputation
    170
    Thanks
    15,666
    Quote Originally Posted by Hurcan View Post
    is there a way to remove the predict thingy or make it so it wont nexus with such high hp?
    Removing the predicting is easy

  3. #3
    Hurcan's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    53
    Reputation
    10
    Thanks
    1
    umm can you tell me how to do it?

  4. #4
    CrazyJani's Avatar
    Join Date
    Jan 2013
    Gender
    male
    Posts
    2,475
    Reputation
    170
    Thanks
    15,666
    Quote Originally Posted by Hurcan View Post
    umm can you tell me how to do it?
    So you only want an autopot script? Link that script to me and I'll do it

  5. #5
    Hurcan's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Posts
    53
    Reputation
    10
    Thanks
    1
    i want auto nexus and pot drink i just dont want the predict the damage thingy


     
    Code:
    // original: autonexus.js by DeVoidCoder
    // modified by: zekikez
    
    var ID_MOVE = $.findPacketId("MOVE");
    var ID_PLAYERHIT = $.findPacketId("PLAYERHIT");
    var ID_SHOOT = $.findPacketId("SHOOT");
    var ID_SHOOT2 = $.findPacketId("SHOOT2");
    var ID_UPDATE = $.findPacketId("UPDATE");
    var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
    var ID_NEW_TICK = $.findPacketId("NEW_TICK");
    var ID_AOE = $.findPacketId("AOE");
    var ID_ESCAPE = $.findPacketId("ESCAPE");
    var ID_USE_ITEM = $.findPacketId("USEITEM");
    var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
    var ID_MAPINFO = $.findPacketId("MAPINFO");
    
    var STATDATA_MAXHEALTH = 0;
    var STATDATA_HEALTH = 1;
    var STATDATA_DEFENCEBONUS = 49
    
    var nexusHealthPercentage = 25; // <--- modify this to the health % you want to nexus at
    var playerObjectId = -1;
    var _allowAutoNexus = true;  // <--- set to false if you do not want it to auto nexus
    
    var health = -1;
    var maxHealth = -1;
    var defenceBonus = -1;
    var bulletIdDamageMap = {};
    var bEscapeToNexusSent = false; // true = don't confirm any more hits
    var playerLocation = null;
    
    // zekikez - auto health potion
    var SLOTDATA_HEALTHPOT = 69;
    var TIMEOUT_OFFSET = 250; // the amount of time before allowing to use the health potion again
    
    var _potHealthPercentage = 35; // <--- modify this to the health % you want to pot at
    
    var _clientTime = 0;
    var _potHealthCount = 0;
    var _skipHealthPotion = true;
    var _timeoutAt = -1; 
    var _mapName = "Nexus";
    
    function onClientPacket(event) {
    	if (bEscapeToNexusSent) {
    		event.cancel();
    		return;
    	}
    	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: {
    			// predict what the damage will be
    			health -= getDamageEstimate(bulletIdDamageMap[packet.bulletId]);
    			if (_mapName != "Nexus" && useBestEscape())
    					event.cancel();
    			break;
    		}
    	}
    }
    
    function onServerPacket(event) {
    	var packet = event.getPacket();
    	switch (packet.id()) {
    		case ID_MAPINFO: {
    			_mapName = packet.name;
    			break;
    		}	
    		case ID_SHOOT2:
    		case ID_SHOOT: {
    			// store projectile damage...
    			bulletIdDamageMap[packet.bulletId] = packet.damage;
    			break;
    		}
    		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];
    						// update player data...
    						if (statData.obf0 == STATDATA_MAXHEALTH) {
    							maxHealth = statData.obf1;
    						} else if (statData.obf0 == STATDATA_HEALTH) {
    							health = statData.obf1;
    						} else if (statData.obf0 == STATDATA_DEFENCEBONUS) {
    							defenceBonus = statData.obf1;
    						} else if (statData.obf0 == SLOTDATA_HEALTHPOT) {
    							_potHealthCount = statData.obf1;
    						}
    					}
    				}
    			}
    			break;
    		}
    		case ID_CREATE_SUCCESS: {
    			// keep the player's objectId
    			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];
    						// update the player's health
    						if (statData.obf0 == STATDATA_HEALTH) {
    							health = statData.obf1;
    						} else if (statData.obf0 == STATDATA_DEFENCEBONUS) {
    							defenceBonus = statData.obf1;
    						} else if (statData.obf0 == SLOTDATA_HEALTHPOT) {
    							_potHealthCount = statData.obf1;
    							$.echo("health pot count: " + _potHealthCount);
    						}
    					}
    				}
    			}
    			break;
    		}
    		case ID_AOE: {
    			if (playerLocation != null && playerLocation.distanceTo(packet.pos) <= packet.radius) {
    				// predict what the damage will be
    				health -= getDamageEstimate(packet.damage);
    				if (_mapName != "Nexus" && useBestEscape())
    					event.cancel();
    			}
    			break;
    		}
    	}
    }
    
    function getDamageEstimate(baseDamage) {
            // not a perfect damage calculation at all, but good enough for govt work
            var damage = baseDamage - defenceBonus;
            if (damage < 0.15 * baseDamage) {
    			damage = 0.15 * baseDamage;
            }
            if (isNaN(damage)) {
    			// return 100; 
    			return 0; // if damage is undefined then just wait for next tick to health update.
            }
            return damage;
    }
    
    
    // Determines best action based on current health percentage
    // returns true if an action happens 
    function useBestEscape() {
    	// if the predicted health percentage is below nexusHealthPercentage...
    	var curPercentage = 100 * health / maxHealth;
    	//$.echo("Current Health: " + health + " / " + maxHealth + " = "  + curPercentage);
    	if (_allowAutoNexus && curPercentage <= nexusHealthPercentage) {
    		useNexus();
    		return true;
    	}
    	else if (!_skipHealthPotion && _potHealthCount > 0 && curPercentage <= _potHealthPercentage) {
    		useHealthPotion();
    		return true;
    	}
    	return false;
    }
    
    // creates ESCAPE packet and sends to server
    function useNexus() {
    	$.echo("Used Nexus");
    	var escapePacket = $.createPacket(ID_ESCAPE);
    	$.sendToServer(escapePacket);
    	bEscapeToNexusSent = true; // this prevents any additional packets from being sent
    }
    
    // creates a USE_ITEM packet with the health potion details
    function useHealthPotion() {
    	_potHealthCount--;
    	$.echo("Used Health Potion: " + _potHealthCount);
    	var useitemPacket = $.createPacket(ID_USE_ITEM);
    	useitemPacket.time = _clientTime + 50; // ? not sure if increment is needed
    	useitemPacket.slotObject = $.createSlotObject();
    	useitemPacket.slotObject.objectType = 2594; // health potion type
    	useitemPacket.slotObject.slotId = 254; // health potion slotid
    	useitemPacket.slotObject.objectId = playerObjectId; // player id
    	useitemPacket.itemUsePos = playerLocation; // should randomly offset a bit. (this should be where the cursor is pointing)
    	useitemPacket.useType = 0;
    	$.sendToServer(useitemPacket);
    	// Notify user that a potion was used and show the remaining number of pots
    	autoNexusPot_Notify("Used Health Potion! Count: " + _potHealthCount);
    	_skipHealthPotion = true;
    	_timeoutAt = _clientTime + TIMEOUT_OFFSET;
    }
    
    function autoNexusPot_Notify(text) {
    	var notificationPacket = $.createPacket(ID_NOTIFICATION);
    	notificationPacket.objectId = playerObjectId;
    	notificationPacket.message = "{\"key\":\"blank\",\"tokens\":{\"data\":\"" + text + "\"}}";
    	notificationPacke*****lor = 0x33FFFF;;
    	$.sendToClient(notificationPacket);
    }
    Last edited by Lovroman; 03-20-2014 at 01:14 PM. Reason: Added CODE tags.

Similar Threads

  1. Realm Relay auto nexus/pot
    By zekikez in forum Realm of the Mad God Tutorials & Source Code
    Replies: 36
    Last Post: 06-01-2015, 03:34 PM
  2. Nilly's - Auto-pot / Auto-Special if Priest / Auto-Nexus - Code
    By nilly in forum Realm of the Mad God Tutorials & Source Code
    Replies: 55
    Last Post: 05-02-2014, 11:08 PM
  3. [Release] Auto Nexus
    By sportukr23 in forum Realm of the Mad God Hacks & Cheats
    Replies: 10
    Last Post: 07-02-2012, 03:02 PM
  4. About The Auto-Ban
    By XxSlavikxX in forum CrossFire Help
    Replies: 3
    Last Post: 06-27-2010, 01:21 AM
  5. [Question]About Vb8 Auto Injector Codes [Selectable Process]
    By nathanael890 in forum Visual Basic Programming
    Replies: 4
    Last Post: 02-14-2010, 08:44 AM