Jump to content

6 posts in this topic

Recommended Posts

Posted

You cannot directly mod those enums, they're constants

for example, 

1 = Gold
2 = Gems, etc..

Instead of wasting your time and writing strings, you can use integers to identify those strings

You should look for functions that make use of these enums

  • Like 1
Posted
On 10/04/2022 at 10:38, Zahir said:

Você não pode modificar diretamente esses enums, eles são constantes

por exemplo, 

1 = Ouro
2 = Gemas, etc.

Em vez de desperdiçar seu tempo e escrever strings, você pode usar números inteiros para identificar essas strings

Você deve procurar funções que fazem uso dessas enumerações

send me script example, pls

Posted (edited)

DamageType.Generic is equal to int damageType = 0; (same as DamageType damageType = DamageType.Generic)
DamageType.Hunger is equal to int damageType = 1;
DamageType.Thirst
is equal to int damageType = 2;

void MakeDamage(int damage, DamageType damageType) - > MakeDamage(100, DamageType.Generic) -> MakeDamage(100, 0)

hook function
 

void (*MakeDamage)(void *instance, int damage, int damageType) = nil;
void _MakeDamage(void *instance, int damage, int damageType){
  if(damageType == 0)
  {
    damageType = 1;
    MakeDamage(instance, damage, damageType);
  }
  else if(damageType == 1)
  {
    MakeDamage(instance, 0, damageType);
  }
  else
  {
    MakeDamage(instance, damage, damageType);
  }
}

 

Updated by gogigogi1
Posted (edited)
2 hours ago, gogigogi1 said:

DamageType.Generic is equal to int damageType = 0; (same as DamageType damageType = DamageType.Generic)
DamageType.Hunger is equal to int damageType = 1;
DamageType.Thirst
is equal to int damageType = 2;

void MakeDamage(int damage, DamageType damageType) - > MakeDamage(100, DamageType.Generic) -> MakeDamage(100, 0)

hook function
 

void (*MakeDamage)(void *instance, int damage, int damageType) = nil;
void _MakeDamage(void *instance, int damage, int damageType){
  if(damageType == 0)
  {
    damageType = 1;
    MakeDamage(instance, damage, damageType);
  }
  else if(damageType == 1)
  {
    MakeDamage(instance, 0, damageType);
  }
  else
  {
    MakeDamage(instance, damage, damageType);
  }
}

 

 

 

 

I tried but it didn't work, see my script

i want to do fall damage when i jump high

 

	// Token: 0x06001E39 RID: 7737 RVA: 0x00002053 File Offset: 0x00000253
		[Token(Token = "0x6001E39")]
		[Address(RVA = "0x6E2D68", Offset = "0x6E2D68", VA = "0x6E2D68")]
		public void Hurt(float amount, ET.DamageType type, [Optional] PlayerManager attacker)
		{
		}


// Oxide.ET.DamageType
// Token: 0x04001A78 RID: 6776
[Token(Token = "0x4001A78")]
public const ET.DamageType Fall = 12;


// its my code in mod menu



void (*orig_Update) (void* instance);
void Update(void* instance) {


    if (instance != NULL && hack1)

    {

        *(float*)((uint64_t)instance + 0x90) = 12.0f; // jump height
        *(float*)((uint64_t)instance + 0x88) = 12.0f; //speed

    }


    return orig_Update(instance);
}

void (*orig_Hurt)(void *instance,float amount, int DamageType , int attacker) ;
void Hurt(void *instance, float amount, int DamageType,int attacker){
    if(hack1 && DamageType == 12)
    {
        DamageType = 12; // fall
        Hurt(instance, 0, DamageType ,attacker);
    }
        else if(DamageType == 12)
        {
            Hurt(instance, 0, DamageType,attacker);
        }
        else
        {
            Hurt(instance,amount,DamageType,attacker);
        }
    }


// hook


 MSHookFunction((void *)getAbsoluteAddress(targetLibName,string2Offset(OBFUSCATE_KEY("0x6E2D2C",'?'))),(void *) Hurt,(void **)&orig_Hurt);

 MSHookFunction((void *)getAbsoluteAddress(targetLibName,string2Offset(OBFUSCATE_KEY("0x737570",'?'))),(void *) Update,(void **)&orig_Update);


I also changed the DamageType to type but it didn't work..
  
  
  

 

https://www.youtube.com/watch?v=Tgx4vIDO_kY

game :  https://play.google.com/store/apps/details?id=com.catsbit.oxidesurvivalisland&hl=pt_BR&gl=US

Updated by fdhbyfgd
Posted

first of all its seems thats u hook wrong function

because u hook is wrong and will not work at all

 

void (*orig_Hurt)(void *instance,float amount, int DamageType , int attacker) ;
void Hurt(void *instance, float amount, int DamageType,int attacker){
    if(hack1 && DamageType == 12)
    {
        DamageType = 12; // fall
        orig_Hurt(instance, 0, DamageType ,attacker);
    }
        else if(DamageType == 12)
        {
            orig_Hurt(instance, 0, DamageType,attacker);
        }
        else
        {
            orig_Hurt(instance,amount,DamageType,attacker);
        }
}


 

with ur mistake u not able take damage at all but u take

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines