Một Trigger đơn giản mà hay dành cho những Sub phân cấp độ
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Kết quả 1 đến 4 của 4
  1. #1
    Thành Viên
    Ngày tham gia
    Dec 2008
    Bài viết
    229
    Thanks
    0
    Thanked 103 Times in 17 Posts

    Một Trigger đơn giản mà hay dành cho những Sub phân cấp độ

    Ví dụ luôn nhá : Bạn đã tạo một sub giới hạn lần reset < 200 chẳng hạn, nhưng nhiều member không để ý và dẫn tới vào nhầm Sub và kết quả là bị block nhân vật. Lại phải ra web rửa tội, bắt buộc ở website bạn phải code trang giải block cho nhân vật. Nhưng theo tôi thì có một cách cực đơn giản mà ai cũng có thể làm được.

    Chẳng hạn tôi có 1 sub đã add Trigger giới hạn 200 reset đổ lại :

    CREATE TRIGGER RESETS ON [dbo].[MEMB_STAT]
    FOR update
    AS
    begin
    declare
    @rs int,
    @name varchar(10),
    @acc varchar(10),
    @ns varchar(15)
    select @acc=memb___id FROM inserted where servername='SUB'
    update [dbo].[MEMB_INFO] set vaonham='1' where memb___id=@acc
    update [dbo].[character] set CtlCode='1' where accountid=@acc and Resets>'200'
    end
    Làm thế nào để giải block?

    CREATE TRIGGER giaiblock ON [dbo].[MEMB_STAT]
    FOR update
    AS
    BEGIN
    declare
    @rs int,
    @name varchar(10),
    @acc varchar(10),
    @check varchar(10),
    @ns varchar(15)
    select @acc=memb___id FROM inserted where servername='GS'
    select @check=vaonham FROM [dbo].[MEMB_INFO] WHERE memb___id=@acc
    IF (@check = '1')
    BEGIN
    update [dbo].[character] set CtlCode='0' where accountid=@acc
    update [dbo].[MEMB_INFO] set vaonham='0' where memb___id=@acc
    END
    END
    Giải thích : Tôi sẽ tạo một colume "vaonham"Memb_info cho nó là tinyint và đặt giá trị ngầm định là "0". Nếu một Member nào đó vào nhầm sub giới hạn Reset sẽ có một đoạn Query Update "vaonham"=1.
    Vì vậy khi quay lại Server 1 ( Public ) sẽ có một đoạn check Member này có vào nhầm Sub giới hạn không, nếu vào nhầm sẽ giải block cho nhân vật này, ngược lại nhân vật này bị block do tác động của Admin thì vẫn không thể vào được. ( Chỉ giải Block cho Member vào nhầm Sub )
    Khách viếng thăm hãy cùng ghvn1991 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Thành Viên YeuVo_ThuongCon's Avatar
    Ngày tham gia
    May 2006
    Đang ở
    Chuyển bị lặn
    Bài viết
    482
    Thanks
    13
    Thanked 357 Times in 119 Posts

    Ðề: Một Trigger đơn giản mà hay dành cho những Sub phân cấp độ

    CREATE TRIGGER Block_RS
    ON [dbo].[MEMB_STAT]
    FOR UPDATE
    AS
    BEGIN
    DECLARE
    @ACCOUNT_ID nvarchar(10),
    @IP_LOG nvarchar(15),
    @S_NAME nvarchar(20),
    @CHECK1 nvarchar(15),
    @CHECK2 nvarchar(15),
    @CHECK3 nvarchar(15),
    @CHECK4 nvarchar(15)

    SET @CHECK1='1'
    SET @CHECK2='1'


    SELECT @ACCOUNT_ID=memb___id,@S_NAME=ServerName FROM inserted
    SELECT @CHECK1=Reset FROM [dbo].[character] WHERE Reset > '200' AND memb___id=@ACCOUNT_ID

    IF (@CHECK1 = '1')
    BEGIN
    SET @CHECK3='1'
    END
    ELSE
    BEGIN
    SET @CHECK3='0'
    END

    IF (@CHECK2 = '1')
    BEGIN
    SET @CHECK4='1'
    END
    ELSE
    BEGIN
    SET @CHECK4='0'
    END

    IF (@S_NAME='Ten_Server_chung')
    BEGIN
    UPDATE [dbo].[character] SET lock_info='0',CtlCode='0' WHERE AccountID=@ACCOUNT_ID and lock_info='1' and CtlCode<>'32'
    END


    IF ((@CHECK3 = '1') AND (@CHECK4 = '1')) AND (@S_NAME='Ten_Server_GioiHan')
    BEGIN
    UPDATE [dbo].[character] SET lock_info='1',CtlCode='1' WHERE AccountID=@ACCOUNT_ID and CtlCode<>'32'
    END

    END

    Ko cần chạy 2 đoạn Trigger cho SQl thêm nặng sao k chạy một như trên có phải là đơn giản như đang giỡn ko nhỉ
    mà đoạn trên nếu là Admin ko đáp ứng yêu cầu nó block còn của tớ nếu kiểm tra là admin thì ko block đâu ah nha
    chạy thêm đoạn này chọn MuOnlien nhé ( chắc ai cũng biết rồi)
    alter table dbo.Character add lock_info int not null default 0
    Các PRO Tha Em

  3. #3
    Mystery Ghost Mr.Noob's Avatar
    Ngày tham gia
    Aug 2008
    Đang ở
    Love Info Heart
    Bài viết
    631
    Thanks
    16
    Thanked 111 Times in 52 Posts

    Ðề: Một Trigger đơn giản mà hay dành cho những Sub phân cấp độ

    Cái này dh_notable có hướng dẫn rùi mà.Vào server ko giới hạn nó sẽ tự giải block.Thế là hay nhất.
    CREATE TRIGGER test ON [dbo].[MEMB_STAT]
    FOR update
    AS
    begin
    declare
    @rs int,
    @name varchar(10),
    @acc varchar(10),
    @acc1 varchar(10),
    @ns varchar(15)
    select @acc=memb___id FROM inserted where servername='ten_server_gioi_han_reset_<10'

    select @acc1=memb___id FROM inserted where servername='sv_thuong'

    select @ns=servername FROM inserted
    if(@ns='ten_server_gioi_han_reset_<10')
    begin
    update [dbo].[character] set CtlCode='1' where accountid=@acc and reset>'10'
    end


    if(@ns='sv_thuong')
    begin
    update [dbo].[character] set CtlCode='0' where accountid=@acc1
    end
    end
    Lần sửa cuối bởi Mr.Noob, ngày 05-05-09 lúc 10:58 PM.
    Dịch Vụ Thiết Kế WebSite 60s : [Only registered and activated users can see links. ]

    Game Flash Ma Quái Rùng Rợn : [Only registered and activated users can see links. ] (nếu ko vào được vui lòng gõ địa chỉ lên thanh address)

  4. #4
    Thành Viên
    Ngày tham gia
    May 2012
    Bài viết
    174
    Thanks
    47
    Thanked 40 Times in 30 Posts

    Icon14 Ðề: Một Trigger đơn giản mà hay dành cho những Sub phân cấp độ

    Cho xin cái hướng dẫn cụ thể đi ạ
    Khách viếng thăm hãy cùng sunnight xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 07:38 AM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.