我想在角色到达400级后,通过小退的方法来实现"转生送点"的简单功能.
下面是我写的SQL触发代码:
-----------------------------
CREATE TRIGGER [转生] ON [dbo].[Character]
after update
AS
declare @level int
declare @levelpoint int
select @level = clevel from inserted
select @levelpoint = LevelUpPoint from inserted
if update(clevel)
begin
if (@level >399 )
begin
update [Character] set [Character] . clevel=50
From inserted
where [Character].accountid=inserted.accountid
and [Character].name=inserted.name
----实现角色级别返回50级,以便能进入适当地图
update [Character] set [Character] . experience=0
From inserted
where [Character].accountid=inserted.accountid
and [Character].name=inserted.name
-----经验返零(这样相当于前50级是没有升级点来加的)
update [Character] set [Character] . LevelUpPoint=@levelpoint+300
From inserted
where [Character].accountid=inserted.accountid
and [Character].name=inserted.name
-----相当于转生后返回300点的属性点
end
end
---------------------------
这样的代码在检测时是没有错误的,可以运用于Character表,但是问题是这样出现的:
当角色到达400级后,退出游戏(正常),到数据库中查看数据(需要实现的数据都已经按照我的意愿实现了),但是当再次进入游戏时,已经不能进入游戏,,,,然后
1.查看GS日志,出现"数据库设置失败"
2.查看DATA1日志,发现"......无效的游标"
出现这样的情况我不知道是不是问题在---数据库与数据服务的通讯问题.
---- 我希望有能力的朋友能帮我分析一下问题所在,如果有可能的话,希望能帮我完善一下通过我这样的方法实现简单的"转生送点"的功能.
[ 此贴被bnb在2006-06-04 16:36重新 ]