找回密码
 注册
查看: 4704|回复: 1

Server 2.1 build 20041123 新增加功能

[复制链接]
发表于 2004-11-24 11:25:31 | 显示全部楼层 |阅读模式
功能描述:
# b; m6 u2 m: q" @1 }; g& }增加了原“因某种原因造成的卡在线上”或“只是数据库标记没有被复原”造成的不能登录的玩家也可以登录的功能。1 \+ z1 t+ z* F2 w+ c
  l! I' A: i0 k8 i
该功能表现为:% U4 ^2 Q5 I1 O) k
若一个帐号两人使用,在第二人登录时,第一人自动失去控制权(聊天区上提示某IP使用该帐号登录)。4 V! s: e- M" L
; r: |/ f' _. X5 g$ ?, F. I9 A
实现办法:
' t; W# r4 N, g; [( k- u为使用该功能,必须在DLL部分的OnUserLogin() 中返回的 CUserInfo::m_bBoot 设置为 TRUE(即数据库玩家信息中的 DB_FD_TAG==CVarInfo::m_nSiteTag 时才设置该值,正常情况下不设置),当 CUserInfo::m_bBoot 为 TRUE 时,服务器会自动搜索所有场景,进行处理。
 楼主| 发表于 2004-11-24 11:36:01 | 显示全部楼层
  1. 8 W1 I/ a" }5 z/ s9 u0 I/ E
  2. ……
    ; }* }" S& W, y, Z4 ~
  3. if(!rs.IsEOF())
    ( I$ E% Z8 o+ J
  4. {        //有数据
    + C) P! d) i& I, j: \9 q- Y
  5.         rs.GetFieldValue( DB_FD_TAG, NV );        //在线标记
    " r: k4 R6 H6 E/ q, X# [. z9 z' r
  6.         if( NV.m_lVal < 1 || NV.m_lVal == pVarInfo->m_nSiteTag )% s4 N) H8 l6 {4 P# j- E0 m
  7.         {        //小于1为未登录或一些特殊处理
    ! O3 n4 l" q% Y& v) d4 ]- \
  8.                 if( NV.m_lVal == pVarInfo->m_nSiteTag )
    + D5 W" L; a( e& l
  9.                 {        //如果数据库标记为已经登录了本服务器,则让服务器处理重复上线! b) C" h% Z3 g! O: e1 g! F7 S
  10.                         pUserInfo->m_bBoot = TRUE;
    1 m. G% W' B; ^) k% b- k
  11.                 }        pUserInfo->m_nTag = NV.m_lVal;
    6 |0 G- e5 O8 [) b+ g4 s; x- k7 M
  12.         rs.GetFieldValue( DB_FD_STATE, NV );        //状态
    8 q; \1 t, k* Y& o3 R* r
  13.         pUserInfo->m_nState = NV.m_lVal;9 F$ M4 t( ]9 O& e
  14.         rs.GetFieldValue( DB_FD_NAME, strName );        //名字4 r# z  P5 R3 v) z9 o- i
  15. ……
    * \! b) B& f$ M' _
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-2 05:44 , Processed in 0.016161 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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