Anti Starting Alz Cheating(cabal_sp_newchar edited)

Results 1 to 6 of 6
  1. #1
    Account Upgraded | Title Enabled! Just_Rytis is offline
    MemberRank
    Oct 2006 Join Date
    PUSH main.00754EDCLocation
    561Posts

    happy Anti Starting Alz Cheating(cabal_sp_newchar edited)

    Hello,

    I made some edits in cabal_sp_newchar, because if you giving to characters starting Alz they can recreate characters many times and get many Alz from that, so I edited sp that it will give starting alz only for first 7 characters, next ones will get 0 Alz.

    Here is query which will add new column(chars_count) in cabal_auth_table to count how many characters player is creating/recreating:
    Code:
    USE ACCOUNT;
    GO
    
    ALTER TABLE cabal_auth_table  ADD chars_count INT NOT NULL DEFAULT 0
    Here is edited cabal_sp_newchar:
    Code:
    USE [SERVER01]
    GO
    /****** Object:  StoredProcedure [dbo].[cabal_sp_newchar]    Script Date: 08/01/2013 11:33:04 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[cabal_sp_newchar]
    (
        @Name VARCHAR(16),
        @CharacterIdx  INT,
        @Style INT,
        @StyleMastery INT
    )
    AS
    BEGIN
    SET NOCOUNT ON
    
    DECLARE @CR_SUCCESS INT
    DECLARE @CR_DATABRK INT        
    DECLARE @CR_NAMEDUP INT    
    DECLARE @CR_BADWORD INT
    DECLARE @ALZ BIGINT
    DECLARE @ID INT
    DECLARE @TEMP INT
    DECLARE @TEMP2 INT
    
    SET @CR_SUCCESS = 0xA0
    SET @CR_DATABRK = 0x02    
    SET @CR_NAMEDUP = 0x03
    SET @CR_BADWORD = 0x04
    SET @ALZ = 0
    SET @ID = 0
    SET @TEMP = @CharacterIdx
    SET @TEMP2 = 0
    
    IF NOT @StyleMastery BETWEEN 1 AND 6
    BEGIN
        SELECT @CR_DATABRK
        RETURN
    END
    
    IF EXISTS (SELECT * FROM cabal_badwoard WHERE badword = @Name )
    BEGIN
        SELECT @CR_BADWORD
        RETURN
    END
    
    IF EXISTS (SELECT * FROM cabal_character_table WHERE Name = @Name)
    BEGIN
        SELECT @CR_NAMEDUP
        RETURN
    END
    
    IF EXISTS (SELECT * FROM cabal_character_table WHERE CharacterIdx = @CharacterIdx)
    BEGIN
        SELECT @CR_DATABRK
        RETURN
    END
    
    WHILE (@TEMP2 = 0)
        BEGIN
        IF (@TEMP%8 = 0)
            BEGIN
                SET @ID = @TEMP/8
                SET @TEMP2 = 1
            END;
        ELSE
            SET @TEMP = @TEMP-1
        END;
        
    IF ((SELECT chars_count FROM ACCOUNT.dbo.cabal_auth_table WHERE UserNum = @ID) >= 7)
        SET @ALZ = 0
    ELSE
        SET @ALZ = (SELECT Alz FROM cabal_new_character_data WHERE ClassType = @StyleMastery)
    
    SET XACT_ABORT ON
    BEGIN TRAN
    
    INSERT INTO cabal_character_table
    (
        CharacterIdx, Name,
        LEV, [EXP], [STR], DEX, [INT], PNT, Rank, Alz,
        WorldIdx, [Position], Style, 
        HP, MP, SP, SwdPNT, MagPNT, RankEXP, Flags, WarpBField, MapsBField
    )
    SELECT
        @CharacterIdx, @Name,
        LEV, [EXP], [STR], [DEX], [INT], [PNT], Rank, @Alz,
        WorldIdx, Position, @Style,
        HP, MP, SP, SwdPNT, MagPNT, RankEXP, Flags, WarpBField, MapsBField
    FROM cabal_new_character_data
    WHERE ClassType = @StyleMastery
    
    UPDATE ACCOUNT.dbo.cabal_auth_table SET chars_count = chars_count+1 WHERE UserNum = @ID;
    UPDATE cabal_character_table SET Reserved1 = SERVER01.dbo.DoAlzXor(@ALZ) WHERE CharacterIdx = @CharacterIdx;
    
    IF @@ROWCOUNT <> 1
    BEGIN
        ROLLBACK TRAN
        SELECT @CR_DATABRK
        RETURN
    END
    
    INSERT INTO cabal_inventory_table (CharacterIdx, Data)
    SELECT @CharacterIdx, InventoryData FROM cabal_new_character_data
    WHERE ClassType = @StyleMastery
    
    INSERT INTO cabal_equipment_table (CharacterIdx, Data)
    SELECT @CharacterIdx, EquipmentData FROM cabal_new_character_data
    WHERE ClassType = @StyleMastery
    
    INSERT INTO cabal_skilllist_table (CharacterIdx, Data)
    SELECT @CharacterIdx, SkillData FROM cabal_new_character_data
    WHERE ClassType = @StyleMastery
    
    INSERT INTO cabal_quickslot_table (CharacterIdx, Data)
    SELECT @CharacterIdx, QuickSlotData FROM cabal_new_character_data
    WHERE ClassType = @StyleMastery
    
    INSERT INTO cabal_questdata_table (characterIdx, Data, Flags)
    SELECT @CharacterIdx, QuestData, QuestFlagsData FROM cabal_new_character_data
    WHERE ClassType = @StyleMastery
    
    EXEC cabal_sp_linked_update_character_count @CharacterIdx, 1
            
    SELECT @CR_SUCCESS + @StyleMastery
    
    COMMIT TRAN
    SET XACT_ABORT OFF
        
    SET NOCOUNT OFF
    END
    Red lines are what I added/changed.

    And if you want use AlzHackCheck in your server, here is script how to add/sync Alz with hack check for a characteridx with new alz amount:
    Code:
    UPDATE cabal_character_table SET Reserved1 = SERVER01.dbo.DoAlzXor(@ALZ) WHERE CharacterIdx = @CharacterIdx;
    DoAlzXor function is sync'ing new alz amounts, this must be used in webs, when is buying something for Alz if you turned on AlzHackCheck in your server.


  2. #2
    Account Upgraded | Title Enabled! oOSpikeOo is offline
    MemberRank
    Dec 2010 Join Date
    460Posts

    Re: Anti Starting Alz Cheating(cabal_sp_newchar edited)

    Nice. :) but still incomplete :P . They can create new accounts .. :D , it was good if you could make a procedure to check ip for every account .

  3. #3
    Account Upgraded | Title Enabled! Just_Rytis is offline
    MemberRank
    Oct 2006 Join Date
    PUSH main.00754EDCLocation
    561Posts

    Re: Anti Starting Alz Cheating(cabal_sp_newchar edited)

    I did it in my web, didn't need a special procedure for what.

  4. #4
    Proficient Member y0cata is offline
    MemberRank
    Jul 2008 Join Date
    190Posts

    Re: Anti Starting Alz Cheating(cabal_sp_newchar edited)

    or just make sp that will give alz when char lvl is to 50,100,150 and 190 lvl xD

  5. #5
    ANTI emi is offline
    MemberRank
    Mar 2009 Join Date
    ZHLocation
    1,378Posts

    Re: Anti Starting Alz Cheating(cabal_sp_newchar edited)

    Quote Originally Posted by oOSpikeOo View Post
    Nice. :) but still incomplete :P . They can create new accounts .. :D , it was good if you could make a procedure to check ip for every account .
    Right, they would have to get a new ip and make a new account and start again, how hard that can be ?
    Pointless.

  6. #6
    TheOne jaguar666 is offline
    MemberRank
    Aug 2012 Join Date
    Comfort RoomLocation
    407Posts

    Re: Anti Starting Alz Cheating(cabal_sp_newchar edited)

    Quote Originally Posted by y0cata View Post
    or just make sp that will give alz when char lvl is to 50,100,150 and 190 lvl xD
    Nice suggestion...

    Quote Originally Posted by oOSpikeOo View Post
    it was good if you could make a procedure to check ip for every account .
    useless... most of the ISP in asian countries don't allow static IP for residential use.



Advertisement