#Increase Money In NPC Bank Accounts

1 messages · Page 1 of 1 (latest)

final geode
#

suggestion:

increase money per bank account (average is currently 60.34~ across 1 million bank accounts in game, based on this script (and your current config):

awk 'BEGIN{
v[1]=0;   w[1]=10
v[2]=5;   w[2]=10
v[3]=10;  w[3]=10
v[4]=35;  w[4]=20
v[5]=45;  w[5]=20
v[6]=80;  w[6]=20
v[7]=125; w[7]=15
v[8]=275; w[8]=4.9
v[9]=650; w[9]=0.1

for(i=1;i<=9;i++) total_w+=w[i]

rolls=1000000

for(r=1;r<=rolls;r++){
x=rand()*total_w
s=0
for(i=1;i<=9;i++){
s+=w[i]
if(x<=s){
sum+=v[i]
break
}
}
}

print sum/rolls
}'

),
the .1% 650 is completely useless and barely makes up for the total $60.34 per bank account (~0.0909% of total average money comes from 650), so increase the percent by at least 1%

replace it with:

#
public void AddRandomTransfers()
{
    string seedStr = account.Split('-')[0];
    int seed = 0;
    foreach (char c in seedStr)
    {
        seed = seed * 31 + c;
    }
    Random random = new Random(seed);

    int year = ClockServer.Singleton.GetYear();
    int mes = ClockServer.Singleton.GetMes();

    string[] billTypes = { "electricity bill", "water bill", "shop purchase", "withdraw funds", "coffee", "phone top-up" };
    int numBills = random.Next(4, 9);
    for (int i = 0; i < numBills; i++)
    {
        DateTime dt = new DateTime(year, mes,
            random.Next(1, ClockServer.Singleton.GetDia() + 1),
            random.Next(8, 22), random.Next(0, 60), 0);
        string motivo = billTypes[random.Next(billTypes.Length)];
        Ingreso("Unknown", motivo, -random.Next(90, 280), success: false,
            dt.ToString("yyyy-MM-dd HH:mm:ss"), randomIncome: true);
    }

    float u = (float)random.NextDouble();
    float x = (float)Math.Pow(u, 1.82f);

    float baseValue = 12f + 105f * x + 245f * x * x;

    float noise = (float)(random.NextDouble() - 0.5) * 16f;
    float value = baseValue + noise;

    float roll = (float)random.NextDouble();
    if (roll < 0.005f)
    {
        float mult = (float)random.NextDouble() * 3.5f + 3.0f;
        value *= mult;
    }
    else if (roll < 0.035f)
    {
        float mult = (float)random.NextDouble() * 1.4f + 1.5f;
        value *= mult;
    }

    value = Math.Max(10f, value);
    value = Math.Min(value, 950f);

    int money = (int)Math.Round(value / 5f) * 5;

    if (money > 0)
    {
        SetMoney(money);
        Ingreso("System", "account initialization balance", money, true,
            ClockServer.Singleton.GetFechaCompleta(), randomIncome: true);
    }
}

average becomes: $107.35/bank account

#

a good computer costs around 3.5k (in my experience), it would take even still around 34 bank accounts on average to reach this figure.

this includes: randomness (not just a static table deciding the fate of the bank account, with 7 different numbers it can choose from)
it uses a weighted percentile system so that it can choose anywhere in-between 0 and 950, with 950 being the 99.9% percentile, becoming nearly impossible to reach, and the mean number being 97-107.

also, instead of limiting the bank account transfer limits to 10 seconds per transfer, you should limit the amount that can be transferred to an account at once, for example if more than 1,000 is moved to an account within a real life hour or so, it could flag the system, forcing the user to use other bank accounts or store their money elsewhere. this should also be an optional configuration as part of my online public/private game servers.

balance the price of hardware, make hardware spawn faster than one month (completely unrealistic and prevents many players from aquiring hardware that either: lasts a long time, or is efficient enough for what they need). make hardware last 2x longer at least

secondly, create a public/private server system that allows for game modding/cheating, this would increase the player retention and increase players playing generally speaking, and wouldn't be hard to incorporate based on your current general multiplayer server layout, you can keep mods off for your general multiplayer by disabling certain folder names in your gamespace, like "BepInEx".

you should have custom time / npc behaviour generation per player server, banks and website generation could be better and more 'featuristic', could allow js as well as html for websites, to potentially introduce php or sql hacking that way

neon grove
#

It's better to do one suggestion per thread

final geode
#

i thought my title was enough to make that clear but clearly not

#

suggestion 3:

lock window sizes into dpi sizes, like linux machines where the default is 84x22

neon grove
#

Okay well I'm going to change the thread's title to what appears to be the primary suggestion of the thread, you can create separate threads for the other suggestions if you want.

final geode
#

unnecessary and clogs up the suggestions channel

#

please stop commenting on my thread if it's not related to my suggestions

neon grove
#

Increase Money In NPC Bank Accounts

final geode
#

to kurouzu