[Gunny] Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 17
  1. #1
    Thành Viên
    Ngày tham gia
    Jan 2014
    Bài viết
    60
    Thanks
    11
    Thanked 36 Times in 16 Posts

    Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Mình cũng newbie, viết bài cho vui nhằm học hỏi!. Có gì mọi người share thêm học hỏi nhé.

    Lọ mọ ngồi nghịch tìm hiểu cách fix VIP lên lv6 khi gia hạn 6 tháng, dùng source r30 bác gì gì đã share đấy.

    Lúc đầu mình làm như thế này:
    - Trong OpenVipHandler mình thấy nó gọi hàm VIPRenewal(text, num, ref now); để add VIP.
    Soi vào thì thấy gọi SQL trong [dbo].[SP_VIPRenewal_Single], các bạn xóa hết đi và copy cái này Update vào:

    Code:
    -- =============================================
    -- Author:		<Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:	<Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[SP_VIPRenewal_Single]
    @NickName Nvarchar(200),
    @RenewalDays int ,
    @ExpireDayOut datetime out
    
    AS
    declare  @UserID int
    declare  @ExpireDay datetime
    declare  @Exp int
    declare  @VIPLevel int
    select @UserID = [UserID], @ExpireDay = [VIPExpireDay], @Exp = [VIPExp] from V_Sys_Users_Detail
    where NickName=@NickName and IsExist = 1
    	if @ExpireDay<getdate() or @ExpireDay=getdate() 
           begin
        	set @ExpireDay=getdate() + @RenewalDays
           end
         else
           begin
    		set @ExpireDay=@ExpireDay + @RenewalDays
           end
           set @ExpireDayOut = @ExpireDay
      if @RenewalDays=180
    		begin
    			set @VIPLevel=6
    			set @Exp=4000
    		end
    	else
    		begin
    			set @VIPLevel=1
    		end
    update [Sys_VIP_Info] set 
    	   [typeVIP] = 1
          ,[VIPLevel] = @VIPLevel
          ,[VIPExp] = @Exp
          ,[VIPExpireDay] = @ExpireDay
          ,[LastVIPPackTime] = GETDATE()
          ,[CanTakeVipReward] = 1
          where [UserID] = @UserID
    
    return 1
    Ở trên mình thêm vào đoạn:

    Code:
     if @RenewalDays=180
    		begin
    			set @VIPLevel=6
    			set @Exp=4000
    		end
    	else
    		begin
    			set @VIPLevel=1
    		end
    để check RenewalDays xem có bằng 6 tháng ko, nếu có thì set lv = 6, exp max khi đạt lv6 là 4000.
    Nhưng có điều là khi hiển thị nó chỉ hiển thị là vip lv 1. phải reset lại game mới thấy lv6.

    Chã nhẽ thế thì phiền. bắt đầu mình xem code tiếp thì thấy gọi hàm: OpenVIP(now);
    thì chậc, sửa ở đây là xong chỉ cần thêm cái check RenewalDays vào là Ok,

    Để sửa thì các bạn vào GamePlayer trong GameObjects tìm hàm:

    Code:
    public void OpenVIP(DateTime ExpireDayOut)
    Rồi sửa lại như sau:

    Code:
    public void OpenVIP(int renewalDays, DateTime ExpireDayOut)
            {
                if (renewalDays == 180)
                {
                    this.m_character.typeVIP = 1;
                    this.m_character.VIPLevel = 6;
                    this.m_character.VIPExp = 4000;
                    this.m_character.VIPExpireDay = ExpireDayOut;
                    this.m_character.VIPLastDate = DateTime.Now;
                    this.m_character.VIPNextLevelDaysNeeded = 0;
                    this.m_character.CanTakeVipReward = true;
                }
                else
                {
                    this.m_character.typeVIP = 1;
                    this.m_character.VIPLevel = 1;
                    this.m_character.VIPExp = 0;
                    this.m_character.VIPExpireDay = ExpireDayOut;
                    this.m_character.VIPLastDate = DateTime.Now;
                    this.m_character.VIPNextLevelDaysNeeded = 0;
                    this.m_character.CanTakeVipReward = true;
                }
            }
    Xong các bạn nhớ quay lại OpenVipHandler sửa mấy chỗ có đoạn:
    Code:
    client.Player.OpenVIP(now);
    thành
    Code:
    client.Player.OpenVIP(renewalDays, now);
    chú ý: Nếu sửa kiểu SQL rồi thì ko cần làm cái dưới và ngược lại. Khuyên là dùng cách dưới hay hơn.
    Vậy là xong rồi đó!
    Khách viếng thăm hãy cùng huyvannet xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. The Following 2 Users Say Thank You to huyvannet For This Useful Post:

    fastclient1998 (12-05-14), vinh8c058 (07-04-15)

  3. #2
    Thành Viên fastclient1998's Avatar
    Ngày tham gia
    Aug 2012
    Đang ở
    TP.HCM
    Bài viết
    306
    Thanks
    189
    Thanked 224 Times in 35 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Hehe... kỳ này anh đã trở thành 1 pro dev gunny rùi mong là r30 sẽ hoàn thiện
    Khách viếng thăm hãy cùng fastclient1998 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #3
    Thành Viên hoang7625's Avatar
    Ngày tham gia
    May 2013
    Bài viết
    364
    Thanks
    21
    Thanked 312 Times in 79 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Trích dẫn Gửi bởi huyvannet [Only registered and activated users can see links. ]
    Mình cũng newbie, viết bài cho vui nhằm học hỏi!. Có gì mọi người share thêm học hỏi nhé.

    Lọ mọ ngồi nghịch tìm hiểu cách fix VIP lên lv6 khi gia hạn 6 tháng, dùng source r30 bác gì gì đã share đấy.

    Lúc đầu mình làm như thế này:
    - Trong OpenVipHandler mình thấy nó gọi hàm VIPRenewal(text, num, ref now); để add VIP.
    Soi vào thì thấy gọi SQL trong [dbo].[SP_VIPRenewal_Single], các bạn xóa hết đi và copy cái này Update vào:

    Code:
    -- =============================================
    -- Author:		<Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:	<Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[SP_VIPRenewal_Single]
    @NickName Nvarchar(200),
    @RenewalDays int ,
    @ExpireDayOut datetime out
    
    AS
    declare  @UserID int
    declare  @ExpireDay datetime
    declare  @Exp int
    declare  @VIPLevel int
    select @UserID = [UserID], @ExpireDay = [VIPExpireDay], @Exp = [VIPExp] from V_Sys_Users_Detail
    where NickName=@NickName and IsExist = 1
    	if @ExpireDay<getdate() or @ExpireDay=getdate() 
           begin
        	set @ExpireDay=getdate() + @RenewalDays
           end
         else
           begin
    		set @ExpireDay=@ExpireDay + @RenewalDays
           end
           set @ExpireDayOut = @ExpireDay
      if @RenewalDays=180
    		begin
    			set @VIPLevel=6
    			set @Exp=4000
    		end
    	else
    		begin
    			set @VIPLevel=1
    		end
    update [Sys_VIP_Info] set 
    	   [typeVIP] = 1
          ,[VIPLevel] = @VIPLevel
          ,[VIPExp] = @Exp
          ,[VIPExpireDay] = @ExpireDay
          ,[LastVIPPackTime] = GETDATE()
          ,[CanTakeVipReward] = 1
          where [UserID] = @UserID
    
    return 1
    Ở trên mình thêm vào đoạn:

    Code:
     if @RenewalDays=180
    		begin
    			set @VIPLevel=6
    			set @Exp=4000
    		end
    	else
    		begin
    			set @VIPLevel=1
    		end
    để check RenewalDays xem có bằng 6 tháng ko, nếu có thì set lv = 6, exp max khi đạt lv6 là 4000.
    Nhưng có điều là khi hiển thị nó chỉ hiển thị là vip lv 1. phải reset lại game mới thấy lv6.

    Chã nhẽ thế thì phiền. bắt đầu mình xem code tiếp thì thấy gọi hàm: OpenVIP(now);
    thì chậc, sửa ở đây là xong chỉ cần thêm cái check RenewalDays vào là Ok,

    Để sửa thì các bạn vào GamePlayer trong GameObjects tìm hàm:

    Code:
    public void OpenVIP(DateTime ExpireDayOut)
    Rồi sửa lại như sau:

    Code:
    public void OpenVIP(int renewalDays, DateTime ExpireDayOut)
            {
                if (renewalDays == 180)
                {
                    this.m_character.typeVIP = 1;
                    this.m_character.VIPLevel = 6;
                    this.m_character.VIPExp = 4000;
                    this.m_character.VIPExpireDay = ExpireDayOut;
                    this.m_character.VIPLastDate = DateTime.Now;
                    this.m_character.VIPNextLevelDaysNeeded = 0;
                    this.m_character.CanTakeVipReward = true;
                }
                else
                {
                    this.m_character.typeVIP = 1;
                    this.m_character.VIPLevel = 1;
                    this.m_character.VIPExp = 0;
                    this.m_character.VIPExpireDay = ExpireDayOut;
                    this.m_character.VIPLastDate = DateTime.Now;
                    this.m_character.VIPNextLevelDaysNeeded = 0;
                    this.m_character.CanTakeVipReward = true;
                }
            }
    Xong các bạn nhớ quay lại OpenVipHandler sửa mấy chỗ có đoạn:
    Code:
    client.Player.OpenVIP(now);
    thành
    Code:
    client.Player.OpenVIP(renewalDays, now);
    chú ý: Nếu sửa kiểu SQL rồi thì ko cần làm cái dưới và ngược lại. Khuyên là dùng cách dưới hay hơn.
    Vậy là xong rồi đó!
    có cẽ như sẽ bị lỗi mãi ở Vip 6 nếu up víp = tiếp phí haha
    Khách viếng thăm hãy cùng hoang7625 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. #4
    Thành Viên
    Ngày tham gia
    Jan 2014
    Bài viết
    60
    Thanks
    11
    Thanked 36 Times in 16 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Trích dẫn Gửi bởi hoang7625 [Only registered and activated users can see links. ]
    có cẽ như sẽ bị lỗi mãi ở Vip 6 nếu up víp = tiếp phí haha
    Chắc thêm check trường hợp của this.m_character.VIPLevel để lấy lv hiện tại

    Bác có cao kiến gì không ^^
    Khách viếng thăm hãy cùng huyvannet xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  6. #5
    Thành Viên hoang7625's Avatar
    Ngày tham gia
    May 2013
    Bài viết
    364
    Thanks
    21
    Thanked 312 Times in 79 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Trích dẫn Gửi bởi huyvannet [Only registered and activated users can see links. ]
    Chắc thêm check trường hợp của this.m_character.VIPLevel để lấy lv hiện tại

    Bác có cao kiến gì không ^^
    làm gì mà lắm lệnh thế, lắm lệnh thì càng nặng sever + cpu phải sử lý nhiều
    thêm vài đoạn code trong Game.Server.Packets là ok cmnr, chỉnh gì mả cả Db_Tank
    public void OpenVIP(int thoigian, DateTime ExpireDayOut)
    {
    int Level = this.m_character.VIPLevel;
    if(Level < 6 && thoigian == 180)
    {
    this.m_character.typeVIP = 1;
    this.m_character.VIPLevel = 6;
    this.m_character.VIPExp = 4000;
    this.m_character.VIPExpireDay = ExpireDayOut;
    this.m_character.VIPLastDate = DateTime.Now;
    this.m_character.VIPNextLevelDaysNeeded = 0;
    this.m_character.CanTakeVipReward = true;
    }
    else
    {
    this.m_character.typeVIP = 1;
    this.m_character.VIPLevel = 1;
    this.m_character.VIPExp = 0;
    this.m_character.VIPExpireDay = ExpireDayOut;
    this.m_character.VIPLastDate = DateTime.Now;
    this.m_character.VIPNextLevelDaysNeeded = 0;
    this.m_character.CanTakeVipReward = true;
    }

    }
    public void ContinousVIP(int thoigian, DateTime ExpireDayOut)
    {
    int Level = this.m_character.VIPLevel;
    if (Level < 6 && thoigian == 180)
    {
    this.m_character.VIPLevel = 6;
    this.m_character.VIPExp = 4000;
    this.m_character.VIPExpireDay = ExpireDayOut;
    }
    else
    {
    this.m_character.VIPExpireDay = ExpireDayOut;
    }
    }
    Lần sửa cuối bởi hoang7625, ngày 12-05-14 lúc 02:58 PM.
    Khách viếng thăm hãy cùng hoang7625 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  7. #6
    Thành Viên
    Ngày tham gia
    Jan 2014
    Bài viết
    60
    Thanks
    11
    Thanked 36 Times in 16 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Cái SQL là do tui mò lúc đầu, sau mới mò vào code đó chứ.

    Thành ra là 2 cách.

    Mà chỗ kia if vip < 6, @@ hóa nếu vip = 10, mà mình gia hạn chỗ mua vip thì nó reset lại = 1 hở bác
    Khách viếng thăm hãy cùng huyvannet xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. #7
    Thành Viên hoang7625's Avatar
    Ngày tham gia
    May 2013
    Bài viết
    364
    Thanks
    21
    Thanked 312 Times in 79 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Trích dẫn Gửi bởi huyvannet [Only registered and activated users can see links. ]
    Cái SQL là do tui mò lúc đầu, sau mới mò vào code đó chứ.

    Thành ra là 2 cách.

    Mà chỗ kia if vip < 6, @@ hóa nếu vip = 10, mà mình gia hạn chỗ mua vip thì nó reset lại = 1 hở bác
    đọc code mà ko hiểu à
    PHP Code:
    public void OpenVIP(int thoigianDateTime ExpireDayOut// kích hoạt víp
    {
    int Level this.m_character.VIPLevel;
    if(
    Level && thoigian == 180)// ( nếu lv vip <6 mà thời gian kích hoạt là 6 tháng thì sẽ cho lv vip lên 6 và exp tương ứng lv6 là 4000)
    {
    this.m_character.typeVIP 1;
    this.m_character.VIPLevel 6;
    this.m_character.VIPExp 4000;
    this.m_character.VIPExpireDay ExpireDayOut;
    this.m_character.VIPLastDate DateTime.Now;
    this.m_character.VIPNextLevelDaysNeeded 0;
    this.m_character.CanTakeVipReward true;
    }
    else 
    // không phải < lv 6 và ko phải 6 tháng thì mở bình thường
    {
    this.m_character.typeVIP 1;
    this.m_character.VIPLevel 1;
    this.m_character.VIPExp 0;
    this.m_character.VIPExpireDay ExpireDayOut;
    this.m_character.VIPLastDate DateTime.Now;
    this.m_character.VIPNextLevelDaysNeeded 0;
    this.m_character.CanTakeVipReward true;
    }

    }
    public 
    void ContinousVIP(int thoigianDateTime ExpireDayOut// tiếp phí vip
    {
    int Level this.m_character.VIPLevel;
    if (
    Level && thoigian == 180)  //nếu lv <6 và tiếp phí là 6 tháng thì cho lên lv6 + 4000 exp tương ứng+ thêm thời gian vip tưng ứng
    {
    this.m_character.VIPLevel 6;
    this.m_character.VIPExp 4000;
    this.m_character.VIPExpireDay ExpireDayOut;
    }
    else  
    //(tiếp phí khi víp >=6 và tiếp phí  là 6 tháng thì tăng thời gian tương ứng) hoặc (vip <6 nhưng thời gian ko phải là tiếp phí 6 tháng thì tăng thời gian tương ứng)
    {
    this.m_character.VIPExpireDay ExpireDayOut;
    }

    Lần sửa cuối bởi hoang7625, ngày 12-05-14 lúc 07:58 PM.
    Khách viếng thăm hãy cùng hoang7625 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #8
    Thành Viên
    Ngày tham gia
    Mar 2010
    Bài viết
    179
    Thanks
    36
    Thanked 1,626 Times in 92 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Trích dẫn Gửi bởi hoang7625 [Only registered and activated users can see links. ]
    làm gì mà lắm lệnh thế, lắm lệnh thì càng nặng sever + cpu phải sử lý nhiều
    thêm vài đoạn code trong Game.Server.Packets là ok cmnr, chỉnh gì mả cả Db_Tank
    Không liên quan nhưng tôi không đồng ý quan điểm của bạn .
    Khách viếng thăm hãy cùng trminhpc xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. Các thành viên gởi lời cảm ơn đến trminhpc vì bài viết này !

    vinh8c058 (07-04-15)

  11. #9
    Thành Viên nhokvip99's Avatar
    Ngày tham gia
    Jun 2013
    Bài viết
    414
    Thanks
    52
    Thanked 336 Times in 212 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Trích dẫn Gửi bởi trminhpc [Only registered and activated users can see links. ]
    Không liên quan nhưng tôi không đồng ý quan điểm của bạn .
    Bác trminh dạo này tham gia diễn đàn lại rồi à!!!!!
    Khách viếng thăm hãy cùng nhokvip99 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  12. #10
    Thành Viên
    Ngày tham gia
    May 2014
    Bài viết
    54
    Thanks
    0
    Thanked 5 Times in 5 Posts

    Ðề: Hướng dẫn tăng VIP lên lv 6 khi đăng ký 6 tháng cho Newbie

    Trích dẫn Gửi bởi trminhpc [Only registered and activated users can see links. ]
    Không liên quan nhưng tôi không đồng ý quan điểm của bạn .
    ý bác minh là không muốn là làm được thi im lặng không được share. share như zậy , mây hôm nay người chơi bên serveer bác kéo đi hết rồi' it ai chơi lắm , vào mà xem...... lỗ nặng rồi....
    Khách viếng thăm hãy cùng laibixoa xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 
Trang 1 của 2 1 2 CuốiCuối

Các Chủ đề tương tự

  1. [MU] cho mình hỏi cách tăng giảm EXP theo level tăng lên?
    Bởi nanhtuan81 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 1
    Bài viết cuối: 14-05-13, 01:07 PM
  2. [MU] Nan giải : CPU tăng do log sever tăng
    Bởi thuynga trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 31
    Bài viết cuối: 09-07-12, 09:57 PM
  3. Fix web đăng nhập 4.0 khi rip từ bản 3.4 lên cho newbie
    Bởi quangbaoit trong diễn đàn Releases
    Trả lời: 22
    Bài viết cuối: 27-06-12, 09:15 PM
  4. [MU] Xin hướng dẫn tăng dame Dacklot hoặc tăng mệnh lệnh mãi mãi 32k cho DL
    Bởi hukhong102 trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 11
    Bài viết cuối: 07-04-12, 03:43 AM
  5. [Beta ] giảm lag,tăng độ mượt tăng animation
    Bởi knight06 trong diễn đàn Releases
    Trả lời: 12
    Bài viết cuối: 16-09-11, 02:31 PM

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à 10:57 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ệ.