Jump to content

Question

Posted

Hello

 

I would like to limit charcter names but I don't know how to do that.

Rules:

-min 3 chars

-no !@#$%^&*()_.<>:; and stuff like that

-no other custom stuff just the alphanumeric

 

Here is my procedure:

SET @char_name = RTRIM(@char_name)  
DECLARE @char_id int  
SET @char_id = 0  
  
-- debug code delete in commercial  
IF (GETDATE() < '2004-1-1')  
 SET @builder = 1  
  
IF @char_name LIKE N' '   
BEGIN  
 RAISERROR ('Character name has space : 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 PATINDEX('%' + words + '%', @char_name) > 0   
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  

sorry for my bad english, I hope you understand me

2 answers to this question

Recommended Posts

Guest
This topic is now closed to further replies.
×
×
  • Create New...