AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Help me to convert this please (https://forums.alliedmods.net/showthread.php?t=206433)

darktemplar 01-22-2013 08:43

Help me to convert this please
 
Code:

void CBaseEntity::FireBullets(ULONG cShots, Vector vecSrc, Vector vecDirShooting, Vector vecSpread, float flDistance, int iBulletType, int iTracerFreq, int iDamage, entvars_t *pevAttacker )
{
    static int tracerCount;
    int tracer;
    TraceResult tr;
    Vector vecRight = gpGlobals->v_right;
    Vector vecUp = gpGlobals->v_up;

    if ( pevAttacker == NULL )
        pevAttacker = pev;  // the default attacker is ourselves

    ClearMultiDamage();
    gMultiDamage.type = DMG_BULLET | DMG_NEVERGIB;

    for (ULONG iShot = 1; iShot <= cShots; iShot++)
    {
        // get circular gaussian spread
        float x, y, z;
        do {
            x = RANDOM_FLOAT(-0.5,0.5) + RANDOM_FLOAT(-0.5,0.5);
            y = RANDOM_FLOAT(-0.5,0.5) + RANDOM_FLOAT(-0.5,0.5);
            z = x*x+y*y;
        } while (z > 1);

        Vector vecDir = vecDirShooting +
                        x * vecSpread.x * vecRight +
                        y * vecSpread.y * vecUp;
        Vector vecEnd;

        vecEnd = vecSrc + vecDir * flDistance;
        UTIL_TraceLine(vecSrc, vecEnd, dont_ignore_monsters, ENT(pev)/*pentIgnore*/, &tr);

        tracer = 0;
        if (iTracerFreq != 0 && (tracerCount++ % iTracerFreq) == 0)
        {
            Vector vecTracerSrc;

            if ( IsPlayer() )
            {// adjust tracer position for player
                vecTracerSrc = vecSrc + Vector ( 0 , 0 , -4 ) + gpGlobals->v_right * 2 + gpGlobals->v_forward * 16;
            }
            else
            {
                vecTracerSrc = vecSrc;
            }
           
            if ( iTracerFreq != 1 )        // guns that always trace also always decal
                tracer = 1;
            switch( iBulletType )
            {
            case BULLET_MONSTER_MP5:
            case BULLET_MONSTER_9MM:
            case BULLET_MONSTER_12MM:
            default:
                MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, vecTracerSrc );
                    WRITE_BYTE( TE_TRACER );
                    WRITE_COORD( vecTracerSrc.x );
                    WRITE_COORD( vecTracerSrc.y );
                    WRITE_COORD( vecTracerSrc.z );
                    WRITE_COORD( tr.vecEndPos.x );
                    WRITE_COORD( tr.vecEndPos.y );
                    WRITE_COORD( tr.vecEndPos.z );
                MESSAGE_END();
                break;
            }
        }
        // do damage, paint decals
        if (tr.flFraction != 1.0)
        {
            CBaseEntity *pEntity = CBaseEntity::Instance(tr.pHit);

            if ( iDamage )
            {
                pEntity->TraceAttack(pevAttacker, iDamage, vecDir, &tr, DMG_BULLET | ((iDamage > 16) ? DMG_ALWAYSGIB : DMG_NEVERGIB) );
               
                TEXTURETYPE_PlaySound(&tr, vecSrc, vecEnd, iBulletType);
                DecalGunshot( &tr, iBulletType );
            }
            else switch(iBulletType)
            {
            default:
            case BULLET_MONSTER_9MM:
                pEntity->TraceAttack(pevAttacker, gSkillData.monDmg9MM, vecDir, &tr, DMG_BULLET);
               
                TEXTURETYPE_PlaySound(&tr, vecSrc, vecEnd, iBulletType);
                DecalGunshot( &tr, iBulletType );

                break;

            case BULLET_MONSTER_MP5:
                pEntity->TraceAttack(pevAttacker, gSkillData.monDmgMP5, vecDir, &tr, DMG_BULLET);
               
                TEXTURETYPE_PlaySound(&tr, vecSrc, vecEnd, iBulletType);
                DecalGunshot( &tr, iBulletType );

                break;

            case BULLET_MONSTER_12MM:       
                pEntity->TraceAttack(pevAttacker, gSkillData.monDmg12MM, vecDir, &tr, DMG_BULLET);
                if ( !tracer )
                {
                    TEXTURETYPE_PlaySound(&tr, vecSrc, vecEnd, iBulletType);
                    DecalGunshot( &tr, iBulletType );
                }
                break;
           
            case BULLET_NONE: // FIX
                pEntity->TraceAttack(pevAttacker, 50, vecDir, &tr, DMG_CLUB);
                TEXTURETYPE_PlaySound(&tr, vecSrc, vecEnd, iBulletType);
                // only decal glass
                if ( !FNullEnt(tr.pHit) && VARS(tr.pHit)->rendermode != 0)
                {
                    UTIL_DecalTrace( &tr, DECAL_GLASSBREAK1 + RANDOM_LONG(0,2) );
                }

                break;
            }
        }
        // make bullet trails
        UTIL_BubbleTrail( vecSrc, tr.vecEndPos, (flDistance * tr.flFraction) / 64.0 );
    }
    ApplyMultiDamage(pev, pevAttacker);
}

I really need this code in AMXX. Can some pros help me convert this to AMXX, please ...
Thank you in advance :)

Mrki_Drakula 01-23-2013 06:22

Re: Help me to convert this please
 
What is it for? There's probably somewhere around the Forum.

fl0werD 01-23-2013 06:28

Re: Help me to convert this please
 
Lol. Call this with help Rage.

darktemplar 01-23-2013 23:36

Re: Help me to convert this please
 
I don't want to use rage :) . Because in my opinion, it's complicated if I transfer my code to another Counter Strike 1.6 .

Mrki_Drakula : Do you remember where this converted code is ? Please show me

Can anyone help me please :(


All times are GMT -4. The time now is 20:30.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.