Help! Need Help pls!how to unlink this functions

naclto

Platinian
I have learned a lot between these two classes from this guide post, but I haven't found the same methods and fields for them. How should I unlink this method in two different class?

private System.Int32 Gameplay.IHealthGauge.Damage(System.Int32 points); // 0x3747454

its the damage Method

private struct Gameplay.PlayerFaction Gameplay.ICharacterAgent.get_PlayerFaction(); // 0x3744D44
(return playerid=1)
its Method to identify allies and enemies







==============================





// Gameplay.dll
public class Gameplay.HealthGauge : System.Object, Gameplay.IHealthGauge, Gameplay.IHealthGaugeInfo, Gameplay.IExtendableHealthGauge
// Fields
private Gameplay.SealedInt _maxHealthPoints; // 0x10
private Gameplay.SealedInt _currentHealthPoints; // 0x18
private readonly Gameplay.SealedInt _basicMaxHealthPoints; // 0x20
private Gameplay.SealedDecimal _extraMaxHealthRate; // 0x28
private Gameplay.SealedInt _extraMaxHealth; // 0x30

// Methods
private System.Int32 Gameplay.IHealthGaugeInfo.get_MaxHealthPoints(); // 0x3746F4C
private System.Int32 Gameplay.IHealthGaugeInfo.get_CurrentHealthPoints(); // 0x3746F68
private struct System.Decimal Gameplay.IExtendableHealthGauge.get_ExtraMaxHealthRate(); // 0x3746F84
private System.Void Gameplay.IExtendableHealthGauge.set_ExtraMaxHealthRate(struct System.Decimal value); // 0x3746FA0
private System.Int32 Gameplay.IExtendableHealthGauge.get_ExtraMaxHealth(); // 0x374724C
private System.Void Gameplay.IExtendableHealthGauge.set_ExtraMaxHealth(System.Int32 value); // 0x3747268
private System.Int32 Gameplay.IExtendableHealthGauge.get_BasicMaxHealthPoints(); // 0x37472FC
private System.Int32 Gameplay.IHealthGauge.Recover(System.Int32 points); // 0x3747318
private System.Int32 Gameplay.IHealthGauge.Damage(System.Int32 points); // 0x3747454
private System.Void _UpdateMaxHealthPoints(struct System.Decimal extraMaxHealthRate, System.Int32 extraMaxHealth); // 0x3747034
private System.Void _UpdateCurrentHealthPoints(System.Int32 healthPoints); // 0x37473EC
public System.Void .ctor(System.Int32 basicMaxHealthPoints, System.Int32 currentHealthPoints, struct System.Decimal extraMaxHealthRate, System.Int32 extraMaxHealth); // 0x3747604

}


// Gameplay.dll
public class Gameplay.CharacterUnit : System.Object, Gameplay.ICharacterUnit, Gameplay.ICharacterAgent, Gameplay.IVariableStoreInfo
// Fields
private readonly System.String _typeId; // 0x10
private readonly System.Int32 _level; // 0x18
private readonly System.Int32 _playerId; // 0x1C
private readonly Gameplay.IFactionManager _factionManager; // 0x20
private readonly Gameplay.IHealthInfo _health; // 0x28
private readonly Gameplay.IProgressInfo _progressInfo; // 0x30
private readonly Gameplay.IPersistentStatusInfoManager _persistentStatusInfoManager; // 0x38
private readonly Gameplay.IActionCommandProcessor _actionCommandProcessor; // 0x40
private readonly Gameplay.ISkillStatus[] _skillStatuses; // 0x48
private readonly System.String[] _tags; // 0x50
private readonly Gameplay.IBasicAttributes _currentAttributes; // 0x58
private readonly Gameplay.ICharacterElement _characterElement; // 0x60
private readonly Gameplay.IVariableStoreInfo _extensiveAttributeOps; // 0x68
private readonly Gameplay.IVariableStoreInfo _argument; // 0x70

// Methods
private System.String Gameplay.ICharacterAgent.get_TypeId(); // 0x3744BD4
private System.Int32 Gameplay.ICharacterAgent.get_Level(); // 0x3744BDC
private System.String Gameplay.ICharacterAgent.get_CharacterId(); // 0x3744BE4
private enum Gameplay.CharacterType Gameplay.ICharacterAgent.get_CharacterType(); // 0x3744C88
private Gameplay.IHealthInfo Gameplay.ICharacterAgent.get_Health(); // 0x3744D2C
private Gameplay.IProgressInfo Gameplay.ICharacterAgent.get_ProgressInfo(); // 0x3744D34
private Gameplay.IPersistentStatusInfoManager Gameplay.ICharacterAgent.get_PersistentStatusInfoManager(); // 0x3744D3C

private struct Gameplay.PlayerFaction Gameplay.ICharacterAgent.get_PlayerFaction(); // 0x3744D44
 
Code:
int (*old_FunctionExample)(void *instance,int damage);
int FunctionExample(void *instance,int damage) {
         int player= *(int *) ((uint64_t) instance +0x10);
    if (instance != NULL  && sliderValue > 100 && player ==1) {     
             damage=sliderValue;
    }
    old_FunctionExample(instance,damage);
    return sliderValue;
}

i wrote like this, but the called instances are inconsistent.
 
Back
Top Bottom