|
一发邮件给redmoon就卡住 游戏卡住了 在上线号就被卡了 怎么回事
--功能:转生
--注意:tblgameid1表中,必须有redmoon这个角色,
-- 转生条件要求用户发信给redmoon,并且
-- 等级达到5000,邮件名称为'转生'
CREATE TRIGGER RMT_METEMPSYCHOSIS ON [dbo].[tblMail1]
FOR INSERT
AS
declare @Recipient varchar(14) --收信人
declare @Sender varchar(14) --发信人
declare @Title char(80) --邮件名称
select @Recipient=recipient,@Sender=sender,@Title=title from tblMail1
where Time >= (select max(time) from tblMail1)
if @Recipient='redmoon' and @Title = '转生' --判断信件是不是转生信件
EXEC RMS_METEMPSYCHOSIS @Sender
------------------------------------------------
--功能:转生
--注意:tblgameid1表中,必须有redmoon这个角色,
-- 转生条件要求用户发信给redmoon,并且
-- 等级达到5000,邮件名称为'转生'
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE RMS_METEMPSYCHOSIS
@GameID varchar(14)
AS
set nocount on
begin transaction RMS_METEMPSYCHOSIS
declare @Lvl int --等级
declare @Bonus2 int --丹药点数
declare @STotalBonus int --总丹药点数
declare @Count int --转生赋予的丹药个数
declare @RecordCount int --纪录数目
declare @MailContent varchar(100) --邮件内容
if @GameID<>''
begin
select @Lvl=lvl from tblGameid1 where gameid=@GameID
if @Lvl=5000
begin
--清除丹药表中该用户的纪录
delete from tblBonus2Log1 where gameid=@GameID
--设置转生后的属性
set @Bonus2=1000 --设置转生后保留的点数
set @STotalBonus=@Bonus2+2 --设置转生后保留的点数
set @MailC + convert(varchar,@STotalBonus) + '点' --设置信件内容
update tblgameid1
set lvl=1,experiment=0,fame=0,
strength=10,spirit=10,dexterity=10,power=10,
--map=12,x=10,y=15, --设置转生后的出生坐标
bonus=2,bonus2=@Bonus2,sbonus=0,stotalbonus=@STotalBonus
where gameid=@GameID
--发送转生成功信件
EXEC RMS_SENDMAIL @GameID,'redmoon','恭喜转生成功,请重新登陆',1,@MailContent,''
end
else
--发送转生失败信件
EXEC RMS_SENDMAIL @GameID,'redmoon','转生条件不符合,转生失败',1,'',''
end
commit transaction RMS_METEMPSYCHOSIS
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO |
|