function UpdateEthBalance(uint256 bal, uint256 devf, uint256 rnkf, uint256 shpf) external payable
    {
        require(owner == msg.sender || admin == msg.sender || (enabled && city == msg.sender));

        worldData.ethBalance += bal + devf + rnkf + shpf;
        worldData.ethDev += devf;

        WORLDSNAPSHOT storage wss = ValidateWorldSnapshotInternal(nowday());
        wss.ethDay += bal + devf + rnkf + shpf;
        wss.ethBalance += bal;
        wss.ethRankFund += rnkf;
        wss.ethShopFund += shpf;
        wss.ethRankFundRemain += rnkf;
        wss.ethShopFundRemain += shpf;
        wss.lasttime = block.timestamp;

        ethBalance[owner] += devf;
    }