Solst1c3 / SharedItemPickup

RoR2 - Gives a copy of each picked up item to every live player.
MIT License
21 stars 13 forks source link

Items for dead players #3

Open Cellhawk opened 5 years ago

Cellhawk commented 5 years ago

So as a fan of "everyone has equal stuff", I find it kinda bad that when someone actually dies, others get all the good stuff aaaand the dead person does not, which means he lags behind in equipment and is even more prone to death. So I'd like to suggest a "give items even when dead" version of the dll if possible? I've tried deleting the "alive if's" and either screwed up compilation or really misunderstood their purpose, as instead of receiving items when dead, the items were not duping for everyone at all even alive.

Can I get some advice here, please? Is it even possible to have it like this?

WesleyAldridge commented 5 years ago

Your code looks like this?

private void GrantItem(CharacterBody body, Inventory inventory) { if (!NetworkServer.active) { Debug.LogWarning("[Server] function 'System.Void RoR2.GenericPickupController::GrantItem(RoR2.CharacterBody,RoR2.Inventory)' called on client"); return; } foreach (PlayerCharacterMasterController playerCharacterMasterController in PlayerCharacterMasterController.instances) { playerCharacterMasterController.master.GetBody().inventory.GiveItem(this.pickupIndex.itemIndex, 1); } GenericPickupController.SendPickupMessage(inventory.GetComponent<CharacterMaster>(), this.pickupIndex); UnityEngine.Object.Destroy(base.gameObject); }

Cellhawk commented 5 years ago

Exactly. Sadly, when I die as host, my friend cannot pick up items from the ground at all.