0

我正在为一个用非通用语言 (PAWN) 编写的在线游戏创建一个系统,类似于 C。

我做了一些研究,发现了一些很好的信息,但这不是我完全在寻找的。

在游戏中有几个行业,我希望有股票和股票。

例如:

警察局鱼市房屋市场

股票的波动性是价格变化的幅度 (+/-)。波动率越高,波动越大。

在我的游戏中,每个行业的价格每分钟都会更新。

当一个行业达到每股最低价格时,它就会破产。当达到每股最高价格时,行业股票将拆分。

例子:

  • 警察部门 - (每 220 次价格更新破产)(每 660 次价格更新股票拆分 - 如果在此之前没有破产)

  • 渔业 - (每 1000 次价格更新破产)(每 220 次价格更新股票拆分 - 如果在此之前没有破产)

  • 房屋市场 - (永不破产)

我找到了一个函数并将其更改为所需的编码语言,这会影响波动性。

Float:GenerateNextPrice(stockid)
{
    if(stockid < 0 || stockid >= sizeof(gStockMarket)) return -1.0; // 

    new Float:rnd; 
    MRandFloatRange(0, 1.0, rnd); // generate number, 0 <= x < 1.0

    new Float:old_price = gStockMarket[stockid][gCurrentStockPrice];
    new Float:volatility = gStockMarket[stockid][gStockVolatility]; // A stable stock would have a volatility number of perhaps 2. A volatility of 10 would show some pretty large swings.
    new Float:change_percent = 2 * volatility * rnd;

    if (change_percent > volatility)
    {
        change_percent -= (2 * volatility);
    }
    new Float:change_amount = (old_price / 100) * change_percent;
    new Float:new_price = old_price + change_amount;
    return new_price;
}

此函数会影响波动性,但波动性越高,波动越大。

我将如何在复制价格上涨/下跌但经过一定数量的调用后最终破产或如上所述分裂的地方发挥作用?

我理解这可能会令人困惑,并乐于回答问题。

4

0 回答 0