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: -- Create date: -- 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