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

Server 2.1 build 20041123 新增加功能

[复制链接]
发表于 2004-11-24 11:25:31 | 显示全部楼层 |阅读模式
功能描述
) S" L" m9 L5 r  q3 b7 K& @增加了原“因某种原因造成的卡在线上”或“只是数据库标记没有被复原”造成的不能登录的玩家也可以登录的功能。" U' t) P3 T7 T6 @" |1 n5 r2 D

# ]# p( _5 p5 a$ n& u该功能表现为
6 Z9 }2 G, Q0 r. G若一个帐号两人使用,在第二人登录时,第一人自动失去控制权(聊天区上提示某IP使用该帐号登录)。( H/ W$ k+ N8 p" Z+ h' D
& x( y8 @+ q. n6 `
实现办法
* W/ W: _- D/ b) I) }" U" [, p为使用该功能,必须在DLL部分的OnUserLogin() 中返回的 CUserInfo::m_bBoot 设置为 TRUE(即数据库玩家信息中的 DB_FD_TAG==CVarInfo::m_nSiteTag 时才设置该值,正常情况下不设置),当 CUserInfo::m_bBoot 为 TRUE 时,服务器会自动搜索所有场景,进行处理。
 楼主| 发表于 2004-11-24 11:36:01 | 显示全部楼层
  1. 3 y7 o/ U3 z3 N" I, p: I
  2. ……
    - b. b3 P: i2 y$ R8 w+ P5 J+ O* T
  3. if(!rs.IsEOF())9 A/ n6 D9 x- a' w
  4. {        //有数据* r* f4 p$ D& x3 D1 L4 t( t
  5.         rs.GetFieldValue( DB_FD_TAG, NV );        //在线标记, n4 K4 h( }4 i; \, U2 Q
  6.         if( NV.m_lVal < 1 || NV.m_lVal == pVarInfo->m_nSiteTag ); x5 s: K9 r2 P& ?
  7.         {        //小于1为未登录或一些特殊处理
    + j+ c8 B4 \- ?/ r9 u6 H) {4 e
  8.                 if( NV.m_lVal == pVarInfo->m_nSiteTag )7 b: t9 H0 g( h* d
  9.                 {        //如果数据库标记为已经登录了本服务器,则让服务器处理重复上线
    1 A# ^( w9 o$ y/ e. s
  10.                         pUserInfo->m_bBoot = TRUE;7 X3 m. z: E+ K% }7 p! M
  11.                 }        pUserInfo->m_nTag = NV.m_lVal;
    . r3 K; a  Z: v5 L5 o
  12.         rs.GetFieldValue( DB_FD_STATE, NV );        //状态
    8 ?+ r) v% ?7 T( ^9 m; S5 S
  13.         pUserInfo->m_nState = NV.m_lVal;6 o$ _7 m; L7 g. ~% Z
  14.         rs.GetFieldValue( DB_FD_NAME, strName );        //名字
    * w8 R3 U/ z; q3 n/ S* `% ^
  15. ……
    8 g  G- B& O  P4 B# b5 Q$ g3 p& M
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-9 03:00 , Processed in 0.034788 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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