zoukankan      html  css  js  c++  java
  • 二进制数的位运算,角色权限,多种账号来源


    问题描述
    之前不同账号组织来源只可接各自账号类型的游戏任务,表中以任务类型type字段区分,现提出需求:不同账号组织可以接受相同的任务。


    原因分析
    若只有少量的组织类型,以type字段,十进制数来区别即可,但当组织类型多起来,且任务所属混杂时,定义枚举来区别就很麻烦,因此需要一个更为简洁的方式。


    解决方案
    1、给每个组织定义类型并转成二进制数存入数据库,例如UU账号类型1,则该组织app_id为1,网通账号类型2,则app_id为10,以此类推。

    2、给每个角色定义组织ID(app_id),如果角色1只能接UU任务,则将UU的app_id转为十进制数,等于1,如果角色2可接UU和网通两种类型的任务,则其app_id等于(1+10)转换为十进制数3

    3、代码中通过位运算来判断角色上线后,可接哪些任务类型,例如角色A的app_id = 3,与UU、网通类型进行位运算并用if来判断:

    if(3|1){ //可接UU任务 } // = 3
    if(3|2){ //可接网通任务 } // = 3

     

  • 相关阅读:
    Vue基础
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
    Document
  • 原文地址:https://www.cnblogs.com/yourstars/p/15666516.html
Copyright © 2011-2022 走看看