📄 mu_wed_zs.txt
字号:
CREATE PROCEDURE ZS
@ACC VARCHAR(10),
@CLZB VARCHAR(5),
@JCZB CHAR(5),
@NAME VARCHAR(10),
@PASS VARCHAR(10),
@XZZS VARCHAR(5),
@ZSJGSJ SMALLINT,
@ZSJS INT,
AS
SET NOCOUNT ON
DECLARE @ACCQX CHAR(1)
DECLARE @CGXS INT
DECLARE @Class tinyint
DECLARE @DEXTERITY SMALLINT
DECLARE @ENERGY SMALLINT
DECLARE @EXPERIENCE INT
DECLARE @ITEMS VARBINARY(1200) --前12件物品
DECLARE @JDJ SMALLINT
DECLARE @MONEY INT
DECLARE @MDATE DATETIME
DECLARE @MANA REAL,@LIFE REAL
DECLARE @MAPNUMBER SMALLINT
DECLARE @MAPPOSX SMALLINT
DECLARE @MAPPOSY SMALLINT
DECLARE @MJSJ DATETIME
DECLARE @PKLEVEL INT
DECLARE @PPKTIME INT
DECLARE @PKCOUNT INT
DECLARE @RITEMS VARBINARY(1200)
DECLARE @STRENGTH SMALLINT
DECLARE @USERCLEVEL SMALLINT
DECLARE @VITALITY SMALLINT
DECLARE @XSZSCLEVEL SMALLINT
DECLARE @XSZSCOUNT INT
DECLARE @XZSCOUNT INT
DECLARE @XCZSSJ VARCHAR(50)
DECLARE @YNAME VARCHAR(10)
DECLARE @YMONEY INT
DECLARE @YZSTIME DATETIME
DECLARE @ZSLEVELUPPOINT INT
DECLARE @ZSSJ DATETIME
DECLARE @ZZSCOUNT INT
DECLARE @ZCOUNT INT
DECLARE @ZSCOUNT SMALLINT
DECLARE @CLEVEL SMALLINT
/*判断在线*/
SET @XZSCOUNT=0
SET @ZCOUNT=0
SET @ZCOUNT=DBO.JC_USER_ONLINE(@ACC)
IF @ZCOUNT >= 1
BEGIN
SELECT '用户在线上请先下线。'
SET NOCOUNT OFF
RETURN
END
SELECT @YMONEY=MONEY,@YNAME=NAME,@ITEMS=INVENTORY,@MDATE=MDATE,@Class=Class,@USERCLEVEL=CLEVEL,@PPKTIME=PKTIME,@PKCOUNT=PKLEVEL FROM CHARACTER WHERE NAME = @NAME AND ACCOUNTID=@ACC
IF @YNAME IS NULL OR @YNAME = ''
BEGIN
SELECT '角色名不存在请从试。'
SET NOCOUNT OFF
RETURN
END
/*--------------------------检查是否装备物品----------------------*/
DECLARE @I INT
IF(@JCZB = 'YTRUE')
BEGIN
SET @I=0
WHILE @I<12
BEGIN
IF SUBSTRING(@ITEMS,@I*10+1,1)<>0XFF
BREAK
SET @I=@I+1
END
IF @I<12 --错误退出
BEGIN
SELECT '转生时身上不得装备任何物品 !'
RETURN
END
END
/*-----------------------------------------------------------------*/
SELECT @ACCQX=QX FROM MEMB_INFO WHERE MEMB___ID=@ACC
IF @ACCQX='A'
BEGIN
SELECT '会员请在会员转生处转生:)'
SET NOCOUNT OFF
RETURN
END
IF @ACCQX='B'
BEGIN
SELECT @ZSCOUNT=zscount FROM GMmanner WHERE QX='B'
SET @XZSCOUNT=@ZSCOUNT
END
SELECT @ZZSCOUNT=ZSCS,@ZSSJ=ZSTIME,@XCZSSJ=CONVERT(VARCHAR,DATEADD(MINUTE,@ZSJGSJ,ZSTIME),111) + ' ' + CONVERT(VARCHAR,DATEADD(MINUTE,@ZSJGSJ,ZSTIME),8) FROM WEB_ZS WHERE NAME=@NAME
/*-----------------------判断修正转生数据-----------------------------*/
IF(@ZSSJ IS NULL)
BEGIN
SET @ZSSJ=GETDATE()
END
IF(@MDATE >= @ZSSJ)
BEGIN
IF(@XZZS = 'STRUE')
BEGIN
SELECT '你的转生数据有误请联系管理员进行修正后再转生'
SET NOCOUNT OFF
RETURN
END
IF(@XZZS = 'YTRUE')
BEGIN
SET @ZCOUNT=0
SELECT @ZCOUNT=COUNT(*) FROM WEB_ZS WHERE NAME=@NAME
IF @ZCOUNT > 0
BEGIN
UPDATE WEB_ZS SET ZSTIME=GETDATE(),BSCS=0,CZCS=0,ZSCLEVEL=1,ZSCS=0,CJZSCS=0,ZJZSCS=0,GJZSCS=0,LEVELUPPOINT=0 WHERE NAME=@NAME
END
ELSE
BEGIN
INSERT INTO WEB_ZS(ACC,NAME,ZSTIME,ZSCLEVEL,ZSCS,CJZSCS,GJZSCS,ZJZSCS,LEVELUPPOINT,BSCS,CZCS) VALUES(@ACC,@NAME,GETDATE(),1,0,0,0,0,0,0,0)
END
SELECT @ZZSCOUNT=ZSCS,@ZSSJ=ZSTIME FROM WEB_ZS WHERE NAME=@NAME
SET @ZSJGSJ=0
END
END
/*--------------------------检查转生时间-------------------------------*/
IF(@ZZSCOUNT IS NULL OR @ZZSCOUNT <= 0)
BEGIN
SET @ZSJGSJ=0
SET @ZZSCOUNT=0
END
IF(DATEADD(MINUTE,@ZSJGSJ,@ZSSJ) > GETDATE())
BEGIN
SELECT '你现在还不能转生,你的下次转生时间为' + @XCZSSJ
SET NOCOUNT OFF
RETURN
END
IF @ZZSCOUNT >= @XZSCOUNT
BEGIN
SELECT '对不起你不能再转生了!!您已经转生了'+ CONVERT(VARCHAR,@ZZSCOUNT) +'!请马上去升级会员哦!'
SET NOCOUNT OFF
RETURN
END
/*------------判断是否是新手转生------------------*/
DECLARE @ZSCLEVEL SMALLINT
DECLARE @ZSZSCLEVEL SMALLINT
DECLARE @GSZSCLEVEL SMALLINT
DECLARE @ZSZSCOUNT SMALLINT
select
@ZSCLEVEL=zsclevel,@XSZSCOUNT=xszscount,@ZSZSCOUNT=zszscount,@XSZSCLEVEL=xszsclevel,@ZSZSCLEVEL=zszsclevel,@GSZSCLEVEL=gszsclevel FROM GMmanner WHERE QX='B'
IF (@ZZSCOUNT < @XSZSCOUNT )
BEGIN
SET @MONEY=100000000
SET @CLEVEL=@XSZSCLEVEL
END
IF(@ZZSCOUNT>=@XSZSCOUNT AND @ZZSCOUNT<@ZSZSCOUNT)
BEGIN
SET @MONEY=100000000
SET @CLEVEL=@ZSZSCLEVEL
END
IF(@ZZSCOUNT>=@ZSZSCOUNT AND @ZZSCOUNT<@XZSCOUNT)
SET @MONEY=100000000
SET @CLEVEL=@GSZSCLEVEL
SET @ZZSCOUNT = @ZZSCOUNT + 1
/*---------------判断是否够等级-----------------*/
IF (@USERCLEVEL < @CLEVEL)
BEGIN
SELECT '兄弟啊!你的等级还不够再去练练吧!!转生需要'+ CONVERT(VARCHAR,@CLEVEL) +'级哦!'
SET NOCOUNT OFF
RETURN
END
/*---------------判断是否红名或魔头-----------------*/
IF(@PKLEVEL = 0)
BEGIN
IF(@PKCOUNT > 3)
BEGIN
SELECT '系统提示:目前不允许红名和魔头转生!'
SET NOCOUNT OFF
RETURN
END
IF(@PKCOUNT <= 3 AND @PPKTIME > 0)
BEGIN
SELECT '系统提示:你的杀人通缉时间还没过,不能转生。\N如果你不是红名而又出现这种情况,请用“清洗红名”功能进行免费洗名。'
SET NOCOUNT OFF
RETURN
END
SET @ZCOUNT=0
/*---------------------判断身上是否有中够的钱转生---------------------------------*/
IF (@YMONEY < @MONEY)
BEGIN
SELECT '你的帐号余额不足!转生需要'+ CONVERT(VARCHAR,@MONEY) +'MONEY!'
SET NOCOUNT OFF
RETURN
END
/*--------------------------------转生--------------------------------------*/
DECLARE @ERC INT
SET @ERC = 1
BEGIN TRAN
IF (@class = 0)
BEGIN
exec check_class @class
END
END
IF (@class = 16)
BEGIN
exec check_class @class
END
IF (@class =32)
BEGIN
exec check_class @class
END
IF (@class = 48)
BEGIN
exec check_class @class
END
IF (@class = 64)
BEGIN
exec check_class @class
END
BEGIN
IF (@ZZSCOUNT < @XZSCOUNT)
SET @ZSLEVELUPPOINT=300 + @ZZSCOUNT * 150
IF (@CLZB = 'YTRUE')
BEGIN
UPDATE CHARACTER SET INVENTORY=CAST(REPLICATE(CHAR(0XFF),760) AS VARBINARY(760)),
MONEY=MONEY-@MONEY,
STRENGTH=@STRENGTH,
CLEVEL=@ZSCLEVEL,
LEVELUPPOINT=@ZSLEVELUPPOINT,
DEXTERITY=@DEXTERITY,
VITALITY=@VITALITY,
ENERGY=@ENERGY,
MAGICLIST=NULL,
MANA=@MANA,
MAXMANA=@MANA,
LIFE=@LIFE,
MAXLIFE=@LIFE,
MAPNUMBER=@MAPNUMBER,
MAPPOSX=@MAPPOSX,
MAPPOSY=@MAPPOSY,
PKLEVEL=3,
PKTIME=0,
PKCOUNT=0,
EXPERIENCE=0,
CLEVEL=2
WHERE NAME=@NAME
SET @ERC=2
END
BEGIN
UPDATE WEB_ZS
AS
ZSTIME=@XCZSSJ,
ZSCLEVEL=@ZSCLEVEL,
ZSCS=@ZZSCOUNT,
LEVELUPPOINT=@ZSLEVELUPPOINT
WHERE NAME=@NAME AND ACC=@ACC
END
IF @ERC >= 1
BEGIN
SET @ZZSCOUNT = @ZZSCOUNT
SELECT '恭喜您!您目前转生为'+ CONVERT(VARCHAR,@ZZSCOUNT) + '转了,您被扣除'+ CONVERT(VARCHAR,@MONEY) +'MU币.'
COMMIT TRAN
SET NOCOUNT OFF
RETURN
END
ELSE
BEGIN
SELECT'系统不能记录你的转身信息'
ROLLBACK
SET NOCOUNT OFF
RETURN
END
COMMIT TRAN
SET NOCOUNT OFF
END
GO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -