Ola pessoal do forum michou forumotion venho trazer um grande novidades para voçes um novo modo de jogo staff mode segue o video abaixo do novo mode :
-
Guia para adicionar novo staff mode:
<------------------------------------------------- ------------------>
CSCommon / include / colar MBaseGameType.h
código:
código:
- Code:
-
MMATCH_GAMETYPE_STAFF_MODE =16, // <- Reemplazar el 16 por el numero correspondiente en su source si usted no a agregado mas modo debe quedar en 13
CSCommon / incluem / MMatchRule.h
pesquisa
código:
código:
- Code:
-
(nGameType == MMATCH_GAMETYPE_DEATHMATCH_SOLO) ||
cole abaixo
código:
código:
- Code:
-
(nGameType == MMATCH_GAMETYPE_STAFF_MODE) ||
CSCommon / incluem / MMatchRuleDeathMatch.h
final Colar do documento antes de #endif
código:
código:
- Code:
-
[align=center]////////////////////////////////////////////////////////////////////////////////////////////////////[/align]
[align=center]class MMatchRuleStaffMode : public MMatchRule {[/align]
[align=center]protected:[/align]
[align=center]bool CheckKillCount(MMatchObject* pOutObject);[/align]
[align=center]virtual void OnBegin();[/align]
[align=center]virtual void OnEnd();[/align]
[align=center]virtual void OnRoundTimeOut();[/align]
[align=center]virtual bool OnCheckRoundFinish();[/align]
[align=center]virtual bool RoundCount();[/align]
[align=center]public:[/align]
[align=center]MMatchRuleStaffMode(MMatchStage* pStage);[/align]
[align=center]virtual ~MMatchRuleStaffMode() { }[/align]
[align=center]virtual MMATCH_GAMETYPE GetGameType() { return MMATCH_GAMETYPE_STAFF_MODE; }[/align]
[align=center]};[/align]
CSCommon / fonte / MBaseGametype.cpp
pesquisa
código:
código:
- Code:
-
#define MMATCH_GAMETYPE_CTF_STR
cole abaixo
código:
código:
- Code:
-
#define MMATCH_GAMETYPE_STAFF_MODE_STR "Staff Mode"
pesquisa
código:
cole abaixo
código:
código:
- Code:
-
"ST", // Staff Mode
pesquisa
código:
código:
- Code:
-
_InitGameType(MMATCH_GAMETYPE_CTF,
cole abaixo
código:
código:
- Code:
-
_InitGameType(MMATCH_GAMETYPE_STAFF_MODE, MMATCH_GAMETYPE_STAFF_MODE, MMATCH_GAMETYPE_STAFF_MODE_STR, 1.0f, 1.0f, 0.0f);
CSCommon / fonte / MMatchRuleDeathMath.cpp
final Colar do documento
código:
código:
- Code:
-
[align=center]//////////////////////////////////////////////////////////////////////////////////[/align]
[align=center]// MMatchRuleStaffMode ///////////////////////////////////////////////////////////[/align]
[align=center]MMatchRuleStaffMode::MMatchRuleStaffMode(MMatchStage* pStage) : MMatchRule(pStage)[/align]
[align=center]{[/align]
[align=center][/align]
[align=center]}[/align]
[align=center][/align]
[align=center]void MMatchRuleStaffMode::OnBegin()[/align]
[align=center]{[/align]
[align=center][/align]
[align=center]}[/align]
[align=center]void MMatchRuleStaffMode::OnEnd()[/align]
[align=center]{[/align]
[align=center]}[/align]
[align=center][/align]
[align=center]bool MMatchRuleStaffMode::RoundCount()[/align]
[align=center]{[/align]
[align=center]if (++m_nRoundCount < 1) return true;[/align]
[align=center]return false;[/align]
[align=center]}[/align]
[align=center][/align]
[align=center]bool MMatchRuleStaffMode::CheckKillCount(MMatchObject* pOutObject)[/align]
[align=center]{[/align]
[align=center]MMatchStage* pStage = GetStage();[/align]
[align=center]for (MUIDRefCache::iterator i=pStage->GetObjBegin(); i!=pStage->GetObjEnd(); i++) [/align]
[align=center]{[/align]
[align=center] MMatchObject* pObj = (MMatchObject*)(*i).second;[/align]
[align=center] if (pObj->GetEnterBattle() == false) continue;[/align]
[align=center][/align]
[align=center] if (pObj->GetKillCount() >= (unsigned int)pStage->GetStageSetting()->GetRoundMax())[/align]
[align=center] {[/align]
[align=center] pOutObject = pObj;[/align]
[align=center] return true;[/align]
[align=center] }[/align]
[align=center]}[/align]
[align=center]return false;[/align]
[align=center]}[/align]
[align=center][/align]
[align=center]bool MMatchRuleStaffMode::OnCheckRoundFinish()[/align]
[align=center]{[/align]
[align=center]MMatchObject* pObject = NULL;[/align]
[align=center][/align]
[align=center]if (CheckKillCount(pObject))[/align]
[align=center]{[/align]
[align=center] return true;[/align]
[align=center]}[/align]
[align=center]return false;[/align]
[align=center]}[/align]
[align=center][/align]
[align=center]void MMatchRuleStaffMode::OnRoundTimeOut()[/align]
[align=center]{[/align]
[align=center]SetRoundArg(MMATCH_ROUNDRESULT_DRAW);[/align]
[align=center]}[/align]
CSCommon / fonte / MMatchStage.cpp
pesquisa
código:
código:
- Code:
-
[align=center]case MMATCH_GAMETYPE_CTF:[/align]
[align=center] {[/align]
[align=center] return (new MMatchRuleTeamCTF(this));[/align]
[align=center] }[/align]
[align=center] break;[/align]
cole abaixo
código:
código:
- Code:
-
[align=center]case MMATCH_GAMETYPE_STAFF_MODE:[/align]
[align=center] {[/align]
[align=center] return (new MMatchRuleStaffMode(this));[/align]
[align=center] }[/align]
[align=center] break;[/align]
Gunz / ZGameInterface.cpp
pesquisa
código:
código:
- Code:
-
ZGetGameTypeManager()->SetGameTypeStr( MMATCH_GAMETYPE_CTF, ZMsg( MSG_MT_CTF));
Em Colar
código:
código:
- Code:
-
ZGetGameTypeManager()->SetGameTypeStr( MMATCH_GAMETYPE_STAFF_MODE, ZMsg( MSG_MT_STAFF_MODE));
Gunz / ZRule.cpp
pesquisa
código:
código:
- Code:
-
[align=center]case MMATCH_GAMETYPE_CTF:[/align]
[align=center] {[/align]
[align=center] return (new ZRuleTeamCTF(pMatch));[/align]
[align=center] }[/align]
[align=center] break;[/align]
cole abaixo
código:
código:
- Code:
-
[align=center]case MMATCH_GAMETYPE_STAFF_MODE:[/align]
[align=center] {[/align]
[align=center] return (new ZRuleStaffMode(pMatch));[/align]
[align=center] }[/align]
[align=center] break;[/align]
Gunz / ZRuleDeathMatch.cpp
final Colar do documento
código:
código:
- Code:
-
[align=center]ZRuleStaffMode::ZRuleStaffMode(ZMatch* pMatch) : ZRule(pMatch)[/align]
[align=center]{[/align]
[align=center][/align]
[align=center]}[/align]
[align=center][/align]
[align=center]ZRuleStaffMode::~ZRuleStaffMode()[/align]
[align=center]{[/align]
[align=center][/align]
[align=center][/align]
[align=center][/align]
[align=center][/align]
[align=center][/align]
[align=center]}[/align]
Gunz / ZRuleDeathMatch.h
colar no final do documento antes de #endif
código:
código:
- Code:
-
[align=center]class ZRuleStaffMode : public ZRule[/align]
[align=center]{[/align]
[align=center]public:[/align]
[align=center] ZRuleStaffMode(ZMatch* pMatch);[/align]
[align=center] virtual ~ZRuleStaffMode();[/align]
[align=center]};[/align]
Gunz / ZStageInterface.cpp
pesquisa
código:
código:
- Code:
-
case MMATCH_GAMETYPE_DEATHMATCH_SOLO:
cole abaixo
código:
código:
- Code:
-
case MMATCH_GAMETYPE_STAFF_MODE:
pesquisa
código:
código:
- Code:
-
MAnimation* pAniMapImg = (MAnimation*)pResource->FindWidget( "Stage_MapNameBG");
Vão ver
código:
código:
- Code:
-
(pSetting->nGameType == MMATCH_GAMETYPE_DEATHMATCH_SOLO) ||
abaixo desse colar este
código:
código:
- Code:
-
(pSetting->nGameType == MMATCH_GAMETYPE_STAFF_MODE) ||
pesquisa
código:
código:
- Code:
-
MWidget* pWidget = ZApplication::GetGameInterface()->GetIDLResource()->FindWidget( "StageRoundCountLabel");
Vão ver
código:
código:
- Code:
-
if ((pSetting->nGameType == MMATCH_GAMETYPE_DEATHMATCH_SOLO) ||
abaixo que vai ficar
código:
código:
- Code:
-
(pSetting->nGameType == MMATCH_GAMETYPE_STAFF_MODE) ||
Gunz / ZCharacter.cpp
pesquisa
código:
código:
- Code:
-
void ZCharacter::InitProperties()
Buscar dentro que anular esta
código:
código:
- Code:
-
[align=center]float fAddedHP = DEFAULT_CHAR_HP; ///< HP ÀçÁ¶Á¤[/align]
[align=center] for (int i = 0; i < MMCIP_END; i++) {[/align]
[align=center] if (!m_Items.GetItem(MMatchCharItemParts(i))->IsEmpty()) {[/align]
[align=center] fAddedHP += m_Items.GetItem(MMatchCharItemParts(i))->GetDesc()->m_nHP.Ref();[/align]
[align=center] }[/align]
[align=center] }[/align]
Cole abaixo disso, ITEMID Lembre-se configurar suas armas pela equipe
código:
código:
- Code:
-
[align=center]if (ZGetGame()->GetMatch()->GetMatchType() == MMATCH_GAMETYPE_STAFF_MODE){[/align]
[align=center][/align]
[align=center] m_Items.EquipItem(MMCIP_PRIMARY, 400531); //ID PRIMERA ARMA[/align]
[align=center] m_Items.EquipItem(MMCIP_SECONDARY, 504504); //iD SEGUNDARIA[/align]
[align=center] m_Items.EquipItem(MMCIP_MELEE, 6010); //ID KATANA[/align]
[align=center] }[/align]
Encontre abaixo deste
código:
código:
- Code:
-
[align=center]m_fPreMaxHP = pCharInfo->nHP + fAddedHP;[/align]
[align=center] m_fPreMaxAP = pCharInfo->nAP + fAddedAP;[/align]
Cole abaixo, lembre-se que aqui pode mudar a cv e ap para os personagens no modo padrão eu deixá-lo em 1000, você pode colocar o que quiser
código:
código:
- Code:
-
[align=center]if( ZGetGame()->GetMatch()->GetMatchType() == MMATCH_GAMETYPE_STAFF_MODE)[/align]
[align=center] {[/align]
[align=center] m_Property.fMaxHP.Set_CheckCrc(1000);[/align]
[align=center] m_fPreMaxHP = 1000;[/align]
[align=center] m_Property.fMaxAP.Set_CheckCrc(1000);[/align]
[align=center] m_fPreMaxAP = 1000;[/align]
[align=center] }[/align]
Gunz / ZMessage.h
pesquisa
código:
código:
- Code:
-
#define MSG_MT_CTF
Cole abaixo, defina o ID Lembre-se!
código:
código:
- Code:
-
#define MSG_MT_STAFF_MODE 9919 ///< Staff Mode
Pronto compilar sua fonte
vá para Sistema / Message.xml
pesquisa
código:
código:
- Code:
-
<MSG id="9915">Capture The Flag</MSG>
cole abaixo
código:
código:
- Code:
-
<MSG id="9916">Staff Mode</MSG>
pesquisa gametypecfg.xml
Bater o último documento
código:
código:
- Code:
-
[align=center]<GAMETYPE id="13"> <!-- GAMETYPE_STAFF_MODE -->[/align]
[align=center] <ROUNDS round="10" str="10" />[/align]
[align=center] <ROUNDS round="20" str="20" />[/align]
[align=center] <ROUNDS round="30" str="30" />[/align]
[align=center] <ROUNDS round="50" str="50" default="true" />[/align]
[align=center] <ROUNDS round="70" str="70" />[/align]
[align=center] <ROUNDS round="100" str="100" />[/align]
[align=center] <LIMITTIME sec="99999" str="STR:GAMETYPECFG_LIMITTIME_INFINITE" />[/align]
[align=center] <LIMITTIME sec="10" str="STR:GAMETYPECFG_LIMITTIME_10MIN" />[/align]
[align=center] <LIMITTIME sec="20" str="STR:GAMETYPECFG_LIMITTIME_20MIN" />[/align]
[align=center] <LIMITTIME sec="30" str="STR:GAMETYPECFG_LIMITTIME_30MIN" default="true" />[/align]
[align=center] <LIMITTIME sec="40" str="STR:GAMETYPECFG_LIMITTIME_40MIN" />[/align]
[align=center] <LIMITTIME sec="50" str="STR:GAMETYPECFG_LIMITTIME_50MIN" />[/align]
[align=center] <LIMITTIME sec="60" str="STR:GAMETYPECFG_LIMITTIME_60MIN" />[/align]
[align=center] <MAXPLAYERS player="4" str="4" />[/align]
[align=center] <MAXPLAYERS player="8" str="8" default="true" />[/align]
[align=center] <MAXPLAYERS player="12" str="12" />[/align]
[align=center] <MAXPLAYERS player="16" str="16" />[/align]
[align=center] </GAMETYPE>[/align]
Agora deixe o Canal Rule.xml
procuramos
código:
código:
- Code:
-
<CHANNELRULE id="4" name="elite">
abaixo, você verá
código:
código:
- Code:
-
<GAMETYPE id="12" /> <!-- GAMETYPE_QUEST_CHALLENGE -->
cole abaixo
código:
código:
- Code:
-
<GAMETYPE id="13" /> <!-- GAMETYPE_STAFF_MODE -->
Faça o mesmo processo com os arquivos MatchServer
PS: Se você não vê é como a regra do canal deve ir para Channel.xml localizado no MatchServer e alterar a regra de iniciante a elite.
Normalmente, isso é tudo desfrutar
Equipe forumotion melhor forum de gunz !
Criado e editado por By : Masterzin / Mode : Alferez
Lembrando não ajudarei newbie !