> Magicbane is an emulator for the long dead but much beloved Ubisoft MMO, [Shadowbane](https://en.wikipedia.org/wiki/Shadowbane).
The project was founded in 2013 with the concept of free availability of gameplay; players unencumbered by any factor other than a desire to again play a game they once loved. A game where the developers do not play is guaranteed to be the fairest game.
> Magicbane is an emulator for the long dead but much beloved Ubisoft
> The project was founded in 2013 with the concept of free availability of gameplay; players unencumbered by any factor
> other than a desire to again play a game they once loved. A game where the developers do not play is guaranteed to be
> the fairest game.
The Magicbane Team has wanted to open source Shadowbane for half a decade. We are excited to now finally have the opportunity, along with some new technology, to truly democratize Shadowbane.
The Magicbane Team has wanted to open source Shadowbane for half a decade. We are excited to now finally have the
opportunity, along with some new technology, to truly democratize Shadowbane.
- Written in some 80k lines of Java 8 and bash.
- Project with real infrastructure; Production and development servers supporting multiple containerized apps.
@ -27,4 +33,5 @@ The Magicbane Team has wanted to open source Shadowbane for half a decade. We a
@@ -27,4 +33,5 @@ The Magicbane Team has wanted to open source Shadowbane for half a decade. We a
## Support
Documentation is available through the Magicbane [Wiki](http://repo.magicbane.com/MagicBane/Server/wiki) and [Discord server](www.magicbane.com).
Documentation is available through the Magicbane [Wiki](http://repo.magicbane.com/MagicBane/Server/wiki)
@ -29,7 +29,6 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@@ -29,7 +29,6 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
AbstractGameObjecttarget){
if(ItemProductionManager.FailedItems.isEmpty())
return;
@ -38,10 +37,10 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@@ -38,10 +37,10 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
StringnewLine="\r\n";
StringauditFailedItem="Failed Item Name | Prefix | Suffix | NPC | Contract | Player | ";
@ -49,10 +48,10 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@@ -49,10 +48,10 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
StringitemName="";
NPCnpc=NPC.getFromCache(failedItem.getNpcUID());
if(npc==null){
if(npc==null){
npcName="null";
contractName="null";
}else{
}else{
npcName=npc.getName();
if(npc.getContract()!=null)
contractName=npc.getContract().getName();
@ -67,16 +66,16 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@@ -67,16 +66,16 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@ -85,11 +84,11 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@@ -85,11 +84,11 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@ -98,15 +97,13 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
@@ -98,15 +97,13 @@ public class AuditFailedItemsCmd extends AbstractDevCmd {
this.throwbackError(pc,words[0]+" is not a valid AI Command.");
break;
}
}
@Override
protectedString_getHelpString(){
Stringhelp="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;
@ -60,19 +59,19 @@ public class SetBuildingAltitudeCmd extends AbstractDevCmd {
@@ -60,19 +59,19 @@ public class SetBuildingAltitudeCmd extends AbstractDevCmd {