I have modified the patch:
diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp
index ae7e3f1..2e5de34 100644
--- a/src/game/CharacterHandler.cpp
+++ b/src/game/CharacterHandler.cpp
@@ -15,10 +15,11 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "Common.h"
+#include "Config/ConfigEnv.h"
#include "Database/DatabaseEnv.h"
#include "WorldPacket.h"
#include "SharedDefines.h"
#include "WorldSession.h"
#include "Opcodes.h"
@@ -223,10 +224,47 @@ void WorldSession::HandleCharCreateOpcode( WorldPacket & recv_data )
return;
}
}
}
+ //=========================================//
+ ///Character Create Disable PATCH by DLxko///
+ ///Modified by Fabian ///
+ //=========================================//
+
+ //First we need get this from config =D for all races /classes
+ bool warrior = sConfig.GetBoolDefault("WarriorCharacter.Enable", true);
+ bool paladin = sConfig.GetBoolDefault("PaladinCharacter.Enable", true);
+ bool hunter = sConfig.GetBoolDefault("HunterCharacter.Enable", true);
+ bool rogue = sConfig.GetBoolDefault("RogueCharacter.Enable", true);
+ bool priest = sConfig.GetBoolDefault("PriestCharacter.Enable", true);
+ bool shaman = sConfig.GetBoolDefault("ShamanCharacter.Enable", true);
+ bool mage = sConfig.GetBoolDefault("MageCharacter.Enable", true);
+ bool warlock = sConfig.GetBoolDefault("WarlockCharacter.Enable", true);
+
+ bool dwarf = sConfig.GetBoolDefault("DwarfCharacter.Enable", true);
+ bool gnome = sConfig.GetBoolDefault( "GnomeCharacter.Enable", true);
+ bool human = sConfig.GetBoolDefault("HumanCharacter.Enable", true);
+ bool nightelf = sConfig.GetBoolDefault("NightElfCharacter.Enable", true);
+ bool orc = sConfig.GetBoolDefault("OrcCharacter.Enable", true);
+ bool tauren = sConfig.GetBoolDefault("TaurenCharacter.Enable", true);
+ bool troll = sConfig.GetBoolDefault("TrollCharacter.Enable", true);
+ bool undead = sConfig.GetBoolDefault("UndeadCharacter.Enable", true);
+ bool bloodelf = sConfig.GetBoolDefault("BloodElfCharacter.Enable", true);
+ bool draenei = sConfig.GetBoolDefault("DraeneiCharacter.Enable", true);
+
+ //If disabled class return error
+ if (!warrior && class_ == CLASS_WARRIOR || !paladin && class_ == CLASS_PALADIN || !hunter && class_ == CLASS_HUNTER || !rogue && class_ == CLASS_ROGUE || !priest && class_ == CLASS_PRIEST
+ || !shaman && class_ == CLASS_SHAMAN || !mage && class_ == CLASS_MAGE || !warlock && class_ == CLASS_WARLOCK || !dwarf && race_ == RACE_DWARF || !gnome && race_ == RACE_GNOME
+ || !human && race_ == RACE_HUMAN || !nightelf && race_ == RACE_NIGHTELF || !orc && race_ == RACE_ORC || !tauren && race_ == RACE_TAUREN || !troll && race_ == RACE_TROLL
+ || !undead && race_ == RACE_UNDEAD_PLAYER || !bloodelf && race_ == RACE_BLOODELF || !draenei && race_ == RACE_DRAENEI)
+ {
+ data << uint8(CHAR_CREATE_DISABLED);
+ SendPacket( &data );
+ return;
+ }
+
ChrClassesEntry const* classEntry = sChrClassesStore.LookupEntry(class_);
ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(race_);
if( !classEntry || !raceEntry )
{
diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in
index 5d4053f..2adef11 100644
--- a/src/mangosd/mangosd.conf.dist.in
+++ b/src/mangosd/mangosd.conf.dist.in
@@ -1523,10 +1523,47 @@ Ra.Stricted = 1
SOAP.Enabled = 0
SOAP.IP = 127.0.0.1
SOAP.Port = 7878
###################################################################################################################
+# NEW CHARACTER CREATE
+#
+# RaceCharacter.Enable
+# (A: Human, Dwarf, Gnome, Night Elf, Draenei / H: Orc, Troll, Undead, Tauren, Blood Elf)
+# 0 - disable (blocked)
+# Default: 1 - enable (enabled)
+#
+# ClassCharacter.Enable
+# (Warrior, Paladin, Shaman, Hunter, Druid, Rogue, Priest, Mage, Warlock)
+# 0 - disable (blocked)
+# Default: 1 - enable (enabled)
+#
+###################################################################################################################
+
+HumanCharacter.Enable = 1
+DwarfCharacter.Enable = 1
+GnomeCharacter.Enable = 1
+NightElfCharacter.Enable = 1
+DraeneiCharacter.Enable = 1
+OrcCharacter.Enable = 1
+TrollCharacter.Enable = 1
+UndeadCharacter.Enable = 1
+TaurenCharacter.Enable = 1
+BloodElfCharacter.Enable = 1
+
+WarriorCharacter.Enable = 1
+PaladinCharacter.Enable = 1
+ShamanCharacter.Enable = 1
+HunterCharacter.Enable = 1
+DruidCharacter.Enable = 1
+RogueCharacter.Enable = 1
+PriestCharacter.Enable = 1
+MageCharacter.Enable = 1
+WarlockCharacter.Enable = 1
+
+###################################################################################################################