people get pissed when they see many tags.. you can either add vamp as seperate game mode. not great effort but helpful
WARNING RZ STAFF: DONT DARE TO DELETE THIS THREAD ... THIS IS MY OWN RELEASE ! CREDITS ARE GIVEN TO RESPECTIVE CREATORS OF CODE.
----------------------------------------------------------------------------------------------------------------
MBaseGameType.h:
belowpaste :MMATCH_GAMETYPE_DUELTOURNAMENT =11,MBaseGameType.cpp:MMATCH_GAMETYPE_VAMP =15,
below:paste:#define MMATCH_GAMETYPE_DUELTOURNAMENT_STR "Duel Tournament"----------------------------------------------------------------------------------------------------------------#define MMATCH_GAMETYPE_VAMP_STR "Vampire Mode"
Below:Paste:"DUELT", // DUELTOURNAMENT"VAMP" //VAMPIRE MODE
----------------------------------------------------------------------------------------------------------------
Below:Paste:_InitGameType(MMATCH_GAMETYPE_DUELTOURNAMENT, MMATCH_GAMETYPE_DUELTOURNAMENT, MMATCH_GAMETYPE_DUELTOURNAMENT_STR, 0.0f, 0.0f, 0.0f);_InitGameType(MMATCH_GAMETYPE_VAMP, MMATCH_GAMETYPE_VAMP, "Vampire Mode", 1.0f, 0.6f, 0.5f);
----------------------------------------------------------------------------------------------------------------
MMatchRule.h:
Below:Paste:(nGameType == MMATCH_GAMETYPE_DEATHMATCH_SOLO) ||(nGameType == MMATCH_GAMETYPE_VAMP) ||
----------------------------------------------------------------------------------------------------------------
MMatchRuleDeathMatch.h
Scroll till bottom and above #endif
paste:////////////////
class MMatchRuleVamp : public MMatchRule {
protected:
bool CheckKillCount(MMatchObject* pOutObject);
virtual void OnBegin();
virtual void OnEnd();
virtual void OnRoundTimeOut();
virtual bool OnCheckRoundFinish();
virtual bool RoundCount();
public:
MMatchRuleVamp(MMatchStage* pStage);
virtual ~MMatchRuleVamp() { }
virtual MMATCH_GAMETYPE GetGameType() { return MMATCH_GAMETYPE_VAMP; }
};
----------------------------------------------------------------------------------------------------------------
MMatchRuleDeathMatch.cpp:
Scroll at bottom of file and paste this:
//////////////////////////////
MMatchRuleVamp::MMatchRuleVamp(MMatchStage* pStage) : MMatchRule(pStage)
{
}
void MMatchRuleVamp::OnBegin()
{
}
void MMatchRuleVamp::OnEnd()
{
}
bool MMatchRuleVamp::RoundCount()
{
if (++m_nRoundCount < 1) return true;
return false;
}
bool MMatchRuleVamp::CheckKillCount(MMatchObject* pOutObject)
{
MMatchStage* pStage = GetStage();
for (MUIDRefCache::iterator i=pStage->GetObjBegin(); i!=pStage->GetObjEnd(); i++)
{
MMatchObject* pObj = (MMatchObject*)(*i).second;
if (pObj->GetEnterBattle() == false) continue;
if (pObj->GetKillCount() >= (unsigned int)pStage->GetStageSetting()->GetRoundMax())
{
pOutObject = pObj;
return true;
}
}
return false;
}
bool MMatchRuleVamp::OnCheckRoundFinish()
{
MMatchObject* pObject = NULL;
if (CheckKillCount(pObject))
{
return true;
}
return false;
}
void MMatchRuleVamp::OnRoundTimeOut()
{
SetRoundArg(MMATCH_ROUNDRESULT_DRAW);
}
----------------------------------------------------------------------------------------------------------------
ZStageSetting.cpp:
below:Paste:else if ( strcmp( pCBType->GetString( pCBType->GetSelIndex()), ZMsg(MSG_MT_DUEL)) == 0)
nGameType = 10;else if ( strcmp( pCBType->GetString( pCBType->GetSelIndex()), "Vampire Mode") == 0)
nGameType = 15;
----------------------------------------------------------------------------------------------------------------
ZRule.cpp:
Below:Paste :case MMATCH_GAMETYPE_DEATHMATCH_SOLO:
{
return (new ZRuleSoloDeathMatch(pMatch));
}
break;----------------------------------------------------------------------------------------------------------------case MMATCH_GAMETYPE_VAMP:
{
return (new ZRuleVamp(pMatch));
}
break;
ZRuleDeathMatch.h:
Below :class ZRuleSoloDeathMatch : public ZRule
{
public:
ZRuleSoloDeathMatch(ZMatch* pMatch);
virtual ~ZRuleSoloDeathMatch();
};
Paste :class ZRuleVamp : public ZRule
{
public:
ZRuleVamp(ZMatch* pMatch);
virtual ~ZRuleVamp();
};
----------------------------------------------------------------------------------------------------------------
ZRuleDeathMatch.cpp:
Below :Paste :ZRuleSoloDeathMatch::ZRuleSoloDeathMatch(ZMatch* pMatch) : ZRule(pMatch)
{
}
ZRuleSoloDeathMatch::~ZRuleSoloDeathMatch()
{
}ZRuleVamp::ZRuleVamp(ZMatch* pMatch) : ZRule(pMatch)
{
}
----------------------------------------------------------------------------------------------------------------
ZRuleVamp::~ZRuleVamp()
{
}
ZStageInterface.cpp :
Below :Paste :(pSetting->nGameType == MMATCH_GAMETYPE_DEATHMATCH_SOLO) ||(pSetting->nGameType == MMATCH_GAMETYPE_VAMP) ||
----------------------------------------------------------------------------------------------------------------
ZCombatInterface.cpp:
FindReplace whole line with :sprintf( szText, "%s : %d", ZMsg( MSG_WORD_ENDKILL), ZGetGame()->GetMatch()->GetRoundCount());
if
( ZGetGame()->GetMatch()->GetMatchType() == MMATCH_GAMETYPE_VAMP)
sprintf( szText, "%s : %d", "Hunts", ZGetGame()->GetMatch()->GetRoundCount());
else
sprintf( szText, "%s : %d", ZMsg( MSG_WORD_ENDKILL), ZGetGame()->GetMatch()->GetRoundCount());
----------------------------------------------------------------------------------------------------------------
ZCharacter.cpp :
Below :Paste :ZObject::OnDamaged(pAttacker,srcPos,damageType,weaponType,fDamage,fPiercingRatio,nMeleeType);#define UPDATE_HEALTH_HPV 3
#define UPDATE_HEALTH_APV 1
if (( ZGetGame()->GetMatch()->GetMatchType() == MMATCH_GAMETYPE_VAMP) && pAttacker == ZGetGame()->m_pMyCharacter) {
float fpNewHP = (((ZCharacter *)pAttacker)->GetHP() + UPDATE_HEALTH_HPV),
fpNewAP = (((ZCharacter *)pAttacker)->GetAP() + UPDATE_HEALTH_APV);
if (fpNewHP <= (((ZCharacter *)pAttacker))->GetMaxHP()) {
((ZCharacter *)pAttacker)->SetHP(fpNewHP);
}
if (fpNewAP <= (((ZCharacter *)pAttacker))->GetMaxAP()) {
((ZCharacter *)pAttacker)->SetAP(fpNewAP);
}
}
----------------------------------------------------------------------------------------------------------------
Credits:
Wizkidje - vampire mode source.
Tankado - for nothing
myself - implementing seperately




![Vampire Game Mode [NO TAG]](http://ragezone.com/hyper728.png)


