forked from MagicBane/Server
				
			
				 6 changed files with 6 additions and 174 deletions
			
			
		@ -1,129 +0,0 @@
				@@ -1,129 +0,0 @@
					 | 
				
			||||
// • ▌ ▄ ·.  ▄▄▄·  ▄▄ • ▪   ▄▄· ▄▄▄▄·  ▄▄▄·  ▐▄▄▄  ▄▄▄ .
 | 
				
			||||
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
 | 
				
			||||
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
 | 
				
			||||
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
 | 
				
			||||
// ▀▀  █▪▀▀▀ ▀  ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀  ▀  ▀ ▀▀  █▪ ▀▀▀
 | 
				
			||||
//      Magicbane Emulator Project © 2013 - 2022
 | 
				
			||||
//                www.magicbane.com
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
package engine.devcmd.cmds; | 
				
			||||
 | 
				
			||||
import engine.ai.MobileFSMManager; | 
				
			||||
import engine.devcmd.AbstractDevCmd; | 
				
			||||
import engine.gameManager.DbManager; | 
				
			||||
import engine.objects.AbstractGameObject; | 
				
			||||
import engine.objects.PlayerCharacter; | 
				
			||||
import engine.server.MBServerStatics; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @author Steve | 
				
			||||
 * | 
				
			||||
 */ | 
				
			||||
public class SetAICmd extends AbstractDevCmd { | 
				
			||||
 | 
				
			||||
	public SetAICmd() { | 
				
			||||
        super("setAI"); | 
				
			||||
        this.addCmdString("ai"); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
	@Override | 
				
			||||
	protected void _doCmd(PlayerCharacter pc, String[] words, | 
				
			||||
			AbstractGameObject target) { | 
				
			||||
		if (words.length < 2){ | 
				
			||||
			this.sendUsage(pc); | 
				
			||||
			return; | 
				
			||||
		} | 
				
			||||
			 | 
				
			||||
		int amount; | 
				
			||||
 | 
				
			||||
		try{ | 
				
			||||
			amount = Integer.valueOf(words[1]); | 
				
			||||
		}catch (NumberFormatException e) { | 
				
			||||
			this.throwbackError(pc, "Failed to parse amount"); | 
				
			||||
			return; | 
				
			||||
		} | 
				
			||||
		 | 
				
			||||
		switch(words[0]){ | 
				
			||||
		case "angle" : | 
				
			||||
			float angle = Float.parseFloat(words[1]); | 
				
			||||
			 | 
				
			||||
			MobileFSMManager.AI_MAX_ANGLE = angle; | 
				
			||||
			break; | 
				
			||||
			case "aggrorange": | 
				
			||||
				MobileFSMManager.AI_BASE_AGGRO_RANGE = amount; | 
				
			||||
				DbManager.MobBaseQueries.UPDATE_AI_DEFAULTS(); | 
				
			||||
				this.throwbackInfo(pc, "Aggro Range is now set to " + amount); | 
				
			||||
				break; | 
				
			||||
			case "dropaggrorange": | 
				
			||||
				MobileFSMManager.AI_DROP_AGGRO_RANGE = amount; | 
				
			||||
				DbManager.MobBaseQueries.UPDATE_AI_DEFAULTS(); | 
				
			||||
				this.throwbackInfo(pc, "Drop Aggro Range is now set to " + amount); | 
				
			||||
				break; | 
				
			||||
			case "patroldivisor": | 
				
			||||
				MobileFSMManager.AI_PATROL_DIVISOR = amount; | 
				
			||||
				DbManager.MobBaseQueries.UPDATE_AI_DEFAULTS(); | 
				
			||||
				this.throwbackInfo(pc, "Patrol Chance is now set to " + amount); | 
				
			||||
				break; | 
				
			||||
			case "pulse": | 
				
			||||
				if (amount < 500){ | 
				
			||||
					this.throwbackError(pc, "pulse amount must be greather than 500 to execute."); | 
				
			||||
					return; | 
				
			||||
				} | 
				
			||||
				MobileFSMManager.AI_PULSE_MOB_THRESHOLD = amount; | 
				
			||||
				this.throwbackInfo(pc, "Pulse is now set to " + amount); | 
				
			||||
				break; | 
				
			||||
			case "sleepthread": | 
				
			||||
				if (amount < 500){ | 
				
			||||
					this.throwbackError(pc, "sleep amount must be greather than 500 to execute."); | 
				
			||||
					return; | 
				
			||||
				} | 
				
			||||
				MobileFSMManager.AI_THREAD_SLEEP = amount; | 
				
			||||
				this.throwbackInfo(pc, "Thread Sleep is now set to " + amount); | 
				
			||||
				break; | 
				
			||||
			case "recallrange": | 
				
			||||
				MobileFSMManager.AI_RECALL_RANGE = amount; | 
				
			||||
				DbManager.MobBaseQueries.UPDATE_AI_DEFAULTS(); | 
				
			||||
				this.throwbackInfo(pc, "Recall Range is now set to " + amount); | 
				
			||||
				break; | 
				
			||||
			case "powerdivisor": | 
				
			||||
				MobileFSMManager.AI_POWER_DIVISOR = amount; | 
				
			||||
				DbManager.MobBaseQueries.UPDATE_AI_DEFAULTS(); | 
				
			||||
				this.throwbackInfo(pc, "Power Divisor is now set to " + amount); | 
				
			||||
				break; | 
				
			||||
			case "losehate": | 
				
			||||
				MBServerStatics.PLAYER_HATE_DELIMITER = amount; | 
				
			||||
				break; | 
				
			||||
			case "hatemodcombat": | 
				
			||||
				MBServerStatics.PLAYER_COMBAT_HATE_MODIFIER = amount; | 
				
			||||
				default: | 
				
			||||
					this.throwbackError(pc, words[0] + " is not a valid AI Command."); | 
				
			||||
					break; | 
				
			||||
		} | 
				
			||||
	} | 
				
			||||
 | 
				
			||||
	@Override | 
				
			||||
	protected String _getHelpString() { | 
				
			||||
		String help = "Modifies Mob AI Statics. Commands:"; | 
				
			||||
		help += "\n AGGRORANGE: Sets the range when a mob will aggro it's target. Aggro range is currently " + MobileFSMManager.AI_BASE_AGGRO_RANGE; | 
				
			||||
		help += "\n DROPAGGRORANGE: Sets the range when a mob will drop aggro from it's target. Drop aggro range is currently " + MobileFSMManager.AI_DROP_AGGRO_RANGE; | 
				
			||||
		help += "\n PATROLDIVISOR: Sets the Patrol Divisor for Mob AI. Setting this will give a 1/[amount] chance to parol the area. Patrol Chance is currently 1/" + MobileFSMManager.AI_PATROL_DIVISOR; | 
				
			||||
		help += "\n PULSE: sets how often to run mob's AI. Measured in MS. Pulse is currently  " + MobileFSMManager.AI_PULSE_MOB_THRESHOLD + "ms."; | 
				
			||||
		help += "\n SLEEPTHREAD: Sets how long to sleep the AI for ALL mobs.Thread sleep is currently " + MobileFSMManager.AI_THREAD_SLEEP + "ms."; | 
				
			||||
		help += "\n RECALLRANGE: Sets the range of a mob to recall back to it's bind location. Recall range is currently " + MobileFSMManager.AI_RECALL_RANGE; | 
				
			||||
		help += "\n POWERDIVISOR: Sets the Power Divisor for Mob AI.Setting this will give a 1/[amount] chance to use power on a player. Power Divisor is currently " + MobileFSMManager.AI_POWER_DIVISOR; | 
				
			||||
		help += "\n LOSEHATE: Sets the amount per second to reduce hate amount for player while they are idle. Hate Delimiter is currently " + MBServerStatics.PLAYER_HATE_DELIMITER; | 
				
			||||
		help += "\n HATEMODCOMBAT: sets the modifier for Hate value for Combat. Hate Value is `Damage *[HATEMODCOMBAT]`.Hate Mod Combat is currently " + MBServerStatics.PLAYER_COMBAT_HATE_MODIFIER; | 
				
			||||
 | 
				
			||||
		return help; | 
				
			||||
	} | 
				
			||||
 | 
				
			||||
	@Override | 
				
			||||
	protected String _getUsageString() { | 
				
			||||
		String usage = "' /setai  `command` `amount` `"; | 
				
			||||
		usage += '\n' + _getHelpString(); | 
				
			||||
		return usage; | 
				
			||||
	} | 
				
			||||
 | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue