levelup+autoguild script
This commit is contained in:
		
							parent
							
								
									8fa12002ad
								
							
						
					
					
						commit
						6fc771b042
					
				@ -16,6 +16,7 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// This is where scripts' loading functions should be declared:
 | 
			
		||||
void AddSC_mod_mxw_autoguild();
 | 
			
		||||
void AddSC_mod_mxw_dynamicxp();
 | 
			
		||||
void AddSC_mod_mxw_sololfg();
 | 
			
		||||
void AddSC_solocraft();
 | 
			
		||||
@ -27,6 +28,7 @@ void AddSC_solocraft();
 | 
			
		||||
// void Add${NameOfDirectory}Scripts()
 | 
			
		||||
void AddCustomScripts()
 | 
			
		||||
{
 | 
			
		||||
    AddSC_mod_mxw_autoguild();
 | 
			
		||||
    AddSC_mod_mxw_dynamicxp();
 | 
			
		||||
    AddSC_mod_mxw_sololfg();
 | 
			
		||||
    AddSC_solocraft();    	
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								src/server/scripts/Custom/mod_mxw_autoguild.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/server/scripts/Custom/mod_mxw_autoguild.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
#include "ScriptMgr.h"
 | 
			
		||||
#include "Player.h"
 | 
			
		||||
#include "GuildMgr.h"
 | 
			
		||||
#include "Config.h"
 | 
			
		||||
#include "Guild.h"
 | 
			
		||||
 | 
			
		||||
class mod_mxw_autoguild : public PlayerScript
 | 
			
		||||
{
 | 
			
		||||
    public:
 | 
			
		||||
        mod_mxw_autoguild() : PlayerScript("mod_mxw_autoguild") { }
 | 
			
		||||
 | 
			
		||||
    void OnLogin(Player* player, bool firstLogin)
 | 
			
		||||
    {
 | 
			
		||||
        if (firstLogin)
 | 
			
		||||
        {
 | 
			
		||||
            uint32 GUILD_ID_ALLIANCE = sConfigMgr->GetIntDefault("AutoGuild.Alliance", 0);
 | 
			
		||||
            uint32 GUILD_ID_HORDE = sConfigMgr->GetIntDefault("AutoGuild.Horde", 0);
 | 
			
		||||
            Guild* guild = sGuildMgr->GetGuildById(player->GetTeam() == ALLIANCE ? GUILD_ID_ALLIANCE : GUILD_ID_HORDE);
 | 
			
		||||
            SQLTransaction trans(nullptr);
 | 
			
		||||
            if (guild)
 | 
			
		||||
                guild->AddMember(player->GetGUID());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void AddSC_mod_mxw_autoguild()
 | 
			
		||||
{
 | 
			
		||||
    new mod_mxw_autoguild();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										72
									
								
								src/server/scripts/Custom/mod_mxw_levelup.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								src/server/scripts/Custom/mod_mxw_levelup.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,72 @@
 | 
			
		||||
//// MxWoW Official Module
 | 
			
		||||
//// Level Up
 | 
			
		||||
//// Dev:       mikx
 | 
			
		||||
//// Git:       https://mxgit.ovh/MxWoW/mod_mxwow_levelup
 | 
			
		||||
 | 
			
		||||
#include "Configuration/Config.h"
 | 
			
		||||
#include "ScriptMgr.h"
 | 
			
		||||
#include "Player.h"
 | 
			
		||||
#include "Chat.h"
 | 
			
		||||
 | 
			
		||||
class mod_mxw_levelup : public PlayerScript
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    mod_mxw_levelup() : PlayerScript("mod_mxw_levelup") { }
 | 
			
		||||
 | 
			
		||||
    void OnLogin(Player* player) override
 | 
			
		||||
    {
 | 
			
		||||
        ChatHandler(player->GetSession()).SendSysMessage("This server is running the |cff4CFF00MxW Level Up |rscript.");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void OnLevelChanged(Player * player, uint8 oldLevel)
 | 
			
		||||
    {
 | 
			
		||||
        Map* map = player->GetMap();
 | 
			
		||||
        std::string mapName = map->GetMapName();
 | 
			
		||||
        std::ostringstream ss;
 | 
			
		||||
        if (sConfigMgr->GetBoolDefault("LevelUp.Enabled", true))
 | 
			
		||||
        {
 | 
			
		||||
            ss << "|cffabeeff[MxW] [" << GetPlayerColor(player) << player->GetName() << "|cffabeeff][|cff09ff00"<< mapName <<"|cffabeeff] est maintenant niveau |cff09ff00"<< oldLevel + 1 <<"|cffabeeff.";
 | 
			
		||||
            sWorld->SendServerMessage(SERVER_MSG_STRING, ss.str().c_str());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    std::string GetPlayerColor(const Player* p)
 | 
			
		||||
    {
 | 
			
		||||
        switch (p->getClass())
 | 
			
		||||
        {
 | 
			
		||||
        case CLASS_ROGUE:
 | 
			
		||||
            return "|cffFFF468";
 | 
			
		||||
        case CLASS_DEATH_KNIGHT:
 | 
			
		||||
            return "|cffC41E3A";
 | 
			
		||||
        case CLASS_WARRIOR:
 | 
			
		||||
            return "|cffC69B6D";
 | 
			
		||||
        case CLASS_PRIEST:
 | 
			
		||||
            return "|cffFFFFFF";
 | 
			
		||||
        case CLASS_MAGE:
 | 
			
		||||
            return "|cff3FC7EB";
 | 
			
		||||
        case CLASS_PALADIN:
 | 
			
		||||
            return "|cffF48CBA";
 | 
			
		||||
        case CLASS_HUNTER:
 | 
			
		||||
            return "|cffAAD372";
 | 
			
		||||
        case CLASS_DRUID:
 | 
			
		||||
            return "|cffFF7C0A";
 | 
			
		||||
        case CLASS_SHAMAN:
 | 
			
		||||
            return "|cff0070DD";
 | 
			
		||||
        case CLASS_WARLOCK:
 | 
			
		||||
            return "|cff8788EE";
 | 
			
		||||
        case CLASS_DEMON_HUNTER:
 | 
			
		||||
            return "|cffA330C9";
 | 
			
		||||
        case CLASS_MONK:
 | 
			
		||||
            return "|cff00FF98";
 | 
			
		||||
        default:
 | 
			
		||||
            return "n/d";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void AddSC_mod_mxw_levelup()
 | 
			
		||||
{
 | 
			
		||||
    new mod_mxw_levelup();
 | 
			
		||||
}
 | 
			
		||||
@ -88,14 +88,14 @@ namespace {
 | 
			
		||||
 | 
			
		||||
        solocraft_player_instance_handler() : PlayerScript("solocraft_player_instance_handler")
 | 
			
		||||
        {
 | 
			
		||||
            TC_LOG_INFO(LOG_FILTER_WORLDSERVER, "[Solocraft] solocraft_player_instance_handler Loaded");
 | 
			
		||||
            TC_LOG_INFO(LOG_FILTER_PLAYER, "[Solocraft] solocraft_player_instance_handler Loaded");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void OnMapChanged(Player *player) override
 | 
			
		||||
        void OnMapChanged(Player* player) override
 | 
			
		||||
        {
 | 
			
		||||
            if (sConfigMgr->GetBoolDefault("Solocraft.Enable", true))
 | 
			
		||||
            {
 | 
			
		||||
                Map *map = player->GetMap();
 | 
			
		||||
                Map* map = player->GetMap();
 | 
			
		||||
                float difficulty = CalculateDifficulty(map, player);
 | 
			
		||||
                int numInGroup = GetNumInGroup(player);
 | 
			
		||||
                ApplyBuffs(player, map, difficulty, numInGroup);
 | 
			
		||||
@ -115,7 +115,7 @@ namespace {
 | 
			
		||||
        const float D40 = sConfigMgr->GetFloatDefault("Solocraft.Raid30", 40.0);
 | 
			
		||||
 | 
			
		||||
        // Set the instance difficulty
 | 
			
		||||
        float CalculateDifficulty(Map *map, Player *player) {
 | 
			
		||||
        float CalculateDifficulty(Map* map, Player* player) {
 | 
			
		||||
            float difficulty = 1.0;
 | 
			
		||||
            if (map) {
 | 
			
		||||
                if (map->IsRaid())
 | 
			
		||||
@ -131,7 +131,7 @@ namespace {
 | 
			
		||||
                    case 40:
 | 
			
		||||
                        difficulty = D40; break;
 | 
			
		||||
                    default:
 | 
			
		||||
                        TC_LOG_WARN(LOG_FILTER_WORLDSERVER, "[SoloCraft] Unrecognized max players %d, defaulting to 10 man difficulty",
 | 
			
		||||
                        TC_LOG_WARN(LOG_FILTER_PLAYER, "[SoloCraft] Unrecognized max players %d, defaulting to 10 man difficulty",
 | 
			
		||||
                            map->GetMapDifficulty()->MaxPlayers);
 | 
			
		||||
                        difficulty = D10;
 | 
			
		||||
                    }
 | 
			
		||||
@ -150,9 +150,9 @@ namespace {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Get the groups size
 | 
			
		||||
        int GetNumInGroup(Player *player) {
 | 
			
		||||
        int GetNumInGroup(Player* player) {
 | 
			
		||||
            int numInGroup = 1;
 | 
			
		||||
            Group *group = player->GetGroup();
 | 
			
		||||
            Group* group = player->GetGroup();
 | 
			
		||||
            if (group) {
 | 
			
		||||
                Group::MemberSlotList const& groupMembers = group->GetMemberSlots();
 | 
			
		||||
                numInGroup = groupMembers.size();
 | 
			
		||||
@ -161,7 +161,7 @@ namespace {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Apply the player buffs
 | 
			
		||||
        void ApplyBuffs(Player *player, Map *map, float difficulty, int numInGroup)
 | 
			
		||||
        void ApplyBuffs(Player* player, Map* map, float difficulty, int numInGroup)
 | 
			
		||||
        {
 | 
			
		||||
            ClearBuffs(player, map);
 | 
			
		||||
 | 
			
		||||
@ -193,7 +193,7 @@ namespace {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void ClearBuffs(Player *player, Map *map)
 | 
			
		||||
        void ClearBuffs(Player* player, Map* map)
 | 
			
		||||
        {
 | 
			
		||||
            std::map<ObjectGuid, float>::iterator unitDifficultyIterator = _unitDifficulty.find(player->GetGUID());
 | 
			
		||||
            if (unitDifficultyIterator != _unitDifficulty.end())
 | 
			
		||||
 | 
			
		||||
@ -2993,6 +2993,15 @@ QuestPOI.DisableErrors = 1
 | 
			
		||||
###################################################################################################
 | 
			
		||||
# CUSTOM SETTINGS #################################################################################
 | 
			
		||||
###################################################################################################
 | 
			
		||||
# Auto Guild #
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
AutoGuild.Alliance = 1
 | 
			
		||||
AutoGuild.Horde = 1
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
###################################################################################################
 | 
			
		||||
###################################################################################################
 | 
			
		||||
# Dynamic XP Rate #
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user