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