Files
jianyin/sql/update/patch.sql

528 lines
12 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =================202504231642增加英雄字段FLD_HumParams=================
IF NOT EXISTS (select name from syscolumns where id=object_id(N'TBL_HERO') AND NAME='FLD_FEATURE')
BEGIN
ALTER TABLE TBL_HERO ADD FLD_FEATURE varchar(200) default '' NOT NULL;
END
GO
-- =================202505231026修改邮件类型字段=================
IF EXISTS (select name from syscolumns where id=object_id(N'TBL_MAIL') AND NAME='Type')
BEGIN
ALTER TABLE dbo.TBL_MAIL ALTER COLUMN [Type] INT
end
GO
-- =================202504231642增加英雄字段FLD_HumParams=================
IF NOT EXISTS (select name from syscolumns where id=object_id(N'TBL_HERO') AND NAME='FLD_HumParams')
BEGIN
ALTER TABLE TBL_HERO ADD FLD_HumParams varchar(max) default '' NOT NULL;
END
GO
-- =================202504231642删除英雄存储过程=================
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[HERO_INFO_UPDATE]') AND type IN ('P', 'PC', 'RF', 'X'))
DROP PROCEDURE[dbo].[HERO_INFO_UPDATE]
GO
-- =================202504231642删除人物存储过程=================
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[HUM_INFO_UPDATE]') AND type IN ('P', 'PC', 'RF', 'X'))
DROP PROCEDURE[dbo].[HUM_INFO_UPDATE]
GO
-- =================202504231642更新英雄存储过程=================
/****** Object: StoredProcedure [dbo].[HERO_INFO_UPDATE] Script Date: 2024/7/24 14:49:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[HERO_INFO_UPDATE]
@sUserID VARCHAR(50),
@sChrName VARCHAR(50),
@Hair SMALLINT,
@Sex SMALLINT,
@Job SMALLINT,
@nLevel INT,
@Hp BIGINT,
@Mp BIGINT,
@Exp BIGINT,
@PkPoint INT,
@BodyLuck FLOAT,
@InChealth INT,
@IncSpell INT,
@IncHealing INT,
@StatusTimeAr binary(24),
@Relevel tinyint,
@MasterName VARCHAR(50),
@Sysvar binary(400),
@Abil VARBINARY(MAX),
@WAbil VARBINARY(MAX),
@Feathure VARCHAR(200),
@sHumParams VARCHAR(Max)
AS
IF EXISTS(SELECT FLD_ID FROM TBL_HERO WHERE FLD_USERID=@sUserID)
BEGIN
UPDATE TBL_HERO SET
FLD_UPDATEDATETIME = getdate(),
FLD_CHARACTER = @sChrName,
FLD_HAIR = @Hair,
FLD_SEX = @Sex,
FLD_JOB = @Job,
FLD_LEVEL = @nLevel,
FLD_HP = @Hp,
FLD_MP = @Mp,
FLD_EXP = @Exp,
FLD_PKPOINT = @PkPoint,
FLD_BODYLUCK = @BodyLuck,
FLD_INCHEALTH = @InChealth,
FLD_INCSPELL = @IncSpell,
FLD_INCHEALING = @IncHealing,
FLD_StatusTimeArr = @StatusTimeAr,
FLD_RELEVEL = @Relevel,
FLD_MASTERNAME = @MasterName,
FLD_SYSVAR = @Sysvar,
FLD_Abil=@Abil,
FLD_AbilMax=@WAbil,
FLD_FEATURE = @Feathure,
FLD_HumParams=@sHumParams
WHERE FLD_USERID=@sUserID
Return(0)
END
ELSE
RETURN(1)
GO
-- =================202504231642更新英雄存储过程=================
/****** Object: StoredProcedure [dbo].[HUM_INFO_UPDATE] Script Date: 2024/7/24 14:49:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[HUM_INFO_UPDATE]
@sUserID VARCHAR(50),
@sChrName VARCHAR(50),
@MapName VARCHAR(50),
@Cx SMALLINT,
@Cy SMALLINT,
@Dir int,
@Hair SMALLINT,
@Sex SMALLINT,
@Job SMALLINT,
@nLevel INT,
@Hp BIGINT,
@Mp BIGINT,
@Exp BIGINT,
@sHomeMap VARCHAR(50),
@Hx SMALLINT,
@Hy SMALLINT,
@PkPoint INT,
@btF9 INT,
@AttackMode BIGINT,
@FightZoneDie tinyint,
@BodyLuck FLOAT,
@InChealth INT,
@IncSpell INT,
@IncHealing INT,
@BonusPoint INT,
@StatusTimeAr binary(24),
@GameGold BIGINT,
@MasterName VARCHAR(50),
@Master tinyint,
@DearName VARCHAR(50),
@StoragePwd VARCHAR(10),
@LockLogon tinyint,
@QuestFlag binary(128),
@Money binary(800),
@MarryCount INT,
@Ee tinyint,
@Sysvar binary(400),
@uvar varbinary(max),
@Feathure VARCHAR(200),
@SuckDamageCount INT,
@SuckDamageBiLi INT,
@SuckDamageRate tinyint,
@sHeroName VARCHAR(50),
@sHeroUid VARCHAR(50),
@tClearVarTime datetime,
@jVar binary(2000),
@sSecPassWord VARCHAR(55),
@Abil VARBINARY(MAX),
@WAbil VARBINARY(MAX),
@BonusAbil binary(80),
@BonusAdjust binary(2040),
@NetState BIGINT,
@NetCall BIGINT,
@DC BIGINT,
@sHumParams VARCHAR(MAX)
AS
IF EXISTS(SELECT FLD_ID FROM TBL_CHARACTER WHERE FLD_USERID=@sUserID)
BEGIN
UPDATE TBL_CHARACTER SET
FLD_UPDATEDATETIME = getdate(),
FLD_CHARACTER = @sChrName,
FLD_MAPNAME = @MapName,
FLD_CX = @Cx,
FLD_CY = @Cy,
FLD_DIR = @Dir,
FLD_HAIR = @Hair,
FLD_SEX = @Sex,
FLD_JOB = @Job,
FLD_LEVEL = @nLevel,
FLD_HOMEMAP = @sHomeMap,
FLD_HOMEX = @Hx,
FLD_HOMEY = @Hy,
FLD_BTF9 = @btF9,
FLD_ATTACKMODE = @AttackMode,
FLD_FIGHTZONEDIE = @FightZoneDie,
FLD_INCHEALTH = @InChealth,
FLD_INCSPELL = @IncSpell,
FLD_INCHEALING = @IncHealing,
FLD_BONUSPOINT = @BonusPoint,
FLD_GAMEGOLD = @GameGold,
FLD_MASTERNAME = @MasterName,
FLD_MASTER = @Master,
FLD_DEARNAME = @DearName,
FLD_LOCKLOGON = @LockLogon,
FLD_QUESTFLAG = @QuestFlag,
FLD_MONEY = @Money,
FLD_MARRYCOUNT = @MarryCount,
FLD_EE = @Ee,
FLD_SYSVAR = @Sysvar,
FLD_UVAR = @uvar,
FLD_FEATURE = @Feathure,
FLD_SUCKDAMAGECOUNT = @SuckDamageCount,
FLD_SUCKDAMAGERATE = @SuckDamageRate,
FLD_SUCKDAMAGEBILI = @SuckDamageBiLi,
FLD_DC = @Dc,
FLD_HERONAME = @sHeroName,
FLD_HEROUSERID = @sHeroUid,
FLD_JVAR = @jVar,
FLD_VARCLEARTIME = @tClearVarTime,
FLD_SECPASSWORD = @sSecPassWord,
FLD_Abil=@Abil,
FLD_AbilMax=@WAbil,
FLD_BonusAbil=@BonusAbil,
FLD_BonusAdjust=@BonusAdjust,
FLD_NETSTATE=@NetState,
FLD_NETCALL=@NetCall,
FLD_HumParams = @sHumParams
WHERE FLD_USERID=@sUserID
Return(0)
END
ELSE
RETURN(1)
GO
-- =================202504231642TBL_CHARACTER表索引=================
if not exists(select TOP 1 1 from sysindexes where id=object_id('TBL_CHARACTER') and name='IX_TBL_CHARACTER_FLD_USERID')
CREATE UNIQUE NONCLUSTERED INDEX [IX_TBL_CHARACTER_FLD_USERID] ON [dbo].[TBL_CHARACTER]
(
[FLD_USERID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[HERO_INFO_ADD]
@MasterUserID VARCHAR(50),
@sChrName VARCHAR(50),
@btSex SMALLINT,
@btJob SMALLINT,
@sUserID VARCHAR(50),
@sServerID VARCHAR(50) = '',
@sMainServerID VARCHAR(50) = '',
@sMasterName VARCHAR(50) = ''
AS
BEGIN
IF EXISTS (SELECT FLD_ID FROM TBL_HERO WHERE (FLD_CHARACTER like @sChrName+'%') or (FLD_CHARACTER like 'S'+@sServerID+'_'+@sChrName+'%') )
RETURN(1)
DECLARE @nNum INT
DECLARE @IsFirstChar INT
DECLARE @iRegCount INT
SELECT TOP 1 @iRegCount = iRegCount
FROM dbo.TBL_CONFIG WITH(NOLOCK)
SET @iRegCount= ISNULL(@iRegCount, 0)
IF (@iRegCount <> 0)
BEGIN
DECLARE @nTotal INT
SELECT @nTotal = COUNT(DISTINCT FLD_HEROMASTERUSERID) FROM TBL_HERO WHERE FLD_DELETED = 0;
IF (@nTotal >= @iRegCount)
RETURN(7)
END
SELECT @nNum = COUNT(*) FROM TBL_HERO WHERE FLD_HEROMASTERUSERID=@MasterUserID AND (FLD_DELETED=0) AND FLD_SERVERID=@sServerID;
IF @nNum >= 1
RETURN(3)
IF @nNum >= 1
SET @IsFirstChar = 0
ELSE
SET @IsFirstChar = 1
INSERT INTO TBL_HERO
(
FLD_HEROMASTERUSERID,
FLD_USERID,
FLD_CHARACTER,
FLD_SEX,
FLD_JOB,
FLD_UPDATEDATETIME,
FLD_MAKEDATE,
FLD_SERVERID,
FLD_MASTERNAME
)
VALUES
(
@MasterUserID,
@sUserID,
@sChrName,
@btSex,
@btJob,
getdate(),
getdate(),
@sServerID,
@sMasterName
)
declare @new_sn bigint
declare @new_id int
set @new_id=@@identity
--本地默认区服ID1
set @new_sn= IIF(CAST(@sMainServerID AS BIGINT)=0,1,CAST(@sMainServerID AS BIGINT)) * POWER(CAST(2 AS BIGINT),32) + NEXT VALUE FOR dbo.SeqIden
update TBL_HERO set FLD_USERID=@new_sn where FLD_ID=@new_id
set @sUserId = @new_sn
RETURN(0)
END
GO
/****** Object: StoredProcedure [dbo].[HUM_INFO_ADD] Script Date: 2024/7/24 14:49:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[HUM_INFO_ADD]
@sAccount VARCHAR(128),
@sChrName VARCHAR(50),
@btSex SMALLINT,
@btJob SMALLINT,
@sUserID VARCHAR(50),
@sSdkId VARCHAR(50) = '',
@sServerID VARCHAR(50) = '',
@sMainServerID VARCHAR(50) = '',
@sHeroName VARCHAR(50) = '',
@sHeroID VARCHAR(50) = '',
@bWhite BIT = 0
AS
BEGIN
IF EXISTS (SELECT FLD_ID FROM TBL_CHARACTER WHERE (FLD_CHARACTER like @sChrName+'%') or (FLD_CHARACTER like 'S'+@sServerID+'_'+@sChrName+'%') )
RETURN(1)
DECLARE @nNum INT
DECLARE @IsFirstChar INT
DECLARE @iRegCount INT
DECLARE @iRegis INT
DECLARE @tStartTime DATETIME
DECLARE @tDisableTime DATETIME
DECLARE @DisableHFCount INT=0
DECLARE @HFCount INT=0
SELECT TOP 1 @iRegCount = iRegCount,@iRegis=Regis,@tStartTime=StartTime,@tDisableTime=DisableTime,@DisableHFCount=ISNULL(DisableHFCount,0),@HFCount=ISNULL(HfCount,0)
FROM dbo.TBL_CONFIG WITH(NOLOCK)
SET @iRegCount= ISNULL(@iRegCount, 0)
SET @iRegis= ISNULL(@iRegis, 0)
IF @DisableHFCount>0 AND @HFCount>=@DisableHFCount AND @bWhite=0
BEGIN
RETURN(7)
END
IF @tDisableTime IS NOT NULL AND GETDATE() > @tDisableTime and @bWhite=0
BEGIN
RETURN(7)
END
IF (@iRegis > 0) AND (@tStartTime IS NOT NULL) AND (@bWhite=0)
BEGIN
IF DATEDIFF(DAY,@tStartTime,GETDATE()) > @iRegis
RETURN(7)
END
IF (@iRegCount <> 0) AND (@bWhite=0)
BEGIN
DECLARE @nTotal INT
SELECT @nTotal = COUNT(DISTINCT FLD_ACCOUNT) FROM TBL_CHARACTER WHERE FLD_DELETED = 0;
IF (@nTotal >= @iRegCount)
RETURN(7)
END
SELECT @nNum = COUNT(*) FROM TBL_CHARACTER WHERE FLD_ACCOUNT=@sAccount AND (FLD_DELETED=0) AND FLD_SERVERID=@sServerID
IF @nNum >= 6
RETURN(3)
IF @nNum >= 1
SET @IsFirstChar = 0
ELSE
SET @IsFirstChar = 1
INSERT INTO TBL_CHARACTER
(
FLD_USERID,
FLD_CHARACTER,
FLD_ACCOUNT,
FLD_SEX,
FLD_JOB,
FLD_UPDATEDATETIME,
FLD_MAKEDATE,
FLD_ISFIRSTCHAR,
FLD_MAPNAME,
FLD_HOMEMAP,
FLD_SDKID,
FLD_SERVERID,
FLD_HEROUSERID,
FLD_HERONAME,
FLD_VARCLEARTIME
)
VALUES
(
@sUserID,
@sChrName,
@sAccount,
@btSex,
@btJob,
GETDATE(),
GETDATE(),
@IsFirstChar,
'',
'',
@sSdkId,
@sServerID,
@sHeroID,
@sHeroName,
GETDATE()
)
DECLARE @new_sn BIGINT
DECLARE @new_id INT
SET @new_id=@@identity
--本地默认区服ID1
SET @new_sn= IIF(CAST(@sMainServerID AS BIGINT)=0,1,CAST(@sMainServerID AS BIGINT)) * POWER(CAST(2 AS BIGINT),32) + NEXT VALUE FOR dbo.SeqIden
UPDATE TBL_CHARACTER SET FLD_USERID=@new_sn WHERE FLD_ID=@new_id
SET @sUserId = @new_sn
RETURN(0)
END
GO
-- =================202505212027增加PVP配置信息=================
IF NOT EXISTS (select name from syscolumns where id=object_id(N'TBL_CONFIG') AND NAME='PVPAddr')
BEGIN
ALTER TABLE TBL_CONFIG ADD PVPAddr [varchar](50) NULL;
END
GO
IF NOT EXISTS (select name from syscolumns where id=object_id(N'TBL_CONFIG') AND NAME='PVPAddr')
BEGIN
ALTER TABLE TBL_CONFIG ADD PVPAddr [varchar](50) NULL;
END
GO
IF NOT EXISTS (select name from syscolumns where id=object_id(N'TBL_CONFIG') AND NAME='PVPPort')
BEGIN
ALTER TABLE TBL_CONFIG ADD PVPPort [int] NULL;
END
GO
IF NOT EXISTS (select name from syscolumns where id=object_id(N'TBL_CONFIG') AND NAME='PVPState')
BEGIN
ALTER TABLE TBL_CONFIG ADD PVPState [int] NULL;
END
GO
-- =================202505212027增加中心服表=================
IF NOT EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[TBL_PVP_USER]') AND type IN ('U'))
BEGIN
CREATE TABLE [dbo].[TBL_PVP_USER](
[FLD_USERID] [varchar](50) NOT NULL,
[FLD_CHARNAME] [varchar](50) NULL,
[FLD_VALUE1] [int] NULL,
[FLD_VALUE2] [int] NULL,
[FLD_VALUE3] [int] NULL,
[FLD_WIN] [int] NULL,
[FLD_LOSE] [int] NULL,
[FLD_JOB] [int] NULL,
[FLD_SEX] [int] NULL,
[FLD_LEVEL] [int] NULL,
[FLD_DRESS] [int] NULL,
[FLD_WEAPON] [int] NULL,
[FLD_GAMENAME] [varchar](50) NULL,
[FLD_GAMEID] [int] NULL,
[FLD_SERVERID] [int] NULL,
[FLD_TUPDATETIME] [datetime] NULL,
CONSTRAINT [PK_TBL_PVP_USER] PRIMARY KEY CLUSTERED
(
[FLD_USERID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO