[TUTORIAL] Restrict alt-codes from character names

Page 1 of 4 1234 LastLast
Results 1 to 15 of 46
  1. #1
    The beer?? Its here !!! Rotana is offline
    MemberRank
    Jan 2007 Join Date
    The NetherlandsLocation
    1,733Posts

    [TUTORIAL] Restrict alt-codes from character names

    This is also usefull i think:
    it will create an function, that checks if the entered string contains only letters and numbers

    First execute this to your DB
    Code:
    USE [GunzDB]
    GO
    /****** Object:  UserDefinedFunction [dbo].[fnCheckString]    Script Date: 11/21/2008 05:23:55 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE FUNCTION [dbo].[fnCheckString](@P_String VARCHAR(500))
    
    RETURNS BIT
    
    AS
    
    BEGIN
    
    
    DECLARE @V_RetValue BIT
    
    DECLARE @V_Position INT
    
     
    
    SET @V_Position = 1
    
    SET @V_RetValue = 0   
    
    
    WHILE @V_Position <= DATALENGTH(@P_String)
    
               AND @V_RetValue = 0
    
    BEGIN
    
    
         IF ASCII(SUBSTRING(@P_String, @V_Position, 1))
    
                BETWEEN 48 AND 122
    
            SELECT @V_RetValue = 0
    
        ELSE
    
           SELECT @V_RetValue = 1      
       SET @V_Position = @V_Position + 1
    
    END
    
    RETURN @V_RetValue
    
     
    
    END
    After that execute this to edit the SpInsertchar stored procedure.
    Code:
    USE [GunzDB]
    GO
    /****** Object:  StoredProcedure [dbo].[spInsertChar]    Script Date: 11/21/2008 05:26:24 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    /****** Object:  Stored Procedure dbo.spInsertChar    Script Date: 5/10/2007 3:42:11 PM ******/
    
    
    /* 캐릭터 추가 */
    ALTER PROC [dbo].[spInsertChar]
        @AID        int,
        @CharNum    smallint,
        @Name        varchar(24),
        @Sex        tinyint,
        @Hair        int,  
        @Face        int,
        @Costume    int
    AS
    SET NOCOUNT ON
    BEGIN TRAN
    IF EXISTS (SELECT CID FROM Character where (AID=@AID AND CharNum=@CharNum) OR (Name=@Name))
    BEGIN    
        ROLLBACK TRAN
        return(-1)
    END
    IF  (SELECT dbo.fnCheckString(@Name) as Test)= 1
    BEGIN 
    ROLLBACK TRAN
    return (-1)
    END
    DECLARE @CharIdent     int
    DECLARE @ChestCIID    int
    DECLARE @LegsCIID    int
    DECLARE @MeleeCIID    int
    DECLARE @PrimaryCIID    int
    DECLARE @SecondaryCIID  int
    DECLARE @Custom1CIID    int
    DECLARE @Custom2CIID    int
    
    DECLARE @ChestItemID    int
    DECLARE @LegsItemID    int
    DECLARE @MeleeItemID    int
    DECLARE @PrimaryItemID    int
    DECLARE @SecondaryItemID  int
    DECLARE @Custom1ItemID    int
    DECLARE @Custom2ItemID    int
    
    SET @SecondaryCIID = NULL
    SET @SecondaryItemID = NULL
    
    SET @Custom1CIID = NULL
    SET @Custom1ItemID = NULL
    
    SET @Custom2CIID = NULL
    SET @Custom2ItemID = NULL
    
    INSERT INTO Character (AID, Name, CharNum, Level, Sex, Hair, Face, XP, BP, FR, CR, ER, WR, 
                                GameCount, KillCount, DeathCount, RegDate, PlayTime, DeleteFlag)
    Values (@AID, @Name, @CharNum, 1, @Sex, @Hair, @Face, 0, 0, 0, 0, 0, 0, 0, 0, 0, GETDATE(), 0, 0)
    IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
    END
    
    
    SET @CharIdent = @@IDENTITY
    
      /* Melee */
      SET @MeleeItemID = 
        CASE @Costume
        WHEN 0 THEN 1
        WHEN 1 THEN 2
        WHEN 2 THEN 1
        WHEN 3 THEN 2
        WHEN 4 THEN 2
        WHEN 5 THEN 1
        END
    
      INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @MeleeItemID)
      IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
      END
    
      SET @MeleeCIID = @@IDENTITY
    
      /* Primary */
      SET @PrimaryItemID = 
        CASE @Costume
        WHEN 0 THEN 5001
        WHEN 1 THEN 5002
        WHEN 2 THEN 4005
        WHEN 3 THEN 4001
        WHEN 4 THEN 4002
        WHEN 5 THEN 4006
        END
    
      INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @PrimaryItemID)
      IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
      END
    
      SET @PrimaryCIID = @@IDENTITY
    
      /* Secondary */
    IF @Costume = 0 OR @Costume = 2 BEGIN
      SET @SecondaryItemID =
        CASE @Costume
        WHEN 0 THEN 4001
        WHEN 1 THEN 0
        WHEN 2 THEN 5001
        WHEN 3 THEN 4006
        WHEN 4 THEN 0
        WHEN 5 THEN 4006
        END
    
      IF @SecondaryItemID <> 0 BEGIN
        INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @SecondaryItemID)
        IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
        END
    
        SET @SecondaryCIID = @@IDENTITY
      END
    END
      SET @Custom1ItemID = 
        CASE @Costume
        WHEN 0 THEN 30301
        WHEN 1 THEN 30301
        WHEN 2 THEN 30401
        WHEN 3 THEN 30401
        WHEN 4 THEN 30401
        WHEN 5 THEN 30101
        END
    
      /* Custom1 */
      INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @Custom1ItemID)
      IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
      END
    
      SET @Custom1CIID = @@IDENTITY
    
      /* Custom2 */
    IF @Costume = 4 OR @Costume = 5
    BEGIN
      SET @Custom2ItemID =
        CASE @Costume
        WHEN 0 THEN 0
        WHEN 1 THEN 0
        WHEN 2 THEN 0
        WHEN 3 THEN 0
        WHEN 4 THEN 30001
        WHEN 5 THEN 30001
        END
    
      IF @Custom2ItemID <> 0
      BEGIN
        INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @Custom2ItemID)
        IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
        END
    
        SET @Custom2CIID = @@IDENTITY
      END
    END
    
    
    IF @Sex = 0        /* 남자일 경우 */
    BEGIN
    
      /* Chest */
      SET @ChestItemID =
        CASE @Costume
        WHEN 0 THEN 21001
        WHEN 1 THEN 21001
        WHEN 2 THEN 21001
        WHEN 3 THEN 21001
        WHEN 4 THEN 21001
        WHEN 5 THEN 21001
        END
    
    
      INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @ChestItemID)
      IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
      END
    
      SET @ChestCIID = @@IDENTITY
    
      /* Legs */
      SET @LegsItemID =
        CASE @Costume
        WHEN 0 THEN 23001
        WHEN 1 THEN 23001
        WHEN 2 THEN 23001
        WHEN 3 THEN 23001
        WHEN 4 THEN 23001
        WHEN 5 THEN 23001
        END
    
    
      INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @LegsItemID)
      IF 0 <> @@ERROR BEGIN 
        ROLLBACK TRAN
        RETURN (-1)
      END
    
      SET @LegsCIID = @@IDENTITY
    
    END
    ELSE
    BEGIN            /* 여자일 경우 */
    
      /* Chest */
      SET @ChestItemID =
        CASE @Costume
        WHEN 0 THEN 21501
        WHEN 1 THEN 21501
        WHEN 2 THEN 21501
        WHEN 3 THEN 21501
        WHEN 4 THEN 21501
        WHEN 5 THEN 21501
        END
    
    
      INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @ChestItemID)
      IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
      END
      SET @ChestCIID = @@IDENTITY
    
      /* Legs */
      SET @LegsItemID =
        CASE @Costume
        WHEN 0 THEN 23501
        WHEN 1 THEN 23501
        WHEN 2 THEN 23501
        WHEN 3 THEN 23501
        WHEN 4 THEN 23501
        WHEN 5 THEN 23501
        END
    
    
      INSERT INTO CharacterItem (CID, ItemID) Values (@CharIdent, @LegsItemID)
      IF 0 <> @@ERROR BEGIN
        ROLLBACK TRAN
        RETURN (-1)
      END
      SET @LegsCIID = @@IDENTITY
    
    END  
    
    UPDATE Character
    SET chest_slot = @ChestCIID, legs_slot = @LegsCIID, melee_slot = @MeleeCIID,
        primary_slot = @PrimaryCIID, secondary_slot = @SecondaryCIID, custom1_slot = @Custom1CIID,
        custom2_slot = @Custom2CIID,
        chest_itemid = @ChestItemID, legs_itemid = @LegsItemID, melee_itemid = @MeleeItemID,
        primary_itemid = @PrimaryItemID, secondary_itemid = @SecondaryItemID, custom1_itemid = @Custom1ItemID,
        custom2_itemid = @Custom2ItemID
    WHERE CID=@CharIdent
    IF 0 = @@ROWCOUNT BEGIN
        ROLLBACK TRAN
        RETURN (-1)
    END
    COMMIT TRAN
    Not that this is just an edited spInsertChar, if you have you own items/exp/bounty or what ever you need to change it youself.

    Finally you got the an spInsertChar that only allow :
    Code:
    This key codes are allowed
    
    0048 = 0 0049 = 1 
    0050 = 2 0051 = 3 
    0052 = 4 0053 = 5 
    0054 = 6 0055 = 7 
    0056 = 8 0057 = 9 
    0058 = : 0059 = ; 
    0060 = < 0061 = = 
    0062 = > 0063 = ? 
    0064 = @ 0065 = A 
    0066 = B 0067 = C 
    0068 = D 0069 = E 
    0070 = F 0071 = G 
    0072 = H 0073 = I  
    0074 = J 0075 = K 
    0076 = L 0077 = M 
    0078 = N 0079 = O 
    0080 = P 0081 = Q 
    0082 = R 0083 = S 
    0084 = T 0085 = U 
    0086 = V 0087 = W 
    0088 = X 0089 = Y 
    0090 = Z 0091 = [ 
    0092 = \ 0093 = ] 
    0094 = ^ 0095 = _ 
    0096 = ` 0097 = a 
    0098 = b 0099 = c 
    0100 = d 0101 = e 
    0102 = f 0103 = g 
    0104 = h 0105 = i 
    0106 = j 0107 = k 
    0108 = l 0109 = m 
    0110 = n 0111 = o 
    0112 = p 0113 = q 
    0114 = r 0115 = s 
    0116 = t 0117 = u 
    0118 = v 0119 = w 
    0120 = x 0121 = y 
    0122 = z 
    Thank me if you found this helpfull
    Last edited by Rotana; 04-01-09 at 08:17 AM.


  2. #2
    RestyleGamerZ FTW Mambo is offline
    MemberRank
    Mar 2008 Join Date
    The NetherlandsLocation
    821Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Ty! But if people still use something which is restricted it still gets created but then as NULL?

  3. #3
    Rival Gamers Owner own_prox is offline
    MemberRank
    Jul 2007 Join Date
    HellLocation
    1,077Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    thanks

  4. #4
    Praise the Sun! Solaire is offline
    MemberRank
    Dec 2007 Join Date
    Undead BurgLocation
    2,862Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Quote Originally Posted by Mambo View Post
    Ty! But if people still use something which is restricted it still gets created but then as NULL?
    DELETE FROM Character WHERE Name = '';

  5. #5
    Account Upgraded | Title Enabled! cerealnp is offline
    MemberRank
    Apr 2006 Join Date
    BrazilLocation
    441Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Yep! Thx ^^

  6. #6
    Status: Pooping eele is offline
    MemberRank
    Jul 2008 Join Date
    The NetherlandsLocation
    915Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Nice Tutorial! :D!

  7. #7
    Sultan of Yolo Demantor is offline
    MemberRank
    May 2008 Join Date
    GermanyLocation
    1,266Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    ty, nicee

  8. #8
    Account Upgraded | Title Enabled! Kyuma is offline
    MemberRank
    Aug 2008 Join Date
    At HomeLocation
    350Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    lol...

  9. #9
    The beer?? Its here !!! Rotana is offline
    MemberRank
    Jan 2007 Join Date
    The NetherlandsLocation
    1,733Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    I will update the function, soon, the make it better and add an way to allow or disallow some characters.

  10. #10
    DRGunZ 2 Creator wesman2232 is offline
    MemberRank
    Jan 2007 Join Date
    Erie, PALocation
    4,872Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    awesome tutorial Rotana :D

  11. #11
    Member DaMoNsTa is offline
    MemberRank
    Jan 2007 Join Date
    91Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Thanks Rotana, Your rule :).

  12. #12
    Account Upgraded | Title Enabled! alfredao is offline
    MemberRank
    Jan 2008 Join Date
    Coronel FabriciLocation
    705Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Nice Tutorial! ;D

  13. #13
    Account Upgraded | Title Enabled! aishkterry1 is offline
    MemberRank
    Dec 2008 Join Date
    309Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    wow its hard so many codes

  14. #14
    Proficient Member NIRVANAdylan is offline
    MemberRank
    Feb 2007 Join Date
    179Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Why does anyone want to restrict it? It makes your name look cool

  15. #15
    Reverse Engineer ThievingSix is offline
    MemberRank
    Mar 2007 Join Date
    CaliforniaLocation
    901Posts

    Re: [TUTORIAL] Restrict alt-codes from character names

    Offtopic: Why in every thread I see you in, NIRVANAdylan, do you either always go directly against the thread, have to prove someone wrong, or gloat about something that you know?



Page 1 of 4 1234 LastLast

Advertisement