New Anti-lead Source 1.5 (FIXED 2012)

Page 1 of 3 123 LastLast
Results 1 to 15 of 31
  1. #1
    Currently Stoned ! Ronny786 is offline
    MemberRank
    Dec 2011 Join Date
    Lost WorldLocation
    984Posts

    New Anti-lead Source 1.5 (FIXED 2012)

    Observed that there is no post regarding antilead here.i found only one by jacob. that too antilead released by jacob is basic one.. the below source is new antilead by SecretsOthePast and Jacob . Ofcourse i owe this release to them.. This antilead is sorted from IGunz Source.

    Here it is:

    CSCOMMON:

    MSharedCommandTable.cpp(667):
    Code:
    P(MPT_UINT, "AntiLead")

    MSharedCommandTable.cpp(1712):
    Code:
    C(MC_GUNZ_ANTILEAD, "Match.Gunz.AntiLead", "AntiLead Information", MCDT_PEER2PEER)
    		P(MPT_BLOB, "ShotInfo");


    MSharedCommandTable.h(682):
    Code:
    #define MC_GUNZ_ANTILEAD							50010 //Antilead
    MLadderGroup.h(18):
    Code:
    bool			m_bWantAntiLeadMatching;

    MLadderGroup.h(36):
    Code:
    m_bWantAntiLeadMatching = true;

    MLadderGroup.h(50):
    Code:
    	void SetAntiLeadMatching(bool bValue)		{ m_bWantAntiLeadMatching = bValue; }

    MLadderGroup.h(51):
    Code:
    	bool GetAntiLeadMatching()		{ return m_bWantAntiLeadMatching; }

    MLadderMgr.cpp(185):
    Code:
    if(pGroupA->GetAntiLeadMatching() != pGroupB->GetAntiLeadMatching())

    MMatchStage.h(168):
    Code:
    bool					m_bIsAntiLeading;

    MMatchStage.h(317):
    Code:
    bool IsAntiLead()									{ return m_StageSetting.GetAntiLead(); }

    MMatchStage.h(328):
    Code:
    void SetAntiLead(bool bAntiLead)									{ m_StageSetting.SetAntiLead(bAntiLead); }

    MMatchStageSetting.cpp(46):
    Code:
    m_StageSetting.Ref().bAntiLead = true;

    MMatchStageSetting.h(79):
    Code:
    bool				bAntiLead;

    MMatchStageSetting.h(174):
    Code:
    bool						GetAntiLead()				{ return m_StageSetting.Ref().bAntiLead; }

    MMatchStageSetting.h(198):
    Code:
    void SetAntiLead(bool bValue)			{ MEMBER_SET_CHECKCRC(m_StageSetting, bAntiLead, bValue); }

    MMatchServer.h(424):
    Code:
    void OnLadderRequestChallenge(const MUID& uidRequestMember, void* pGroupBlob, unsigned long int nOptions, unsigned long int nAntiLead);

    MMatchServer_Ladder.cpp(145):
    Code:
    pSetting->SetAntiLead(pGroupA->GetAntiLeadMatching());

    MMatchServer_Ladder.cpp(216):
    Code:
    void MMatchServer::OnLadderRequestChallenge(const MUID& uidRequestMember, void* pMemberNamesBlob, unsigned long int nOptions, unsigned long int nAntiLead)

    MMatchServer_Ladder.cpp(290):
    Code:
    if (nAntiLead == 1)
    	{
    		pGroup->SetAntiLeadMatching(true);
    	}
    	else
    	{
    		pGroup->SetAntiLeadMatching(true);
    	}


    MMatchServer_OnCommand.cpp(1351):
    Code:
    unsigned long int nAntiLead;

    MMatchServer_OnCommand.cpp(1355):
    Code:
    pCommand->GetParameter(&nAntiLead,			3, MPT_UINT);

    MMatchServer_OnCommand.cpp(1363):
    Code:
    OnLadderRequestChallenge(pCommand->GetSenderUID(), pMemberNamesBlob, nOptions, nAntiLead);

    MMatchServer_Stage.cpp(1579):
    Code:
    if(pNode->bAntiLead) {
    		pSetting->SetAntiLead(true);
    	} else {
    		pSetting->SetAntiLead(true);
    	}


    Gunz:

    ZInterfaceListener.cpp(1961):
    Code:
    int nAntiLead = 0;
    					MButton* pButton2 = (MButton*)pResource->FindWidget("AntiLeadCheckBox");
    					if ((pButton2) && (pButton2->GetCheck()))
    					{
    						nAntiLead = 1;
    					}
    
    					ZPostLadderRequestChallenge(ppMember, 1, nBalancedMatching, nAntiLead);


    ZCharacter.cpp(4421):
    Code:
    void ZCharacter::OnDamagedAPlayer(ZObject* pAttacker, rvector srcPos, ZDAMAGETYPE damageType, MMatchWeaponType weaponType, float fDamage, float fPiercingRatio, int nMeleeTpye)
    {
    	if (damageType == ZD_MELEE)
    	{
    		OnDamaged(pAttacker, srcPos, damageType, weaponType, fDamage, fPiercingRatio, nMeleeTpye);
    		return;
    	}
    
    	if (pAttacker != NULL && fDamage > 0)
    	{
    		if (pAttacker == ZGetGame()->m_pMyCharacter && this != pAttacker && !ZGetGame()->m_pMyCharacter->IsDie())
    		{
    			void* pBlobArray = MMakeBlobArray(sizeof(MTD_ShotInfo), 1);
    			void* pBlobElement = MGetBlobArrayElement(pBlobArray, 0);
    
    			MTD_ShotInfo shotInfo;
    			shotInfo.fDamage = fDamage;
    			shotInfo.fPosX = srcPos.x;
    			shotInfo.fPosY = srcPos.y;
    			shotInfo.fPosZ = srcPos.z;
    			shotInfo.nDamageType = damageType;
    			shotInfo.fRatio = fPiercingRatio;
    			shotInfo.nLowId = GetUID().Low;
    			shotInfo.nWeaponType = weaponType;
    
    			memcpy(pBlobElement, &shotInfo, sizeof(MTD_ShotInfo));
    			ZGetGameClient()->GetPeerPacketCrypter().Encrypt((char*)pBlobElement, sizeof(MTD_ShotInfo));
    			ZPOSTCMDLEAD(MC_GUNZ_ANTILEAD, GetUID(), MCommandParameterBlob(pBlobArray, MGetBlobArraySize(pBlobArray)));
    		}
    	}
    }


    ZCharacter.cpp(4443):
    Code:
    void ZCharacter::OnDamagedAPlayer(ZObject* pAttacker, vector<MTD_ShotInfo*> vShots)
    {
    
    	if (vShots.size() > 0)
    	{
    		if (ZGetGameClient()->GetPlayerUID().Low != vShots[0]->nLowId && GetUID().Low == vShots[0]->nLowId)
    		{
    		if (pAttacker == ZGetGame()->m_pMyCharacter && this != pAttacker && !ZGetGame()->m_pMyCharacter->IsDie())
    		{
    			void* pBlobArray = MMakeBlobArray(sizeof(MTD_ShotInfo), vShots.size());
    			for (int i = 0; i < vShots.size(); ++i)
    			{
    				MTD_ShotInfo* pShot = vShots[i];
    				void* pElement = MGetBlobArrayElement(pBlobArray, i);
    				memcpy(pElement, pShot, sizeof(MTD_ShotInfo));
    				ZGetGameClient()->GetPeerPacketCrypter().Encrypt((char*)pElement, sizeof(MTD_ShotInfo));
    			}
    
    			ZPOSTCMDLEAD(MC_GUNZ_ANTILEAD, GetUID(), MCommandParameterBlob(pBlobArray, MGetBlobArraySize(pBlobArray)));
    
    		}
    		}
    	}
    
    }


    ZGame.cpp(1839):
    Code:
    switch (pCommand->GetID())
    	{
    	case MC_GUNZ_ANTILEAD:
    		{
    			MCommandParameter* pParam = pCommand->GetParameter(0);
    
    			if (pParam->GetType() != MPT_BLOB)
    				break;
    
    			void* pBlob = pParam->GetPointer();
    			int nSize = MGetBlobArrayCount(pBlob);
    
    			for (int i = 0; i < nSize; ++i)
    			{
    				MTD_ShotInfo* pInfo = (MTD_ShotInfo*)MGetBlobArrayElement(pBlob, i);
    				ZGetGameClient()->GetPeerPacketCrypter().Decrypt((char*)pInfo, sizeof(MTD_ShotInfo));
    			
    				if (m_pMyCharacter && ZGetGameClient()->GetPlayerUID() != pCommand->GetSenderUID())
    				{
    					ZCharacter* pCharacter = (ZCharacter*)ZGetCharacterManager()->Find(pCommand->GetSenderUID());
    					rvector pos;
    					pos.x = pInfo->fPosX;
    					pos.y = pInfo->fPosY;
    					pos.z = pInfo->fPosZ;
    				//	if (pCharacter != ZGetGame()->m_pMyCharacter && !pCharacter->IsNPC()) {
    					//	pCharacter->GetStatus().CheckCrc();
    					//	pCharacter->GetStatus().Ref().nDamageCaused += pInfo->fDamage;
    					//	pCharacter->GetStatus().MakeCrc();
    					//}
    					if (pCharacter && pInfo->nLowId == ZGetGameClient()->GetPlayerUID().Low 
    						&& !ZGetGame()->GetMatch()->IsTeamPlay() ||  ((m_pMyCharacter->IsTeam(pCharacter) && ZGetGame()->GetMatch()->GetTeamKillEnabled()) || !m_pMyCharacter->IsTeam(pCharacter))
    						)
    					{
    						m_pMyCharacter->OnDamaged(pCharacter, pos, (ZDAMAGETYPE)pInfo->nDamageType, (MMatchWeaponType)pInfo->nWeaponType, pInfo->fDamage, pInfo->fRatio);
    					}
    				}
    				else
    				{
    					ZCharacter* pCharacter = (ZCharacter*)ZGetCharacterManager()->Find(pCommand->GetSenderUID());
    					if (pCharacter != ZGetGame()->m_pMyCharacter) 
    					{
    					//	pCharacter->GetStatus().CheckCrc();
    					//	pCharacter->GetStatus().Ref().nDamageCaused += pInfo->fDamage;
    					//	pCharacter->GetStatus().MakeCrc();
    					}
    					else
    					{
    					//	m_pMyCharacter->GetStatus().CheckCrc();
    					//	m_pMyCharacter->GetStatus().Ref().nDamageCaused += pInfo->fDamage;
    					//	m_pMyCharacter->GetStatus().MakeCrc();
    					}
    				}
    			}
    		}
    		break;
    
    	case MC_GUNZ_DAMAGECOUNTER:
    		{
    			//MCommandParameter* pParam = pCommand->GetParameter(0);
    			//MCommandParameter* pParam2 = pCommand->GetParameter(1);
    			int Damage;
    			MUID AttackerUID;
    			pCommand->GetParameter(&Damage,		0, MPT_INT);
    			pCommand->GetParameter(&AttackerUID, 1, MPT_UID);
    					ZCharacter* pCharacter = (ZCharacter*)ZGetCharacterManager()->Find(AttackerUID);
    
    						pCharacter->GetStatus().CheckCrc();
    						pCharacter->GetStatus().Ref().nDamageCaused += Damage;
    						pCharacter->GetStatus().MakeCrc();
    		}
    	break;


    ZGame.cpp(4282):
    Code:
    if(ZGetGameClient()->GetChannelType() == MCHANNEL_TYPE_CLAN) {
    
    	if(ZGetGameClient()->GetMatchStageSetting()->GetAntiLead() == true) {
    			pickinfo.pObject->OnDamaged(pOwner, pOwner->GetPosition(), dt, pDesc->m_nWeaponType.Ref(), fActualDamage, fRatio );
    	} else {
    			((ZCharacter*)(pickinfo.pObject))->OnDamagedAPlayer(pOwner, pOwner->GetPosition(), dt, pDesc->m_nWeaponType.Ref(), fActualDamage, fRatio );
    	}


    ZGame.cpp(4843):
    Code:
    MTD_ShotInfo* ZGame::OnPeerShotgun_Damaged(ZObject* pOwner, float fShotTime, const rvector& pos, rvector& dir, ZPICKINFO pickinfo, DWORD dwPickPassFlag, rvector& v1, rvector& v2, ZItem *pItem, rvector& BulletMarkNormal, bool& bBulletMark, ZTargetType& nTargetType, bool& bHitEnemy)
    {
    	ZCharacter *pTargetCharacter = ZGetGameInterface()->GetCombatInterface()->GetTargetCharacter();
    	bool bReturnValue = !pTargetCharacter;
    	if(!pTargetCharacter)PROTECT_DEBUG_REGISTER(bReturnValue) return NULL;
    	
    	MMatchItemDesc *pDesc = pItem->GetDesc();
    	bReturnValue = !pDesc;
    	if(!pDesc)PROTECT_DEBUG_REGISTER(bReturnValue) { _ASSERT(FALSE); return NULL; }
    
    	//rvector dir = to - pos;
    
    	bool waterSound = false;
    	//¿©±â¿¡ ¹æ¾îÄڵ尡 µé¾î°¡¾ßµÅ~
    	bReturnValue = !(ZGetGame()->PickHistory(pOwner,fShotTime,pos,pos+10000.f*dir, &pickinfo,dwPickPassFlag));
    	if(!(ZGetGame()->PickHistory(pOwner,fShotTime,pos,pos+10000.f*dir, &pickinfo,dwPickPassFlag)))
    	{
    		PROTECT_DEBUG_REGISTER(bReturnValue)
    		{
    			v1 = pos;
    			v2 = pos+dir*10000.f;
    			nTargetType	= ZTT_NOTHING;
    			waterSound = GetWorld()->GetWaters()->CheckSpearing( v1, v2, 250, 0.3, !waterSound );
    			return NULL;
    		}
    	}
    		//¿©±âµµ..
    	bReturnValue = (!pickinfo.pObject) && (!pickinfo.bBspPicked);
    	if(pickinfo.bBspPicked)
    	{
    		PROTECT_DEBUG_REGISTER(pickinfo.nBspPicked_DebugRegister == FOR_DEBUG_REGISTER)
    		{
    			nTargetType = ZTT_OBJECT;
    
    			v1 = pos;
    			v2 = pickinfo.bpi.PickPos;
    
    			// ÃÑź ÈçÀû
    			BulletMarkNormal.x = pickinfo.bpi.pInfo->plane.a;
    			BulletMarkNormal.y = pickinfo.bpi.pInfo->plane.b;
    			BulletMarkNormal.z = pickinfo.bpi.pInfo->plane.c;
    			Normalize(BulletMarkNormal);
    			bBulletMark = true;
    
    			// ¸Â´Â°÷ ¹Ý°æ 20cm °¡ È­¸é¿¡ µé¾î¿À¸é ±×¸°´Ù
    			bool bDrawTargetEffects = isInViewFrustum(v2,20.f,RGetViewFrustum());
    			if(bDrawTargetEffects)
    			{
    				rvector pdir = v2-v1;
    				Normalize(pdir);
    
    				int size = 3;
    				bool bDrawFireEffects = isInViewFrustum(v1,100.f,RGetViewFrustum());
    				rvector v[6];
    
    		//		size = GetWeapondummyPos(pOwnerCharacter,v);
    				ZCharacterObject* pCOwnerObject = MDynamicCast(ZCharacterObject, pOwner);
    				if(pCOwnerObject->IsRendered())
    					size = pCOwnerObject->GetWeapondummyPos(v);
    				else
    				{
    					size = 6;
    					v[0] = v[1] = v[2] = v1;
    					v[3] = v[4] = v[5] = v[0];
    				}
    
    
    				MMatchWeaponType wtype = pDesc->m_nWeaponType.Ref();
    				bool bSlugOutput = pDesc->m_bSlugOutput; 
    				ZGetEffectManager()->AddBulletMark(v2,BulletMarkNormal);
    				if(ZGetConfiguration()->GetExtra()->bShotgunSmoke == true) {
    				ZGetEffectManager()->AddShotEffect(&v1, size , v2, BulletMarkNormal, nTargetType, wtype, bSlugOutput, pCOwnerObject,bDrawFireEffects,bDrawTargetEffects);
    				}
    
    		}
    			waterSound = GetWorld()->GetWaters()->CheckSpearing( v1, v2, 250, 0.3, !waterSound );
    			return NULL;
    		}
    	}
    	else if( (!pickinfo.pObject) && (!pickinfo.bBspPicked) )
    	{
    		PROTECT_DEBUG_REGISTER(bReturnValue)
    		{
    			_ASSERT(false);
    			return NULL;
    		}
    	}
    
    	//À§¿¡±îÁö´Â °Ë»ç ´Ü°è...
    
    	ZObject *pObject = pickinfo.pObject;
    	bool bGuard = pObject->IsGuard() && (pickinfo.info.parts!=eq_parts_legs) &&		// ´Ù¸®´Â ¸·À»¼ö¾ø´Ù
    					DotProduct(dir,pObject->GetDirection())<0;
    
    	if(pObject->IsGuard() && (pickinfo.info.parts!=eq_parts_legs) &&
    					DotProduct(dir,pObject->GetDirection())<0) 
    	{
    		PROTECT_DEBUG_REGISTER(bGuard)
    		{
    			nTargetType = ZTT_CHARACTER_GUARD;
    			// ¸·¾Ò´Ù
    			rvector t_pos = pObject->GetPosition();
    			t_pos.z += 100.f;
    			ZGetEffectManager()->AddSwordDefenceEffect(t_pos+(-dir*50.f),-dir);
    			pObject->OnGuardSuccess();
    			v1 = pos;
    			v2 = pickinfo.info.vOut;
    			return NULL;
    		}
    	}
    
    	ZActor* pATarget = MDynamicCast(ZActor,pObject);
    	nTargetType = ZTT_CHARACTER;
    
    	bool bPushSkip = false;
    
    	if(pATarget) 
    	{
    		bPushSkip = pATarget->GetNPCInfo()->bNeverPushed;
    	}
    
    	float fKnockbackForce = pItem->GetKnockbackForce()/ (.5f*float(SHOTGUN_BULLET_COUNT));
    
    	if(bPushSkip) 
    	{
    //					ZGetSoundEngine()->PlaySound("fx_bullethit_mt_met");
    		rvector vPos = pOwner->GetPosition() + (pickinfo.pObject->GetPosition() - pOwner->GetPosition()) * 0.1f; 
    		ZGetSoundEngine()->PlaySound("fx_bullethit_mt_met", vPos );
    		fKnockbackForce = 1.0f;
    	}
    
    	pObject->OnKnockback( dir, fKnockbackForce );
    
    	float fActualDamage = CalcActualDamage(pOwner, pObject, (float)pDesc->m_nDamage.Ref());
    	float fRatio = pItem->GetPiercingRatio( pDesc->m_nWeaponType.Ref(), pickinfo.info.parts );
    	ZDAMAGETYPE dt = (pickinfo.info.parts==eq_parts_head) ? ZD_BULLET_HEADSHOT : ZD_BULLET;
    
    	MTD_ShotInfo* pShotInfo = NULL;
    
    if(ZGetGameClient()->GetChannelType() == MCHANNEL_TYPE_CLAN) {
    
    	if(ZGetGameClient()->GetMatchStageSetting()->GetAntiLead() == true) {
    		pickinfo.pObject->OnDamaged(pOwner, pOwner->GetPosition(), dt, pDesc->m_nWeaponType.Ref(), fActualDamage, fRatio );
    	} else {
    		pShotInfo = new MTD_ShotInfo;
    		pShotInfo->nLowId = pickinfo.pObject->GetUID().Low;
    		pShotInfo->fDamage = fActualDamage;
    		pShotInfo->fPosX = pOwner->GetPosition().x;
    		pShotInfo->fPosY = pOwner->GetPosition().y;
    		pShotInfo->fPosZ = pOwner->GetPosition().z;
    		pShotInfo->fRatio = fRatio;
    		pShotInfo->nDamageType = dt;
    		pShotInfo->nWeaponType = pDesc->m_nWeaponType.Ref();
    	}
    
    } else if(ZGetGameClient()->GetChannelType() == MCHANNEL_TYPE_DUELTOURNAMENT) {
    
    	if(strstr(ZGetGameClient()->GetChannelName(), "Lead")) {
    		pickinfo.pObject->OnDamaged(pOwner, pOwner->GetPosition(), dt, pDesc->m_nWeaponType.Ref(), fActualDamage, fRatio );
    	} else {
    		pShotInfo = new MTD_ShotInfo;
    		pShotInfo->nLowId = pickinfo.pObject->GetUID().Low;
    		pShotInfo->fDamage = fActualDamage;
    		pShotInfo->fPosX = pOwner->GetPosition().x;
    		pShotInfo->fPosY = pOwner->GetPosition().y;
    		pShotInfo->fPosZ = pOwner->GetPosition().z;
    		pShotInfo->fRatio = fRatio;
    		pShotInfo->nDamageType = dt;
    		pShotInfo->nWeaponType = pDesc->m_nWeaponType.Ref();
    	}
    
    } else {
    
    	if(pickinfo.pObject->IsNPC() == true || strstr(ZGetGameClient()->GetChannelName(), "Lead"))
    	{
    		pickinfo.pObject->OnDamaged(pOwner, pOwner->GetPosition(), dt, pDesc->m_nWeaponType.Ref(), fActualDamage, fRatio );
    	}
    	else
    	{
    		pShotInfo = new MTD_ShotInfo;
    		pShotInfo->nLowId = pickinfo.pObject->GetUID().Low;
    		pShotInfo->fDamage = fActualDamage;
    		pShotInfo->fPosX = pOwner->GetPosition().x;
    		pShotInfo->fPosY = pOwner->GetPosition().y;
    		pShotInfo->fPosZ = pOwner->GetPosition().z;
    		pShotInfo->fRatio = fRatio;
    		pShotInfo->nDamageType = dt;
    		pShotInfo->nWeaponType = pDesc->m_nWeaponType.Ref();
    	}
    }
    
    	if(!m_Match.IsTeamPlay() || (pTargetCharacter->GetTeamID()!=pObject->GetTeamID()))
    	{
    		bHitEnemy = true;
    	}
    
    	v1 = pos;
    	v2 = pickinfo.info.vOut;
    
    	waterSound = GetWorld()->GetWaters()->CheckSpearing( v1, v2, 250, 0.3, !waterSound );
    	return pShotInfo;
    }



    ZGameClient_Ladder.cpp(269):
    Code:
    int nAntiLead = 0;
    				MButton* pButton2 = (MButton*)pResource->FindWidget("AntiLeadCheckBox");
    				if ((pButton2) && (pButton2->GetCheck()))
    				{
    					nAntiLead = 1;
    				}
    
    				// ¿©±â¼­ ½ÇÁ¦·Î ¿äû
    				ZPostLadderRequestChallenge(ppMember, nCount, nBalancedMatching, nAntiLead);


    ZPost.h(906):
    Code:
    inline void ZPostLadderRequestChallenge(char** ppMemberCharNames, const int nMemberCount, unsigned long int nOptions, unsigned long int nAntiLead)	// ÀڽűîÁö Æ÷ÇÔ
    {
    	void* pBlobMembersName = MMakeBlobArray(sizeof(MTD_ReplierNode), nMemberCount);
    	for (int i = 0; i < nMemberCount; i++)
    	{
    		MTD_LadderTeamMemberNode* pMemberNode = (MTD_LadderTeamMemberNode*)MGetBlobArrayElement(pBlobMembersName, i);
    		strcpy(pMemberNode->szName, ppMemberCharNames[i]);
    	}
    
    	ZPOSTCMD4( MC_MATCH_LADDER_REQUEST_CHALLENGE, MCmdParamInt(nMemberCount), MCmdParamUInt(nOptions),
    			   MCmdParamBlob(pBlobMembersName, MGetBlobArraySize(pBlobMembersName)), MCmdParamUInt(nAntiLead) );
    		
    
    	MEraseBlobArray(pBlobMembersName);
    }



    ZGame.h(403):
    Code:
    MTD_ShotInfo* OnPeerShotgun_Damaged(ZObject* pOwner, float fShotTime, const rvector& pos, rvector &dir, ZPICKINFO pickinfo, DWORD dwPickPassFlag, rvector& v1, rvector& v2, ZItem *pItem, rvector& BulletMarkNormal, bool& bBulletMark, ZTargetType& nTargetType, bool& bHitEnemy);


    ZCharacter.h(262):
    Code:
    int			nDamageCaused;
    	int			nDamageTaken;


    ZCharacter.h(278):
    Code:
    nDamageCaused(0),
    							nDamageTaken(0)


    ZCharacter.h(786): Replace codes:
    Code:
    virtual void OnDamaged(ZObject* pAttacker, rvector srcPos, ZDAMAGETYPE damageType, MMatchWeaponType weaponType, float fDamage, float fPiercingRatio=1.f, int nMeleeType=-1);
    	virtual void OnDamagedAPlayer(ZObject* pAttacker, rvector srcPos, ZDAMAGETYPE damageType, MMatchWeaponType weaponType, float fDamage, float fPiercingRatio=1.f, int nMeleeTpye=-1);
    	virtual void OnDamagedAPlayer(ZObject* pAttacker, vector<MTD_ShotInfo*> vShots);
    	virtual void OnScream();


    ZGame.cpp(4567):
    Code:
    void ZGame::OnPeerShot_Shotgun(ZItem *pItem, ZCharacter* pOwnerCharacter, float fShotTime, const rvector& pos, const rvector& to)
    {
    	// ³» ij¸¯ÅÍ È¤Àº ³»°¡ º¸°íÀִ ij¸¯ÅÍ
    	ZCharacter *pTargetCharacter = ZGetGameInterface()->GetCombatInterface()->GetTargetCharacter();
    	if(!pTargetCharacter) return;
    
    	//// µð¹ö±×¿ë ´ýÇÁ
    	//{
    	//	if(strcmp("ÆøÁÖõ»ç´ÙÅ©",pTargetCharacter->GetProperty()->szName)==0) {
    	//		mlog("shot : %3.3f \n",fShotTime);
    	//	}
    	//}
    
    
    	MMatchItemDesc *pDesc = pItem->GetDesc();
    	if(!pDesc) { _ASSERT(false); return; }
    
    
    #define SHOTGUN_BULLET_COUNT	12
    #define SHOTGUN_DIFFUSE_RANGE	0.1f
    
    	
    
    	if (pOwnerCharacter == NULL) return;
    
    	// ¸ðµç»ç¶÷ÀÌ °°Àº random seed ¸¦ °®µµ·Ï °°Àº°ªÀ¸·Î ÃʱâÈ­ ÇØÁØ´Ù
    	int *seed=(int*)&fShotTime;
    	srand(*seed);
    
    	bool bHitGuard=false,bHitBody=false,bHitGround=false,bHitEnemy=false;
    	rvector GuardPos,BodyPos,GroundPos;
    	bool waterSound = false;
    
    	rvector v1, v2;
    	rvector dir;
    
    	rvector origdir = to - pos;
    	Normalize(origdir);
    
    	int nHitCount = 0;
    	vector<MTD_ShotInfo*> vShots;
    	ZPICKINFO pickinfo;
    	for(int i=0;i<SHOTGUN_BULLET_COUNT;i++)
    	{
    		dir = origdir;
    		{
    			// ¿ÀÂ÷°ª - ¹Ýµ¿´ë½Å ½Ã¹ü»ï¾Æ ³ÖÀ½
    			rvector r, up(0,0,1), right;
    			D3DXQUATERNION q;
    			D3DXMATRIX mat;
    
    			float fAngle = (rand() % (31415 * 2)) / 1000.0f;
    			float fForce = RANDOMFLOAT*SHOTGUN_DIFFUSE_RANGE;
    
    			D3DXVec3Cross(&right,&dir,&up);
    			D3DXVec3Normalize(&right,&right);
    			D3DXMatrixRotationAxis(&mat, &right, fForce);
    			D3DXVec3TransformCoord(&r, &dir, &mat);
    
    			D3DXQuaternionRotationAxis(&q, &dir, fAngle);
    			D3DXMatrixRotationQuaternion(&mat, &q);
    			D3DXVec3TransformCoord(&r, &r, &mat);
    
    			dir=r;
    		}
    		rvector BulletMarkNormal;
    		bool bBulletMark = false;
    		ZTargetType nTargetType = ZTT_OBJECT;
    
    		ZPICKINFO pickinfo;
    
    		memset(&pickinfo,0,sizeof(ZPICKINFO));
    
    		// ÃѾËÀº ·ÎÄÏÀÌ Åë°úÇϴ°÷µµ Åë°úÇÑ´Ù
    		const DWORD dwPickPassFlag=RM_FLAG_ADDITIVE | RM_FLAG_HIDE | RM_FLAG_PASSROCKET | RM_FLAG_PASSBULLET;
    		//jintriple3 µð¹ö±× ·¹Áö½ºÅÍ ÇÙ ¹æ¾î ÇÔ¼ö..
    		MTD_ShotInfo* pShotInfo = OnPeerShotgun_Damaged( pOwnerCharacter, fShotTime, pos, dir, pickinfo, dwPickPassFlag, v1, v2, pItem, BulletMarkNormal, bBulletMark, nTargetType, bHitEnemy);
    		
    		if (pShotInfo)
    			vShots.push_back(pShotInfo);
    
    /*		if(g_pGame->PickHistory(pOwnerCharacter,fShotTime,pos,pos+10000.f*dir,&pickinfo,dwPickPassFlag))
    		{
    			ZObject *pObject = pickinfo.pObject;
    			if(pObject)
    			{
    				bool bGuard = pObject->IsGuard() && (pickinfo.info.parts!=eq_parts_legs) &&		// ´Ù¸®´Â ¸·À»¼ö¾ø´Ù
    								DotProduct(dir,pObject->GetDirection())<0;
    
    				if(bGuard) 
    				{
    					rvector t_pos = pObject->GetPosition();
    					t_pos.z += 100.f;
    					ZGetEffectManager()->AddSwordDefenceEffect(t_pos+(-dir*50.f),-dir);
    					pObject->OnGuardSuccess();
    
    					nTargetType = ZTT_CHARACTER_GUARD;
    					bHitGuard=true;
    
    				} 
    				else 
    				{
    
    					ZActor* pATarget = MDynamicCast(ZActor,pObject);
    
    					bool bPushSkip = false;
    
    					if(pATarget) {
    						bPushSkip = pATarget->GetNPCInfo()->bNeverPushed;
    					}
    
    					float fKnockbackForce = pItem->GetKnockbackForce() / (.5f*float(SHOTGUN_BULLET_COUNT));
    
    					if(bPushSkip) {
    //						ZGetSoundEngine()->PlaySound("fx_bullethit_mt_met");
    						rvector vPos = pOwnerCharacter->GetPosition() + (pObject->GetPosition() - pOwnerCharacter->GetPosition()) * 0.1f; 
    						ZGetSoundEngine()->PlaySound("fx_bullethit_mt_met", vPos );
    						fKnockbackForce = 1.0;
    					}
    
    					pObject->OnKnockback( dir, fKnockbackForce );
    
    					float fActualDamage = CalcActualDamage(pOwnerCharacter, pObject, (float)pDesc->m_nDamage);
    					float fRatio = ZItem::GetPiercingRatio( pDesc->m_nWeaponType , pickinfo.info.parts );
    					ZDAMAGETYPE dt = (pickinfo.info.parts==eq_parts_head) ? ZD_BULLET_HEADSHOT : ZD_BULLET;
    					//jintriple3 ¿©±âµµ µð¹ö±× ·¹Áö½ºÅÍ ÇÙÀ¸·ÎºÎÅÍ ¾ÈÀüÇÏÁö ¾ÊÀ½...À̰Š¿ÏÀü ³ë°¡´Ù..¤Ì¤Ì
    					pObject->OnDamaged(pOwnerCharacter, pOwnerCharacter->GetPosition(), dt, pDesc->m_nWeaponType, fActualDamage, fRatio );
    
    					nTargetType = ZTT_CHARACTER;
    					bHitBody=true;
    
    					// ¿ì¸®Æí ¶§¸°°ÍÀº combo ¿¡ Æ÷ÇÔµÇÁö ¾ÊÀ½
    					if(!m_Match.IsTeamPlay() || (pTargetCharacter->GetTeamID()!=pObject->GetTeamID()))
    					{
    						bHitEnemy=true;
    					}
    				}
    
    				v1 = pos;
    				v2 = pickinfo.info.vOut;
    
    			}
    			else
    				if(pickinfo.bBspPicked)
    		//		if(pickinfo.bBspPicked || (pCharacter == pOwnerCharacter))
    				{
    					bHitGround=true;
    					nTargetType = ZTT_OBJECT;
    
    					v1 = pos;
    					v2 = pickinfo.bpi.PickPos;
    
    					// ÃÑź ÈçÀû
    					BulletMarkNormal.x = pickinfo.bpi.pInfo->plane.a;
    					BulletMarkNormal.y = pickinfo.bpi.pInfo->plane.b;
    					BulletMarkNormal.z = pickinfo.bpi.pInfo->plane.c;
    					Normalize(BulletMarkNormal);
    					bBulletMark = true;
    
    					// ¸Â´Â°÷ ¹Ý°æ 20cm °¡ È­¸é¿¡ µé¾î¿À¸é ±×¸°´Ù
    					bool bDrawTargetEffects = isInViewFrustum(v2,20.f,RGetViewFrustum());
    					if(bDrawTargetEffects)
    						ZGetEffectManager()->AddBulletMark(v2,BulletMarkNormal);
    */
    /*
    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    // by º£´Ï
    // ¼¦°ÇÀÌ ÀÌÆåÆ®°¡ Á¦´ë·Î ³ª¿ÀÁö ¾Ê¾Æ¼­ ¼öÁ¤
    #define TARGET_SMOKE_MAX_SCALE		50.0f
    #define TARGET_SMOKE_MIN_SCALE		40.0f
    #define TARGET_SMOKE_LIFE_TIME		0.9f
    #define TARGET_SMOKE_VELOCITY		0.2f				// meter/sec
    #define TARGET_SMOKE_ACCEL			rvector(0,0,100.f)	// meter/sec
    
    	int max_cnt = 0;
    
    	if(GetEffectLevel()==0)	max_cnt = 5;
    	else if(GetEffectLevel()==1)	max_cnt = 3;
    	else if(GetEffectLevel()==2)	max_cnt = 1;
    
    	if(max_cnt) {
    	//m_EffectManager.AddShotEffect(v,size, v2, BulletMarkNormal, nTargetType, NULL,ring_draw,wtype,pOwnerCharacter);	
    		for(int i=0; i<max_cnt; i++) {
    			rvector p = v2+BulletMarkNormal*TARGET_SMOKE_MIN_SCALE*float(i)*0.5f + rvector(fmod((float)rand(), TARGET_SMOKE_MIN_SCALE), fmod((float)rand(), TARGET_SMOKE_MIN_SCALE), fmod((float)rand(), TARGET_SMOKE_MIN_SCALE));
    			float fSize = 1.0f+float(rand()%100)/100.0f;
    			m_EffectManager.AddSmokeEffect(m_EffectManager.m_pEBSSmokes[rand()%SMOKE_COUNT], p, BulletMarkNormal*TARGET_SMOKE_VELOCITY,rvector(0,100.f,0), TARGET_SMOKE_MIN_SCALE*fSize, TARGET_SMOKE_MAX_SCALE*fSize, TARGET_SMOKE_LIFE_TIME);
    		}
    		m_EffectManager.AddLightFragment(v2,BulletMarkNormal);
    
    	}
    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    *//*
    			}
    				else {
    					_ASSERT(false);
    					return;
    				}
    		}
    		else {
    			v1 = pos;
    			v2 = pos+dir*10000.f;
    			nTargetType	= ZTT_NOTHING;
    		}
    
    		waterSound = GetWorld()->GetWaters()->CheckSpearing( v1, v2, 250, 0.3, !waterSound );
    	}
    
    	*/
    	/////////////////////////////////////////////////////
    	
    	}
    
    	
    	if (vShots.size() > 0 && !ZGetGameInterface()->GetCombatInterface()->GetObserverMode())
    	{
    		ZCharacter* pCharacter = (ZCharacter*)ZGetCharacterManager()->Find(MUID(0, vShots[0]->nLowId));
    		if (pCharacter && !m_pMyCharacter->IsDie())
    		{
    			if (!GetMatch()->IsTeamPlay())
    				pCharacter->OnDamagedAPlayer(pOwnerCharacter, vShots);
    			else if (GetMatch()->IsTeamPlay() && ZGetGame()->GetMatch()->GetTeamKillEnabled() && pCharacter->IsTeam(m_pMyCharacter))
    				pCharacter->OnDamagedAPlayer(pOwnerCharacter, vShots);
    			else if (GetMatch()->IsTeamPlay() && !pCharacter->IsTeam(m_pMyCharacter))
    				pCharacter->OnDamagedAPlayer(pOwnerCharacter, vShots);
    		}
    
    			vShots.clear();
    	}
    
    	if(bHitEnemy) {
    		CheckStylishAction(pOwnerCharacter);
    		CheckCombo(pOwnerCharacter, NULL,true);
    	}
    
    	ZApplication::GetSoundEngine()->PlaySEFire(pItem->GetDesc(), pos.x, pos.y, pos.z, (pOwnerCharacter==m_pMyCharacter));
    
    	// º¸ÀÌÁö ¾ÊÀ¸¸é ÀÌÆåÆ®¸¦ ±×¸±ÇÊ¿ä´Â ¾ø´Ù
    	if(!pOwnerCharacter->IsRendered()) return;
    
    	rvector v[6];
    
    	int _size = pOwnerCharacter->GetWeapondummyPos(v);
    
    	dir = to - pos;
    	Normalize(dir);
    	//if(ZGetConfiguration()->GetExtra()->bShotgunSmoke == true) {
    	ZGetEffectManager()->AddShotgunEffect(const_cast<rvector&>(pos),v[1],dir,pOwnerCharacter);
    	//}
    	ZGetEffectManager()->AddBloodEffect(const_cast<rvector&>(pos), dir);
    
    	// ÃÑ ½ò¶§ ¶óÀÌÆ® Ãß°¡
    	ZCharacter* pChar;
    	if( ZGetConfiguration()->GetVideo()->bDynamicLight && pOwnerCharacter != NULL )
    	{
    		pChar = pOwnerCharacter;
    
    		if( pChar->m_bDynamicLight )
    		{
    			pChar->m_vLightColor = g_CharLightList[SHOTGUN].vLightColor;
    			pChar->m_fLightLife = g_CharLightList[SHOTGUN].fLife;
    		}
    		else
    		{
    			pChar->m_bDynamicLight = true;
    			pChar->m_vLightColor = g_CharLightList[SHOTGUN].vLightColor;
    			pChar->m_vLightColor.x = 1.0f;
    			pChar->m_iDLightType = SHOTGUN;
    			pChar->m_fLightLife = g_CharLightList[SHOTGUN].fLife;
    		}
    	}
    //	m_flags.CheckSpearing( v1, v2, SHOTGUN_SPEAR_EMBLEM_POWER );
    	if(Z_VIDEO_DYNAMICLIGHT)
    		ZGetStencilLight()->AddLightSource(v1, 2.0f, 200 );
    }


    Zitem.cpp(160):
    Code:
    case MWT_PISTOL:
    		case MWT_PISTOLx2:
    			{
    				if(bHead)	fRatio = 0.7f;
    				else		fRatio = 0.5f;
    			}
    			break;
    
    		case MWT_REVOLVER:
    		case MWT_REVOLVERx2:
    			{
    				if(bHead)	fRatio = 0.75f; //0.9
    				else		fRatio = 0.55f; //0.7
    			}
    			break;



    MLadderPicker.h(70):
    bool PickMatch(int* pGroupA, int* pGroupB);

    MMatchServer.h(416):
    void LadderGameLaunch(MLadderGroup* pGroupA, MLadderGroup* pGroupB);



    *If any declarations missing please inform. m really messed with this stuff lol..



    CREDITS:

    SecretsOThePast : For source
    ThePhailure1772: Fixing antilead (Made perfect)
    Myself: For sorting and releasing

    Also tell me if anyone helped me with this source.
    Last edited by Ronny786; 03-01-13 at 04:52 AM. Reason: Use code tags, not quote tags.


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

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Nice watch in Igunz source bro.... LOLOL


    but its ok for other ppl what cant see the line's ;P
    Last edited by Tankado; 05-10-12 at 09:22 PM.

  3. #3
    Yaaay! Tannous is offline
    MemberRank
    Jul 2012 Join Date
    KonohaLocation
    840Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Great Job bro :)

  4. #4
    Mako is insane. ThePhailure772 is offline
    MemberRank
    Sep 2007 Join Date
    1,115Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    How many more times is this going to be posted, jesus.

  5. #5
    Currently Stoned ! Ronny786 is offline
    MemberRank
    Dec 2011 Join Date
    Lost WorldLocation
    984Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Quote Originally Posted by ThePhailure772 View Post
    How many more times is this going to be posted, jesus.
    This source has clan antilead options + checkbox + some values fixed by you LOL ... i guess better than ur recent antilead thread .

  6. #6
    Valued Member dsw_pool is offline
    MemberRank
    Oct 2009 Join Date
    HouseLocation
    142Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    because you would miss the xml ;)

  7. #7
    Hi, I'm Omar! Vusion is offline
    MemberRank
    Jan 2011 Join Date
    HereLocation
    1,658Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    How hard is it to write your own anti-lead?

  8. #8
    Daemonsring Developer Gunblade is offline
    MemberRank
    Jul 2007 Join Date
    On the moonLocation
    728Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Quote Originally Posted by Vusion View Post
    How hard is it to write your own anti-lead?
    For people that can't program it's extremely hard.
    It requires quite a bit of knowledge how to create one.

  9. #9
    DRGunZ 2 Creator wesman2232 is offline
    MemberRank
    Jan 2007 Join Date
    Erie, PALocation
    4,872Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    For people like me who don't even know where to begin on even reading the source, let alone writing it...
    I think I'll stick to my web programming.

  10. #10
    Valued Member kike2 is offline
    MemberRank
    Nov 2009 Join Date
    Chosica, Lima,Location
    118Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Error cscomon :

    captura6.png

    codigo error :

    source\mladdermgr.cpp(184) : Error c2065: 'pgroupa' : Undeclared identifier
    source\mladdermgr.cpp(184) : Error c2227: Left of '->getantileadmatching' must point to class/struct/union
    type is ''unknown-type''
    source\mladdermgr.cpp(184) : Error c2065: 'pgroupb' : Undeclared identifier
    source\mladdermgr.cpp(184) : Error c2227: Left of '->getantileadmatching' must point to class/struct/union

  11. #11
    Currently Stoned ! Ronny786 is offline
    MemberRank
    Dec 2011 Join Date
    Lost WorldLocation
    984Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Quote Originally Posted by kike2 View Post
    Error cscomon :

    captura6.png

    codigo error :





    MLadderPicker.h(70):
    bool PickMatch(int* pGroupA, int* pGroupB);

    MMatchServer.h(416):
    void LadderGameLaunch(MLadderGroup* pGroupA, MLadderGroup* pGroupB);

  12. #12
    Valued Member kike2 is offline
    MemberRank
    Nov 2009 Join Date
    Chosica, Lima,Location
    118Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    MLadderPicker.h(70):
    bool PickMatch(int* pGroupA, int* pGroupB);

    MMatchServer.h(416):
    void LadderGameLaunch(MLadderGroup* pGroupA, MLadderGroup* pGroupB);

    ERROR 6 D:


    captura7.pngcaptura8.png

    Thanks But I'll do it again I think something movi

  13. #13
    Valued Member dsw_pool is offline
    MemberRank
    Oct 2009 Join Date
    HouseLocation
    142Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Quote Originally Posted by kike2 View Post
    ERROR 6 D:


    captura7.pngcaptura8.png

    Thanks But I'll do it again I think something movi
    Replace line not copy !

  14. #14
    Valued Member kike2 is offline
    MemberRank
    Nov 2009 Join Date
    Chosica, Lima,Location
    118Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    Replace line not copy !

    thanks but returns the same error D:

    captura9.png

  15. #15
    Valued Member lil_Homie is offline
    MemberRank
    May 2010 Join Date
    134Posts

    Re: New Anti-lead Source 1.5 (FIXED 2012)

    I'd like to kno what is exactly in this particular antilead lol. And where wud the xml also be for this lol?



Page 1 of 3 123 LastLast

Advertisement