forked from MagicBane/Server
				
			
				 2 changed files with 0 additions and 128 deletions
			
			
		@ -1,127 +0,0 @@
				@@ -1,127 +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