Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

Page 1 of 6 123456 LastLast
Results 1 to 15 of 78
  1. #1
    Gregon13 OldSchoolGZ is offline
    MemberRank
    Jan 2012 Join Date
    CanadaLocation
    244Posts

    Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    ***Apply Hotfixes***

    Well, as majority of you know I'm Gregon13, this is the source modified once more Fixed some bugs in my last one (like Archtype) and modified CTF a bit further you need to add this to your messages.xml

    messages.xml
    Code:
    <!-- CTF -->
    <MSG id="9915">Capture The Flag</MSG>
    VS2003 - Suggested Build - Korea_Release_Publish

    Serialkey works again for all builds
    Full Anti-Lead + Damage Counter

    Enjoy!

    Download: Gregon13Source.7z
    Password: RaGEZONE!

    ****Hotfix****

    Forgot to change something I was playing around with

    Spoiler:

    Gunz -> Network -> ZGameTypeList.h - Replace whole thing with this
    Code:
    #pragma once
    
    #include <list>
    #include <map>
    
    using std::list;
    using std::map;
    
    
    class ZGameTypeConfigData
    {
    public:
    	int		m_nValue;
    	char	m_szString[ 16];
    };
    
    typedef list< ZGameTypeConfigData* >	MGAMETYPECFGDATA;
    
    
    
    class ZGameTypeConfig
    {
    public:
    	// Round
    	MGAMETYPECFGDATA					m_Round;
    	int									m_nDefaultRound;
    
    	// Limit time
    	MGAMETYPECFGDATA					m_LimitTime;
    	int									m_nDefaultLimitTime;
    
    	// Max players
    	MGAMETYPECFGDATA					m_MaxPlayers;
    	int									m_nDefaultMaxPlayers;
    
    
    
    	ZGameTypeConfig();
    	virtual ~ZGameTypeConfig();
    
    	MGAMETYPECFGDATA GetRoundList()			{ return m_Round; }
    	const int GetSizeOfRoundList()			{ return (int)m_Round.size(); }
    	const int GetDefaultRound()				{ return m_nDefaultRound; }
    
    	MGAMETYPECFGDATA GetLimitTimeList()		{ return m_LimitTime; }
    	const int GetSizeOfLimitTimeList()		{ return (int)m_LimitTime.size(); }
    	const int GetDefaultLimitTime()			{ return m_nDefaultLimitTime; }
    
    	MGAMETYPECFGDATA GetMaxPlayersList()	{ return m_MaxPlayers; }
    	const int GetSizeOfMaxPlayers()			{ return (int)m_MaxPlayers.size(); }
    	const int GetDefaultMaxPlayers()		{ return m_nDefaultMaxPlayers; }
    };
    
    typedef map< int, ZGameTypeConfig* >	MGAMETYPECFG;
    
    
    
    class ZGameTypeList
    {
    private :
    	MGAMETYPECFG	m_GameTypeCfg;
    
    
    public:
    	ZGameTypeList();
    	virtual ~ZGameTypeList();
    
    	void Clear();
    
    	bool ParseGameTypeList( int nGameTypeNum, MXmlElement& element);
    	ZGameTypeConfig* GetGameTypeCfg( int nGameTypeNum);
    
    /*
    	MGAMETYPECFGDATA GetRoundList( int nGameType);
    	const int GetSizeOfRoundList( int nGameType);
    	const int GetDefaultRound( int nGameType);
    
    	MGAMETYPECFGDATA GetLimitTimeList( int nGameType);
    	const int GetSizeOfLimitTimeList( int nGameType);
    	const int GetDefaultLimitTime( int nGameType);
    
    	MGAMETYPECFGDATA GetMaxPlayersList( int nGameType);
    	const int GetSizeOfMaxPlayers( int nGameType);
    	const int GetDefaultMaxPlayers( int nGameType);
    */
    
    private :
    	bool ParseRound( ZGameTypeConfig* pConfig, MXmlElement& element);
    	bool ParseLimitTime( ZGameTypeConfig* pConfig, MXmlElement& element);
    	bool ParseMaxPlayers( ZGameTypeConfig* pConfig, MXmlElement& element);
    };


    ****Hotfix 2****

    One More Thing lool

    Spoiler:


    CSCommon -> MatchServer -> Base -> MBaseGameType.h

    From :

    Code:
    inline bool MBaseGameTypeCatalogue::IsWaitForRoundEnd(MMATCH_GAMETYPE nGameType)
    {
    	// ¶ó¿îµå ³¡³¯¶§±îÁö ´ë±â¸ðµå Çϴ°¡?
    
    	if ((nGameType == MMATCH_GAMETYPE_DEATHMATCH_TEAM) ||
    		(nGameType == MMATCH_GAMETYPE_DUEL) ||
    		(nGameType == MMATCH_GAMETYPE_GLADIATOR_TEAM) ||
    		(nGameType == MMATCH_GAMETYPE_ASSASSINATE) ||
    		(nGameType == MMATCH_GAMETYPE_DUELTOURNAMENT) ||
    		(nGameType == MMATCH_GAMETYPE_CTF))
    	{
    		return true;
    	}
    	return false;
    }
    To:

    Code:
    inline bool MBaseGameTypeCatalogue::IsWaitForRoundEnd(MMATCH_GAMETYPE nGameType)
    {
    	// ¶ó¿îµå ³¡³¯¶§±îÁö ´ë±â¸ðµå Çϴ°¡?
    
    	if ((nGameType == MMATCH_GAMETYPE_DEATHMATCH_TEAM) ||
    		(nGameType == MMATCH_GAMETYPE_DUEL) ||
    		(nGameType == MMATCH_GAMETYPE_GLADIATOR_TEAM) ||
    		(nGameType == MMATCH_GAMETYPE_ASSASSINATE) ||
    		(nGameType == MMATCH_GAMETYPE_DUELTOURNAMENT))
    	{
    		return true;
    	}
    	return false;
    }

    Spawn FIX - courtesy of Thajj

    Spoiler:

    Replace ZMatch.cpp

    Code:
    #include "stdafx.h"
    
    #include "ZMatch.h"
    #include "ZGame.h"
    #include <windows.h>
    #include "ZCharacterManager.h"
    #include "ZCharacter.h"
    #include "ZPost.h"
    #include "ZGameInterface.h"
    #include "ZApplication.h"
    #include "ZGameClient.h"
    #include "ZScreenEffectManager.h"
    #include "ZActionDef.h"
    #include "ZWorldItem.h"
    #include "ZApplication.h"
    #include "ZRule.h"
    #include "ZMapDesc.h"
    #include "MMatchGlobal.h"
    #include "ZRuleDuel.h"
    #include "ZRuleDuelTournament.h"
    #include "ZInput.h"
    
    #define READY_COUNT    5
    
    ZMatch::ZMatch() : m_pRule(NULL)
    {
        m_pStageSetting = ZGetGameClient()->GetMatchStageSetting();
        m_nRoundState = MMATCH_ROUNDSTATE_PREPARE;
        m_nLastDeadTime = 0;
        m_nNowTime = 0;
        m_nSoloSpawnTime = -1;
        memset(m_nTeamScore, 0, sizeof(m_nTeamScore));
        memset(m_nTeamKillCount, 0, sizeof(m_nTeamKillCount));
    }
    
    ZMatch::~ZMatch()
    {
    
    }
    
    bool ZMatch::Create()
    {
        m_nNowTime = 0;
        m_nCurrRound = 0;
        memset(m_nTeamScore, 0, sizeof(m_nTeamScore));
        memset(m_nTeamKillCount, 0, sizeof(m_nTeamKillCount));
    
        m_pRule = ZRule::CreateRule(this, GetMatchType());
    
        return true;
    }
    
    void ZMatch::Destroy()
    {
        if (m_pRule)
        {
            delete m_pRule; m_pRule = NULL;
        }
    
    }
    
    void ZMatch::SetRound(int nCurrRound)
    {
        m_nCurrRound = nCurrRound;
    //    memset(m_nTeamKillCount, 0, sizeof(m_nTeamKillCount));
    }
    
    
    void ZMatch::Update(float fDelta)
    {
        m_nNowTime = timeGetTime();
    
        switch (GetRoundState())
        {
        case MMATCH_ROUNDSTATE_PREPARE:
            {
    
            }
            break;
        case MMATCH_ROUNDSTATE_PRE_COUNTDOWN:
            {
            }
            break;
        case MMATCH_ROUNDSTATE_COUNTDOWN:
            {
                if ((m_nNowTime - m_nStartTime) > ((READY_COUNT+1) * 1000))
                {
                    m_nStartTime = m_nNowTime;
                }
            }
            break;
        case MMATCH_ROUNDSTATE_PLAY:
            {
                ProcessRespawn();
            }
            break;
        }
    
        if (m_pRule) m_pRule->Update(fDelta);
    }
    
    
    void ZMatch::ProcessRespawn()
    {
    #ifdef _QUEST
        if (ZGetGameTypeManager()->IsQuestDerived(GetMatchType())) return;
    #endif
        // µ¥¾²¸??¡?? °?¿? ???¸¸? ¹?·? »?¾?³­´?.
        if (!IsWaitForRoundEnd() && ZGetGame()->m_pMyCharacter)
        {
            static bool bLastDead = false;
            if (ZGetGame()->m_pMyCharacter->IsDie())
            {
                if (bLastDead == false) {
                    m_nLastDeadTime = m_nNowTime;    // ???÷ ½?°£
                }
    
                //¹?????÷¸??½???¼® 
                /*ZBuffSummary* pBuffSummary = ZGetGame()->m_pMyCharacter->GetCharacterBuff()->GetBuffSummary();
                int nDelayAfterDying = pBuffSummary->GetRespawnTime(RESPAWN_DELAYTIME_AFTER_DYING);
                */
                int nDelayAfterDying = RESPAWN_DELAYTIME_AFTER_DYING;
    
                m_nSoloSpawnTime = m_nNowTime - m_nLastDeadTime;
    
                if (m_nSoloSpawnTime >= RESPAWN_DELAYTIME_AFTER_DYING_MAX)    // ??¾?¼­ ¾?¹«°?µµ ¾?´©¸£°? ???¸¸? 15???? ¸®½÷??
                {
                    SoloSpawn();
                }
                else if (m_nSoloSpawnTime >= nDelayAfterDying)
                {
                    static bool st_bCapturedActionKey = false;
                    bool bNow = ZIsActionKeyPressed(ZACTION_USE_WEAPON) || ZIsActionKeyPressed(ZACTION_JUMP);
    
                    if ((st_bCapturedActionKey == true) && (bNow == false)) {
                        SoloSpawn();
                    }
    
                    st_bCapturedActionKey = bNow;
                }
    
                
    
    
            }
    
            bLastDead = ZGetGame()->m_pMyCharacter->IsDie();
        }
    
    }
    
    int ZMatch::GetRoundReadyCount(void)
    {
        return ( READY_COUNT - (timeGetTime() - m_nStartTime) / 1000 );
    }
    
    
    void ZMatch::OnDrawGameMessage()
    {
    
    #ifndef _PUBLISH
        // for debug ½?°£ ?¥½?
        float fTime=ZGetGame()->GetTime();
        int nTimeMinute=fTime/60.f;
        fTime=fmod(fTime,60.f);
        int nTimeSecond=fTime;
        fTime=fmod(fTime,1.f);
    
        char szTimeMessage[256] = "";
        sprintf(szTimeMessage, "%d:%02d.%02d",nTimeMinute,nTimeSecond,int(fTime*100.f));
        ZApplication::GetGameInterface()->SetTextWidget("Time", szTimeMessage);
    #endif
    
    #define CENTERMESSAGE    "CenterMessage"
    
        switch (GetRoundState())
        {
        case MMATCH_ROUNDSTATE_PREPARE:
            {
            }
            break;
        case MMATCH_ROUNDSTATE_COUNTDOWN:
            {
    
            }
            break;
        case MMATCH_ROUNDSTATE_PLAY:
            {
    
            }
            break;
        case MMATCH_ROUNDSTATE_FINISH:
            {
    
            }
            break;
        default:
            {
    
            }
            break;
        }
    
    }
    
    
    
    void ZMatch::SoloSpawn()
    {
        if (GetMatchType() == MMATCH_GAMETYPE_DUEL) return;
        if (GetMatchType() == MMATCH_GAMETYPE_DUELTOURNAMENT) return;
    
        if (ZGetGame()->m_pMyCharacter->IsDie())
        {
            rvector pos = rvector(0.0f, 0.0f, 0.0f);
            rvector dir = rvector(0.0f, 1.0f, 0.0f);
    
            ZMapSpawnData* pSpawnData = NULL;
            
            if (IsTeamPlay())
            {
                int nSpawnIndex[2] = { 0, 0 };
                for (int i = 0; i < 2; i++)
                    if (ZGetGame()->m_pMyCharacter->GetTeamID() == MMT_RED + i)
                        pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetTeamData(i, nSpawnIndex[i]);
            }
            else
                pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetSoloRandomData();
            
    
            if (pSpawnData == NULL)
            {
    //            _ASSERT(0);
            }
            else
            {
                if (ZApplication::GetInstance()->GetLaunchMode() == ZApplication::ZLAUNCH_MODE_DEBUG) {
                    if (ZGetGame()->GetSpawnRequested() == false) {
                        ZPostRequestSpawn(ZGetMyUID(), pSpawnData->m_Pos, pSpawnData->m_Dir);
                        ZGetGame()->SetSpawnRequested(true);
                    }
    #ifdef _DEBUG
                    ZPostSpawn(pSpawnData->m_Pos, pSpawnData->m_Dir);
    #endif
                } else {
                    if (ZGetGame()->GetSpawnRequested() == false) {
                        ZPostRequestSpawn(ZGetMyUID(), pSpawnData->m_Pos, pSpawnData->m_Dir);
                        ZGetGame()->SetSpawnRequested(true);
                    }
                }    
            }
            
            m_nSoloSpawnTime = -1;
        }
    }
    
    
    
    void ZMatch::InitCharactersPosition()
    {
        // ?????? °?¿?
        if (IsTeamPlay())
        {
            int nSpawnIndex[ 2] = { 0, 0 };
    
            for (ZCharacterManager::iterator itor = ZGetGame()->m_CharacterManager.begin();
                itor != ZGetGame()->m_CharacterManager.end(); ++itor)
            {
                ZCharacter* pCharacter = (*itor).second;
                for (int i = 0; i < 2; i++)
                {
                    if (pCharacter->GetTeamID() == MMT_RED + i)
                    {
                        ZMapSpawnData* pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetTeamData(i, nSpawnIndex[i]);
                        if (pSpawnData != NULL)
                        {
                            pCharacter->SetPosition(pSpawnData->m_Pos);
                            pCharacter->SetDirection(pSpawnData->m_Dir);
    
                            nSpawnIndex[i]++;
                        }
                    }
                }
            }
    
            return;
        }
    
        // µ?¾?¸?µ? ?? °?¿?
        else if ( ZGetGame()->GetMatch()->GetMatchType() == MMATCH_GAMETYPE_DUEL)
        {
            ZRuleDuel* pDuel = (ZRuleDuel*)ZGetGameInterface()->GetGame()->GetMatch()->GetRule();
            if ( pDuel)
            {
                int nIndex = 2;
                if ( pDuel->QInfo.m_uidChampion == ZGetMyUID())
                    nIndex = 0;
                else if ( pDuel->QInfo.m_uidChallenger == ZGetMyUID())
                    nIndex = 1;
    
                // µ?¾? ??¿? ¸???¸? ¸? ?³?½°? µ?¹??° ?§?¡
                if ( MGetMapDescMgr()->IsMapOnlyDuel( ZGetGameClient()->GetMatchStageSetting()->GetMapIndex()))
                {
                    ZMapSpawnData* pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetData( nIndex);
                    if ( pSpawnData != NULL)
                    {
                        ZGetGame()->m_pMyCharacter->SetPosition( pSpawnData->m_Pos);
                        ZGetGame()->m_pMyCharacter->SetDirection( pSpawnData->m_Dir);
                    }
                }
    
                // µ?¾? ??¿? ¸??? ¾?´?¸? ????°? °°?÷ ¹?½?
                else
                {
                    ZMapSpawnData* pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetTeamData( nIndex, 0);
                    if (pSpawnData != NULL)
                    {
                        ZGetGame()->m_pMyCharacter->SetPosition( pSpawnData->m_Pos);
                        ZGetGame()->m_pMyCharacter->SetDirection( pSpawnData->m_Dir);
                    }
                }
    
                return;
            }
        }
    
        else if ( ZGetGame()->GetMatch()->GetMatchType() == MMATCH_GAMETYPE_DUELTOURNAMENT )
        {
            ZRuleDuelTournament *pDTRule = (ZRuleDuelTournament*)ZGetGameInterface()->GetGame()->GetMatch()->GetRule();
            if (pDTRule)
            {
                int nIndex = 2;
                if (pDTRule->m_DTGameInfo.uidPlayer1 == ZGetMyUID())                nIndex = 0;
                else if (pDTRule->m_DTGameInfo.uidPlayer2 == ZGetMyUID())            nIndex = 1;
    
                // µ?¾? ??¿? ¸???¸? ¸? ?³?½°? µ?¹??° ?§?¡
                if ( MGetMapDescMgr()->IsMapOnlyDuel( ZGetGameClient()->GetMatchStageSetting()->GetMapIndex()))
                {
                    ZMapSpawnData* pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetData(nIndex);
                    if (pSpawnData != NULL)
                    {
                        ZGetGame()->m_pMyCharacter->SetPosition(pSpawnData->m_Pos);
                        ZGetGame()->m_pMyCharacter->SetDirection(pSpawnData->m_Dir);
                    }
                }
    
                // µ?¾? ??¿? ¸??? ¾?´?¸? ????°? °°?÷ ¹?½?
                else
                {
                    ZMapSpawnData* pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetTeamData(nIndex, 0);
                    if (pSpawnData != NULL)
                    {
                        ZGetGame()->m_pMyCharacter->SetPosition(pSpawnData->m_Pos);
                        ZGetGame()->m_pMyCharacter->SetDirection(pSpawnData->m_Dir);
                    }
                }
    
                return;
            }
        }
    
        // ½?·??? °?¿?³× ??µµ??µµ ¾?´?¸? ·£´?
        ZMapSpawnData* pSpawnData = ZGetGame()->GetMapDesc()->GetSpawnManager()->GetSoloRandomData();
        if (pSpawnData != NULL)
        {
            ZGetGame()->m_pMyCharacter->SetPosition(pSpawnData->m_Pos);
            ZGetGame()->m_pMyCharacter->SetDirection(pSpawnData->m_Dir);
        }
    }
    
    void ZMatch::InitCharactersProperties()
    {
        for (ZCharacterManager::iterator itor = ZGetGame()->m_CharacterManager.begin();
            itor != ZGetGame()->m_CharacterManager.end(); ++itor)
        {
            ZCharacter* pCharacter = (*itor).second;
            pCharacter->InitStatus();
            pCharacter->SetVisible(true);
        }
    
    }
    
    void ZMatch::InitRound()
    {
        // ½?°£?» 0?¸·?
        ZGetGame()->InitRound();
    
        InitCharactersPosition();
        InitCharactersProperties();
    
        // ¿?µ?¾????? ??±??­
        ZGetWorldItemManager()->Reset();
    
        // ¸? ?³?½ °???½? ½÷??½??²´?.
        rvector pos = ZGetGame()->m_pMyCharacter->GetPosition();
        rvector dir = ZGetGame()->m_pMyCharacter->m_DirectionLower;
    
        m_nRoundKills = 0;
    
        bool isObserver = false;
    
    if (ZApplication::GetInstance()->GetLaunchMode() == ZApplication::ZLAUNCH_MODE_DEBUG) {
    #ifdef _DEBUG
    ZPostSpawn(pos, dir);
    #endif
    } else {
            if (ZGetGame()->GetSpawnRequested() == false) {
                if (GetMatchType() == MMATCH_GAMETYPE_DUEL)
                {
    //                ZRuleDuel* pDuel = (ZRuleDuel*)GetRule();
    //                if (pDuel->GetQueueIdx(ZGetMyUID()) <= 1){
    //                    ZPostRequestSpawn(ZGetMyUID(), pos, dir);
    //                    g_pGame->SetSpawnRequested(true);
    //                } else isObserver = true;
                    for (ZCharacterManager::iterator itor = ZGetGame()->m_CharacterManager.begin();
                        itor != ZGetGame()->m_CharacterManager.end(); ++itor)
                    {
                        ZCharacter* pCharacter = (*itor).second;
                        pCharacter->ForceDie();
                        pCharacter->SetVisible(false);
                    }
                }
                else if(GetMatchType() == MMATCH_GAMETYPE_DUELTOURNAMENT){
                    for (ZCharacterManager::iterator itor = ZGetGame()->m_CharacterManager.begin();
                        itor != ZGetGame()->m_CharacterManager.end(); ++itor)
                    {
                        ZCharacter* pCharacter = (*itor).second;
                        pCharacter->ForceDie();
                        pCharacter->SetVisible(false);
                    }
                }
                else
                {
                    ZPostRequestSpawn(ZGetMyUID(), pos, dir);
                    ZGetGame()->SetSpawnRequested(true);
                }
            }
        }
    
    //    m_nRoundKills = 0;
    
        // AdminHide ?³¸®
        MMatchObjCache* pObjCache = ZGetGameClient()->FindObjCache(ZGetMyUID());
        if (pObjCache && pObjCache->CheckFlag(MTD_PlayerFlags_AdminHide)) {
            ZGetGameInterface()->GetCombatInterface()->SetObserverMode(true);
        } else {
            // ¿??®¹? ¸?µ?¿´?¸¸? ???¦.
            if (!isObserver)
                ZGetGame()->ReleaseObserver();
            else
            {
                ZGetGameInterface()->GetCombatInterface()->SetObserverMode(true);
                ZGetGame()->ReserveObserver();
                ZGetGame()->m_pMyCharacter->ForceDie();
    
            }
        }
        memset(m_nTeamKillCount, 0, sizeof(m_nTeamKillCount));
    }
    
    
    
    void ZMatch::SetRoundState(MMATCH_ROUNDSTATE nRoundState, int nArg)
    {
        if (m_nRoundState == nRoundState) return;
        m_nRoundState = nRoundState;
    
    #ifdef _LOG_ENABLE_ROUNDSTATE_
        char buf[128];
        switch(ZGetGame()->GetMatch()->GetRoundState())
        {
        case MMATCH_ROUNDSTATE_PREPARE:        sprintf(buf, "RoundState: PREPARE \n"); break;
        case MMATCH_ROUNDSTATE_COUNTDOWN:    sprintf(buf, "RoundState: COUNTDOWN \n"); break;
        case MMATCH_ROUNDSTATE_PLAY:        sprintf(buf, "RoundState: PLAY \n"); break;
        case MMATCH_ROUNDSTATE_FINISH:        sprintf(buf, "RoundState: FINISH \n"); break;
        case MMATCH_ROUNDSTATE_EXIT:        sprintf(buf, "RoundState: EXIT \n"); break;
        case MMATCH_ROUNDSTATE_FREE:        sprintf(buf, "RoundState: FREE \n"); break;
        case MMATCH_ROUNDSTATE_FAILED:        sprintf(buf, "RoundState: FAILED \n"); break;
        case MMATCH_ROUNDSTATE_PRE_COUNTDOWN: sprintf(buf, "RoundState: PRE_COUNTDOWN \n"); break;
        }
        OutputDebugString(buf);
    #endif
    
        //# ¾??¸·?´? ?? switch ³»÷?¿¡ ·?¿¡ µ?¸¥ if else if else¸¦ ??°¡???? ¾?´?°? ??°?½?´?´?.
        //# ¶?¿?µ?»??? ÷¯?­½? ·?¿¡ µ?¶? ??¾??? ???÷ ZRule***??¿¡ ³?´? °??? ??°?½?´?´?. => virtual ZRule::OnSetRoundState()
    
        switch(m_nRoundState) 
        {
    
        case MMATCH_ROUNDSTATE_PREPARE: 
            {
    
            }
            break;
        case MMATCH_ROUNDSTATE_PRE_COUNTDOWN:
            {
            }
            break;
        case MMATCH_ROUNDSTATE_COUNTDOWN : 
            {
                OutputDebugString("MMATCH_ROUNDSTATE_COUNTDOWN>> InitRound BEGIN \n");
                InitRound();
                OutputDebugString("MMATCH_ROUNDSTATE_COUNTDOWN>> InitRound END \n");
            }
            break;
        case MMATCH_ROUNDSTATE_PLAY:
            {
                if (!IsTeamPlay())
                {
    
                }
            }
            break;
        case MMATCH_ROUNDSTATE_FINISH:
            {
                ZGetGame()->FlushObserverCommands();
    
                if (GetMatchType() == MMATCH_GAMETYPE_DUEL)
                {                
                    for (ZCharacterManager::iterator itor = ZGetGame()->m_CharacterManager.begin();
                        itor != ZGetGame()->m_CharacterManager.end(); ++itor)
                    {
                        ZCharacter* pCharacter = (*itor).second;
                        if (pCharacter->GetKils() >= GetRoundCount())
                        {
                            ZGetGameInterface()->FinishGame();
                            break;
                        }
                    }    
                }
                else if(GetMatchType() == MMATCH_GAMETYPE_DUELTOURNAMENT)
                {
                    //
                }
                else
                {
                    if (m_nCurrRound + 1 >= GetRoundCount())
                    {
                        ZGetGameInterface()->FinishGame();
                    }        
                }
    
                if (IsTeamPlay())
                {
                    if (nArg == MMATCH_ROUNDRESULT_RED_ALL_OUT )
                    {
                        if( m_nTeamScore[MMT_BLUE] < m_nTeamScore[MMT_RED] )
                            m_nTeamScore[MMT_BLUE] = m_nTeamScore[MMT_RED] = 0;
                        else
                            m_nTeamScore[MMT_BLUE]++;
                    }
                    else if( nArg ==  MMATCH_ROUNDRESULT_BLUE_ALL_OUT )
                    {
                        if( m_nTeamScore[MMT_RED] < m_nTeamScore[MMT_BLUE] )
                            m_nTeamScore[MMT_RED] =    m_nTeamScore[MMT_BLUE] = 0;
                        else
                            m_nTeamScore[MMT_RED]++;
                    }
                    else if (nArg == MMATCH_ROUNDRESULT_DRAW)
                    {
                        // Do nothing...
                    } 
                    else {
                        MMatchTeam nTeamWon = (nArg == MMATCH_ROUNDRESULT_REDWON ? MMT_RED : MMT_BLUE);
                        if (nTeamWon == MMT_RED)
                            m_nTeamScore[MMT_RED]++;
                        else if (nTeamWon == MMT_BLUE)
                            m_nTeamScore[MMT_BLUE]++;
                    }
                }
            }
            break;
        case MMATCH_ROUNDSTATE_EXIT:
            {
                
            }
            break;
        case MMATCH_ROUNDSTATE_FREE:
            {
    
            }
            break;
        };
    
        m_pRule->OnSetRoundState(m_nRoundState);
    }
    
    const char* ZMatch::GetTeamName(int nTeamID)
    {
        switch (nTeamID)
        {
        case MMT_SPECTATOR:
            return MMATCH_SPECTATOR_STR;
        case MMT_RED:
            return MMATCH_TEAM1_NAME_STR;
        case MMT_BLUE:
            return MMATCH_TEAM2_NAME_STR;
        default:
            return "";
        }
        return "";
    }
    
    
    int ZMatch::GetRoundCount()
    {
    //    if (IsWaitForRoundEnd())
            return m_pStageSetting->GetStageSetting()->nRoundMax;
    
        return 1;
    }
    
    
    void ZMatch::GetTeamAliveCount(int* pnRedTeam, int* pnBlueTeam)
    {
        int nRedTeam = 0, nBlueTeam = 0;
        if (IsTeamPlay())
        {
            for (ZCharacterManager::iterator itor = ZGetGame()->m_CharacterManager.begin();
                itor != ZGetGame()->m_CharacterManager.end(); ++itor)
            {
                ZCharacter* pCharacter = (*itor).second;
                if (!pCharacter->IsDie())
                {
                    if (pCharacter->GetTeamID() == 0)
                    {
                        nRedTeam++;
                    }
                    else
                    {
                        nBlueTeam++;
                    }
                }
            }
        }
    
        *pnRedTeam = nRedTeam;
        *pnBlueTeam = nBlueTeam;
    }
    
    void ZMatch::RespawnSolo()
    {
        if ((!IsWaitForRoundEnd()) && (ZGetGame()->m_pMyCharacter->IsDie()))
        {
            SoloSpawn();
        }
    }
    
    void ZMatch::OnForcedEntry(ZCharacter* pCharacter)
    {
        if (pCharacter == NULL)
        {
            _ASSERT(0); return;
        }
        // ³­???? ??·¹??¾?°¡ ³× ??½??? °?¿?
        if (pCharacter == ZGetGame()->m_pMyCharacter)
        {
            // AdminHide ?³¸®
            MMatchObjCache* pObjCache = ZGetGameClient()->FindObjCache(ZGetMyUID());
            if (pObjCache && pObjCache->CheckFlag(MTD_PlayerFlags_AdminHide)) {
                ZGetGameInterface()->GetCombatInterface()->SetObserverMode(true);
            } else {
                // ????·¹??¸? ½÷????????
                if (IsWaitForRoundEnd()/* && ZGetGame()->GetMatch()->GetMatchType() != MMATCH_GAMETYPE_DUEL*/)
                {
                    pCharacter->SetVisible(false);
                    pCharacter->ForceDie();
                    ZGetCombatInterface()->SetObserverMode(true);
                }    
                else    // ¼?·???°?¿?´? ¹?·? ½÷??
                {
                    InitRound();
                }
            }
        }
        else
        {
            // ????·¹??¿¡ ´?¸¥ ??·¹??¾?°¡ ³­????¸? ´??½??÷??? ??????¾? ??±?¶§¹®¿¡ ?³¸¯?? ÷¸¿©???? ¾??½
            // ´? FREE»????? ¶§¿¡´? ÷¸¿©??´?
            if (IsWaitForRoundEnd() && (GetRoundState() != MMATCH_ROUNDSTATE_FREE))
            {
                if (pCharacter != NULL)
                {
                    pCharacter->SetVisible(false);
                }
                pCharacter->ForceDie();
            }
        }
    }
    
    int ZMatch::GetRemainedSpawnTime()
    {
        int nTimeSec = -1;
    
        if (GetRoundState() == MMATCH_ROUNDSTATE_PLAY)
        {
            if (!IsWaitForRoundEnd())
            {
                if (ZGetGame()->m_pMyCharacter->IsDie())
                {
                    if (m_nSoloSpawnTime < 0) return -1;
    
                    //¹?????÷¸??½???¼® 
                    /*ZBuffSummary* pBuffSummary = ZGetGame()->m_pMyCharacter->GetCharacterBuff()->GetBuffSummary();
                    int nDelayAfterDying = pBuffSummary->GetRespawnTime(RESPAWN_DELAYTIME_AFTER_DYING);*/
                    int nDelayAfterDying = RESPAWN_DELAYTIME_AFTER_DYING;
    
                    int nElapsedTime = m_nSoloSpawnTime;
                    if (nElapsedTime > nDelayAfterDying) 
                        nElapsedTime = nDelayAfterDying;
    
                    nTimeSec = (((nDelayAfterDying - nElapsedTime)+999) / 1000);
                }
            }
        }
    
        return nTimeSec;
    }
    
    
    void ZMatch::SetRoundStartTime( void)
    {
        m_dwStartTime = timeGetTime();
    }
    
    DWORD ZMatch::GetRemaindTime( void)
    {
        return ( timeGetTime() - m_dwStartTime);
    }
    
    
    bool ZMatch::OnCommand(MCommand* pCommand)
    {
        if (m_pRule) return m_pRule->OnCommand(pCommand);
        return false;
    }
    
    void ZMatch::OnResponseRuleInfo(MTD_RuleInfo* pInfo)
    {
        if (pInfo->nRuleType != GetMatchType()) return;
    
        if (m_pRule)
        {
            m_pRule->OnResponseRuleInfo(pInfo);
        }
    }
    Last edited by OldSchoolGZ; 27-10-12 at 07:57 AM. Reason: Hotfixes


  2. #2
    Apprentice marquinho15 is offline
    MemberRank
    Feb 2011 Join Date
    9Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    Nice, thanks :]

  3. #3
    Gregon13 OldSchoolGZ is offline
    MemberRank
    Jan 2012 Join Date
    CanadaLocation
    244Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    Make Sure to apply both HotFixes!

  4. #4
    Developer / Patch Finder Tankado is offline
    MemberRank
    Oct 2011 Join Date
    The NetherlandsLocation
    451Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    its good,

    but try to make 1 complects source.
    whit all what u want in it

    now there will come many source release of u.

    i hope u understand what i mean.

    - Tankado

  5. #5
    Gregon13 OldSchoolGZ is offline
    MemberRank
    Jan 2012 Join Date
    CanadaLocation
    244Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    Quote Originally Posted by Tankado View Post
    its good,

    but try to make 1 complects source.
    whit all what u want in it

    now there will come many source release of u.

    i hope u understand what i mean.

    - Tankado
    I linked the old one to here and removed off mediiafire the old one

  6. #6
    @ your moms bed thajj is offline
    MemberRank
    Apr 2007 Join Date
    The NetherlandsLocation
    647Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    What Antilead is in here? The one with the [LEAD] as gameroom tag?
    BTW Thanks great release!

    PS: Fix:

    CSCommon -> MatchServer -> Base -> MBaseGameType.h
    To

    CSCommon -> MatchServer -> Game -> GameType -> MBaseGameType.h
    Runnable builded fine > Matchserver error build:
    Well I removed that part and it builded fine but no idea if it as important?

    Last edited by thajj; 25-10-12 at 12:53 PM.

  7. #7
    Account Upgraded | Title Enabled! flyffhelper is offline
    MemberRank
    Dec 2010 Join Date
    419Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    this is the only error i get
    MBMatchServer.cpp / 'MBMatchAuthBuilder' : cannot instantiate abstract class

  8. #8
    @ your moms bed thajj is offline
    MemberRank
    Apr 2007 Join Date
    The NetherlandsLocation
    647Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    quote it out /* */ the indef

  9. #9
    Account Upgraded | Title Enabled! flyffhelper is offline
    MemberRank
    Dec 2010 Join Date
    419Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    Quote Originally Posted by thajj View Post
    quote it out /* */ the indef
    no that doesn't work just // matchserver works fine ^^

  10. #10
    @ your moms bed thajj is offline
    MemberRank
    Apr 2007 Join Date
    The NetherlandsLocation
    647Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    BTW the Message.xml din't work >< In-game I still get nomsg, I traced it back to the source and I see you defined it so it should work.. But it doesnt >< I changed in the Matchserver and in the system.mrs.

  11. #11
    Enthusiast Juliow is offline
    MemberRank
    Jun 2011 Join Date
    40Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    This one have all the features of the old one plus Serialkey works again for all builds and Full Anti-Lead + Damage Counter?

    And everything has nomsg 'nomsg'..
    Last edited by Juliow; 25-10-12 at 07:11 PM.

  12. #12
    Account Upgraded | Title Enabled! flyffhelper is offline
    MemberRank
    Dec 2010 Join Date
    419Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    Quote Originally Posted by thajj View Post
    BTW the Message.xml din't work >< In-game I still get nomsg, I traced it back to the source and I see you defined it so it should work.. But it doesnt >< I changed in the Matchserver and in the system.mrs.
    Did you place it in the right msg id?

  13. #13
    @ your moms bed thajj is offline
    MemberRank
    Apr 2007 Join Date
    The NetherlandsLocation
    647Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    I dunno but for somereason it's auto fixed now so I probably messed up with some system.xml mix up ^^

  14. #14
    Intelligent DoucheBag jur13n is offline
    MemberRank
    Jan 2008 Join Date
    Zwolle,Location
    1,946Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    why don;t you add the fixes and then just reupload it >.<
    some people are lazy (me)

  15. #15
    Enthusiast Juliow is offline
    MemberRank
    Jun 2011 Join Date
    40Posts

    Re: Modified Source (CTF + Anti-Lead + DamageCounter + Fixes)

    What about nomsg problem?



Page 1 of 6 123456 LastLast

Advertisement