Documentation - CODAGE

Nombre de membres 


CODAGE

Saut à l'impact  -  par FSMOD

Saut à l'impact

J'ai codé ce petit effet juste pour le fun. Il consiste à projeter en l'air une cible à une hauteur variable dès qu'elle est touchée par un projectile.
Si elle n'est pas tuée sur le coup elle peut  très bien riposter en l'air.

Le paramètre associé au CVAR g_funKillJump est codé à 300 par défaut mais il peut être redéfini à tout moment durant le jeu ou au préalable, dans le fichier server.cfg .

Modification du code sources

Fichier g_local.h

Après

 extern    vmCvar_t    g_punishRecon;

Ajouter

 extern vmCvar_t g_funKillJump; // *FSMOD* saut de la cible à l'impact

Fichier g_main.c

Après

 vmCvar_t    g_punishRecon;

Ajouter

 vmCvar_t g_funKillJump; // *FSMOD* saut de la cible à l'impact

Après

 { &g_punishRecon, "g_punishRecon", "1", CVAR_ARCHIVE, 0.0f, 0.0f, 0, qfalse },

Ajouter

 { &g_funKillJump,  "g_funKillJump", "300", CVAR_SERVERINFO | CVAR_ARCHIVE,   0.0f,   0.0f,   0,  qfalse  }, // *FSMOD* saut de la cible à l'impact

Fichier g_combat.c

Dans la fonction T_Damage recherchez les lignes suivantes

    // do the damage
    if (take)
    {
        targ->health = targ->health - take;

        if ( targ->client )
        {
            targ->client->ps.stats[STAT_HEALTH] = targ->health;

Insérez juste après, le groupe suivant

 

 // *FSMOD* saut de la cible à l'impact
            switch ( mod & 0xff )
                {

                        case MOD_TRIGGER_HURT_NOSUICIDE:
                        case WP_MM1_GRENADE_LAUNCHER:
                        case WP_RPG7_LAUNCHER:
                        case WP_SMOHG92_GRENADE:
                        case MOD_TARGET_LASER:
                        case WP_M4_ASSAULT_RIFLE:
                        case WP_MP5:
                        case WP_MICRO_UZI_SUBMACHINEGUN:
                        case WP_AK74_ASSAULT_RIFLE:
                        case WP_USAS_12_SHOTGUN:
                        case WP_M590_SHOTGUN:
                        case WP_MSG90A1:
                        case WP_SIG551:
                        case WP_M60_MACHINEGUN:
                        case WP_M1911A1_PISTOL:
                        case WP_USSOCOM_PISTOL:

                    if ( targ->health <= 0 )
                    {
                        targ->client->ps.velocity[2] = 3.2f * sqrt(g_funKillJump.value * (take > 100 ? 100 : take) * 0.75 * DEFAULT_GRAVITY / g_gravity.value);
                            }
                    else
                    {
                        targ->client->ps.velocity[2] = 3.2f * sqrt(g_funKillJump.value * (take > 100 ? 100 : take));
                           }
                    break;
                }
 // *FSMOD*

-=cool=-

Publié le 10/03/2019 18:11   Toutes les pages   Prévisualiser...   Imprimer...   Haut
Rubriques

Vous êtes ici :   Accueil » Documentation » CODAGE