huyvannet
12-05-14, 03:19 AM
:D 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:
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SP_VIPRenewal_Single]
@NickName Nvarchar(200),
@RenewalDays int ,
@ExpireDayOut datetime out
AS
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
else
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
else
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
update [Sys_VIP_Info] set
[typeVIP] = 1
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
,[LastVIPPackTime] = GETDATE()
,[CanTakeVipReward] = 1
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
return 1
Ở trên mình thêm vào đoạn:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
else
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
:D để 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. X_X 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 :D 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:
public void OpenVIP(DateTime ExpireDayOut)
Rồi sửa lại như sau:
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:
client.Player.OpenVIP(now);
thành
client.Player.OpenVIP(renewalDays, now);
:D 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 đó! :D
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:
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SP_VIPRenewal_Single]
@NickName Nvarchar(200),
@RenewalDays int ,
@ExpireDayOut datetime out
AS
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
else
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
else
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
update [Sys_VIP_Info] set
[typeVIP] = 1
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
,[LastVIPPackTime] = GETDATE()
,[CanTakeVipReward] = 1
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
return 1
Ở trên mình thêm vào đoạn:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
else
begin
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
end
:D để 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. X_X 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 :D 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:
public void OpenVIP(DateTime ExpireDayOut)
Rồi sửa lại như sau:
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:
client.Player.OpenVIP(now);
thành
client.Player.OpenVIP(renewalDays, now);
:D 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 đó! :D