QUẢNG CÁO TẠI ĐÂY WEBSITE - CLICK ĐỂ LIÊN HỆ

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

Thảo luận trong 'Gunny Offline - Webgame Bắn Súng' bắt đầu bởi theanhk, 29 Tháng ba 2017.

  1. theanhk

    Làm thành viên từ:
    28 Tháng chín 2015
    Số bài viết:
    123
    Đã được thích:
    33
    Điểm thành tích:
    3
    Giới tính:
    Nam
    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 [email protected] and IsExist = 1
    	if @ExpireDay<getdate() or @ExpireDay=getdate() 
           begin
        	set @ExpireDay=getdate() + @RenewalDays
           end
         else
           begin
    		set @[email protected] + @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 đó!
  • Chia sẻ trang này

    loading...