找回密码
 注册
搜索
查看: 4218|回复: 1

Server 2.1 build 20041123 新增加功能

[复制链接]
发表于 2004-11-24 11:25:31 | 显示全部楼层 |阅读模式
功能描述. I& Z9 U; z% }1 E7 Z
增加了原“因某种原因造成的卡在线上”或“只是数据库标记没有被复原”造成的不能登录的玩家也可以登录的功能。% o5 ^# X! I. R; ~7 d7 ~9 f0 H2 g
) u2 y. S* e. G) _8 e2 t6 H0 C
该功能表现为4 T4 U  D8 J) k# e8 J3 i3 i% ^
若一个帐号两人使用,在第二人登录时,第一人自动失去控制权(聊天区上提示某IP使用该帐号登录)。
. h9 r( N/ u1 ~6 {7 V: a  Y1 f0 y0 q
实现办法
$ q6 c3 E1 [( e, H' I, `为使用该功能,必须在DLL部分的OnUserLogin() 中返回的 CUserInfo::m_bBoot 设置为 TRUE(即数据库玩家信息中的 DB_FD_TAG==CVarInfo::m_nSiteTag 时才设置该值,正常情况下不设置),当 CUserInfo::m_bBoot 为 TRUE 时,服务器会自动搜索所有场景,进行处理。
 楼主| 发表于 2004-11-24 11:36:01 | 显示全部楼层

  1. % ]: D+ m; |2 p6 f. \9 m
  2. ……2 P) G: ]2 G* W3 n8 E" G. [
  3. if(!rs.IsEOF())
    / Z9 G+ _% |  j% x! G
  4. {        //有数据# J/ K% [3 }/ C7 p0 q
  5.         rs.GetFieldValue( DB_FD_TAG, NV );        //在线标记- g. r- E. g! p* J% D, ]
  6.         if( NV.m_lVal < 1 || NV.m_lVal == pVarInfo->m_nSiteTag )
    4 V4 v1 k5 o- o% e/ g9 d& T8 A
  7.         {        //小于1为未登录或一些特殊处理
    ) p9 Y" u5 V9 W7 M- C" H
  8.                 if( NV.m_lVal == pVarInfo->m_nSiteTag )
    & x' {1 Z- U) R8 Z
  9.                 {        //如果数据库标记为已经登录了本服务器,则让服务器处理重复上线: m2 G1 Z" x) }+ c6 d0 a/ o9 a
  10.                         pUserInfo->m_bBoot = TRUE;
    1 P2 K2 D7 [" Y: E) A- E3 }
  11.                 }        pUserInfo->m_nTag = NV.m_lVal;5 _# [3 L2 `& s! N0 Z4 j1 G
  12.         rs.GetFieldValue( DB_FD_STATE, NV );        //状态4 S* G2 C5 i* E' p& p/ B& n: Z  x
  13.         pUserInfo->m_nState = NV.m_lVal;
    ) |4 T1 w' I0 u, q' f
  14.         rs.GetFieldValue( DB_FD_NAME, strName );        //名字; a6 Y" \/ [( g+ N" \1 u/ u0 |
  15. ……
    6 S+ V8 b9 ~5 _; T/ h9 ]
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2025-5-5 00:05 , Processed in 0.014820 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表