Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [lin2world]
- GO
- /****** Object: StoredProcedure [dbo].[lin_CreateChar] Script Date: 05/29/2010 18:26:59 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- ALTER PROCEDURE [dbo].[lin_CreateChar]
- (
- @char_name NVARCHAR(24),
- @account_name NVARCHAR(24),
- @account_id INT,
- @pledge_id INT,
- @builder TINYINT,
- @gender TINYINT,
- @race TINYINT,
- @class TINYINT,
- @world SMALLINT,
- @xloc INT,
- @yloc INT,
- @zloc INT,
- @HP FLOAT,
- @MP FLOAT,
- @SP INT,
- @Exp BIGINT,
- @Lev TINYINT,
- @align SMALLINT,
- @PK INT,
- @Duel INT,
- @PKPardon INT,
- @FaceIndex INT = 0,
- @HairShapeIndex INT = 0,
- @HairColorIndex INT = 0
- )
- AS
- SET NOCOUNT ON
- SET @char_name = RTRIM(@char_name)
- DECLARE @char_id int
- SET @char_id = 0
- SET @Lev = 52
- SET @Exp = 51262490
- IF @char_name LIKE N' '
- BEGIN
- RAISERROR ('Character name has space : name = [%s]', 16, 1, @char_name)
- RETURN -1
- END
- -- check if char name exists
- if exists(select char_name from user_data (nolock) where char_name = @char_name)
- begin
- RAISERROR ('Character name already exists: name = [%s]', 16, 1, @char_name)
- RETURN -1
- end
- -- check user_prohibit
- if exists(select char_name from user_prohibit (nolock) where char_name = @char_name)
- begin
- RAISERROR ('Character name is prohibited: name = [%s]', 16, 1, @char_name)
- RETURN -1
- end
- declare @user_prohibit_word nvarchar(20)
- select top 1 @user_prohibit_word = words from user_prohibit_word (nolock) where @char_name like '%' + words + '%'
- if @user_prohibit_word is not null
- begin
- RAISERROR ('Character name has prohibited word: name = [%s], word[%s]', 16, 1, @char_name, @user_prohibit_word)
- RETURN -1
- end
- -- check reserved name
- declare @reserved_name nvarchar(50)
- declare @reserved_account_id int
- select top 1 @reserved_name = char_name, @reserved_account_id = account_id from user_name_reserved (nolock) where used = 0 and char_name = @char_name
- if not @reserved_name is null
- begin
- if not @reserved_account_id = @account_id
- begin
- RAISERROR ('Character name is reserved by other player: name = [%s]', 16, 1, @char_name)
- RETURN -1
- end
- end
- -- insert user_data
- INSERT INTO user_data
- ( char_name, account_name, account_id, pledge_id, builder, gender, race, class, subjob0_class,
- world, xloc, yloc, zloc, HP, MP, max_hp, max_mp, SP, Exp, Lev, align, PK, PKpardon, duel, create_date, face_index, hair_shape_index, hair_color_index )
- VALUES
- (@char_name, @account_name, @account_id, @pledge_id, @builder, @gender, @race, @class, @class,
- @world, @xloc, @yloc, @zloc, @HP, @MP, @HP, @MP, @SP, @Exp, @Lev, @align, @PK, @Duel, @PKPardon, GETDATE(), @FaceIndex, @HairShapeIndex, @HairColorIndex)
- IF (@@error = 0)
- BEGIN
- SET @char_id = @@IDENTITY
- INSERT INTO quest (char_id) VALUES (@char_id)
- END
- SELECT @char_id
- if @char_id > 0
- begin
- -- make user_history
- exec lin_InsertUserHistory @char_name, @char_id, 1, @account_name, NULL
- if not @reserved_name is null
- update user_name_reserved set used = 1 where char_name = @reserved_name
- insert user_item(char_id, item_type, amount, enchant, warehouse, eroded, bless, ident, wished, effects, skill, skill_level, bless_new) values(@char_id, 57, 1000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement