segunda-feira, 13 de agosto de 2012

Other Soucer Anti-Lead 1.5


bem, este chumbo anti é bom, com tag [LEAD] para o quarto e canal.

LIBERADO PELO INTELWORKER

--ZCharacter.h Line 783

PHP Code:
virtual void OnDamagedAPlayer(ZObjectpAttackerrvector srcPosZDAMAGETYPE damageTypeMMatchWeaponType weaponTypefloat fDamagefloat fPiercingRatio=1.fint nMeleeTpye=-1);virtual void OnDamagedAPlayer(vector<MTD_ShotInfo*> vShots);  
--ZCharacter.cpp Line: 4374

PHP Code:
void ZCharacter::OnDamagedAPlayer(ZObjectpAttackerrvector srcPosZDAMAGETYPE damageTypeMMatchWeaponType weaponTypefloat fDamagefloat fPiercingRatioint nMeleeTpye)
{
    if (
damageType == ZD_MELEE)
    {
        
OnDamaged(pAttackersrcPosdamageTypeweaponTypefDamagefPiercingRationMeleeTpye);
        return;
    }

    if (
pAttacker != NULL && fDamage 0)
    {
        if (
pAttacker == ZGetGame()->m_pMyCharacter && this != pAttacker && !ZGetGame()->m_pMyCharacter->IsDie())
        {
            
voidpBlobArray MMakeBlobArray(sizeof(MTD_ShotInfo), 1);
            
voidpBlobElement MGetBlobArrayElement(pBlobArray0);

            
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, &shotInfosizeof(MTD_ShotInfo));
            
ZGetGameClient()->GetPeerPacketCrypter().Encrypt((char*)pBlobElementsizeof(MTD_ShotInfo));
            
ZPOSTCMDLEAD(MC_GUNZ_ANTILEADGetUID(), MCommandParameterBlob(pBlobArrayMGetBlobArraySize(pBlobArray)));
        }
    }
}
void ZCharacter::OnDamagedAPlayer(vector<MTD_ShotInfo*> vShotInfo)
{
    if (
vShotInfo.size() > 0)
    {
        if (
ZGetGameClient()->GetPlayerUID().Low != GetUID().Low)
        {
            
voidpBlobArray MMakeBlobArray(sizeof(MTD_ShotInfo), vShotInfo.size());

            for (
int i 0vShotInfo.size(); ++i)
            {
                
MTD_ShotInfopShot vShotInfo[i];
                
voidpElement MGetBlobArrayElement(pBlobArrayi);
                
memcpy(pElementpShotsizeof(MTD_ShotInfo));
                
ZGetGameClient()->GetPeerPacketCrypter().Encrypt((char*)pElementsizeof(MTD_ShotInfo));
            }

            
ZPOSTCMDLEAD(MC_GUNZ_ANTILEADGetUID(), MCommandParameterBlob(pBlobArrayMGetBlobArraySize(pBlobArray)));
        }
    }
}  

--ZGame.cpp Line: 4475

PHP Code:
vector<MTD_ShotInfo*> vShots;  

--ZGame.cpp Line: 4511

PHP Code:
MTD_ShotInfopShotInfo OnPeerShotgun_DamagedpOwnerCharacterfShotTimeposdirpickinfodwPickPassFlagv1v2pItemBulletMarkNormalbBulletMarknTargetTypebHitEnemy);  

--ZGame.cpp Line: 4648

PHP Code:
if (vShots.size() > && !ZGetGameInterface()->GetCombatInterface()->GetObserverMode())
        {
                
ZCharacterpCharacter = (ZCharacter*)ZGetCharacterManager()->Find(MUID(0vShots[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);
                        }
                        else if (
GetMatch()->IsTeamPlay() && !pCharacter->IsTeam(pOwnerCharacter))
                        {
                                
pCharacter->OnDamagedAPlayer(vShots);
                        }
                }
        
vShots.clear();
        }  

--ZGame.cpp Line: 4171

PHP Code:
if(pickinfo.pObject->IsNPC() == true)
        
pickinfo.pObject->OnDamaged(pOwnerpOwner->GetPosition(), dtpDesc->m_nWeaponType.Ref(), fActualDamagefRatio );
else
        ((
ZCharacter*)(pickinfo.pObject))->OnDamagedAPlayer(pOwnerpOwner->GetPosition(), dtpDesc->m_nWeaponType.Ref(), fActualDamagefRatio );  

--Zitem.cpp Line: 171

PHP Code:
if(bHead)       fRatio 0.8f;
else            
fRatio 0.6f;  

--MMatchTransDataType.h Line: 576

PHP Code:
struct MTD_ShotInfo{
        
unsigned long nLowId;
        
float fPosX;
        
float fPosY;
        
float fPosZ;
        
float fDamage;
        
float fRatio;
        
char nDamageType;
        
char nWeaponType;
};  
--MMatchClient.h Line: 151

PHP Code:
MPacketCrypter GetPeerPacketCrypter() { return m_PeerPacketCrypter; }  
--ZGameClient.h Line: 399

PHP Code:
#define ZPOSTCMDLEAD(_ID, _UID, _P0)                                                            { MCommand* pC=ZNewCmd(_ID); pC->AP(_P0); pC->m_Receiver = _UID; ZPostCommand(pC); }  
--MSharedCommandTable.h Line: 680

PHP Code:
#define MC_GUNZ_ANTILEAD                                                50010  
--MSharedCommandTable.cpp Line: 1710

PHP Code:
C(MC_GUNZ_ANTILEAD"Match.Gunz.AntiLead""AntiLead Information"MCDT_PEER2PEER)
                 
P(MPT_BLOB"ShotInfo");  
-ZGame.cpp Line: 1806


PHP Code:
case MC_GUNZ_ANTILEAD:
                {
                        
MCommandParameterpParam pCommand->GetParameter(0);
 
                        if (
pParam->GetType() != MPT_BLOB)
                                break;
 
                        
voidpBlob pParam->GetPointer();
                        
int nSize MGetBlobArrayCount(pBlob);
 
                        for (
int i 0nSize; ++i)
                        {
                                
MTD_ShotInfopInfo = (MTD_ShotInfo*)MGetBlobArrayElement(pBlobi);
                                
ZGetGameClient()->GetPeerPacketCrypter().Decrypt((char*)pInfosizeof(MTD_ShotInfo));
                       
                                if (
m_pMyCharacter && ZGetGameClient()->GetPlayerUID() != pCommand->GetSenderUID())
                                {
                                        
ZCharacterpCharacter = (ZCharacter*)ZGetCharacterManager()->Find(pCommand->GetSenderUID());
                                        
rvector pos;
                                        
pos.pInfo->fPosX;
                                        
pos.pInfo->fPosY;
                                        
pos.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(pCharacterpos, (ZDAMAGETYPE)pInfo->nDamageType, (MMatchWeaponType)pInfo->nWeaponTypepInfo->fDamagepInfo->fRatio);
                                                
pCharacter->GetStatus().CheckCrc();
                                                
pCharacter->GetStatus().Ref().nDamageCaused += pInfo->fDamage;
                                                
pCharacter->GetStatus().MakeCrc();
                                        }
                                }
                                else
                                {
                                        
ZCharacterpCharacter = (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;
                }  
--ZCharacter.h Line: 262


PHP Code:
   int                     nDamageCaused;
          
int                     nDamageTaken;  

--h ZCharacter.Line: 2771

PHP Code:
nDamageCaused(0),nDamageTaken(0)
 
 
 
 
 
 
--- 
neekeri
 
MTD_ShotInfo
ZGame::OnPeerShotgun_Damaged(ZObjectpOwnerfloat fShotTime, const rvectorposrvectordirZPICKINFO pickinfoDWORD dwPickPassFlagrvectorv1rvectorv2ZItem *pItemrvectorBulletMarkNormalboolbBulletMarkZTargetTypenTargetTypeboolbHitEnemy)
{
        
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()->CheckSpearingv1v22500.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.pickinfo.bpi.pInfo->plane.a;
                        
BulletMarkNormal.pickinfo.bpi.pInfo->plane.b;
                        
BulletMarkNormal.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);
                                
ZCharacterObjectpCOwnerObject MDynamicCast(ZCharacterObjectpOwner);
                                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(&v1size v2BulletMarkNormalnTargetTypewtypebSlugOutputpCOwnerObject,bDrawFireEffects,bDrawTargetEffects);
                }
                        
waterSound GetWorld()->GetWaters()->CheckSpearingv1v22500.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.+= 100.f;
                        
ZGetEffectManager()->AddSwordDefenceEffect(t_pos+(-dir*50.f),-dir);
                        
pObject->OnGuardSuccess();
                        
v1 pos;
                        
v2 pickinfo.info.vOut;
                        return 
NULL;
                }
        }
 
        
ZActorpATarget 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->OnKnockbackdirfKnockbackForce );
 
        
float fActualDamage CalcActualDamage(pOwnerpObject, (float)pDesc->m_nDamage.Ref());
        
float fRatio pItem->GetPiercingRatiopDesc->m_nWeaponType.Ref(), pickinfo.info.parts );
        
ZDAMAGETYPE dt = (pickinfo.info.parts==eq_parts_head) ? ZD_BULLET_HEADSHOT ZD_BULLET;
 
        
MTD_ShotInfopShotInfo NULL;
 
 
if(
ZGetGameClient()->GetChannelType() == MCHANNEL_TYPE_DUELTOURNAMENT) {
 
        if(
strstr(ZGetGameClient()->GetChannelName(), "[LEAD]")) {
                
pickinfo.pObject->OnDamaged(pOwnerpOwner->GetPosition(), dtpDesc->m_nWeaponType.Ref(), fActualDamagefRatio );
        } 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()->GetStageName(), "[LEAD]"))
        {
                
pickinfo.pObject->OnDamaged(pOwnerpOwner->GetPosition(), dtpDesc->m_nWeaponType.Ref(), fActualDamagefRatio );
        }
        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()->CheckSpearingv1v22500.3, !waterSound );
        return 
pShotInfo;
}
 
 
 
 
 
 
-- 
keltainen poika
 
 
        MTD_ShotInfo
OnPeerShotgun_Damaged(ZObjectpOwnerfloat fShotTime, const rvectorposrvector &dirZPICKINFO pickinfoDWORD dwPickPassFlagrvectorv1rvectorv2ZItem *pItemrvectorBulletMarkNormalboolbBulletMarkZTargetTypenTargetTypeboolbHitEnemy);  
Creditos:  MatheusRose Da Ragezone Inter.

4 comentários:

  1. mano esse ultimo codigo vai na onde ?
    --h ZCharacter.Line: 2771
    não achei lugar nenhum para adicionar essa modo

    ResponderExcluir
  2. mano esse ultimo codigo vai na onde ?
    --h ZCharacter.Line: 2771
    não achei lugar nenhum para adicionar essa modo

    ResponderExcluir
  3. mano esse ultimo codigo vai na onde ?
    --h ZCharacter.Line: 2771
    não achei lugar nenhum para adicionar essa modo

    ResponderExcluir