YimMenu / HorseMenu

HorseMenu, a beta-stage mod menu for Red Dead Redemption 2 and Red Dead Online, inspired by YimMenu, that protects against crashes and enhances your experience.
71 stars 33 forks source link

[Request]: Gold Recovery Features #175

Open Rxann opened 3 months ago

Rxann commented 3 months ago

Problem

We have the current method of adding Gold, but we could use transactions to make this process a little bit better.

Solution

Use transactions to award ourselves gold.

Reason

It would improve the recovery experience and make it more robust.

Additional context

@tuyilmaz Do you know anything about this?

ghost commented 3 months ago

What happened to "YimMenu is not a recovery oriented menu"?

tuyilmaz commented 3 months ago

Usage of NETSHOPPING natives in game scripts are really complicated(at least for me), but I'm sure it's either _CASHINVENTORY_TRANSACTION_FIRE_AND_FORGET_ITEM or one of the unknown ones that give awards. I'll look into this.

AAA-ALR commented 3 months ago

uh, I agree with imstash

You're free to contribute to YimMenu as long as the features are useful, not overly toxic and do not contain anything money related that might get the menu targeted by Take2.

Maybe we need to worry about take2 or how others view it

Rxann commented 3 months ago

uh, I agree with imstash

You're free to contribute to YimMenu as long as the features are useful, not overly toxic and do not contain anything money related that might get the menu targeted by Take2.

Maybe we need to worry about take2 or how others view it

Recovery is allowed in HorseMenu. We make the users agree to a disclaimer saying they are aware there are potential side effects. Take2 has stopped caring about Red Dead Redemption 2 and Red Dead Online for a year or more. They stopped development on it.

tuyilmaz commented 3 months ago

It seems _CASHINVENTORY_TRANSACTION_FIRE_AND_FORGET_ITEM takes a struct with inventory item and some other vars. Maybe creating inventory GUID for currency_gold_bar with the quantity and calling the native like below will work.

int TransactionID = -1;  
NETSHOPPING::_CASHINVENTORY_TRANSACTION_FIRE_AND_FORGET_ITEM("UPDATE"_J, &TransactionID, &item, sizeof(item) / 8)

@Rxann Have you found anything?

FIying-Scotsman commented 3 months ago

It seems _CASHINVENTORY_TRANSACTION_FIRE_AND_FORGET_ITEM takes a struct with inventory item and some other vars. Maybe creating inventory GUID for currency_gold_bar with the quantity and calling the native like below will work.

int TransactionID = -1;  
NETSHOPPING::_CASHINVENTORY_TRANSACTION_FIRE_AND_FORGET_ITEM("UPDATE"_J, &TransactionID, &item, sizeof(item) / 8)

@Rxann Have you found anything?

That looks very similar to the basket system from GTA Online (not surprising given RDO is built on GTAO's bare bones implementation). I'd be cautious using it given how easy it is for them to detect dodgy transactions in GTA using that equivalent.

uh, I agree with imstash

You're free to contribute to YimMenu as long as the features are useful, not overly toxic and do not contain anything money related that might get the menu targeted by Take2.

Maybe we need to worry about take2 or how others view it

Recovery is allowed in HorseMenu. We make the users agree to a disclaimer saying they are aware there are potential side effects. Take2 has stopped caring about Red Dead Redemption 2 and Red Dead Online for a year or more. They stopped development on it.

Hm I wouldn't hold out on that opinion. You could argue they 'forgot' about the PS2 era games and yet they still sent C&D's to RE3 and a bunch of mods porting the map into GTA V. The latter happened well before the Defective Edition was released.

Keep an open mind is all I'm saying, or port it into Lua and leave it as an 'optional extra' you can at least deny ownership over similar to how Torrent programs know their software is used for piracy, but because they don't advocate for it themselves - it's very difficult to say they're a piracy enabler when they can't tell users how to use their program.

tuyilmaz commented 3 months ago

That looks very similar to the basket system from GTA Online (not surprising given RDO is built on GTAO's bare bones implementation). I'd be cautious using it given how easy it is for them to detect dodgy transactions in GTA using that equivalent.

It does look similiar, but unlike GTA this method does not take any transaction hashes afaik. This just updates the inventory. That's why I asked before trying.

FIying-Scotsman commented 3 months ago

That looks very similar to the basket system from GTA Online (not surprising given RDO is built on GTAO's bare bones implementation). I'd be cautious using it given how easy it is for them to detect dodgy transactions in GTA using that equivalent.

It does look similiar, but unlike GTA this method does not take any transaction hashes afaik. This just updates the inventory. That's why I asked before trying.

That's a good point - looks like they replaced the category type with an action (i.e UPDATE) but removed the transaction hash and replaced it with an item instead unless those are in the struct you mentioned.

Would be interesting to see if they've still got a basket system in place as that would allow you to log 'legit' transactions and just replay them (similar to what is done in GTA when it comes to selling Hangar cargo or selling cars in a loop for example).

tuyilmaz commented 3 months ago

Interesting. Would be interesting to see if they've still got a basket system in place as that would allow you to log 'legit' transactions and just replay them (similar to what is done in GTA when it comes to selling Hangar cargo or selling cars in a loop for example).

I think they have it, but with a different approach of adding items to basket.

Rxann commented 3 months ago

Would be interesting to see if they've still got a basket system in place as that would allow you to log 'legit' transactions and just replay them (similar to what is done in GTA when it comes to selling Hangar cargo or selling cars in a loop for example).

I have heard that they do in fact have a basket system but as @tuyilmaz said it is a different approach of doing it.

tuyilmaz commented 3 months ago

@Rxann maybe we can try hooking the basket functions and log the args as @FIying-Scotsman said?

Rxann commented 3 months ago

@Rxann maybe we can try hooking the basket functions and log the args as @FIying-Scotsman said?

Yes, but unfortunately we might have to purchase something(maybe) to get a good log for it.

tuyilmaz commented 3 months ago

Yes, but unfortunately we might have to purchase something(maybe) to get a good log for it.

I think completing a mission or selling items to fence will do the job.

Rxann commented 3 months ago

Yes, but unfortunately we might have to purchase something(maybe) to get a good log for it.

I think completing a mission or selling items to fence will do the job.

Ah yes, you are right. I didn't even think of this.