Aller au contenu

Photo

Disarm Trap for all class


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

#1
algun

algun
  • Members
  • 24 messages
Hello all

I try to make a mod to all class can detect an disarm trap. I make a new player_core with my own sys_trap_h and core_h

Detection is OK
But each time i try to disarm i have a failure. I try to change Trap_GetModifiedScore(sys_trap_h) and GetDisableDeviceLeveltfa(core_h )with other value but.... always a failure

int Trap_GetModifiedScore(object oCreature)         //GDE Modified SKILL LOCKPICKING BY TRAPS
{
    float fAbility = 0.0f;
    if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_1))   //GDE ABILITY_SKILL_LOCKPICKING_1
        fAbility += 1.0f;
    if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_2))   //GDE ABILITY_SKILL_LOCKPICKING_2
        fAbility += 1.0f;
    if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_3))   //GDE ABILITY_SKILL_LOCKPICKING_3
        fAbility += 1.0f;
    if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_4))   //GDE ABILITY_SKILL_LOCKPICKING_4
        fAbility += 1.0f;
    fAbility *= GDE_ALLclass_SKILL_BONUS;

    fAttribute += GetAttributeModifier(oCreature, PROPERTY_ATTRIBUTE_INTELLIGENCE);

    float fLevel = IntToFloat(GetLevel(oCreature));

    float fScore = fAbility + fLevel;

    Log_Trace(LOG_CHANNEL_SYSTEMS_TRAPS, "sys_traps_h.Trap_GetModifiedScore",
        "(Ability + Attribute + Level) = ("
        + FloatToString(fAbility, 3, 1) + " + " + FloatToString(fAttribute, 3, 1) + " + "
        + FloatToString(fLevel, 3, 1) + ") = " + FloatToString(fScore, 3, 1));;

    return FloatToInt(fScore);
}

float GetDisableDeviceLeveltfa(object oCreature)
{
    float fPlayerScore = 0.0f;

//    if (HasAbility(oCreature, ABILITY_TALENT_HIDDEN_ROGUE))       disable ROGUE only function
//    {
       fPlayerScore = GetAttributeModifier(oCreature, PROPERTY_ATTRIBUTE_INTELLIGENCE);

        #ifdef DEBUG
        Log_Trace(LOG_CHANNEL_SYSTEMS_PLACEABLES, GetCurrentScriptName(), "Intelligence Modifier = " + ToString(fPlayerScore));
        #endif

        int nSkillLevel = 0;
        if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_4))           //GDE ABILITY_SKILL_LOCKPICKING_4
        {
            nSkillLevel = 5;
        } else if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_3))        //GDE ABILITY_SKILL_LOCKPICKING_3
        {
            nSkillLevel = 4;
        } else if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_2))        //GDE ABILITY_SKILL_LOCKPICKING_2
        {
            nSkillLevel = 3;
        } else if (HasAbility(oCreature, ABILITY_SKILL_TRAPS_1))        //GDE ABILITY_SKILL_LOCKPICKING_1
        {
            nSkillLevel = 2;
        }
        fPlayerScore += (10.0f * nSkillLevel);

        #ifdef DEBUG
        Log_Trace(LOG_CHANNEL_SYSTEMS_PLACEABLES, GetCurrentScriptName(), "With Skill = " + ToString(fPlayerScore));
        #endif
//    }
    return fPlayerScore;
}

If someone has an idea...

Thanks

#2
CID-78

CID-78
  • Members
  • 1 124 messages
make sure that your script is running and not the old one.

#3
algun

algun
  • Members
  • 24 messages
I'm sure my script is running. My war detect trap. it's another script for disarm?