• 3699阅读
  • 48回复

★★★------发布----完美解决罗兰卡号问题------★★★ [复制链接]

上一主题 下一主题
离线a-bo
 
发帖
188
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看楼主 正序阅读 使用道具 楼主  发表于: 2006-08-26
首先感谢goehdtjdrn提供WZ_DISCONNECT_MEMB 的储存过程修改,在他的思路的基础上,得到iiibbbmmm数据库高手的鼎立相助,终于完美解决了罗兰卡号的问题。通过修改可以在隐藏攻城线的时候使得罗兰下线,罗兰小退换号都不会再卡了,测试时使用的是快捷方式+ip+端口的登陆方法,如果大家有风的登陆器或者是动态验证码的登陆器可以进一步测试,把测试结果发上来,谢谢!
数据库修改方法如下:


1、修改WZ_CONNECT_MEMB储存过程,用下面代码替换:

CREATE   PROCEDURE WZ_CONNECT_MEMB
@uid varchar(10),
@server varchar(20),
@uip varchar(20)
AS

Begin

BEGIN TRANSACTION

SET NOCOUNT ON

IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED) WHERE memb___id = @uid )
Begin
UPDATE MEMB_STAT
SET ip = @uip , connectstat = 1 , servername = @server , ConnectTM = (getdate())
WHERE memb___id = @uid
End
ELSE
Begin
INSERT INTO MEMB_STAT ( memb___id,ip,connectstat,servername)
valueS (@uid,@uip,1,@server )
End
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

--写入登录记录
IF EXISTS ( SELECT UserID FROM UserLogin WITH (READUNCOMMITTED) WHERE UserID = @uid )
Begin
UPDATE UserLogin
SET LoginIP=@uip,Server=@server,LoginTM = (getdate()),OnlineSec=0,GiveMoney=0,logoutTM=null
WHERE UserID = @uid
End
ELSE
Begin
INSERT INTO UserLogin (UserID,LoginIP,Server,LoginTM,OnlineSec,GiveMoney)
values (@uid,@uip,@server,getdate(),0,0)
End
--自动封服务器不准进入的人物
declare @SmallestZS int
declare @LargestZS int
declare @Type int
select @Type=Type from SetServerList where ServerName=@server

if (@Type>0) begin

select @SmallestZS=Smallest_ZS from SetServerList where ServerName=@server
select @LargestZS=Largest_ZS from SetServerList where ServerName=@server

if not (@SmallestZS is null) begin
update character set ctlcode=(ctlcode | 0x81) where [name] not in
(
SELECT NAME FROM WEB_ZS WHERE (ACC = @uid) AND (ZSCS >= @LargestZS) AND (ZSCS <= @SmallestZS)
) AND (AccountID = @uid)
end
end

UPDATE [Character] SET MapNumber = 0, MapPosX = 130, MapPosY = 130 WHERE (MapNumber = 30) AND (AccountID = @uid) OR (MapNumber = 31) AND (AccountID = @uid)

SET NOCOUNT OFF
End
GO

------------------------------------------------------------------------
2、新建立Character的触发器:

CREATE TRIGGER 小退自救
ON Character
AFTER UPDATE
AS
BEGIN
  SET NOCOUNT ON;

  UPDATE Character
    SET   MapNumber = 0   --要去的地图号
      , MapPosX = 130   --要去的X坐标
      , MapPosY = 130   --要去的Y坐标

  FROM Inserted
    WHERE Inserted.Name = Character.Name
      and Inserted.MapNumber = 30   --会卡住的地图号
    or
      Inserted.Name = Character.Name
      and Inserted.MapNumber = 31   --会卡住的地图号
END
2条评分
军刀 金钱 +1 - 2006-08-26
军刀 金钱 +10 - 2006-08-26
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线浅蓝深蓝
发帖
49
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 48楼 发表于: 2006-09-07
谢谢
离线91wsf123
发帖
14
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 47楼 发表于: 2006-09-06
楼主有QQ吗~我的怎么不行呢
离线wrdsir
发帖
57
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 46楼 发表于: 2006-08-31
引用第11楼goehdtjdrn2006-08-26 15:31发表的“”:
强烈支持 ... 强烈推荐 !!!



会说中文的呀?
离线moongod2
发帖
220
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 45楼 发表于: 2006-08-31
卓越一顶
离线qulin1698
发帖
52
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 44楼 发表于: 2006-08-31
我也顶~~~~~~~~~~~~~~~~~~~~~~~~
离线a-bo
发帖
188
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 43楼 发表于: 2006-08-30
引用第39楼iiibbbmmm2006-08-30 02:55发表的“”:
插个嘴, 有触发器就不用改储存过程了, 多余的
顺便优化一下触发器的语句
[code]CREATE TRIGGER 小退自救
ON Character
.......

谢谢ibm的指点
离线路西法
发帖
680
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 42楼 发表于: 2006-08-30
近期已经解决卡号问题了 虽然没试过楼主分方法不过还是顶一个
个人格言:技术是靠大家的分享和心得及反复的研究而提升的!淡淡网络官方站:http://dan.ransmu.com/
离线猪仔包2
发帖
10
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 41楼 发表于: 2006-08-30
dddddddddddddddddddddddddddddddddddd
离线游侠
发帖
497
祝福宝石
0
威望
3406
玛雅之石
0
创造宝石
0
只看该作者 40楼 发表于: 2006-08-30
开服这么久,用原版的存贮过程,小退卡号为什么没遇到?

只有遇到在进入罗兰的瞬间卡号问题。
游侠在线论坛
http://bbs.youxia.com
离线iiibbbmmm
发帖
6808
祝福宝石
0
威望
13834
玛雅之石
0
创造宝石
0
只看该作者 39楼 发表于: 2006-08-30
插个嘴, 有触发器就不用改储存过程了, 多余的

顺便优化一下触发器的语句
  1. CREATE TRIGGER 小退自救
  2. ON Character
  3. AFTER UPDATE
  4. AS
  5. BEGIN
  6. SET NOCOUNT ON
  7. UPDATE Character
  8.   SET   MapNumber = 0   --要去的地图号
  9.     , MapPosX = 130   --要去的X坐标
  10.     , MapPosY = 130   --要去的Y坐标
  11. FROM Inserted
  12.   WHERE Inserted.Name = Character.Name
  13.     and Inserted.MapNumber in (30,31)   --会卡住的地图号
  14. END
以下内容需要回复之后才能查看
----------------------------------------------
离线gmlee2000
发帖
369
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 38楼 发表于: 2006-08-27
不错 支持下!!!
离线wjbwgm
发帖
75
祝福宝石
0
威望
991
玛雅之石
0
创造宝石
0
只看该作者 37楼 发表于: 2006-08-27
辛苦了 谢谢你啊
天才总是和愚人共在 我在期待我的天堂
离线csdj86
发帖
281
祝福宝石
0
威望
655
玛雅之石
0
创造宝石
0
只看该作者 36楼 发表于: 2006-08-27
???咿了 ??铨就如?主真的依?

狱办器不?用的 可以使用查?器指向 MUONLINE 即可
离线alanhai
发帖
78
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 35楼 发表于: 2006-08-27
可是移动 罗兰卡死怎么解决????
mufr.cnno.net
离线hldsb
发帖
126
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 34楼 发表于: 2006-08-27
顶啊
离线路西法
发帖
680
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 33楼 发表于: 2006-08-27
呵呵顶一个
个人格言:技术是靠大家的分享和心得及反复的研究而提升的!淡淡网络官方站:http://dan.ransmu.com/
离线leung83820
发帖
690
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 32楼 发表于: 2006-08-26
GOOD
离线youbingjie
发帖
35
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 31楼 发表于: 2006-08-26
好帖需要顶!
离线laojiuguan
发帖
666
祝福宝石
0
威望
0
玛雅之石
0
创造宝石
0
只看该作者 30楼 发表于: 2006-08-26
用户被禁言,该主题自动屏蔽!
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个

      管理员联系信箱 [email protected] 所有内容均来之互联网,如侵犯您的隐私和权益,请和我们及时联系!