- Joined
- Apr 11, 2005
- Messages
- 290
- Reaction score
- 206
who knows how to fix Apostle Devin, click and nothing happen, is a bug or configuration ?
Did You fixed Crywolf mobs first? (didn't show monsters)
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature currently requires accessing the site using the built-in Safari browser.
who knows how to fix Apostle Devin, click and nothing happen, is a bug or configuration ?
Did You fixed Crywolf mobs first? (didn't show monsters)
you have to compile the gameserverCS
Main season 13 cracked and unpacked for who want to try !!
download:You must be registered to see links
change configs in config.ini
Code:change BYTE CharSet[19] instead of BYTE CharSet[18] in all structures
MagicStoneMix number = 0xF6
4th wings charset
Code:#if(GAMESERVER_UPDATE>=1301) else if (TempInventory[7] >= 414 && TempInventory[7] <= 421) //Season 13 { lpObj->CharSet[9] |= 0x05; lpObj->CharSet[16] |= ((TempInventory[7] - 414) << 2); lpObj->CharSet[18] |= Level; } #endif
PMSG_DAMAGE_SEND
Code:struct PMSG_DAMAGE_SEND { PBMSG_HEAD header; // C1:[PROTOCOL_CODE2] BYTE index[2]; #if(GAMESERVER_UPDATE>=1301) DWORD damage; #else BYTE damage[2]; #endif #if(GAMESERVER_UPDATE>=701) BYTE type[2]; #else BYTE type; #endif BYTE ShieldDamage[2]; #if(GAMESERVER_UPDATE>=701) BYTE attribute; #endif #if(GAMESERVER_EXTRA==1) DWORD ViewCurHP; DWORD ViewCurSD; DWORD ViewDamageHP; DWORD ViewDamageSD; #endif };
PMSG_CHARACTER_LIST_SEND
Code:struct PMSG_CHARACTER_LIST_SEND { PSBMSG_HEAD header; // C1:F3:00 #if(GAMESERVER_UPDATE>=1301) BYTE unk[2]; #endif BYTE ClassCode; BYTE MoveCnt; BYTE count; #if(GAMESERVER_UPDATE>=602) #if(GAMESERVER_UPDATE>=1200) BYTE ExtWarehouse[2]; #else BYTE ExtWarehouse; #endif #endif };
Code:struct PMSG_MONSTER_DAMAGE_SEND { PSBMSG_HEAD header; // C1:F3:07 #if(GAMESERVER_UPDATE>=1301) DWORD damage; #else BYTE damage[2]; #endif BYTE ShieldDamage[2]; #if(GAMESERVER_EXTRA==1) DWORD ViewCurHP; DWORD ViewCurSD; DWORD ViewDamageHP; DWORD ViewDamageSD; #endif };
HackPacketCheck.txt
//Index Value Encrypt MaxDelay MinCount MaxCount
0 * 0 0 0 0 //S13
1 * 0 0 0 0
2 * 0 0 0 0
3 * 1 0 0 0
4 * 0 0 0 0
5 * 0 0 0 0
6 * 0 0 0 0
7 * 0 0 0 0
8 * 0 0 0 0
9 * 0 0 0 0
10 * 0 0 0 0
11 * 0 0 0 0
12 * 0 0 0 0
13 * 0 0 0 0
14 * 1 0 0 0
15 * 0 0 0 0
16 * 0 0 0 0
17 * 0 0 0 0
18 * 0 0 0 0
19 * 0 0 0 0
20 * 0 0 0 0
21 * 0 0 0 0
22 * 0 0 0 0
23 * 0 0 0 0
24 * 0 2000 10 15
25 * 1 0 0 0
26 * 0 0 0 0
27 * 1 0 0 0
28 * 1 0 0 0
29 * 0 0 0 0
30 * 1 0 0 0
31 * 0 0 0 0
32 * 0 0 0 0
33 * 0 0 0 0
34 * 1 0 0 0
35 * 1 0 0 0
36 * 1 0 0 0
37 * 0 0 0 0
38 * 1 0 0 0
39 * 0 0 0 0
40 * 0 0 0 0
41 * 0 0 0 0
42 * 0 0 0 0
43 * 0 0 0 0
44 * 0 0 0 0
45 * 0 0 0 0
46 * 0 0 0 0
47 * 0 0 0 0
48 * 1 0 0 0
49 * 0 0 0 0
50 * 1 0 0 0
51 * 1 0 0 0
52 * 1 0 0 0
53 * 1 0 0 0 //S13
54 * 1 0 0 0
55 * 1 0 0 0 //S13
56 * 0 0 0 0
57 * 0 0 0 0
58 * 1 0 0 0 //S13
59 * 0 0 0 0
60 * 1 0 0 0
61 * 1 0 0 0
62 * 0 0 0 0
63 * 1 0 0 0
64 * 1 0 0 0
65 * 1 0 0 0
66 * 0 0 0 0
67 * 0 0 0 0
68 * 0 0 0 0
69 * 0 0 0 0
70 * 0 0 0 0
71 * 0 0 0 0
72 * 0 0 0 0
73 * 0 0 0 0
74 * 1 0 0 0
75 * 0 0 0 0
76 * 0 0 0 0
77 0 1 0 0 0
77 1 1 0 0 0
77 15 1 0 0 0 //S13
77 16 1 0 0 0 //S13
77 17 1 0 0 0 //S13
77 18 1 0 0 0 //S13
77 19 1 0 0 0 //S13
77 20 1 0 0 0 //S13
77 21 1 0 0 0 //S13
77 35 1 0 0 0 //S13
77 36 1 0 0 0 //S13
77 37 1 0 0 0 //S13
77 39 1 0 0 0 //S13
77 40 1 0 0 0 //S13
78 0 1 0 0 0
78 1 0 0 0 0
78 8 0 0 0 0
78 9 1 0 0 0
78 17 0 0 0 0 //
78 19 0 0 0 0 //
78 35 0 0 0 0 //S13
79 * 1 0 0 0 //S13
80 * 0 0 0 0
81 * 0 0 0 0
82 * 0 0 0 0
83 * 0 0 0 0
84 * 0 0 0 0
85 * 0 0 0 0
86 * 0 0 0 0
87 * 0 0 0 0
88 * 0 0 0 0
89 * 1 0 0 0
90 * 0 0 0 0
91 * 0 0 0 0
92 * 0 0 0 0
93 * 0 0 0 0
94 * 0 0 0 0
95 * 0 0 0 0
96 * 0 0 0 0
97 * 0 0 0 0
98 * 0 0 0 0
99 * 0 0 0 0
100 * 0 0 0 0
101 * 0 0 0 0
102 * 0 0 0 0
103 * 0 0 0 0
104 * 0 0 0 0
105 * 0 0 0 0
106 * 0 0 0 0
107 * 0 0 0 0
108 * 0 0 0 0
109 * 0 0 0 0
110 * 0 0 0 0
111 * 0 0 0 0
112 * 0 0 0 0
113 * 0 0 0 0
114 * 1 0 0 0
115 * 1 0 0 0
116 * 0 0 0 0
117 * 0 0 0 0
118 * 0 0 0 0 //S13
119 * 0 0 0 0
120 * 0 0 0 0
121 * 0 0 0 0
122 * 0 0 0 0
123 * 0 0 0 0
124 * 0 0 0 0
125 * 0 0 0 0
126 * 0 0 0 0 //4th skill tree
127 * 0 0 0 0
128 * 0 0 0 0
129 * 0 0 0 0
130 * 0 0 0 0
131 * 1 0 0 0
132 * 0 0 0 0
133 * 0 0 0 0
134 * 0 0 0 0
135 * 0 0 0 0
136 * 0 0 0 0
137 * 0 0 0 0
138 * 0 0 0 0
139 * 0 0 0 0
140 * 0 0 0 0
141 * 0 0 0 0
142 * 1 0 0 0 //S13
143 * 0 0 0 0
144 * 0 0 0 0
145 * 0 0 0 0
146 * 0 0 0 0
147 * 0 0 0 0
148 * 0 0 0 0
149 * 0 0 0 0
150 * 0 0 0 0
151 * 0 0 0 0
152 * 0 0 0 0
153 * 0 0 0 0
154 * 0 0 0 0
155 * 0 0 0 0
156 * 0 0 0 0
157 * 0 0 0 0
158 * 0 0 0 0
159 * 0 0 0 0
160 * 1 0 0 0 //S13
161 * 0 0 0 0
162 * 1 0 0 0
163 * 0 0 0 0
164 * 0 0 0 0
165 * 0 0 0 0
166 * 0 0 0 0
167 * 0 0 0 0
168 * 0 0 0 0
169 * 0 0 0 0
170 * 1 0 0 0
171 * 0 0 0 0
172 * 0 0 0 0
173 * 0 0 0 0
174 * 0 0 0 0
175 * 0 0 0 0
176 * 1 0 0 0
177 * 1 0 0 0
178 * 0 0 0 0
179 * 0 0 0 0
180 * 0 0 0 0
181 * 0 0 0 0
182 * 0 0 0 0
183 * 0 0 0 0
184 * 0 0 0 0
185 * 0 0 0 0
186 * 0 0 0 0
187 * 0 0 0 0
188 * 0 0 0 0
189 * 0 0 0 0
190 * 0 0 0 0
191 * 0 0 0 0
192 * 0 0 0 0
193 * 0 0 0 0
194 * 0 0 0 0
195 * 0 0 0 0
196 * 0 0 0 0
197 * 1 0 0 0
198 * 0 0 0 0
199 * 0 0 0 0
200 * 0 0 0 0
201 * 0 0 0 0
202 * 0 0 0 0
203 * 0 0 0 0
204 * 0 0 0 0
205 * 0 0 0 0
206 * 0 0 0 0
207 * 0 0 0 0
208 * 0 0 0 0
208 7 0 0 0 0 //
208 8 0 0 0 0 //
208 242 1 0 0 0 //
208 240 1 0 0 0 //
209 * 0 0 0 0
210 * 1 0 0 0 //S13
211 * 1 0 0 0 //?enc = 0
212 * 0 0 0 0
213 * 0 0 0 0
214 * 0 0 0 0
215 * 0 0 0 0
216 * 1 0 0 0
217 * 0 0 0 0
218 * 0 0 0 0
219 * 1 0 0 0
220 * 0 0 0 0
221 * 0 0 0 0
222 * 0 0 0 0
223 * 0 0 0 0
224 * 0 0 0 0
225 * 0 0 0 0
226 * 0 0 0 0
227 * 0 0 0 0
228 * 0 0 0 0
229 * 0 0 0 0
230 * 0 0 0 0
231 * 0 0 0 0
232 * 1 0 0 0 //S13
233 * 0 0 0 0
234 * 0 0 0 0
235 * 0 0 0 0
236 0 1 0 0 0 //S13
236 1 1 0 0 0
236 2 1 0 0 0
236 3 1 0 0 0
236 5 1 0 0 0 //
236 7 0 0 0 0 // Wing 4 upgrade
236 39 0 0 0 0 //
236 49 0 0 0 0 //S13
236 51 1 0 0 0
236 80 0 0 0 0 //S13
236 81 0 0 0 0 //S13
236 82 0 0 0 0 //S13
236 84 0 0 0 0 //S13
237 * 0 0 0 0
238 * 0 0 0 0
239 * 0 0 0 0
240 * 0 0 0 0
241 * 1 0 0 0
242 * 0 0 0 0
243 * * 0 0 0
244 * 0 0 0 0
245 * 0 0 0 0
246 10 1 0 0 0 //S13
246 11 1 0 0 0 //S13
246 13 1 0 0 0 //S13
246 15 1 0 0 0 //S13
246 16 1 0 0 0 //S13
246 26 1 0 0 0 //S13
246 27 1 0 0 0 //S13
246 28 0 0 0 0 //S13
246 33 1 0 0 0 //S13
246 48 1 0 0 0 //S13
246 49 1 0 0 0 //S13
246 81 1 0 0 0 //S13
246 82 1 0 0 0 //S13
246 84 1 0 0 0 //S13
246 85 1 0 0 0 //S13
247 * 0 0 0 0
248 * 0 0 0 0
249 * 0 0 0 0
250 * 0 0 0 0
251 * 0 0 0 0
252 * 0 0 0 0
253 * 0 0 0 0
254 * 0 0 0 0
255 * 1 0 0 0 //S13
end
here looks is fine the mobsTry to spawn some mobs in Your MonsterSetBaseCS file (not in MonsterSetBase) with Your GS CS
When you enter a game or die, you add a lot of useless buffs.
i just shared some structures can help to login, but webzen changed a lot of things.
tips: ProtocolCore function is deobfuscated that you can research easy
void __cdecl ProtocolCore(char protoNum, char *aRecv, int aLen, int aIndex, int Encrypt, int serial)
{
int v6; // eax@4
int v7; // eax@9
char v8; // [sp+Ch] [bp-170h]@19
char v9; // [sp+Ch] [bp-170h]@100
char v10; // [sp+Ch] [bp-170h]@126
char v11; // [sp+Ch] [bp-170h]@164
char v12; // [sp+Ch] [bp-170h]@185
char v13; // [sp+Ch] [bp-170h]@193
char v14; // [sp+Ch] [bp-170h]@224
char v15; // [sp+Ch] [bp-170h]@233
char v16; // [sp+Ch] [bp-170h]@239
char v17; // [sp+Ch] [bp-170h]@259
char v18; // [sp+Ch] [bp-170h]@349
char v19; // [sp+Ch] [bp-170h]@464
char v20; // [sp+Ch] [bp-170h]@491
char v21; // [sp+9Ch] [bp-E0h]@313
int v22; // [sp+9Dh] [bp-DFh]@313
int v23; // [sp+A4h] [bp-D8h]@312
_tagPMSG_REQ_DUEL_LEAVECNANNEL *v24; // [sp+A8h] [bp-D4h]@312
char v25; // [sp+ACh] [bp-D0h]@310
int v26; // [sp+ADh] [bp-CFh]@310
int v27; // [sp+B1h] [bp-CBh]@310
int v28; // [sp+B5h] [bp-C7h]@310
int v29; // [sp+B9h] [bp-C3h]@310
int v30; // [sp+BDh] [bp-BFh]@310
int v31; // [sp+C1h] [bp-BBh]@310
int v32; // [sp+C5h] [bp-B7h]@310
char v33; // [sp+C9h] [bp-B3h]@310
int v34; // [sp+CCh] [bp-B0h]@309
_tagPMSG_REQ_DUEL_JOINCNANNEL *v35; // [sp+D0h] [bp-ACh]@309
char Msg; // [sp+D4h] [bp-A8h]@307
int v37; // [sp+D5h] [bp-A7h]@307
int v38; // [sp+D9h] [bp-A3h]@307
int v39; // [sp+DDh] [bp-9Fh]@307
int v40; // [sp+E1h] [bp-9Bh]@307
int v41; // [sp+E8h] [bp-94h]@306
_tagPMSG_REQ_DUEL_EXIT *v42; // [sp+ECh] [bp-90h]@306
int v43; // [sp+F0h] [bp-8Ch]@305
_tagPMSG_ANS_DUEL_ANSWER *lpMsg; // [sp+F4h] [bp-88h]@305
_tagPMSG_ANS_DUEL_INVITE res; // [sp+F8h] [bp-84h]@303
int nRet; // [sp+10Ch] [bp-70h]@302
_tagPMSG_REQ_DUEL_INVITE *lpReq; // [sp+110h] [bp-6Ch]@302
unsigned __int16 wPacketType; // [sp+114h] [bp-68h]@301
char *v49; // [sp+118h] [bp-64h]@300
char *v50; // [sp+11Ch] [bp-60h]@277
char *v51; // [sp+120h] [bp-5Ch]@267
char *v52; // [sp+124h] [bp-58h]@259
char *v53; // [sp+128h] [bp-54h]@247
char *v54; // [sp+12Ch] [bp-50h]@239
char *v55; // [sp+130h] [bp-4Ch]@233
char *v56; // [sp+134h] [bp-48h]@230
char *v57; // [sp+138h] [bp-44h]@224
char *v58; // [sp+13Ch] [bp-40h]@203
char *v59; // [sp+140h] [bp-3Ch]@199
char *v60; // [sp+144h] [bp-38h]@193
char *v61; // [sp+148h] [bp-34h]@185
char *v62; // [sp+14Ch] [bp-30h]@182
char *v63; // [sp+150h] [bp-2Ch]@170
char *v64; // [sp+154h] [bp-28h]@164
char *v65; // [sp+158h] [bp-24h]@153
char *v66; // [sp+15Ch] [bp-20h]@134
char *v67; // [sp+160h] [bp-1Ch]@126
char *v68; // [sp+164h] [bp-18h]@106
char *v69; // [sp+168h] [bp-14h]@100
OBJECTSTRUCT *lpObj; // [sp+16Ch] [bp-10h]@47
PMSG_DEFAULT2 *lpDef; // [sp+170h] [bp-Ch]@32
PMSG_DEFAULT2 *lpMsg2; // [sp+174h] [bp-8h]@19
if ( gStalkProtocol )
{
if ( gStalkProtocolId == gObj[aIndex].AccountID[0] && byte_B578215 == gObj[aIndex].AccountID[1] )
{
j__strcmp(&gStalkProtocolId, gObj[aIndex].AccountID);
if ( !v6 )
LogAddHeadHex(gObj[aIndex].AccountID, aRecv, aLen);
}
}
if ( serial < 0 || gObj[aIndex].Type != 1 || NSerialCheck::InCheck((NSerialCheck *)(8 * aIndex + 241847592), serial) )
{
CheckPacketValidation(aIndex, protoNum);
if ( (unsigned __int8)protoNum != 241 && (unsigned __int8)protoNum != 243 )
{
lpObj = &gObj[aIndex];
switch ( protoNum )
{
case 0:
tempindex = aIndex;
PChatProc((PMSG_CHATDATA *)aRecv, aIndex);
break;
case 1:
CGChatRecv((PMSG_CHATDATA_NUMBER *)aRecv, aIndex);
break;
case 2:
CGChatWhisperRecv((PMSG_CHATDATA_WHISPER *)aRecv, aIndex);
break;
case 3:
CGCheckMainRecv((PMSG_CHECK_MAINEXE_RESULT *)aRecv, aIndex);
break;
case 0xE:
CGLiveClient((PMSG_CLIENTTIME *)aRecv, aIndex);
break;
case 0xD7:
PMoveProc((PMSG_MOVE *)aRecv, aIndex);
break;
case 0x10:
RecvPositionSetProc((PMSG_POSISTION_SET *)aRecv, aIndex);
break;
case 0xDF:
CGAttack((PMSG_ATTACK *)aRecv, aIndex);
break;
case 0x18:
CGActionRecv((PMSG_ACTION *)aRecv, aIndex);
break;
case 0x19:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGMagicAttack((PMSG_MAGICATTACK *)aRecv, aIndex);
break;
case 0x1B:
CGMagicCancel((PMSG_MAGICCANCEL *)aRecv, aIndex);
break;
case 0x1C:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGTeleportRecv((PMSG_TELEPORT *)aRecv, aIndex);
break;
case 0xB0:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGTargetTeleportRecv((PMSG_TARGET_TELEPORT *)aRecv, aIndex);
break;
case 0xD3:
CGBeattackRecv(aRecv, aIndex, 0);
break;
case 0x1E:
gObj[aIndex].m_dwTestTick = GetTickCount();
LogAddTD("[TEST2] C => S Attack Packet ");
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGDurationMagicRecv((PMSG_DURATION_MAGIC_RECV *)aRecv, aIndex);
break;
case 0x22:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGItemGetRequest((PMSG_ITEMGETREQUEST *)aRecv, aIndex);
break;
case 0x23:
CGItemDropRequest((PMSG_ITEMTHROW *)aRecv, aIndex, 0);
break;
case 0x24:
CGInventoryItemMove((PMSG_INVENTORYITEMMOVE *)aRecv, aIndex);
break;
case 0x26:
CGUseItemRecv((PMSG_USEITEM *)aRecv, aIndex);
break;
case 0x30:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGTalkRequestRecv((PMSG_TALKREQUEST *)aRecv, aIndex);
break;
case 0x31:
CGCloseWindow(aIndex);
break;
case 0x32:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGBuyRequestRecv((PMSG_BUYREQUEST *)aRecv, aIndex);
break;
case 0x33:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGSellRequestRecv((PMSG_SELLREQUEST *)aRecv, aIndex);
break;
case 0x34:
CGModifyRequestItem((PMSG_ITEMDURREPAIR *)aRecv, aIndex);
break;
case 0x35:
CGDecompositionRequestItem((PMSG_ITEMCOMPOSITION *)aRecv, aIndex);
break;
case 0x36:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGTradeRequestSend((PMSG_TRADE_REQUEST *)aRecv, aIndex);
break;
case 0x37:
CGTradeResponseRecv((PMSG_TRADE_RESPONSE *)aRecv, aIndex);
break;
case 0x3A:
CGTradeMoneyRecv((PMSG_TRADE_GOLD *)aRecv, aIndex);
break;
case 0x3C:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGTradeOkButtonRecv((PMSG_TRADE_OKBUTTON *)aRecv, aIndex);
break;
case 0x3D:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGTradeCancelButtonRecv(aIndex);
break;
case 0x3E:
v69 = aRecv;
v9 = aRecv[3];
if ( v9 == 8 )
{
CEvolutionMonsterRenewal::CGReqSelectRewardBox(&g_EvoMonRenewal, (PMSG_REQ_EVMON_REWARD *)aRecv, aIndex);
}
else if ( v9 == 9 )
{
CEvolutionMonsterRenewal::CGReqCloseRewardBox(&g_EvoMonRenewal, aIndex);
}
break;
case 0x3F:
v68 = aRecv;
switch ( aRecv[3] )
{
case 1:
CGPShopReqSetItemPrice((PMSG_REQ_PSHOP_SETITEMPRICE *)aRecv, aIndex);
break;
case 2:
CGPShopReqOpen((PMSG_REQ_PSHOP_OPEN *)aRecv, aIndex);
break;
case 3:
CGPShopReqClose(aIndex);
break;
case 5:
CGPShopReqBuyList((PMSG_REQ_BUYLIST_FROM_PSHOP *)aRecv, aIndex);
break;
case 6:
CGPShopReqBuyItem((PMSG_REQ_BUYITEM_FROM_PSHOP *)aRecv, aIndex);
break;
case 7:
CGPShopReqCloseDeal((PMSG_REQ_PSHOPDEAL_CLOSE *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0x40:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGPartyRequestRecv((PMSG_PARTYREQUEST *)aRecv, aIndex);
break;
case 0x41:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGPartyRequestResultRecv((PMSG_PARTYREQUESTRESULT *)aRecv, aIndex);
break;
case 0x42:
CGPartyList(aIndex);
break;
case 0x43:
if ( PacketCheckTime(&gObj[aIndex]) == 1 )
gObj[aIndex].m_btSendDeletePartyMember = 1;
CGPartyDelUser((stPMSG_PARTYDELUSER *)aRecv, aIndex, 1, 0);
gObj[aIndex].m_btSendDeletePartyMember = 0;
break;
case 0x4A:
GCMonkMagicAttack((PMSG_MAGICATTACK *)aRecv, aIndex);
break;
case 0x4B:
GCMonkDarkSideTargetSelect((PMSG_MONK_DARKSIDE_RECV *)aRecv, aIndex);
break;
case 0x4C:
v67 = aRecv;
v10 = aRecv[3];
if ( v10 )
{
if ( v10 == 1 )
{
CMineSystem::RewardMineTwinkle(&g_CMineSystem, (_PMSG_REQ_MINETWINKLE_REWARD *)aRecv, aIndex);
}
else if ( v10 == 3 )
{
CMineSystem::FailMineTwinkle(&g_CMineSystem, (_PMSG_ANS_MINETWINKLE_END_ANIMATION *)aRecv, aIndex, 0);
}
}
else
{
CMineSystem::MineTwinkle(&g_CMineSystem, (_PMSG_REQ_MINETWINKLE *)aRecv, aIndex);
}
break;
case 0x4D:
v66 = aRecv;
switch ( aRecv[3] )
{
case 0:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGEventItemGetRequest((PMSG_EVENTITEM_GETREQUEST *)aRecv, aIndex);
break;
case 1:
CGEventItemDropRequest((PMSG_EVENTITEM_THROW *)aRecv, aIndex);
break;
case 0xF:
CGReqEventInvenOpen(aRecv, aIndex);
break;
case 0x10:
CMuRummyMng::CGReqMuRummyStart(&g_CMuRummyMng, (_tagPMSG_REQ_MURUMMY_INFO *)aRecv, aIndex);
break;
case 0x11:
CMuRummyMng::CGReqCardReveal(&g_CMuRummyMng, (_tagPMSG_REQ_REVEAL_CARD *)aRecv, aIndex);
break;
case 0x12:
CMuRummyMng::CGReqCardMove(&g_CMuRummyMng, (_tagPMSG_REQ_CARD_MOVE *)aRecv, aIndex);
break;
case 0x13:
CMuRummyMng::CGReqCardReMove(&g_CMuRummyMng, (_tagPMSG_REQ_CARD_REMOVE *)aRecv, aIndex);
break;
case 0x14:
CMuRummyMng::CGReqCardMatch(&g_CMuRummyMng, (_tagPMSG_REQ_CARD_MATCH *)aRecv, aIndex);
break;
case 0x15:
CMuRummyMng::CGReqMuRummyEnd(&g_CMuRummyMng, (_tagPMSG_REQ_MURUMMY_END *)aRecv, aIndex);
break;
case 0x19:
CMuRummyMng::CGReqCardMatch4Slot(&g_CMuRummyMng, (_tagPMSG_REQ_CARD_MATCH_4SLOT *)aRecv, aIndex);
break;
case 0x23:
CBombHuntMng::CGReqBombHuntStart(&g_CBombHuntMng, aIndex);
break;
case 0x24:
CBombHuntMng::CGReqLBClick(&g_CBombHuntMng, (_tagPMSG_REQ_BOMB_HUNT_LB_CLICK *)aRecv, aIndex);
break;
case 0x25:
CBombHuntMng::CGReqRBClick(&g_CBombHuntMng, (_tagPMSG_REQ_BOMB_HUNT_RB_CLICK *)aRecv, aIndex);
break;
case 0x27:
CBombHuntMng::CGReqBombHuntBanner(&g_CBombHuntMng, aIndex);
break;
case 0x28:
CBombHuntMng::CGReqReward(&g_CBombHuntMng, aIndex);
break;
default:
return;
}
break;
case 0x4E:
v65 = aRecv;
switch ( aRecv[3] )
{
case 0:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGMuunItemGetRequest((PMSG_MUUNITEM_GETREQUEST *)aRecv, aIndex);
break;
case 8:
CMuunSystem::CGMuunInventoryUseItemRecv(&g_CMuunSystem, (PMSG_USEITEM_MUUN_INVEN *)aRecv, aIndex);
break;
case 9:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGMuunItemSellRequestRecv((PMSG_MUUN_ITEM_SELLREQUEST *)aRecv, aIndex);
break;
case 0x11:
CMuunSystem::CGReqRideSelect(&g_CMuunSystem, (PMSG_MUUN_RIDE_SELECT *)aRecv, aIndex);
break;
case 0x13:
CMuunSystem::CGMuunExchangeItem(&g_CMuunSystem, (PMSG_REQ_MUUN_EXCHANGE *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0x4F:
v64 = aRecv;
v11 = aRecv[3];
if ( v11 == 2 )
{
CGremoryCaseMng::GCReqItemRecv(&g_CGremoryCaseMng, (_tagPMSG_REQ_GC_RECV *)aRecv, aIndex);
}
else if ( v11 == 5 )
{
CGremoryCaseMng::GCReqGCOpen(&g_CGremoryCaseMng, (_tagPMSG_REQ_GC_OPEN *)aRecv, aIndex);
}
break;
case 0x59:
v63 = aRecv;
if ( aRecv[3] == 1 )
GCMagicAttackAction((PMSG_MAGICATTACK_ACTION *)aRecv, aIndex);
break;
case 0x50:
CGGuildRequestRecv((PMSG_GUILDJOINQ *)aRecv, aIndex);
break;
case 0x51:
CGGuildRequestResultRecv((PMSG_GUILDQRESULT *)aRecv, aIndex);
break;
case 0x52:
CGGuildListAll(aIndex);
break;
case 0x53:
CGGuildDelUser((PMSG_GUILDDELUSER *)aRecv, aIndex);
break;
case 0x54:
CGGuildMasterAnswerRecv((PMSG_GUILDMASTERANSWER *)aRecv, aIndex);
break;
case 0x55:
CGGuildMasterInfoSave(aIndex, (PMSG_GUILDINFOSAVE *)aRecv);
break;
case 0x57:
CGGuildMasterCreateCancel(aIndex);
break;
case 0x61:
GCGuildWarRequestSendRecv((PMSG_GUILDWARSEND_RESULT *)aRecv, aIndex);
break;
case 0x66:
GCGuildViewportInfo((PMSG_REQ_GUILDVIEWPORT *)aRecv, aIndex);
break;
case 0x6D:
v62 = aRecv;
if ( !aRecv[3] )
CGAwesomiupPlayGuideOptionButtonClickRecv((_PMSG_NOTIFY_PLAY_GUIDE_EXECUTE *)aRecv, aIndex);
break;
case 0x6F:
v61 = aRecv;
v12 = aRecv[3];
if ( v12 )
{
if ( v12 == 1 )
{
CRestoreSoldItem::CGReqQuitRestoreItemInterface(
&gRestoreSoldItemSystem,
(PMSG_REQ_QUIT_RESTORE_INTERFACE *)aRecv,
aIndex);
}
else if ( v12 == 2 )
{
CGReqRestoreItem((PMSG_REQ_RESTORE_ITEM *)aRecv, aIndex);
}
}
else
{
CRestoreSoldItem::CGReqRestoreItemList(
&gRestoreSoldItemSystem,
(PMSG_REQ_RESTOREITEM_LIST *)aRecv,
aIndex,
0);
}
break;
case 0x70:
v60 = aRecv;
v13 = aRecv[3];
if ( v13 )
{
if ( v13 == 1 )
LuckyItemManager::CGReqLuckyItemSmelting(
&g_LuckyItemManager,
(PMSG_REQ_LUCKYITEM_SMELTING *)aRecv,
aIndex);
}
else
{
LuckyItemManager::CGReqLuckyItemTicketExchange(
&g_LuckyItemManager,
(PMSG_REQ_TICKET_EXCHANGE *)aRecv,
aIndex);
}
break;
case 0xB1:
v59 = aRecv;
if ( aRecv[3] == 1 && DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGReqMapSvrAuth((PMSG_REQ_MAPSERVERAUTH *)aRecv, aIndex);
break;
case 0xB2:
v58 = aRecv;
switch ( aRecv[3] )
{
case 0:
CGReqCastleSiegeState((PMSG_REQ_CASTLESIEGESTATE *)aRecv, aIndex);
break;
case 1:
CGReqRegCastleSiege((PMSG_REQ_REGCASTLESIEGE *)aRecv, aIndex);
break;
case 2:
CGReqGiveUpCastleSiege((PMSG_REQ_GIVEUPCASTLESIEGE *)aRecv, aIndex);
break;
case 3:
CGReqGuildRegInfo((PMSG_REQ_GUILDREGINFO *)aRecv, aIndex);
break;
case 4:
CGReqRegGuildMark((PMSG_REQ_REGGUILDMARK *)aRecv, aIndex);
break;
case 5:
CGReqNpcBuy((PMSG_REQ_NPCBUY *)aRecv, aIndex);
break;
case 6:
CGReqNpcRepair((PMSG_REQ_NPCREPAIR *)aRecv, aIndex);
break;
case 7:
CGReqNpcUpgrade((PMSG_REQ_NPCUPGRADE *)aRecv, aIndex);
break;
case 8:
CGReqTaxMoneyInfo((PMSG_REQ_TAXMONEYINFO *)aRecv, aIndex);
break;
case 9:
CGReqTaxRateChange((PMSG_REQ_TAXRATECHANGE *)aRecv, aIndex);
break;
case 0x10:
CGReqMoneyDrawOut((PMSG_REQ_MONEYDRAWOUT *)aRecv, aIndex);
break;
case 0x12:
CGReqCsGateOperate((PMSG_REQ_CSGATEOPERATE *)aRecv, aIndex);
break;
case 0x1B:
CGReqCsMiniMapData((PMSG_REQ_MINIMAPDATA *)aRecv, aIndex);
break;
case 0x1C:
CGReqStopCsMiniMapData((PMSG_REQ_STOPMINIMAPDATA *)aRecv, aIndex);
break;
case 0x1D:
CGReqCsSendCommand((PMSG_REQ_CSCOMMAND *)aRecv, aIndex);
break;
case 0x1F:
CGReqCsSetEnterHuntZone((PMSG_REQ_CSHUNTZONEENTER *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0xB3:
CGReqNpcDbList((PMSG_REQ_NPCDBLIST *)aRecv, aIndex);
break;
case 0xB4:
CGReqCsRegGuildList((PMSG_REQ_CSREGGUILDLIST *)aRecv, aIndex);
break;
case 0xB5:
CGReqCsAttkGuildList((PMSG_REQ_CSATTKGUILDLIST *)aRecv, aIndex);
break;
case 0xB7:
v57 = aRecv;
v14 = aRecv[3];
if ( v14 == 1 )
{
CGReqWeaponUse((PMSG_REQ_USEWEAPON *)aRecv, aIndex);
}
else if ( v14 == 4 )
{
CGReqWeaponDamageValue((PMSG_REQ_WEAPON_DAMAGE_VALUE *)aRecv, aIndex);
}
break;
case 0xB9:
v56 = aRecv;
if ( aRecv[3] == 2 )
CGReqGuildMarkOfCastleOwner((PMSG_REQ_GUILDMARK_OF_CASTLEOWNER *)aRecv, aIndex);
break;
case 0xBC:
v55 = aRecv;
v15 = aRecv[3];
if ( v15 )
{
if ( v15 == 1 )
CGReqJewelUnMix((PMSG_REQ_JEWEL_UNMIX *)aRecv, aIndex);
}
else
{
CGReqJewelMix((PMSG_REQ_JEWEL_MIX *)aRecv, aIndex);
}
break;
case 0xBD:
v54 = aRecv;
v16 = aRecv[3];
if ( v16 )
{
if ( v16 == 3 )
{
CGReqAlatrContract((PMSG_REQ_CRYWOLF_ALTAR_CONTRACT *)aRecv, aIndex);
}
else if ( v16 == 9 )
{
CGReqPlusChaosRate((PMSG_REQ_CRYWOLF_BENEFIT_PLUS_CHAOSRATE *)aRecv, aIndex);
}
}
else
{
CGReqCrywolfInfo((PMSG_REQ_CRYWOLF_INFO *)aRecv, aIndex);
}
break;
case 0xCD:
v53 = aRecv;
switch ( aRecv[3] )
{
case 1:
CGReqUBFMyCharacterInfo((PMSG_REQ_UBF_INFO *)aRecv, aIndex);
break;
case 2:
CGReqUBFJoin((PMSG_REQ_UBF_JOIN *)aRecv, aIndex);
break;
case 6:
CGReqUBFGetReward((PMSG_REQ_GET_REWARD *)aRecv, aIndex);
break;
case 7:
CGReqUBFCancel((PMSG_REQ_UBF_CANCEL *)aRecv, aIndex);
break;
case 8:
CGReqUBFGetRealName((PMSG_REQ_UBF_REAL_NAME *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0xE1:
CGGuildAssignStatus((PMSG_GUILD_ASSIGN_STATUS_REQ *)aRecv, aIndex);
break;
case 0xE2:
CGGuildAssignType((PMSG_GUILD_ASSIGN_TYPE_REQ *)aRecv, aIndex);
break;
case 0xE5:
CGRelationShipReqJoinBreakOff((PMSG_RELATIONSHIP_JOIN_BREAKOFF_REQ *)aRecv, aIndex);
break;
case 0xE6:
CGRelationShipAnsJoinBreakOff((PMSG_RELATIONSHIP_JOIN_BREAKOFF_ANS *)aRecv, aIndex);
break;
case 0xE9:
CGUnionList((PMSG_UNIONLIST_REQ *)aRecv, aIndex);
break;
case 0xE7:
v52 = aRecv;
v17 = aRecv[3];
switch ( v17 )
{
case 1:
CGReqSendMemberPosInfoStart(aIndex);
break;
case 2:
CGReqSendMemberPosInfoStop(aIndex);
break;
case 3:
GCReqSendNpcPosInfo((_PMSG_REQ_NPC_POSITION *)aRecv, aIndex);
break;
}
break;
case 0xEB:
v51 = aRecv;
if ( aRecv[3] == 1 )
CGRelationShipReqKickOutUnionMember((PMSG_KICKOUT_UNIONMEMBER_REQ *)aRecv, aIndex);
break;
case 0x71:
GCPingSendRecv((PMSG_PING_RESULT *)aRecv, aIndex);
break;
case 0x72:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
GCPacketCheckSumRecv((PMSG_PACKETCHECKSUM *)aRecv, aIndex);
break;
case 0x73:
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
GCNPggCheckSumRecv((PMSG_NPROTECTGGCHECKSUM *)aRecv, aIndex);
break;
case 0x77:
v50 = aRecv;
switch ( aRecv[3] )
{
case 0:
Labyrinth::CGReqCheckLabyrinthEntering(&g_Labyrinth, aIndex);
break;
case 1:
Labyrinth::CGReqEnterLabyrinth(&g_Labyrinth, aIndex);
break;
case 5:
Labyrinth::CGReqMoveLabyrinthZone(&g_Labyrinth, aIndex, (PMSG_REQ_MOVE_LABYRINTH_ZONE *)aRecv);
break;
case 0x11:
Labyrinth::CGReqLevelUpLabyrinth(&g_Labyrinth, aIndex, (PMSG_REQ_LABYRINTH_DIMENSION_LEVEL_UP *)aRecv);
break;
default:
return;
}
break;
case 0x81:
CGWarehouseMoneyInOut(aIndex, (PMSG_WAREHOUSEMONEYINOUT *)aRecv);
break;
case 0x82:
CGWarehouseUseEnd(aIndex);
break;
case 0x83:
GCWarehouseRecivePassword(aIndex, (PMSG_WAREHOUSEPASSSEND *)aRecv);
break;
case 0x86:
CGChaosBoxItemMixButtonClick((PMSG_CHAOSMIX *)aRecv, aIndex);
break;
case 0x87:
CGChaosBoxUseEnd(aIndex);
break;
case 0x88:
CGLQChaosBoxSpaceCheck((PMSG_REQ_LQMIX_SPACE_CHECK *)aRecv, aIndex);
break;
case 0x90:
GCReqmoveDevilSquare((PMSG_REQ_MOVEDEVILSQUARE *)aRecv, aIndex);
break;
case 0x91:
GCReqDevilSquareRemainTime((PMSG_REQ_DEVILSQUARE_REMAINTIME *)aRecv, aIndex);
break;
case 0x95:
GCRegEventChipRecv((PMSG_REGEVENTCHIP *)aRecv, aIndex);
break;
case 0x96:
GCGetMutoNumRecv((PMSG_GETMUTONUMBER *)aRecv, aIndex);
break;
case 0x97:
GCUseEndEventChipRescv(aIndex);
break;
case 0x98:
GCUseRenaChangeZenRecv((PMSG_EXCHANGE_EVENTCHIP *)aRecv, aIndex);
break;
case 0x99:
CGReqMoveOtherServer((PMSG_REQ_MOVE_OTHERSERVER *)aRecv, aIndex);
break;
case 0xA0:
CGRequestQuestInfo(aIndex);
break;
case 0xA2:
CGSetQuestState((PMSG_SETQUEST *)aRecv, aIndex);
break;
case 0xA7:
CGRequestPetItemCommand((PMSG_REQUEST_PET_ITEM_COMMAND *)aRecv, aIndex);
break;
case 0xA9:
CGRequestPetItemInfo((PMSG_REQUEST_PET_ITEMINFO *)aRecv, aIndex);
break;
case 0xAA:
v49 = aRecv;
if ( aRecv[3] )
{
wPacketType = (unsigned __int8)v49[3] | 0xAA00;
switch ( wPacketType )
{
case 0xAA01u:
lpReq = (_tagPMSG_REQ_DUEL_INVITE *)aRecv;
nRet = OnCGInviteDuel((_tagPMSG_REQ_DUEL_INVITE *)aRecv, aIndex);
if ( nRet )
{
*(_DWORD *)&res.NumberH = 0;
*(_DWORD *)&res.szName[2] = 0;
*(_DWORD *)&res.szName[6] = 0;
res.h.c = -63;
res.h.size = 17;
res.h.headcode = -86;
res.h.subcode = 1;
res.nResult = nRet;
DataSend(aIndex, (char *)&res.h, 0x11u);
}
break;
case 0xAA02u:
lpMsg = (_tagPMSG_ANS_DUEL_ANSWER *)aRecv;
v43 = OnCGAnswerDuel((_tagPMSG_ANS_DUEL_ANSWER *)aRecv, aIndex);
break;
case 0xAA03u:
v42 = (_tagPMSG_REQ_DUEL_EXIT *)aRecv;
v41 = OnCGLeaveDuel((_tagPMSG_REQ_DUEL_EXIT *)aRecv, aIndex);
if ( v41 )
{
v37 = 0;
v38 = 0;
v39 = 0;
v40 = 0;
Msg = -63;
LOWORD(v37) = -21999;
BYTE2(v37) = 3;
DataSend(aIndex, &Msg, 0x11u);
}
break;
case 0xAA07u:
v35 = (_tagPMSG_REQ_DUEL_JOINCNANNEL *)aRecv;
v34 = OnDuelChannelJoin((_tagPMSG_REQ_DUEL_JOINCNANNEL *)aRecv, aIndex);
if ( v34 )
{
v27 = 0;
v28 = 0;
v29 = 0;
v30 = 0;
v31 = 0;
v32 = 0;
v33 = 0;
v25 = -63;
LOWORD(v26) = -21986;
BYTE2(v26) = 7;
BYTE3(v26) = v34;
DataSend(aIndex, &v25, 0x1Eu);
}
break;
case 0xAA09u:
v24 = (_tagPMSG_REQ_DUEL_LEAVECNANNEL *)aRecv;
v23 = OnDuelChannelLeave((_tagPMSG_REQ_DUEL_LEAVECNANNEL *)aRecv, aIndex);
if ( v23 )
{
v21 = -63;
LOWORD(v22) = -22011;
BYTE2(v22) = 9;
BYTE3(v22) = v23;
DataSend(aIndex, &v21, 5u);
}
break;
default:
return;
}
}
break;
case 0x9A:
CGRequestEnterBloodCastle((PMSG_REQ_MOVEBLOODCASTLE *)aRecv, aIndex);
break;
case 0x9B:
case 0xF9:
return;
case 0x9F:
CGRequestEventEnterCount((PMSG_REQ_CL_ENTERCOUNT *)aRecv, aIndex);
break;
case 0xAF:
switch ( aRecv[3] )
{
case 1:
CGRequestEnterChaosCastle((PMSG_REQ_MOVECHAOSCASTLE *)aRecv, aIndex);
break;
case 2:
CGRequestRepositionUserInChaosCastle((PMSG_REQ_REPOSUSER_IN_CC *)aRecv, aIndex);
break;
case 3:
CGReqCCF_DayTime(aIndex);
break;
case 5:
CGReqCCF_EnterCheck(aIndex);
break;
case 6:
CGRequestRepositionUserInCCF((PMSG_REQ_REPOSUSER_IN_CCF *)aRecv, aIndex);
break;
case 7:
CGReq_CCF_Ranking((PMSG_REQ_CCF_RANKING *)aRecv, aIndex);
break;
case 8:
CG_CCF_UI_OnOff((PMSG_CCF_UI_ONOFF *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0xC0:
FriendListRequest(aIndex);
break;
case 0xC1:
FriendAddRequest((PMSG_FRIEND_ADD_REQ *)aRecv, aIndex);
break;
case 0xC2:
WaitFriendAddRequest((PMSG_FRIEND_ADD_SIN_RESULT *)aRecv, aIndex);
break;
case 0xC3:
FriendDelRequest((PMSG_FRIEND_DEL_REQ *)aRecv, aIndex);
break;
case 0xC4:
FriendStateClientRecv((PMSG_FRIEND_STATE_C *)aRecv, aIndex);
break;
case 0xC5:
FriendMemoSend((PMSG_FRIEND_MEMO *)aRecv, aIndex);
break;
case 0xC7:
FriendMemoReadReq((PMSG_FRIEND_READ_MEMO_REQ *)aRecv, aIndex);
break;
case 0xC8:
FriendMemoDelReq((PMSG_FRIEND_MEMO_DEL_REQ *)aRecv, aIndex);
break;
case 0xC9:
FriendMemoListReq(aIndex);
break;
case 0xCA:
FriendChatRoomCreateReq((PMSG_FRIEND_ROOMCREATE_REQ *)aRecv, aIndex);
break;
case 0xCB:
FriendRoomInvitationReq((PMSG_ROOM_INVITATION *)aRecv, aIndex);
break;
case 0xD0:
switch ( aRecv[3] )
{
case 0:
CGReqPCBangCouponItem((PMSG_REQ_PCBANG_COUPON_ITEM *)aRecv, aIndex);
break;
case 3:
CGReqWhiteAngelGetItem((PMSG_REQ_WHITEANGEL_ITEM *)aRecv, aIndex);
break;
case 5:
CGReqBuyPCBangPointItem((PMSG_REQ_CG_BUY_PCBANG_POINT_ITEM *)aRecv, aIndex);
break;
case 6:
CGReqPCBangPointShopOpen((PMSG_REQ_PCBANG_POINT_SHOP_OPEN *)aRecv, aIndex);
break;
case 7:
CGReqEnterOnWerwolf((PMSG_REQ_ENTER_ON_WERWOLF *)aRecv, aIndex);
break;
case 8:
CGReqEnterOnGateKeeper((PMSG_REQ_ENTER_ON_GATEKEEPER *)aRecv, aIndex);
break;
case 0xA:
CGAnsSnowManMoveGate((PMSG_REQ_SNOWMAN_NPC *)aRecv, aIndex);
break;
case 0x10:
CGReqEventItem((PMSG_REQ_GIVE_SANTA_ITEM *)aRecv, aIndex);
break;
case 0xF0:
CGReq_RuudShopBuy((PMSG_REQ_RUUD_POINT_SHOP_BUY *)aRecv, aIndex);
break;
case 0xF2:
CGReqOpenRuudBox((PMSG_RUUD_BOXOPEN_REQ *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0xD1:
v18 = aRecv[3];
if ( v18 )
{
if ( v18 == 1 )
GCReqEnterKanturuBossMap((PMSG_REQ_ENTER_KANTURU_BOSS_MAP *)aRecv, aIndex);
}
else
{
CGReqKanturuStateInfo((PMSG_REQ_KANTURU_STATE_INFO *)aRecv, aIndex);
}
break;
case 0xF5:
switch ( aRecv[3] )
{
case 1:
CCashShop::CGCashShopOpen(&g_CashShop, lpObj, (PMSG_REQ_CASHSHOPOPEN *)aRecv);
break;
case 3:
CCashShop::CGCashPoint(&g_CashShop, lpObj);
break;
case 5:
CCashShop::GCCashItemListSend(&g_CashShop, &gObj[aIndex], (PMSG_REQ_CASHITEMLIST *)aRecv);
break;
case 7:
CCashShop::CGCashItemBuy(&g_CashShop, &gObj[aIndex], (PMSG_REQ_CASHITEM_BUY *)aRecv);
break;
default:
return;
}
break;
case 0xFC:
CGReqWriteSnsLog((PMSG_REQ_SEND_SNS_LOG *)aRecv, aIndex);
break;
case 0xBF:
switch ( aRecv[3] )
{
case 0:
CGReqEnterIllusionTemple((PMSG_REQ_ENTER_ILLUSION_TEMPLE *)aRecv, aIndex);
break;
case 2:
CGIllusionTempleUseMagic((PMSG_ILLUSION_TEMPLE_USE_MAGIC *)aRecv, aIndex);
break;
case 5:
CGReqIllusionTempleReward((PMSG_ILLUSION_TEMPLE_REQ_REWARD *)aRecv, aIndex);
break;
case 0xB:
CGReqGetCoinCount((PMSG_REQ_GET_COIN_COUNT *)aRecv, aIndex);
break;
case 0xC:
CGReqRegeistCoin((PMSG_REQ_REGEIST_COIN *)aRecv, aIndex);
break;
case 0xD:
CGReqTradeCoin((PMSG_REQ_TRADE_COIN *)aRecv, aIndex);
break;
case 0xE:
CGReqEnterDoppelganger((PMSG_REQ_ENTER_DOPPELGANGER *)aRecv, aIndex);
break;
case 0x16:
CGAutoUserDetectLog((PMSG_AUTOUSER_DETECT_LOG *)aRecv, aIndex);
break;
case 0x17:
CGMoveRorenMarket((PMSG_MOVE_ROREN_MARKET *)aRecv, aIndex);
break;
case 0x20:
CGInventoryEquipment((_tagPMSG_REQ_INVENTORY_EQUIPMENT_ITEM *)aRecv, aIndex);
break;
case 0x51:
CGReqMacroSystem((PMSG_REQ_MACROSYSTEM *)aRecv, aIndex);
break;
case 0x5A:
CGEnterCheckITL((PMSG_REQ_ENTER_ITL *)aRecv, aIndex);
break;
case 0x5B:
CGReqAcceptEnterITL((PMSG_REQ_ACCEPTENTER *)aRecv, aIndex);
break;
case 0x5C:
CGReqITLSchedule(aIndex);
break;
case 0x5D:
CGReqITLGuild_LeagueRank(aIndex);
break;
case 0x5E:
CGReqITLTournamentRank(aIndex);
break;
case 0x5F:
CGReq_ITL_ReEnter(aIndex);
break;
case 0x67:
CGReqITLMagicUse((PMSG_ITL_USE_MAGIC *)aRecv, aIndex);
break;
case 0x68:
CGReq_RewardList(aIndex);
break;
case 0x69:
CGReq_ITLGetReward(aIndex);
break;
case 0x6A:
CGReq_ITL_Relics((PMSG_REQ_ITL_RELATE_RELICS *)aRecv, aIndex);
break;
case 0x6B:
CGReq_ITL_Reward_Gem((PMSG_ITL_REQ_REWARD *)aRecv, aIndex);
break;
case 0x70:
CG_Req_Enter_ITR((PMSG_REQ_ENTER_ITR *)aRecv, aIndex);
break;
case 0x71:
CG_ReqAcceptEnterITR((PMSG_REQ_ACCEPTENTER_ITR *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0x8A:
CGAnsHacktoolStatistics((PMSG_ANS_HACKTOOL_STATISTICS *)aRecv, aIndex);
break;
case 0x8E:
if ( aRecv[3] == 2 )
CGReqMapMove((PMSG_REQ_MAPMOVE *)aRecv, aIndex);
break;
case 0xAE:
CGRequestMacroSave((PMSG_MACRODATA *)aRecv, aIndex);
break;
case 0xFB:
CGRequestSnsSave((PMSG_SNSDATA *)aRecv, aIndex);
break;
case 0xFD:
CGReqUserSettingSave((PMSG_USERSETTING_SAVEDATA *)aRecv, aIndex);
break;
case 0xF7:
if ( aRecv[3] == 1 )
CGReqEnterZone((PMSG_REQ_ENTERZONE *)aRecv, aIndex);
break;
case 0xF6:
switch ( aRecv[3] )
{
case 0x30:
CGReqQuestExp((_tagPMSG_REQ_NPC_QUESTEXP *)aRecv, aIndex);
break;
case 0x31:
CGReqAttDefPowerInc((PMSG_REQ_ATTDEF_POWER_INC *)aRecv, aIndex);
break;
case 0x21:
CGReqEventItemQuestList((PMSG_REQ_EVENT_ITEM_EP_LIST *)aRecv, aIndex);
break;
case 0xA:
CGReqQuestSwitch((PMSG_REQ_QUESTEXP *)aRecv, aIndex);
break;
case 0xB:
CGReqQuestProgress((PMSG_REQ_QUESTEXP *)aRecv, aIndex);
break;
case 0xD:
CGReqQuestComplete((PMSG_REQ_QUESTEXP_COMPLETE *)aRecv, aIndex);
break;
case 0xF:
CGReqQuestGiveUp((PMSG_REQ_QUESTEXP_GIVEUP *)aRecv, aIndex);
break;
case 0x1A:
CGReqProgressQuestList((PMSG_REQ_QUESTEXP_PROGRESS_LIST *)aRecv, aIndex);
break;
case 0x1B:
CGReqProgressQuestInfo((PMSG_REQ_QUESTEXP_PROGRESS_INFO *)aRecv, aIndex);
break;
case 0x10:
CGReqTutorialKeyComplete((PMSG_REQ_QUESTEXP_ASK_COMPLETE *)aRecv, aIndex);
break;
case 0x1C:
CGReq3rdQuestMonKillCount((_tagPMSG_REQ_3RDQUEST_MOSTER_KILLCOUNT *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0xF8:
if ( aRecv[3] )
{
switch ( (unsigned __int8)aRecv[3] | 0xF800 )
{
case 0xF801:
CGReqRegGensMember((_tagPMSG_REQ_REG_GENS_MEMBER *)aRecv, aIndex);
break;
case 0xF803:
CGReqSecedeGensMember((_tagPMSG_REQ_SECEDE_GENS_MEMBER *)aRecv, aIndex);
break;
case 0xF809:
CGReqGensReward((_tagPMSG_GENS_REWARD_CODE *)aRecv, aIndex);
break;
case 0xF80B:
CGReqGensMemberInfo((_tagPMSG_REQ_GENS_INFO *)aRecv, aIndex);
break;
case 0xF820:
CGReqAcheronEnter((_tagPMSG_REQ_ACHERON_ENTER *)aRecv, aIndex);
break;
case 0xF830:
CGReqArcaBattleGuildMasterJoin((_tagPMSG_REQ_ARCA_BATTLE_JOIN *)aRecv, aIndex);
break;
case 0xF832:
CGReqArcaBattleGuildMemberJoin((_tagPMSG_REQ_ARCA_BATTLE_JOIN *)aRecv, aIndex);
break;
case 0xF834:
CGReqArcaBattleEnter((_tagPMSG_REQ_ARCA_BATTLE_ENTER *)aRecv, aIndex);
break;
case 0xF836:
CGReqArcaBattleBootyExchange(aIndex);
break;
case 0xF83C:
CGReqSpritemapExchange(aIndex);
break;
case 0xF841:
CGReqRegisteredMemberCnt(aIndex);
break;
case 0xF843:
CArcaBattle::CGReqMarkReg(&g_ArcaBattle, aIndex);
break;
case 0xF845:
CArcaBattle::CGReqMarkRank(&g_ArcaBattle, aIndex);
break;
case 0xF84B:
CAcheronGuardianEvent::CGReqAcheronEventEnter(
&g_AcheronGuardianEvent,
(_tagPMSG_REQ_ACHERON_EVENT_ENTER *)aRecv,
aIndex);
break;
default:
return;
}
}
break;
case 0xD2:
switch ( aRecv[3] )
{
case 1:
CCashShopInGame::RequestCashPoint(&g_CashShopInGame, lpObj);
break;
case 2:
CCashShopInGame::RequestCashShopOpen(&g_CashShopInGame, lpObj, (PMSG_CASHSHOP_SHOPOPEN_REQ *)aRecv);
break;
case 3:
CCashShopInGame::RequestBuyItem(&g_CashShopInGame, lpObj, (PMSG_CASHSHOP_BUYITEM_REQ *)aRecv);
break;
case 4:
CCashShopInGame::RequestGiftItem(&g_CashShopInGame, lpObj, (PMSG_CASHSHOP_GIFTSEND_REQ *)aRecv);
break;
case 5:
CCashShopInGame::RequestStorageList(&g_CashShopInGame, lpObj, (PMSG_CASHSHOP_STORAGELIST_REQ *)aRecv);
break;
case 7:
CCashShopInGame::RequestGiftCash(&g_CashShopInGame, lpObj, (PMSG_CASHSHOP_CASHSEND_REQ *)aRecv);
break;
case 8:
CCashShopInGame::RequestItemBuyConfirm(&g_CashShopInGame, lpObj);
break;
case 9:
CCashShopInGame::RequestItemLeftCount(
&g_CashShopInGame,
lpObj,
(PMSG_CASHSHOP_ITEMBUY_LEFT_COUNT_REQ *)aRecv);
break;
case 0xA:
CCashShopInGame::RequestStorageItemThrow(
&g_CashShopInGame,
lpObj,
(PMSG_CASHSHOP_STORAGE_ITEM_THROW_REQ *)aRecv);
break;
case 0xB:
CCashShopInGame::RequestStorageItemUse(
&g_CashShopInGame,
lpObj,
(PMSG_CASHSHOP_STORAGE_ITEM_USE_REQ *)aRecv);
break;
case 0xF:
CCashShopInGame::RequestStorageItemSaleType(
&g_CashShopInGame,
lpObj,
(PMSG_CASHSHOP_STORAGE_ITEM_SALE_TYPE_REQ *)aRecv);
break;
case 0x13:
CCashShopInGame::RequestEventProductList(&g_CashShopInGame, lpObj, (PMSG_CASHSHOP_EVENTITEM_REQ *)aRecv);
break;
default:
return;
}
break;
case 0xEC:
switch ( aRecv[3] )
{
case 0:
CGReqInJewelPentagramItem((PMSG_REQ_IN_PENTAGRAM_JEWEL *)aRecv, aIndex);
break;
case 1:
CGReqOutJewelPentagramItem((PMSG_REQ_OUT_PENTAGRAM_JEWEL *)aRecv, aIndex);
break;
case 2:
CGReqRefinePentagramJewel((PMSG_REQ_REFINE_PENTAGRAM_JEWEL *)aRecv, aIndex);
break;
case 3:
CGReqUpgradPentagramJewel((PMSG_REQ_UPGRADE_PENTAGRAM_JEWEL *)aRecv, aIndex);
break;
case 5:
CGReqPentagramSlotOpen((PMSG_REQ_PENTAGRAM_SLOT_OPEN *)aRecv, aIndex);
break;
case 0x27:
CGReq_DetailInfo((PMSG_REQ_DETAILINFO_FIRST *)aRecv, aIndex);
break;
case 0x31:
CGReqSearchItemInPShop((PMSG_REQ_SEARCH_ITEM_PSHOP *)aRecv, aIndex);
break;
case 0x33:
CGReqPShopLog((PMSG_REQ_PSHOP_LOG *)aRecv, aIndex);
break;
case 0x50:
CGReqHuntingRecordWndtOpen((PMSG_REQ_HUNTING_RECORD_WND_OPEN *)aRecv, aIndex);
break;
case 0x51:
CGReqHuntingRecordWndtClose((PMSG_REQ_HUNTING_RECORD_WND_CLOSE *)aRecv, aIndex);
break;
case 0x52:
CGReqHuntingRecordInfoUserOpen((PMSG_REQ_HUNTING_RECORD_INFO_USER_OPEN *)aRecv, aIndex);
break;
case 0x54:
CGReqHuntingRecordInfoUserOpenGet((PMSG_REQ_HUNTING_RECORD_INFO_USER_OPEN_GET *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0xE8:
CGOverlapItemSplitRequest((PMSG_REQ_OVERLAP_ITEM_SPLIT *)aRecv, aIndex);
break;
case 0xDB:
switch ( aRecv[3] )
{
case 0:
CGReqDSFSchedule(aIndex);
break;
case 1:
GDReqCanPartyEnter(aIndex);
break;
case 2:
CGReqAcceptEnterDSF((PMSG_REQ_DSF_ACCEPTENTER *)aRecv, aIndex);
break;
case 3:
CGReqDSFGoFinalParty((PMSG_REQ_DSF_GO_FINAL_PARTY_INFO *)aRecv, aIndex);
break;
case 9:
CGReqDSFGetReward((PMSG_REQ_DSF_GET_REWARD *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0xDD:
v19 = aRecv[3];
if ( v19 == 1 )
{
CGReqDSNEnter((PMSG_REQ_DSN_ENTER *)aRecv, aIndex);
}
else if ( v19 == 2 )
{
CGReqAcceptEnterDSN((PMSG_REQ_DSN_ACCEPTENTER *)aRecv, aIndex);
}
break;
case 0xED:
switch ( aRecv[3] )
{
case 0:
CGReqGuildMatchingList((_PMSG_REQ_GUIDMATCHINGLIST *)aRecv, aIndex);
break;
case 1:
CGReqGuildMatchingListSearchWord((_PMSG_REQ_GUIDMATCHINGLISTSEARCHWORD *)aRecv, aIndex);
break;
case 2:
CGReqRegGuildMatchingList((_PMSG_REQ_REGGUILDMATCHINGDATA *)aRecv, aIndex);
break;
case 3:
CGReqCancelGuildMatchingList((_PMSG_REQ_CANCEL_GUILDMATCHINGLIST *)aRecv, aIndex);
break;
case 4:
CGReqJoinGuildMatching((_PMSG_REQ_JOIN_GUILDMATCHING *)aRecv, aIndex);
break;
case 5:
CGReqCancelJoinGuildMatching(aIndex);
break;
case 6:
CGReqAllowJoinGuildMatching((_PMSG_REQ_ALLOW_JOIN_GUILDMATCHING *)aRecv, aIndex);
break;
case 7:
CGReqGetAllowListJoinGuildMatching((_PMSG_REQ_ALLOWLIST_GUILDMATCHING *)aRecv, aIndex);
break;
case 8:
CGReqGetWaitStateListGuildMatching(aIndex);
break;
default:
return;
}
break;
case 0xEF:
switch ( aRecv[3] )
{
case 0:
CGReqRegWantedPartyMember((_PMSG_REQ_REG_WANTED_PARTYMEMBER *)aRecv, aIndex);
break;
case 1:
CGReqGetPartyMatchingList((_PMSG_REQ_GET_PARTYMATCHINGLIST *)aRecv, aIndex);
break;
case 2:
CGReqJoinMemberPartyMatching((_PMSG_REQ_MEMBERJOIN_PARTYMATCHINGLIST *)aRecv, aIndex);
break;
case 3:
CGReqMemberJoinStateList((_PMSG_REQ_MEMBERJOIN_STATELIST_PARTYMATCHING *)aRecv, aIndex);
break;
case 4:
CGReqMemberJoinStateListLeader((_PMSG_REQ_WAITLIST_PARTYMATCHING *)aRecv, aIndex);
break;
case 5:
CGReqAcceptJoinMemberPartyMatching((_PMSG_REQ_ACCEPTMEMBER_PARTYMATCHING *)aRecv, aIndex);
break;
case 6:
CGReqCancelPartyMatching((_PMSG_REQ_CANCEL_JOIN_PARTYMATCHING *)aRecv, aIndex);
break;
case 7:
CGReqPartyLeaderChange((_PMSG_REQ_CHANGE_PARTY_LEADER *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0x6E:
v20 = aRecv[3];
if ( v20 == 1 )
{
CBlockChatUserSystem::CG_ReqAddBlockChattingUser(
&g_CBlockChatUserSystem,
(PMSG_REQ_ADD_BLOCK_CHAT_USER *)aRecv,
aIndex);
}
else if ( v20 == 2 )
{
CBlockChatUserSystem::CG_ReqDelBlockChattingUser(
&g_CBlockChatUserSystem,
(PMSG_REQ_DEL_BLOCK_CHAT_USER *)aRecv,
aIndex);
}
break;
case 0x78:
switch ( aRecv[3] )
{
case 1:
CGReqUpgradeSocketItem((PMSG_REQ_UPGRADE_SOCKETITEM *)aRecv, aIndex);
break;
case 2:
CGReqExtractSeedInven((PMSG_REQ_EXTRACT_SEED_INVEN *)aRecv, aIndex);
break;
case 3:
CGReqSetSeedSphearInven((PMSG_REQ_SET_SEEDSPHERE_INVEN *)aRecv, aIndex);
break;
case 4:
CGReqRemoveSeedSphearInven((PMSG_REQ_REMOVE_SEEDSPHERE_INVEN *)aRecv, aIndex);
break;
case 5:
CGReqCompositeSeedSphearInven((PMSG_REQ_COMPOSITE_SEEDSPHERE_INVEN *)aRecv, aIndex);
break;
case 6:
CGReqUpgradeSeedSphearInven((PMSG_REQ_UPGRADE_SEEDSPHERE_INVEN *)aRecv, aIndex);
break;
case 7:
CGReqDeleteSocket((PMSG_REQ_DELETE_SOCKET *)aRecv, aIndex);
break;
default:
return;
}
break;
case 0x76:
switch ( aRecv[3] )
{
case 1:
CNixiesLakeBossZone::RecvReqChkEnterBossZone(
&g_NixiesLakeBossZone,
(_tagPMSG_REQ_CHK_ENTER_ON_NIXIES_NIX_BOSS_ZONE *)aRecv,
aIndex);
break;
case 2:
CNixiesLakeBossZone::RecvReqEnterBossZone(
&g_NixiesLakeBossZone,
(_tagPMSG_REQ_ENTER_ON_NIXIES_NIX_BOSS_ZONE *)aRecv,
aIndex);
break;
case 3:
CNixiesLakeBossZone::RecvReqEnterBossZoneByInvite(
&g_NixiesLakeBossZone,
(_tagPMSG_ANS_INVITE_ON_NIXIES_NIX_BOSS_ZONE_WITH_PARTYMEMBER *)aRecv,
aIndex);
break;
case 0x10:
CNixiesLakeBoss::RecvSendIceBreathAttack(&g_NixiesLakeBoss, (_tagPMSG_ICE_BREATH_ATTACK *)aRecv, aIndex);
break;
default:
return;
}
break;
default:
LogAddC(
2u,
"error-L2 : account:%s name:%s HEAD:%x (%s,%d) State:%d",
gObj[aIndex].AccountID,
gObj[aIndex].Name,
(unsigned __int8)protoNum,
"c:\\muserversvn\\job_branch\\kor\\job_season12_part1\\gameserver\\protocol.cpp",
`ProtocolCore'::`2'::__LINE__Var + 2142,
gObj[aIndex].Connected);
CloseClient(aIndex);
break;
}
}
else
{
switch ( protoNum )
{
case 14:
if ( DataEncryptCheck(aIndex, 14, Encrypt) )
{
CGLiveClient((PMSG_CLIENTTIME *)aRecv, aIndex);
tempindex = aIndex;
}
break;
case -15:
lpMsg2 = (PMSG_DEFAULT2 *)aRecv;
v8 = aRecv[3];
if ( v8 == 1 )
{
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CSPJoinIdPassRequest((PMSG_IDPASS *)aRecv, aIndex);
}
else if ( v8 == 2 )
{
if ( DataEncryptCheck(aIndex, protoNum, Encrypt) )
CGClientCloseMsg((PMSG_CLIENTCLOSE *)aRecv, aIndex);
}
else if ( v8 == 3 && DataEncryptCheck(aIndex, protoNum, Encrypt) )
{
CGClientMsg((PMSG_CLIENTMSG *)aRecv, aIndex);
}
break;
case -13:
lpDef = (PMSG_DEFAULT2 *)aRecv;
switch ( aRecv[3] )
{
case 0:
DataServerGetCharListRequest(aIndex);
break;
case 1:
CGPCharacterCreate((PMSG_CHARCREATE *)aRecv, aIndex);
break;
case 2:
CGPCharDel((PMSG_CHARDELETE *)aRecv, aIndex);
break;
case 3:
CGPCharacterMapJoinRequest((PMSG_CHARMAPJOIN *)aRecv, aIndex);
break;
case 6:
CGLevelUpPointAdd((PMSG_LVPOINTADD *)aRecv, aIndex);
break;
case 0x12:
gObjMoveDataLoadingOK(aIndex);
break;
case 0x15:
CGReqCheckChangeName((PMSG_REQ_CHECK_CHAGNE_NAME *)aRecv, aIndex);
break;
case 0x16:
CGChangeName((PMSG_CHAGNE_NAME *)aRecv, aIndex);
break;
case 0x21:
CGEnableUsePolymorphSkinrRecv((PMSG_REQ_USE_POLYMORPH_SKIN *)aRecv, aIndex);
break;
case 0x26:
CGReqDoUsePopupType((PMSG_REQ_USE_POPUP *)aRecv, aIndex);
break;
case 0x30:
GCSkillKeyRecv((PMSG_SKILLKEY *)aRecv, aIndex);
break;
case 0x31:
CGNotifyGuarditBreach((PMSG_GUARDIT_BREACH *)aRecv, aIndex);
break;
case 0x52:
CMasterLevelSkillTreeSystem::CGReqGetMasterLevelSkill(
&g_MasterSkillSystem,
(PMSG_REQ_MASTERLEVEL_SKILL *)aRecv,
aIndex);
break;
default:
return;
}
break;
}
}
}
else
{
v7 = NSerialCheck::GetSerial((NSerialCheck *)(8 * aIndex + 241847592));
LogAdd(
"Error-L1 : Socket Serial %s %d o_serial:%d serial:%d ",
gObj[aIndex].AccountID,
(unsigned __int8)protoNum,
v7,
serial);
CloseClient(aIndex);
}
}
warning, i found a lot of stupid things like this, people can make your gameserver crash!
warning, i found a lot of stupid things like this, people can make your gameserver crash!
this one how to do when i login the charactor gs show me like this