1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
using System;
using System.Reflection;
using KKSG;
using XMainClient.UI;
using XUtliPoolLib;
namespace XMainClient
{
internal class Process_RpcC2G_Revive
{
public static void OnReply(ReviveArg oArg, ReviveRes oRes)
{
bool flag = oRes.result == ErrorCode.ERR_INVALID_REQUEST;
if (flag)
{
string fullName = MethodBase.GetCurrentMethod().ReflectedType.FullName;
XSingleton<UiUtility>.singleton.OnGetInvalidRequest(fullName);
}
else
{
XSingleton<XDebug>.singleton.AddLog("Revieve Type: " + oArg.type, null, null, null, null, null, XDebugColor.XDebug_None);
XReviveDocument specificDocument = XDocuments.GetSpecificDocument<XReviveDocument>(XReviveDocument.uuID);
specificDocument.ResetAutoReviveData();
ErrorCode result = oRes.result;
if (result != ErrorCode.ERR_SUCCESS)
{
if (result != ErrorCode.ERR_REVIVE_MAXNUM)
{
ReviveType type = oArg.type;
if (type != ReviveType.ReviveItem)
{
XSingleton<UiUtility>.singleton.ShowSystemTip(oRes.result, "fece00");
}
else
{
bool flag2 = specificDocument.SpecialCostID > 0u;
if (flag2)
{
specificDocument.ShowSpecialRevive();
}
else
{
XSingleton<UiUtility>.singleton.ShowSystemTip(oRes.result, "fece00");
}
}
}
else
{
XSingleton<UiUtility>.singleton.ShowSystemTip(oRes.result, "fece00");
}
}
else
{
switch (oArg.type)
{
case ReviveType.ReviveItem:
case ReviveType.ReviveMoney:
specificDocument.SetReviveData(specificDocument.ReviveUsedTime + 1, specificDocument.ReviveCostTime + 1, ReviveType.ReviveNone);
break;
case ReviveType.ReviveSprite:
{
bool flag3 = oArg.clientinfo != null && oArg.clientinfo.islimit;
if (flag3)
{
specificDocument.SetReviveData(specificDocument.ReviveUsedTime + 1, specificDocument.ReviveCostTime, ReviveType.ReviveNone);
}
break;
}
case ReviveType.ReviveVIP:
{
bool flag4 = specificDocument.VipReviveCount > 0u;
if (flag4)
{
XReviveDocument xreviveDocument = specificDocument;
uint vipReviveCount = xreviveDocument.VipReviveCount - 1u;
xreviveDocument.VipReviveCount = vipReviveCount;
}
specificDocument.SetReviveData(specificDocument.ReviveUsedTime + 1, specificDocument.ReviveCostTime, ReviveType.ReviveNone);
break;
}
}
}
}
}
public static void OnTimeout(ReviveArg oArg)
{
}
}
}
|