guilemouse / Overthrow

An effort to balance and fix the dynamic and persistent revolution platform for Arma 3.
https://steamcommunity.com/sharedfiles/filedetails/?id=2572102841
GNU General Public License v2.0
0 stars 3 forks source link

Revive the Church and Priest? To condense "money" variable into lower denominations. #24

Closed guilemouse closed 3 years ago

guilemouse commented 3 years ago

Issue: Money becomes too big in denomination to use in local economy of import/exporting mass items, which in turn, lags the server quite a bit.

Propose: Condense either Millions (1,000,000) or hundred thousands (100,000) into a lower denomination that is supplied by a church NPC, the priest. They will hold your "bank" linked like warehouses. Each time a player exceeds (maybe?) 10 Million (10,000,000) then the money will automatically convert into this lower denomination of currency.

guilemouse commented 3 years ago

image

  1. Similar to charactersheet select, where it gives you couple of overviews, then you click two buttons, one to deposit, one to withdrawal. Buy/sell up to 3 crypto currencies, with counters displayed refreshed to current calculations of global bank.

  2. This option will cast a similar dialog scape as Ferry Service where it lists towns imo in proximity or maybe even GLOBAL where the resistance ranking is below 0, Only after donating a portion of the player's money, will they be able to restore back to neutral or maybe even +10 rating in the town.

  3. Third option is just flavor text. (Maybe one day add missions to this??)

guilemouse commented 3 years ago

image

  1. Planned like this
guilemouse commented 3 years ago

Bitcoin_fake_algo This is the formula I'm scheming up to use for the game now for crypto.

2021 Edit lmao i'm not crazy:

  1. Everyone has 0 crypto and 0 banked money at first
  2. Exceeding 2 Million "money" (mn) will have players deposit some automatically into the bankvault variable.
  3. BankVault variable is globally declared when needed. Gotta make sure players don't lost money when it's pulled and used aka getVariable parameters need to safefall into an empty array of [0,0] then select 0 and select 1 afterwards to manipulate to setVariable afterwards.
  4. "money" can be traded into "crypto" (cr)
  5. "crypto" can only ever be at maximum 1.
  6. cr one half is dictated by the count of total towns abandoned that are in OT_AllTowns
  7. cr one half is dictated by the reputation of resistance per town (cap at 2525) Resistance per town is capped at 2525 this is important!!!
  8. cr half and half is added together to determine total crypto value of "1" existing as a currency base for players to interact with. If this exceeds 1 due to funny toFixed float values, it will be 1. All CR values will be floor checked before calculated.

Each player has a potential bag of this ""crypto"" currency that caps at 1 (less than 1 GLOBALLY). And it's flat at bond per money of 100k to 0.0001 ""Crypto"", So when players trades into fiat money, they're selling this back to the bookies at a RNG number (100k to 1 billion equivalent to the amount of money you're willing to trade for, subtracting the random cosine function, fluctuating between, 2.5 and 0.5 (seen on graph).

Essentially the Crypto currency you withdrawal/trade for handheld useful fiat is diminished at the rate of 0.5 (double) or 2.5 (half ished). So you can technically still withdrawal more money due to you didn't sell enough (Crypto) to acquire back your "full" fiat money value. (Making holding this Crypto useful as a long game asset)

Theoretically, once all the players hold the currency, the buying will be obtained from a player's shares, of the player holding the majority of ""crypto"" and it will be bought at cost, aka 0.0002 is 200k, and the buyer is never spinning the RNG wheel, but the seller (aka top shareholder of crypto in this example) is always getting back fiat money via RNG.

Ps. All these monies are held in church banks intercontinentally connected and will withdrawal up to 2 mil for in game use.

That's my crypto theory pls critique if you like math.

guilemouse commented 3 years ago

Every SetVariable of money need to be checked because fnc_money isn't qualifying for offline players. Aka fund transfer, safe deposits, etc

setVariable ["money
guilemouse commented 3 years ago

image

  1. Planned like this Replanned like this

image

guilemouse commented 3 years ago

image

image

  1. Planned like this Replanned like this

image

guilemouse commented 3 years ago

Something like this. Text for factions need more work. Donations are a little slow, but menu system seems to go way faster...

Perhaps it needs to be switched to a new display function.

guilemouse commented 3 years ago

https://community.bistudio.com/wiki/Arma_3:_User_Interface_Editor

seems useful to use haha.. Ctrl + Shift + S to export into grid format that Armazac seems to use.

guilemouse commented 3 years ago

image

Need to format right GUI to leave a little intro text, then move on to making the other two work.

Afterwards, it'll be me rewriting donation dialogue to not mimic ferries.

guilemouse commented 3 years ago

image Right side is officially done and usable.

guilemouse commented 3 years ago

image

guilemouse commented 3 years ago

Note to self, when selling APX for TAD the APX does not seem to diminish and need to be looked at. ANd somehow the money capacity increases to 4 million instead of the 2 million. Need to be seen to as well.

guilemouse commented 3 years ago

Above is done and made pretty/working on a static variable that does not change much... It's handled with looping through Town variables as in abandoned and reputation averages.

Thinking about making a public variable so it's JIP friendly and sync'd as best as it can be across players and server to dictate this currency cap expanding and shrinking among many players modifying it instantly with buttons.

//Obtains the select 1 value from existing loop calculating town rep and abandoned averages, see blackboard for detail;
server setVariable ["OT_CryptoCap", 0.0000];

Not sure about relying on a global variable JIP and sync'd with all players as a tracker for currency. Will test but might break saves over real multiplayer. image