Aller au contenu

Photo

Full Friendly fire on EASY and NORMAL difficulties ?


  • Veuillez vous connecter pour répondre
6 réponses à ce sujet

#1
9r33n

9r33n
  • Members
  • 27 messages
Is there a way to do it ?

I started the discussion about it in the gameplay foruns.

social.bioware.com/forum/1/topic/66/index/422147/1#422404

#2
Bathead

Bathead
  • Members
  • 995 messages
What would be the point?

#3
9r33n

9r33n
  • Members
  • 27 messages

Bathead wrote...

What would be the point?


Having full friendly fire on easy and normal difficulties like in the BG series; personally I think it would make the system more realistic maintaining the tactic aspect of the game in all diffculties, also the differences beetween the difficulties go beyond friendly fire (enemies defense and damage, nº of enemies and levels ...).

After looking at this link:

dragonage.wikia.com/wiki/Difficulty_Settings

The same could be done to traps, I just don't know what "other abilities" mean.

#4
Ainiana

Ainiana
  • Members
  • 45 messages
Actually from playing the game, the friendly fire setting seems to be the only real difference between hard/normal/easy in my experiance.

Tweaking the difficulty levels *IS* possible, but the effort going into a mod to do what you ask is far more than is really worth it in my opinion. For full friendly fire, you may aswell just stick to hard difficulty (it is really not as hard as some make out if you are used to RPG's, and your referance to BG makes me think you are)

That said, if you want a crack at trying it, i expect there will be others who would use it also :)

Modifié par Ainiana, 11 décembre 2009 - 05:44 .


#5
9r33n

9r33n
  • Members
  • 27 messages

Actually from playing the game, the friendly fire setting seems to be the only real difference between hard/normal/easy in my experiance.


I think not, the damage and defense/resistance from enemies is different in other difficulties, from what I have read so far in the game scripts, it applies a level scalling function on enemies wich depends of your difficulty setting.

Also in the file effect_damage_nh.nss
I found this code:

        // ---------------------------------------------------------------------
        // DIFFICULTY: No friendly fire in easy difficulty
        // ---------------------------------------------------------------------
        if (GetGameDifficulty() == GAME_DIFFICULTY_CASUAL)
        {
            int bUnresistable = (nDamageFlags &  DAMAGE_EFFECT_FLAG_UNRESISTABLE) == DAMAGE_EFFECT_FLAG_UNRESISTABLE;
            int bDot = (nDamageFlags &  DAMAGE_EFFECT_FLAG_FROM_DOT) == DAMAGE_EFFECT_FLAG_FROM_DOT;

            // Unresistable damage still gets through, unless it's from a dot
            if (!bUnresistable || bDot)
            {
                if (IsFriendlyFireParty(oTarget,oDamager))
                {
                    #ifdef DEBUG
                      Log_Trace(LOG_CHANNEL_COMBAT_DAMAGE,"effect_damage_h.IsDamageAllowed",
                        "Easy Difficulty, Not allowing damage between members of the player's party");
                    #endif

                    return FALSE;
                }
            }

        }
        // ---------------------------------------------------------------------
        // DIFFICULTY END
        // ---------------------------------------------------------------------


and later in the same file

// -------------------------------------------------------------------------
    // DIFFICULTY: 50% friendly fire in normal difficulty
    // -------------------------------------------------------------------------
    if ((GetGameDifficulty() == GAME_DIFFICULTY_NORMAL) && nDamageType != DAMAGE_TYPE_PLOT)
    {
        if (GetObjectType(oDamager) == OBJECT_TYPE_CREATURE)
        {
            // Unresistable damage still gets through
            int bUnresistable = (nDamageFlags &  DAMAGE_EFFECT_FLAG_UNRESISTABLE) == DAMAGE_EFFECT_FLAG_UNRESISTABLE;
            int bDot = (nDamageFlags &  DAMAGE_EFFECT_FLAG_FROM_DOT) == DAMAGE_EFFECT_FLAG_FROM_DOT;

            if (!bUnresistable || bDot)
            {
                if (IsFriendlyFireParty(oTarget,oDamager))
                {

                    DEBUG_PrintToScreen("BBB2",5);

                    #ifdef DEBUG
                      Log_Trace(LOG_CHANNEL_COMBAT_DAMAGE,"effect_damage_h.Effects_ApplyInstantEffectDamage", "Medium Difficulty, scaling FF back to 50%");
                    #endif

                    fDamage *= 0.5;
                }
            }

        }
    }
    // -------------------------------------------------------------------------
    // DIFFICULTY END
    // -------------------------------------------------------------------------


If I just delete these IFs I think friendly fire will be allowed on easy and normal.

How does moding work ?
I create a new script and put it in some override folder ?
I can't just edit the scripts from the toolset, "Read Only Copy - Changes can not be Saved"

Modifié par 9r33n, 11 décembre 2009 - 06:59 .


#6
RavitalDaniel

RavitalDaniel
  • Members
  • 14 messages
where is effect_damage_nh.nss located?

#7
elys

elys
  • Members
  • 458 messages
There is more than one file to modify and.

You will have to modify some #include files, and then recompile all the "friendly-fire-like" spells scripts depending of these include files.

Proper way would be doing copies of existing files (including #include files) to create your own modified version of the spell script and not modify the vanilla ones.

All the files needed for such modifiaction are referenced in this old topic (which was for another Friendy-Fire related goal but the files to modify are the same)

Modifié par elys, 06 janvier 2010 - 11:52 .