ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
接下来的是强力技能第二弹,我们将通过一些技能完成对玩家身份的改变。 </br>首先,先复习一下太阳神三国杀中的身份: * 主公:sgs.Player_Lord,用字符串表示为"lord" * 忠臣:sgs.Player_Loyalist,用字符串表示为"loyalist" * 内奸:sgs.Player_Renegade,用字符串表示为"renegade" * 反贼:sgs.Player_Rebel,用字符串表示为"rebel" </br>我们可以通过Player的成员函数`getRole`得到一名玩家的身份。它的原型是这样的: ``` getRole() ``` ![](https://img.kancloud.cn/6c/80/6c805a9ff902dfb2d400ffa807201ae2_242x26.png) </br>`getRole`的结果是字符串形式的身份,我们可以很方便地使用它。 </br>而设置一名玩家的身份,要借助老朋友的力量了。我们可以通过设置属性的方式实现这一点,用的方法是之前我们已经遇到过的 `setPlayerProperty`。 </br>身份的属性名字就是"role"了,所以如果说我们要把将玩家身份改成内奸的情况告诉房间的话,应该这么写: ``` 房间对象:setPlayerProperty(玩家对象, "role", sgs.QVariant("renegade")) ``` </br>好了,下面看一看技能吧: > 忠心:锁定技,游戏开始时,若你的身份不为主公,你须将身份改为忠臣。 </br>代码方面是这样的: ![](https://img.kancloud.cn/b9/f5/b9f56d1e1b9e7b4411a4174f29d5cb7d_778x285.png) </br>游戏效果: </br>开一局八人身份局,容易发现:选择武将时,身份还是反贼…… ![](https://img.kancloud.cn/5f/78/5f78ac144c4c3e3ae277c8a2abbfcebf_432x175.png) </br>身份分配是四个反贼和两个忠臣: ![](https://img.kancloud.cn/83/0f/830feb515830b606a483e3f301cd42f6_260x69.png) </br>结果进入游戏后就成为忠臣了! ![](https://img.kancloud.cn/27/50/2750db6784fe6dc3e3b50678bb9a8f96_213x173.png) </br>当有角色阵亡时也能发现身份分配出现了变化——反贼和忠臣各三个: ![](https://img.kancloud.cn/26/16/26160d88583371c5c204d602dcae1250_259x65.png) </br>技能就是这样被接受的。