1、要实现存款和体现,需要两个计分板来储存这两个数据,在这里我用cash代表现金、deposit代表存款。首先,判定玩家是否在银行注册了用户,这里的银行用户都加入了YHuser队伍,所以直接用@a[team=!YHuser]就能选择到没有注册用户的玩家。
2、存款和提现的处理:对于现金满足条件,就直接检测最近玩家的现金(cash)是否达到一定值(满足值),如果达到则减少最近玩家相应现金分值(cash),增加该玩家对应的相应存款(deposit)。因为本系统的现金额是大于等于0的,所以不满足只需要检测玩家现金(cash)分值是否为“0到满足值-1”即可。
3、MC中计分板是整数,所以如果包含了那个数,玩家现金分数刚好为满足值,那么玩家岂不是既满足了现金满足条件,又满足了现金不满足条件了。其次是这里的判定需要用到scoreboard players test @P cash 满足值 *,因为如果用testfor @p[score_cash_min=满足值]则在多人游戏中游戏会选择最近的符合条件的玩家,而不是最近玩家。
4、玩家死亡掉落现金其实很简单,就在原有判定死亡的基础上,将死亡玩家的现金(cash)减去100或50。这里的普通用户会有一个ptuser的tag标签,付费用户为ffuser标签。所以分别@a[tag=ptuser&ffuser]就能选中所有的银行用户。
5、对于现金超支的判定,即现金(cash)小于0(小于等于-1),若玩家cash小于0的时候,用玩家的deposit+=cash两次即可。因为此时玩家的现金(cash)为负数,所以这时的deposit+=cash就等于deopsit-=|cash|;若执行两次,就等于deopsit-=2|cash|。即减去存款值=超支现金x2。