1.在QFunctionNpc增加骰子事件函数定义: ``` procedure OnDiceEvent(Npc: TNormNpc; Player: TPlayObject; ATag, APoint1, APoint2, APoint3: Integer); ``` 2.发送骰子消息: ``` procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs); begin Player.PlayDice(100{骰子标志}, 4{骰子点数1}, 1{骰子点数2}, 6{骰子点数3}); //骰子标志: 任意设置,用来区分骰子类型而已 //骰子点数1: 当前点数1,取值范围1-6。这个点数实际上是服务器设置好的,客户端只是播放下而已 //骰子点数2: 当前点数2,取值范围0-6 //骰子点数3: 当前点数3,取值范围0-6 //当点数3和点数2也在1-6时表示投掷3个点数,当点数2为1-6时而点数3不在1-6时表示投掷两个点数 //如果点数2和3都不在1-6时表示只投一个点数 end; ``` 3.当客户端骰子播放完成后触发骰子事件,在QFunctionNpc的OnDiceEvent中进行处理: ``` procedure OnDiceEvent(Npc: TNormNpc; Player: TPlayObject; ATag, APoint1, APoint2, APoint3: Integer); begin Player.Messagebox(Format('骰子标志%d, 点数1:%d, 点数2:%d, 点数3:%d', [ATag, APoint1, APoint2, APoint3])); end; ``` >[danger] 注:骰子的点数为服务端设置后发送给客户端的,客户端只执行播放动作,所以可以通过一些控制来设置骰子的实际点数