台服dnf吧 关注:118,016贴子:1,879,512
  • 13回复贴,共1

无视300人数上限,强制主动加入某固定公会的方法

只看楼主收藏回复

这几天看到有吧友在整全员入公会的方法,想起来之前玩朋友的服的时候基于mysql触发器写了一种强制加入某公会的办法,分享一下仅供参考


IP属地:广东1楼2024-04-01 23:48回复
    前排


    IP属地:海南来自Android客户端2楼2024-04-01 23:50
    收起回复
      由于单个公会存在300的上限,某些情况下导致新玩家和老玩家不在同一公会,沟通也不方便. 但同时又有部分玩家有新建自己小公会的需求,那么需求和问题如下
      1.建立一个默认的大公会,所有玩家可通过手动申请强制加入大公会,
      2.少部分玩家自建公会不需要这个机制
      3.退出公会存在5天cd
      4.直接修改charac_info.guild_id没有公会技能,公会成员列表不显示该玩家
      =====添加触发器=====
      所以,在申请表中,添加一个触发器,
      假设大公会的guild_id=1
      当申请表guild_join_list 有新数据插入时:
      删除该角色在guild_member中的数据(规避5天cd)
      自动向公会成员(guild_member)表插入该角色的信息,并且过滤为只有guild_id=1的数据
      ====刷新入会状态======
      由于dnf存在缓存机制,由于上述操作直接写库导致角色当下不会同步已经入会的状态
      那么可通过一下方法来刷新缓存
      1.切换其他角色,再切回来,
      2.下线大约3分钟再上线,
      ====清除申请表=======
      至此,强制入会已经完成,但该角色的公会申请信息仍旧在guild_join_list 中,
      但又不能够在插入guild_join_list的同时又删除当前表的数据
      那么该角色便不能够再进行公会申请的操作,除非删掉
      那么可通过
      1.公会管理定期清除申请表的内容, 直接全选拒绝掉
      2.角色在点击申请后, 再点取消申请,也会删除
      3. 通过mysql写个定时器去删除guild_join_list表的数据


      IP属地:广东3楼2024-04-02 00:14
      回复
        详细请看文档,涉及mysql,谨慎操作,出问题不要找我


        IP属地:广东来自Android客户端4楼2024-04-02 00:19
        收起回复


          IP属地:湖南来自Android客户端5楼2024-04-02 00:22
          回复
            厉害话说大佬,那种obj跟踪最近的敌人还有obj从天往下掉的nut有写法嘛,参考很多都看不懂


            IP属地:吉林来自Android客户端6楼2024-04-02 09:07
            收起回复
              大佬可以在教一下如何删除自动加入公会吗


              IP属地:吉林7楼2024-05-18 13:43
              回复