Anti-Lead

Page 1 of 3 123 LastLast
Results 1 to 15 of 41
  1. #1
    Mako is insane. ThePhailure772 is offline
    MemberRank
    Sep 2007 Join Date
    1,115Posts

    Anti-Lead

    Stop messaging me about Gunz, I'm done with it 100%.

    The first part might be misaligned, someone feel free to correct it.

    Code:
    --MMatchTransDataType.h Line: 576
    struct MTD_ShotInfo
    {
    	unsigned long nLowId;
    	float fPosX;
    	float fPosY;
    	float fPosZ;
    	float fDamage;
    	float fRatio;
    	char nDamageType;
    	char nWeaponType; 
    };
    
    --MMatchClient.h Line: 151
    MPacketCrypter GetPeerPacketCrypter() { return m_PeerPacketCrypter; }
    
    --ZGameClient.h Line: 399
    #define ZPOSTCMDLEAD(_ID, _UID, _P0)								{ MCommand* pC=ZNewCmd(_ID); pC->AP(_P0); pC->m_Receiver = _UID; ZPostCommand(pC); }
    
    --MSharedCommandTable.h Line: 680
    #define MC_GUNZ_ANTILEAD						50010
    
    --MSharedCommandTable.cpp Line: 1710
    C(MC_GUNZ_ANTILEAD, "Match.Gunz.AntiLead", "AntiLead Information", MCDT_PEER2PEER)
    	P(MPT_BLOB, "ShotInfo");
    ZGame.h - 384
    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);
    ZGame.cpp - 4272
    Code:
    	ZDAMAGETYPE dt = (pickinfo.info.parts==eq_parts_head) ? ZD_BULLET_HEADSHOT : ZD_BULLET;
    	if(pickinfo.pObject->IsNPC() == 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 );
    	}
    4589
    Code:
    vector<MTD_ShotInfo*> vShots;
    4623
    Code:
    		MTD_ShotInfo* pShotInfo = OnPeerShotgun_Damaged( pOwnerCharacter, fShotTime, pos, dir, pickinfo, dwPickPassFlag, v1, v2, pItem, BulletMarkNormal, bBulletMark, nTargetType, bHitEnemy);
    
    		if (pShotInfo)
    			vShots.push_back(pShotInfo);
    4760
    Code:
    	if (vShots.size() > 0 && !ZGetGameInterface()->GetCombatInterface()->GetObserverMode())
    	{
    		ZCharacter* pCharacter = ZGetCharacterManager()->Find(MUID(0, vShots[0]->nLowId));
    
    		if (pOwnerCharacter->GetUID() == ZGetGameClient()->GetPlayerUID())
    		{
    			if (!GetMatch()->IsTeamPlay())
    			{
    				pCharacter->OnDamagedAPlayer(vShots);
    			}
    			else if (GetMatch()->IsTeamPlay() && ZGetGame()->GetMatch()->GetTeamKillEnabled() && pCharacter->IsTeam(pOwnerCharacter))
    			{
    				pCharacter->OnDamagedAPlayer(vShots);
    				//ZPostPeerChat("2 - True");
    			}
    			else if (GetMatch()->IsTeamPlay() && !pCharacter->IsTeam(pOwnerCharacter))
    			{
    				pCharacter->OnDamagedAPlayer(vShots);
    				//ZPostPeerChat("3 - True");
    			}
    		}
    
    		for(auto i = vShots.begin(); i != vShots.end(); i++)
    		{
    			auto p = *i;
    			delete p;
    		}
    	}
    4836
    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);
    				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 Damage = 0;
    	Damage = (float)pDesc->m_nDamage.Ref();
    
    	float fActualDamage = CalcActualDamage(pOwner, pObject, (float)pDesc->m_nDamage.Ref(), true, pDesc->m_nWeaponType.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(pickinfo.pObject->IsNPC() == 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();
    	}
    
    	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;
    }
    4273
    Code:
    	if(pickinfo.pObject->IsNPC() == 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 );
    	}
    1902
    Code:
    	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 = ZGetCharacterManager()->Find(pCommand->GetSenderUID());
    					rvector pos;
    					pos.x = pInfo->fPosX;
    					pos.y = pInfo->fPosY;
    					pos.z = pInfo->fPosZ;
    
    
    					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);
    						pCharacter->GetStatus().CheckCrc();
    						pCharacter->GetStatus().Ref().nDamageCaused += pInfo->fDamage;
    						pCharacter->GetStatus().MakeCrc();
    					}
    				}
    				else
    				{
    					ZCharacter* pCharacter = 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;
    ZCharacter.cpp - 4415
    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)));
    		}
    	}
    }
    
    void ZCharacter::OnDamagedAPlayer(vector<MTD_ShotInfo*> vShotInfo)
    {
    	if (vShotInfo.size() > 0)
    	{
    		if (ZGetGameClient()->GetPlayerUID().Low != GetUID().Low)
    		{
    			void* pBlobArray = MMakeBlobArray(sizeof(MTD_ShotInfo), vShotInfo.size());
    
    			for (int i = 0; i < vShotInfo.size(); ++i)
    			{
    				MTD_ShotInfo* pShot = vShotInfo[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)));
    		}
    	}
    }
    ZCharacter.h - 787
    Code:
    	virtual void OnDamagedAPlayer(ZObject* pAttacker, rvector srcPos, ZDAMAGETYPE damageType, MMatchWeaponType weaponType, float fDamage, float fPiercingRatio=1.f, int nMeleeTpye=-1);
    	virtual void OnDamagedAPlayer(vector<MTD_ShotInfo*> vShots);
    ZItem.cpp - 174
    Code:
    		case MWT_REVOLVER:
    		case MWT_REVOLVERx2:
    			{
    				if(bHead)	fRatio = 0.8f;
    				else		fRatio = 0.6f;
    			}
    			break;
    iirc, that should be everything.


  2. #2
    Gunz General Develop Gun[Lengend] is offline
    MemberRank
    Jan 2010 Join Date
    Gunz Viet NamLocation
    312Posts

    Re: Anti-Lead

    Thank you very much :D

  3. #3
    Member gunzhelp is offline
    MemberRank
    Jan 2011 Join Date
    90Posts

    Re: Anti-Lead

    c:\Gunz\ZGame.h(384) : error C2556: 'MTD_ShotInfo *ZGame::OnPeerShotgun_Damaged(ZObject *,float,const D3DXVECTOR3 &,D3DXVECTOR3 &,ZPICKINFO,DWORD,D3DXVECTOR3 &,D3DXVECTOR3 &,ZItem *,D3DXVECTOR3 &,bool &,ZTargetType &,bool &)' : overloaded function differs only by return type from 'void ZGame::OnPeerShotgun_Damaged(ZObject *,float,const D3DXVECTOR3 &,D3DXVECTOR3 &,ZPICKINFO,DWORD,D3DXVECTOR3 &,D3DXVECTOR3 &,ZItem *,D3DXVECTOR3 &,bool &,ZTargetType &,bool &)'
    c:\Gunz\ZGame.h(383) : see declaration of 'ZGame::OnPeerShotgun_Damaged'
    c:\Gunz\ZGame.h(384) : error C2040: 'ZGame::OnPeerShotgun_Damaged' : 'MTD_ShotInfo *(ZObject *,float,const D3DXVECTOR3 &,D3DXVECTOR3 &,ZPICKINFO,DWORD,D3DXVECTOR3 &,D3DXVECTOR3 &,ZItem *,D3DXVECTOR3 &,bool &,ZTargetType &,bool &)' differs in levels of indirection from 'void (ZObject *,float,const D3DXVECTOR3 &,D3DXVECTOR3 &,ZPICKINFO,DWORD,D3DXVECTOR3 &,D3DXVECTOR3 &,ZItem *,D3DXVECTOR3 &,bool &,ZTargetType &,bool &)'
    please help me :(

  4. #4
    Valued Member SandOfTime is offline
    MemberRank
    Mar 2011 Join Date
    112Posts

    Re: Anti-Lead

    Don't support

  5. #5
    Account Upgraded | Title Enabled! ThunderZ is offline
    MemberRank
    Oct 2011 Join Date
    396Posts

    Re: Anti-Lead

    good release i guess '-'

    although most of the people here won't know what to do with it.

  6. #6
    Good Guy George qet123 is offline
    MemberRank
    Apr 2009 Join Date
    DesertLocation
    1,432Posts

    Re: Anti-Lead

    Well, thanks xd

  7. #7
    Gunz General Develop Gun[Lengend] is offline
    MemberRank
    Jan 2010 Join Date
    Gunz Viet NamLocation
    312Posts

    Re: Anti-Lead

    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);
    Error from here.
    Maybe no function here to make it active.
    Sorry i noob in english and C++ too, ( if i wrong :D )

  8. #8
    Account Upgraded | Title Enabled! BG-Nero is offline
    MemberRank
    Feb 2012 Join Date
    GermanyLocation
    285Posts

    Re: Anti-Lead

    Legend..
    10/10 awesome!

  9. #9
    Valued Member SandOfTime is offline
    MemberRank
    Mar 2011 Join Date
    112Posts

    Re: Anti-Lead

    it is the way to add anti lead.
    not support if you get error.

  10. #10
    Gunz General Develop Gun[Lengend] is offline
    MemberRank
    Jan 2010 Join Date
    Gunz Viet NamLocation
    312Posts

    Re: Anti-Lead

    it is the way to add anti lead.
    not support if you get error.
    It really get error following the topic :D.
    Can't use if someone don't know about C++ MFC.
    Like me !! :D

    I think should be :
    1. #Include header file.
    2. MTD_ShotInfo must return a value.
    I really noob, if i wrong, don't laugh me :D

  11. #11
    Enthusiast nubxd is offline
    MemberRank
    Apr 2010 Join Date
    28Posts

    Re: Anti-Lead

    its for 1.5?

    and thanks good release *.*

  12. #12
    Gunz General Develop Gun[Lengend] is offline
    MemberRank
    Jan 2010 Join Date
    Gunz Viet NamLocation
    312Posts

    Re: Anti-Lead

    try to fix your prolem and help someone ok ? I'm fail with it :D
    So lol, following it and fail, what about "fail"

  13. #13
    Proficient Member iDelta123 is offline
    MemberRank
    Apr 2012 Join Date
    The NetherlandsLocation
    154Posts

    Re: Anti-Lead

    @Gun[Lengend]
    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);
    @Jacob
    And for Jacob: Is this not a little bit unfair? i paid $50 to buy anti lead and now you release to public. whatever.
    Last edited by iDelta123; 01-05-12 at 01:42 PM. Reason: Use code tags.

  14. #14
    2D > 3D Wucas is offline
    MemberRank
    Dec 2008 Join Date
    In your bed :3Location
    2,523Posts

    Re: Anti-Lead

    Quote Originally Posted by iDelta123 View Post
    @Gun[Lengend]
    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);
    @Jacob
    And for Jacob: Is this not a little bit unfair? i paid $50 to buy anti lead and now you release to public. whatever.
    That was your choice to buy it or not, don't blame him for
    releasing something that is rightfully his.

  15. #15
    Gunz General Develop Gun[Lengend] is offline
    MemberRank
    Jan 2010 Join Date
    Gunz Viet NamLocation
    312Posts

    Re: Anti-Lead

    @ iDelta :
    What' up do you want talking to me ?
    I follow the thread but get error in MTD_ShotInfo* .....



Page 1 of 3 123 LastLast

Advertisement