Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 68.05 KB | None | 0 0
  1. #include "StdAfx.h"
  2. #include "PythonNetworkStream.h"
  3. //#include "PythonNetworkDatagram.h"
  4. #include "AccountConnector.h"
  5. #include "PythonGuild.h"
  6. #include "Test.h"
  7.  
  8. #include "AbstractPlayer.h"
  9.  
  10. static std::string gs_stServerInfo;
  11. extern BOOL gs_bEmpireLanuageEnable;
  12. std::list<std::string> g_kList_strCommand;
  13.  
  14. PyObject* netGetBettingGuildWarValue(PyObject* poSelf, PyObject* poArgs)
  15. {
  16. char* szName;
  17. if (!PyTuple_GetString(poArgs, 0, &szName))
  18. return Py_BuildException();
  19.  
  20.  
  21. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  22. return Py_BuildValue("i", rkNetStream.EXPORT_GetBettingGuildWarValue(szName));
  23. }
  24.  
  25. PyObject* netSetServerInfo(PyObject* poSelf, PyObject* poArgs)
  26. {
  27. char* szFileName;
  28. if (!PyTuple_GetString(poArgs, 0, &szFileName))
  29. return Py_BuildException();
  30.  
  31. gs_stServerInfo=szFileName;
  32. return Py_BuildNone();
  33. }
  34.  
  35. PyObject* netGetServerInfo(PyObject* poSelf, PyObject* poArgs)
  36. {
  37. return Py_BuildValue("s", gs_stServerInfo.c_str());
  38. }
  39.  
  40. PyObject* netPreserveServerCommand(PyObject* poSelf, PyObject* poArgs)
  41. {
  42. char* szLine;
  43. if (!PyTuple_GetString(poArgs, 0, &szLine))
  44. return Py_BuildException();
  45.  
  46. g_kList_strCommand.push_back(szLine);
  47.  
  48. return Py_BuildNone();
  49. }
  50.  
  51. PyObject* netGetPreservedServerCommand(PyObject* poSelf, PyObject* poArgs)
  52. {
  53. if (g_kList_strCommand.empty())
  54. return Py_BuildValue("s", "");
  55.  
  56. std::string strCommand = g_kList_strCommand.front();
  57. g_kList_strCommand.pop_front();
  58.  
  59. return Py_BuildValue("s", strCommand.c_str());
  60. }
  61.  
  62. PyObject* netStartGame(PyObject* poSelf, PyObject* poArgs)
  63. {
  64. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  65. rkNetStream.StartGame();
  66.  
  67. return Py_BuildNone();
  68. }
  69.  
  70. PyObject* netIsTest(PyObject* poSelf, PyObject* poArgs)
  71. {
  72. return Py_BuildValue("i", __IS_TEST_SERVER_MODE__);
  73. }
  74.  
  75. PyObject* netWarp(PyObject* poSelf, PyObject* poArgs)
  76. {
  77. int nX;
  78. if (!PyTuple_GetInteger(poArgs, 0, &nX))
  79. return Py_BuildException();
  80.  
  81. int nY;
  82. if (!PyTuple_GetInteger(poArgs, 1, &nY))
  83. return Py_BuildException();
  84.  
  85. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  86. rkNetStream.Warp(nX, nY);
  87.  
  88. return Py_BuildNone();
  89. }
  90.  
  91. PyObject* netLoadInsultList(PyObject* poSelf, PyObject* poArgs)
  92. {
  93. char* szFileName;
  94. if (!PyTuple_GetString(poArgs, 0, &szFileName))
  95. return Py_BuildException();
  96.  
  97. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  98. return Py_BuildValue("i", rkNetStream.LoadInsultList(szFileName));
  99. }
  100.  
  101. PyObject* netUploadMark(PyObject* poSelf, PyObject* poArgs)
  102. {
  103. char* szFileName;
  104. if (!PyTuple_GetString(poArgs, 0, &szFileName))
  105. return Py_BuildException();
  106.  
  107. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  108. return Py_BuildValue("i", rkNetStream.UploadMark(szFileName));
  109. }
  110.  
  111. PyObject* netUploadSymbol(PyObject* poSelf, PyObject* poArgs)
  112. {
  113. char* szFileName;
  114. if (!PyTuple_GetString(poArgs, 0, &szFileName))
  115. return Py_BuildException();
  116.  
  117. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  118. return Py_BuildValue("i", rkNetStream.UploadSymbol(szFileName));
  119. }
  120.  
  121. PyObject* netGetGuildID(PyObject* poSelf, PyObject* poArgs)
  122. {
  123. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  124. return Py_BuildValue("i", rkNetStream.GetGuildID());
  125. }
  126.  
  127. PyObject* netGetEmpireID(PyObject* poSelf, PyObject* poArgs)
  128. {
  129. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  130. return Py_BuildValue("i", rkNetStream.GetEmpireID());
  131. }
  132.  
  133. PyObject* netGetMainActorVID(PyObject* poSelf, PyObject* poArgs)
  134. {
  135. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  136. return Py_BuildValue("i", rkNetStream.GetMainActorVID());
  137. }
  138.  
  139. PyObject* netGetMainActorRace(PyObject* poSelf, PyObject* poArgs)
  140. {
  141. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  142. return Py_BuildValue("i", rkNetStream.GetMainActorRace());
  143. }
  144.  
  145. PyObject* netGetMainActorEmpire(PyObject* poSelf, PyObject* poArgs)
  146. {
  147. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  148. return Py_BuildValue("i", rkNetStream.GetMainActorEmpire());
  149. }
  150.  
  151. PyObject* netGetMainActorSkillGroup(PyObject* poSelf, PyObject* poArgs)
  152. {
  153. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  154. return Py_BuildValue("i", rkNetStream.GetMainActorSkillGroup());
  155. }
  156.  
  157. PyObject* netIsSelectedEmpire(PyObject* poSelf, PyObject* poArgs)
  158. {
  159. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  160. return Py_BuildValue("i", rkNetStream.IsSelectedEmpire());
  161. }
  162.  
  163.  
  164. PyObject* netGetAccountCharacterSlotDataInteger(PyObject* poSelf, PyObject* poArgs)
  165. {
  166. int nIndex;
  167. if (!PyTuple_GetInteger(poArgs, 0, &nIndex))
  168. return Py_BuildException();
  169.  
  170. int nType;
  171. if (!PyTuple_GetInteger(poArgs, 1, &nType))
  172. return Py_BuildException();
  173.  
  174. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  175. UINT uResult=rkNetStream.GetAccountCharacterSlotDatau(nIndex, nType);
  176. return Py_BuildValue("i", uResult);
  177. }
  178.  
  179. PyObject* netGetAccountCharacterSlotDataString(PyObject* poSelf, PyObject* poArgs)
  180. {
  181. int nIndex;
  182. if (!PyTuple_GetInteger(poArgs, 0, &nIndex))
  183. return Py_BuildException();
  184.  
  185. int nType;
  186. if (!PyTuple_GetInteger(poArgs, 1, &nType))
  187. return Py_BuildException();
  188.  
  189. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  190. return Py_BuildValue("s", rkNetStream.GetAccountCharacterSlotDataz(nIndex, nType));
  191. }
  192.  
  193. // SUPPORT_BGM
  194. PyObject* netGetFieldMusicFileName(PyObject* poSelf, PyObject* poArgs)
  195. {
  196. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  197. return Py_BuildValue("s", rkNetStream.GetFieldMusicFileName());
  198. }
  199.  
  200. PyObject* netGetFieldMusicVolume(PyObject* poSelf, PyObject* poArgs)
  201. {
  202. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  203. return Py_BuildValue("f", rkNetStream.GetFieldMusicVolume());
  204. }
  205. // END_OF_SUPPORT_BGM
  206.  
  207. PyObject* netSetPhaseWindow(PyObject* poSelf, PyObject* poArgs)
  208. {
  209. int ePhaseWnd;
  210. if (!PyTuple_GetInteger(poArgs, 0, &ePhaseWnd))
  211. return Py_BuildException();
  212.  
  213. PyObject* poPhaseWnd;
  214. if (!PyTuple_GetObject(poArgs, 1, &poPhaseWnd))
  215. return Py_BuildException();
  216.  
  217. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  218. rkNetStream.SetPhaseWindow(ePhaseWnd, poPhaseWnd);
  219. return Py_BuildNone();
  220. }
  221.  
  222. PyObject* netClearPhaseWindow(PyObject* poSelf, PyObject* poArgs)
  223. {
  224. int ePhaseWnd;
  225. if (!PyTuple_GetInteger(poArgs, 0, &ePhaseWnd))
  226. return Py_BuildException();
  227.  
  228. PyObject* poPhaseWnd;
  229. if (!PyTuple_GetObject(poArgs, 1, &poPhaseWnd))
  230. return Py_BuildException();
  231.  
  232. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  233. rkNetStream.ClearPhaseWindow(ePhaseWnd, poPhaseWnd);
  234. return Py_BuildNone();
  235. }
  236.  
  237. PyObject* netSetServerCommandParserWindow(PyObject* poSelf, PyObject* poArgs)
  238. {
  239. PyObject* poPhaseWnd;
  240. if (!PyTuple_GetObject(poArgs, 0, &poPhaseWnd))
  241. return Py_BuildException();
  242.  
  243. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  244. rkNetStream.SetServerCommandParserWindow(poPhaseWnd);
  245. return Py_BuildNone();
  246. }
  247.  
  248. PyObject* netSetAccountConnectorHandler(PyObject* poSelf, PyObject* poArgs)
  249. {
  250. PyObject* poPhaseWnd;
  251. if (!PyTuple_GetObject(poArgs, 0, &poPhaseWnd))
  252. return Py_BuildException();
  253.  
  254. CAccountConnector & rkAccountConnector = CAccountConnector::Instance();
  255. rkAccountConnector.SetHandler(poPhaseWnd);
  256. return Py_BuildNone();
  257. }
  258.  
  259. PyObject* netSetHandler(PyObject* poSelf, PyObject* poArgs)
  260. {
  261. PyObject* poHandler;
  262.  
  263. if (!PyTuple_GetObject(poArgs, 0, &poHandler))
  264. return Py_BuildException();
  265.  
  266. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  267. rkNetStream.SetHandler(poHandler);
  268. return Py_BuildNone();
  269. }
  270.  
  271. PyObject* netSetTCPRecvBufferSize(PyObject* poSelf, PyObject* poArgs)
  272. {
  273. int bufSize;
  274. if (!PyTuple_GetInteger(poArgs, 0, &bufSize))
  275. return Py_BuildException();
  276.  
  277. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  278. rkNetStream.SetRecvBufferSize(bufSize);
  279. return Py_BuildNone();
  280. }
  281.  
  282. PyObject* netSetTCPSendBufferSize(PyObject* poSelf, PyObject* poArgs)
  283. {
  284. int bufSize;
  285. if (!PyTuple_GetInteger(poArgs, 0, &bufSize))
  286. return Py_BuildException();
  287.  
  288. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  289. rkNetStream.SetSendBufferSize(bufSize);
  290. return Py_BuildNone();
  291. }
  292.  
  293. PyObject* netSetUDPRecvBufferSize(PyObject* poSelf, PyObject* poArgs)
  294. {
  295. int bufSize;
  296. if (!PyTuple_GetInteger(poArgs, 0, &bufSize))
  297. return Py_BuildException();
  298.  
  299. //CPythonNetworkDatagram::Instance().SetRecvBufferSize(bufSize);
  300. return Py_BuildNone();
  301. }
  302.  
  303. PyObject* netSetMarkServer(PyObject* poSelf, PyObject* poArgs)
  304. {
  305. char* szAddr;
  306. if (!PyTuple_GetString(poArgs, 0, &szAddr))
  307. return Py_BuildException();
  308.  
  309. int port;
  310. if (!PyTuple_GetInteger(poArgs, 1, &port))
  311. return Py_BuildException();
  312.  
  313. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  314. rkNetStream.SetMarkServer(szAddr, port);
  315. return Py_BuildNone();
  316. }
  317.  
  318. PyObject* netConnectTCP(PyObject* poSelf, PyObject* poArgs)
  319. {
  320. char* szAddr;
  321. if (!PyTuple_GetString(poArgs, 0, &szAddr))
  322. return Py_BuildException();
  323.  
  324. int port;
  325. if (!PyTuple_GetInteger(poArgs, 1, &port))
  326. return Py_BuildException();
  327.  
  328. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  329. rkNetStream.ConnectLoginServer(szAddr, port);
  330. return Py_BuildNone();
  331. }
  332.  
  333. PyObject* netConnectUDP(PyObject* poSelf, PyObject* poArgs)
  334. {
  335. char * c_szIP;
  336. if (!PyTuple_GetString(poArgs, 0, &c_szIP))
  337. return Py_BuildException();
  338. int iPort;
  339. if (!PyTuple_GetInteger(poArgs, 1, &iPort))
  340. return Py_BuildException();
  341.  
  342. //CPythonNetworkDatagram::Instance().SetConnection(c_szIP, iPort);
  343. return Py_BuildNone();
  344. }
  345.  
  346. PyObject* netConnectToAccountServer(PyObject* poSelf, PyObject* poArgs)
  347. {
  348. char* addr;
  349. if (!PyTuple_GetString(poArgs, 0, &addr))
  350. return Py_BuildException();
  351.  
  352. int port;
  353. if (!PyTuple_GetInteger(poArgs, 1, &port))
  354. return Py_BuildException();
  355.  
  356. char* account_addr;
  357. if (!PyTuple_GetString(poArgs, 2, &account_addr))
  358. return Py_BuildException();
  359.  
  360. int account_port;
  361. if (!PyTuple_GetInteger(poArgs, 3, &account_port))
  362. return Py_BuildException();
  363.  
  364. CAccountConnector & rkAccountConnector = CAccountConnector::Instance();
  365. rkAccountConnector.Connect(addr, port, account_addr, account_port);
  366. return Py_BuildNone();
  367. }
  368.  
  369. ///////////////////////////////////////////////////////////////////////////////////////////////////
  370.  
  371. PyObject* netSetLoginInfo(PyObject* poSelf, PyObject* poArgs)
  372. {
  373. char* szName;
  374. if (!PyTuple_GetString(poArgs, 0, &szName))
  375. return Py_BuildException();
  376.  
  377. char* szPwd;
  378. if (!PyTuple_GetString(poArgs, 1, &szPwd))
  379. return Py_BuildException();
  380.  
  381. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  382. CAccountConnector & rkAccountConnector = CAccountConnector::Instance();
  383. rkNetStream.SetLoginInfo(szName, szPwd);
  384. rkAccountConnector.SetLoginInfo(szName, szPwd);
  385. return Py_BuildNone();
  386. }
  387.  
  388. PyObject* netSetOfflinePhase(PyObject* poSelf, PyObject* poArgs)
  389. {
  390. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  391. rkNetStream.SetOffLinePhase();
  392. return Py_BuildNone();
  393. }
  394.  
  395. PyObject* netSendSelectEmpirePacket(PyObject* poSelf, PyObject* poArgs)
  396. {
  397. int iEmpireIndex;
  398. if (!PyTuple_GetInteger(poArgs, 0, &iEmpireIndex))
  399. return Py_BuildException();
  400.  
  401. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  402. rkNetStream.SendSelectEmpirePacket(iEmpireIndex);
  403. return Py_BuildNone();
  404. }
  405.  
  406. PyObject* netSendLoginPacket(PyObject* poSelf, PyObject* poArgs)
  407. {
  408. char* szName;
  409. if (!PyTuple_GetString(poArgs, 0, &szName))
  410. return Py_BuildException();
  411.  
  412. char* szPwd;
  413. if (!PyTuple_GetString(poArgs, 1, &szPwd))
  414. return Py_BuildException();
  415.  
  416. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  417. rkNetStream.SendLoginPacket(szName, szPwd);
  418. return Py_BuildNone();
  419. }
  420.  
  421. PyObject* netSendChinaMatrixCardPacket(PyObject* poSelf, PyObject* poArgs)
  422. {
  423. char* szMatrixCardString;
  424. if (!PyTuple_GetString(poArgs, 0, &szMatrixCardString))
  425. return Py_BuildException();
  426.  
  427. CAccountConnector & rkAccountConnector = CAccountConnector::Instance();
  428. rkAccountConnector.SendChinaMatrixCardPacket(szMatrixCardString);
  429. return Py_BuildNone();
  430. }
  431.  
  432. PyObject* netSendRunupMatrixCardPacket(PyObject* poSelf, PyObject* poArgs)
  433. {
  434. char* szMatrixCardString;
  435. if (!PyTuple_GetString(poArgs, 0, &szMatrixCardString))
  436. return Py_BuildException();
  437.  
  438. CAccountConnector & rkAccountConnector = CAccountConnector::Instance();
  439. rkAccountConnector.SendRunupMatrixCardPacket(szMatrixCardString);
  440. return Py_BuildNone();
  441. }
  442.  
  443. PyObject* netSendNEWCIBNPasspodAnswerPacket(PyObject* poSelf, PyObject* poArgs)
  444. {
  445. char* szMatrixCardString;
  446. if (!PyTuple_GetString(poArgs, 0, &szMatrixCardString))
  447. return Py_BuildException();
  448.  
  449. CAccountConnector & rkAccountConnector = CAccountConnector::Instance();
  450. rkAccountConnector.SendNEWCIBNPasspodAnswerPacket(szMatrixCardString);
  451. return Py_BuildNone();
  452. }
  453.  
  454.  
  455. PyObject* netDirectEnter(PyObject* poSelf, PyObject* poArgs)
  456. {
  457. int nChrSlot;
  458. if (!PyTuple_GetInteger(poArgs, 0, &nChrSlot))
  459. return Py_BuildException();
  460.  
  461. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  462. rkNetStream.ConnectGameServer(nChrSlot);
  463. return Py_BuildNone();
  464. }
  465.  
  466. PyObject* netSendSelectCharacterPacket(PyObject* poSelf, PyObject* poArgs)
  467. {
  468. int Index;
  469. if (!PyTuple_GetInteger(poArgs, 0, &Index))
  470. return Py_BuildException();
  471.  
  472. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  473. rkNetStream.SendSelectCharacterPacket((BYTE) Index);
  474. return Py_BuildNone();
  475. }
  476.  
  477. PyObject* netSendChangeNamePacket(PyObject* poSelf, PyObject* poArgs)
  478. {
  479. int iIndex;
  480. if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
  481. return Py_BuildException();
  482. char* szName;
  483. if (!PyTuple_GetString(poArgs, 1, &szName))
  484. return Py_BuildException();
  485.  
  486. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  487. rkNetStream.SendChangeNamePacket((BYTE)iIndex, szName);
  488. return Py_BuildNone();
  489. }
  490.  
  491. PyObject* netEnableChatInsultFilter(PyObject* poSelf, PyObject* poArgs)
  492. {
  493. int nEnable;
  494. if (!PyTuple_GetInteger(poArgs, 0, &nEnable))
  495. return Py_BuildException();
  496.  
  497. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  498. rkNetStream.EnableChatInsultFilter(nEnable ? true : false);
  499. return Py_BuildNone();
  500. }
  501.  
  502. PyObject* netIsChatInsultIn(PyObject* poSelf, PyObject* poArgs)
  503. {
  504. char* szMsg;
  505. if (!PyTuple_GetString(poArgs, 0, &szMsg))
  506. return Py_BuildException();
  507.  
  508. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  509. return Py_BuildValue("i", rkNetStream.IsChatInsultIn(szMsg));
  510. }
  511.  
  512.  
  513. PyObject* netIsInsultIn(PyObject* poSelf, PyObject* poArgs)
  514. {
  515. char* szMsg;
  516. if (!PyTuple_GetString(poArgs, 0, &szMsg))
  517. return Py_BuildException();
  518.  
  519. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  520. return Py_BuildValue("i", rkNetStream.IsInsultIn(szMsg));
  521. }
  522.  
  523. PyObject* netSendWhisperPacket(PyObject* poSelf, PyObject* poArgs)
  524. {
  525. char* szName;
  526. char* szLine;
  527.  
  528. if (!PyTuple_GetString(poArgs, 0, &szName))
  529. return Py_BuildException();
  530.  
  531. if (!PyTuple_GetString(poArgs, 1, &szLine))
  532. return Py_BuildException();
  533.  
  534. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  535. rkNetStream.SendWhisperPacket(szName, szLine);
  536. return Py_BuildNone();
  537. }
  538.  
  539. PyObject* netSendMobileMessagePacket(PyObject* poSelf, PyObject* poArgs)
  540. {
  541. char* szName;
  542. char* szLine;
  543. if (!PyTuple_GetString(poArgs, 0, &szName))
  544. return Py_BuildException();
  545.  
  546. if (!PyTuple_GetString(poArgs, 1, &szLine))
  547. return Py_BuildException();
  548.  
  549. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  550. rkNetStream.SendMobileMessagePacket(szName, szLine);
  551. return Py_BuildNone();
  552. }
  553.  
  554. PyObject* netSendCharacterPositionPacket(PyObject* poSelf, PyObject* poArgs)
  555. {
  556. int iPosition;
  557. if (!PyTuple_GetInteger(poArgs, 0, &iPosition))
  558. return Py_BuildException();
  559.  
  560. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  561. rkNetStream.SendCharacterPositionPacket((BYTE) iPosition);
  562. return Py_BuildNone();
  563. }
  564.  
  565. PyObject* netSendChatPacket(PyObject* poSelf, PyObject* poArgs)
  566. {
  567. char* szLine;
  568. if (!PyTuple_GetString(poArgs, 0, &szLine))
  569. return Py_BuildException();
  570. int iType;
  571. if (!PyTuple_GetInteger(poArgs, 1, &iType))
  572. {
  573. iType = CHAT_TYPE_TALKING;
  574. }
  575.  
  576. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  577. rkNetStream.SendChatPacket(szLine, iType);
  578. return Py_BuildNone();
  579. }
  580.  
  581. PyObject* netSendEmoticon(PyObject* poSelf, PyObject* poArgs)
  582. {
  583. int eEmoticon;
  584. if (!PyTuple_GetInteger(poArgs, 0, &eEmoticon))
  585. return Py_BuildException();
  586.  
  587. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  588. rkNetStream.SendEmoticon(eEmoticon);
  589. return Py_BuildNone();
  590. }
  591.  
  592. PyObject* netSendCreateCharacterPacket(PyObject* poSelf, PyObject* poArgs)
  593. {
  594. int index;
  595. if (!PyTuple_GetInteger(poArgs, 0, &index))
  596. return Py_BuildException();
  597.  
  598. char* name;
  599. if (!PyTuple_GetString(poArgs, 1, &name))
  600. return Py_BuildException();
  601.  
  602. int job;
  603. if (!PyTuple_GetInteger(poArgs, 2, &job))
  604. return Py_BuildException();
  605.  
  606. int shape;
  607. if (!PyTuple_GetInteger(poArgs, 3, &shape))
  608. return Py_BuildException();
  609.  
  610. int stat1;
  611. if (!PyTuple_GetInteger(poArgs, 4, &stat1))
  612. return Py_BuildException();
  613. int stat2;
  614. if (!PyTuple_GetInteger(poArgs, 5, &stat2))
  615. return Py_BuildException();
  616. int stat3;
  617. if (!PyTuple_GetInteger(poArgs, 6, &stat3))
  618. return Py_BuildException();
  619. int stat4;
  620. if (!PyTuple_GetInteger(poArgs, 7, &stat4))
  621. return Py_BuildException();
  622.  
  623. if (index<0 && index>3)
  624. return Py_BuildException();
  625.  
  626. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  627. rkNetStream.SendCreateCharacterPacket((BYTE) index, name, (BYTE) job, (BYTE) shape, stat1, stat2, stat3, stat4);
  628. return Py_BuildNone();
  629. }
  630.  
  631. PyObject* netSendDestroyCharacterPacket(PyObject* poSelf, PyObject* poArgs)
  632. {
  633. int index;
  634. if (!PyTuple_GetInteger(poArgs, 0, &index))
  635. return Py_BuildException();
  636.  
  637. char * szPrivateCode;
  638. if (!PyTuple_GetString(poArgs, 1, &szPrivateCode))
  639. return Py_BuildException();
  640.  
  641. if (index<0 && index>3)
  642. return Py_BuildException();
  643.  
  644. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  645. rkNetStream.SendDestroyCharacterPacket((BYTE) index, szPrivateCode);
  646. return Py_BuildNone();
  647. }
  648.  
  649. PyObject* netSendEnterGamePacket(PyObject* poSelf, PyObject* poArgs)
  650. {
  651. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  652. rkNetStream.SendEnterGame();
  653. return Py_BuildNone();
  654. }
  655.  
  656. PyObject* netOnClickPacket(PyObject* poSelf, PyObject* poArgs)
  657. {
  658. int index;
  659. if (!PyTuple_GetInteger(poArgs, 0, &index))
  660. return Py_BuildException();
  661.  
  662. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  663. rkNetStream.SendOnClickPacket(index);
  664.  
  665. return Py_BuildNone();
  666. }
  667.  
  668. PyObject* netSendItemUsePacket(PyObject* poSelf, PyObject* poArgs)
  669. {
  670. TItemPos Cell;
  671. switch (PyTuple_Size(poArgs))
  672. {
  673. case 1:
  674. if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
  675. return Py_BuildException();
  676. break;
  677. case 2:
  678. if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type))
  679. return Py_BuildException();
  680. if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
  681. return Py_BuildException();
  682. break;
  683. default:
  684. return Py_BuildException();
  685. }
  686.  
  687. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  688. rkNetStream.SendItemUsePacket(Cell);
  689. return Py_BuildNone();
  690. }
  691.  
  692. PyObject* netSendItemUseToItemPacket(PyObject* poSelf, PyObject* poArgs)
  693. {
  694. TItemPos SourceCell;
  695. TItemPos TargetCell;
  696. switch (PyTuple_Size(poArgs))
  697. {
  698. case 2:
  699. if (!PyTuple_GetInteger(poArgs, 0, &SourceCell.cell))
  700. return Py_BuildException();
  701.  
  702. if (!PyTuple_GetInteger(poArgs, 1, &TargetCell.cell))
  703. return Py_BuildException();
  704. break;
  705. case 4:
  706. if (!PyTuple_GetByte(poArgs, 0, &SourceCell.window_type))
  707. return Py_BuildException();
  708.  
  709. if (!PyTuple_GetInteger(poArgs, 1, &SourceCell.cell))
  710. return Py_BuildException();
  711.  
  712. if (!PyTuple_GetByte(poArgs, 2, &TargetCell.window_type))
  713. return Py_BuildException();
  714.  
  715. if (!PyTuple_GetInteger(poArgs, 3, &TargetCell.cell))
  716. return Py_BuildException();
  717. break;
  718. default:
  719. return Py_BuildException();
  720. }
  721. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  722. rkNetStream.SendItemUseToItemPacket(SourceCell, TargetCell);
  723. return Py_BuildNone();
  724. }
  725.  
  726. PyObject* netSendItemDropPacket(PyObject* poSelf, PyObject* poArgs)
  727. {
  728. TItemPos Cell;
  729. switch (PyTuple_Size(poArgs))
  730. {
  731. case 1:
  732. if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
  733. return Py_BuildException();
  734. break;
  735. case 2:
  736. if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type))
  737. return Py_BuildException();
  738. if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
  739. return Py_BuildException();
  740. break;
  741. default:
  742. return Py_BuildException();
  743. }
  744.  
  745. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  746. rkNetStream.SendItemDropPacket(Cell, 0);
  747. return Py_BuildNone();
  748. }
  749.  
  750. PyObject* netSendItemDestroyPacket(PyObject* poSelf, PyObject* poArgs)
  751. {
  752. TItemPos Cell;
  753.  
  754. if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
  755. return Py_BuildException();
  756.  
  757. CPythonNetworkStream& rkNetStream = CPythonNetworkStream::Instance();
  758. rkNetStream.SendItemDestroyPacket(Cell);
  759. return Py_BuildNone();
  760. }
  761.  
  762. PyObject* netSendItemDropPacketNew(PyObject* poSelf, PyObject* poArgs)
  763. {
  764. TItemPos Cell;
  765. int count;
  766. switch (PyTuple_Size(poArgs))
  767. {
  768. case 2:
  769. if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
  770. return Py_BuildException();
  771. if (!PyTuple_GetInteger(poArgs, 1, &count))
  772. return Py_BuildException();
  773.  
  774. break;
  775. case 3:
  776. if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type))
  777. return Py_BuildException();
  778. if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
  779. return Py_BuildException();
  780. if (!PyTuple_GetInteger(poArgs, 2, &count))
  781. return Py_BuildException();
  782.  
  783. break;
  784. default:
  785. return Py_BuildException();
  786. }
  787. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  788. rkNetStream.SendItemDropPacketNew(Cell, 0, count);
  789. return Py_BuildNone();
  790. }
  791.  
  792. PyObject* netSendElkDropPacket(PyObject* poSelf, PyObject* poArgs)
  793. {
  794. int iElk;
  795. if (!PyTuple_GetInteger(poArgs, 0, &iElk))
  796. return Py_BuildException();
  797.  
  798. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  799. rkNetStream.SendItemDropPacket(TItemPos(RESERVED_WINDOW, 0), (DWORD) iElk);
  800. return Py_BuildNone();
  801. }
  802.  
  803. PyObject* netSendGoldDropPacketNew(PyObject* poSelf, PyObject* poArgs)
  804. {
  805. int iElk;
  806. if (!PyTuple_GetInteger(poArgs, 0, &iElk))
  807. return Py_BuildException();
  808.  
  809. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  810. rkNetStream.SendItemDropPacketNew(TItemPos (RESERVED_WINDOW, 0), (DWORD) iElk, 0);
  811. return Py_BuildNone();
  812. }
  813.  
  814. PyObject* netSendItemMovePacket(PyObject* poSelf, PyObject* poArgs)
  815. {
  816. TItemPos Cell;
  817. TItemPos ChangeCell;
  818. int num;
  819.  
  820. switch (PyTuple_Size(poArgs))
  821. {
  822. case 3:
  823. if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
  824. return Py_BuildException();
  825. if (!PyTuple_GetInteger(poArgs, 1, &ChangeCell.cell))
  826. return Py_BuildException();
  827. if (!PyTuple_GetInteger(poArgs, 2, &num))
  828. return Py_BuildException();
  829. break;
  830. case 5:
  831. {
  832. if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type))
  833. return Py_BuildException();
  834. if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
  835. return Py_BuildException();
  836. if (!PyTuple_GetByte(poArgs, 2, &ChangeCell.window_type))
  837. return Py_BuildException();
  838. if (!PyTuple_GetInteger(poArgs, 3, &ChangeCell.cell))
  839. return Py_BuildException();
  840. if (!PyTuple_GetInteger(poArgs, 4, &num))
  841. return Py_BuildException();
  842. }
  843. break;
  844. default:
  845. return Py_BuildException();
  846. }
  847.  
  848. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  849. rkNetStream.SendItemMovePacket(Cell, ChangeCell, (BYTE) num);
  850. return Py_BuildNone();
  851. }
  852.  
  853. PyObject* netSendItemPickUpPacket(PyObject* poSelf, PyObject* poArgs)
  854. {
  855. int vid;
  856. if (!PyTuple_GetInteger(poArgs, 0, &vid))
  857. return Py_BuildException();
  858.  
  859. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  860. rkNetStream.SendItemPickUpPacket(vid);
  861. return Py_BuildNone();
  862. }
  863.  
  864. PyObject* netSendGiveItemPacket(PyObject* poSelf, PyObject* poArgs)
  865. {
  866. int iTargetVID;
  867. TItemPos Cell;
  868. int iItemCount;
  869. switch (PyTuple_Size(poArgs))
  870. {
  871. case 3:
  872. if (!PyTuple_GetInteger(poArgs, 0, &iTargetVID))
  873. return Py_BuildException();
  874. if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
  875. return Py_BuildException();
  876. if (!PyTuple_GetInteger(poArgs, 2, &iItemCount))
  877. return Py_BuildException();
  878. break;
  879. case 4:
  880. if (!PyTuple_GetInteger(poArgs, 0, &iTargetVID))
  881. return Py_BuildException();
  882. if (!PyTuple_GetByte(poArgs, 1, &Cell.window_type))
  883. return Py_BuildException();
  884. if (!PyTuple_GetInteger(poArgs, 2, &Cell.cell))
  885. return Py_BuildException();
  886. if (!PyTuple_GetInteger(poArgs, 3, &iItemCount))
  887. return Py_BuildException();
  888. break;
  889. default:
  890. break;
  891. }
  892.  
  893. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  894. rkNetStream.SendGiveItemPacket(iTargetVID, Cell, iItemCount);
  895. return Py_BuildNone();
  896. }
  897.  
  898. PyObject* netSendShopEndPacket(PyObject* poSelf, PyObject* poArgs)
  899. {
  900. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  901. rkNetStream.SendShopEndPacket();
  902. return Py_BuildNone();
  903. }
  904.  
  905. PyObject* netSendShopBuyPacket(PyObject* poSelf, PyObject* poArgs)
  906. {
  907. int iCount;
  908. if (!PyTuple_GetInteger(poArgs, 0, &iCount))
  909. return Py_BuildException();
  910.  
  911. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  912. rkNetStream.SendShopBuyPacket(iCount);
  913. return Py_BuildNone();
  914. }
  915.  
  916. PyObject* netSendShopSellPacket(PyObject* poSelf, PyObject* poArgs)
  917. {
  918. int iSlotNumber;
  919. if (!PyTuple_GetInteger(poArgs, 0, &iSlotNumber))
  920. return Py_BuildException();
  921. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  922. rkNetStream.SendShopSellPacket(iSlotNumber);
  923. return Py_BuildNone();
  924. }
  925.  
  926. PyObject* netSendShopSellPacketNew(PyObject* poSelf, PyObject* poArgs)
  927. {
  928. int iSlotNumber;
  929. if (!PyTuple_GetInteger(poArgs, 0, &iSlotNumber))
  930. return Py_BuildException();
  931. int iCount;
  932. if (!PyTuple_GetInteger(poArgs, 1, &iCount))
  933. return Py_BuildException();
  934. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  935. rkNetStream.SendShopSellPacketNew(iSlotNumber, iCount);
  936. return Py_BuildNone();
  937. }
  938.  
  939. PyObject* netSendOfflineShopEndPacket(PyObject* poSelf, PyObject* poArgs)
  940. {
  941. CPythonNetworkStream& rkNetStream = CPythonNetworkStream::Instance();
  942. rkNetStream.SendOfflineShopEndPacket();
  943. return Py_BuildNone();
  944. }
  945.  
  946. PyObject* netSendOfflineShopBuyPacket(PyObject* poSelf, PyObject* poArgs)
  947. {
  948. int iCount;
  949. if (!PyTuple_GetInteger(poArgs, 0, &iCount))
  950. return Py_BuildException();
  951.  
  952. CPythonNetworkStream& rkNetStream = CPythonNetworkStream::Instance();
  953. rkNetStream.SendOfflineShopBuyPacket(iCount);
  954. return Py_BuildNone();
  955. }
  956.  
  957. PyObject * netSendChangeOfflineShopTime(PyObject * poSelf, PyObject * poArgs)
  958. {
  959. BYTE bTime = 0;
  960. if (!PyTuple_GetByte(poArgs, 0, &bTime))
  961. return Py_BuildException();
  962.  
  963. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  964. rkNetStream.SendChangeOfflineShopTime(bTime);
  965. return Py_BuildNone();
  966. }
  967.  
  968. PyObject * netSendChangePriceOfflineShopItem(PyObject * poSelf, PyObject * poArgs)
  969. {
  970. BYTE bPos;
  971. #ifdef ENABLE_MAXIMUM_YANG_FOR_OFFLINE_SHOP
  972. long long llPrice;
  973. #else
  974. int iPrice;
  975. #endif
  976.  
  977. if (!PyTuple_GetInteger(poArgs, 0, &bPos))
  978. return Py_BuildException();
  979. #ifdef ENABLE_MAXIMUM_YANG_FOR_OFFLINE_SHOP
  980. if (!PyTuple_GetLongLong(poArgs, 1, &llPrice))
  981. return Py_BuildException();
  982. #else
  983. if (!PyTuple_GetInteger(poArgs, 1, &iPrice))
  984. return Py_BuildException();
  985. #endif
  986.  
  987. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  988. #ifdef ENABLE_MAXIMUM_YANG_FOR_OFFLINE_SHOP
  989. rkNetStream.SendChangePriceOfflineShopItem(bPos, llPrice);
  990. #else
  991. rkNetStream.SendChangePriceOfflineShopItem(bPos, iPrice);
  992. #endif
  993. return Py_BuildNone();
  994. }
  995.  
  996. PyObject * netSendRefreshOfflineShop(PyObject * poSelf, PyObject * poArgs)
  997. {
  998. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  999. rkNetStream.SendRefreshOfflineShop();
  1000. return Py_BuildNone();
  1001. }
  1002.  
  1003. PyObject * netSendAddOfflineShopItem(PyObject * poSelf, PyObject * poArgs)
  1004. {
  1005. BYTE bDisplayPos;
  1006. BYTE bPos;
  1007. #ifdef ENABLE_MAXIMUM_YANG_FOR_OFFLINE_SHOP
  1008. long long llPrice;
  1009. #else
  1010. int iPrice;
  1011. #endif
  1012.  
  1013. if (!PyTuple_GetInteger(poArgs, 0, &bDisplayPos))
  1014. return Py_BuildException();
  1015. if (!PyTuple_GetInteger(poArgs, 1, &bPos))
  1016. return Py_BuildException();
  1017. #ifdef ENABLE_MAXIMUM_YANG_FOR_OFFLINE_SHOP
  1018. if (!PyTuple_GetLongLong(poArgs, 2, &llPrice))
  1019. return Py_BuildException();
  1020. #else
  1021. if (!PyTuple_GetInteger(poArgs, 2, &iPrice))
  1022. return Py_BuildException();
  1023. #endif
  1024.  
  1025. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1026. #ifdef ENABLE_MAXIMUM_YANG_FOR_OFFLINE_SHOP
  1027. rkNetStream.SendAddOfflineShopItem(bDisplayPos, bPos, llPrice);
  1028. #else
  1029. rkNetStream.SendAddOfflineShopItem(bDisplayPos, bPos, iPrice);
  1030. #endif
  1031. return Py_BuildNone();
  1032. }
  1033.  
  1034. PyObject * netSendRemoveOfflineShopItem(PyObject * poSelf, PyObject * poArgs)
  1035. {
  1036. BYTE bPos;
  1037. if (!PyTuple_GetInteger(poArgs, 0, &bPos))
  1038. return Py_BuildException();
  1039.  
  1040. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1041. rkNetStream.SendRemoveOfflineShopItem(bPos);
  1042. return Py_BuildNone();
  1043. }
  1044.  
  1045. PyObject * netSendDestroyOfflineShop(PyObject * poSelf, PyObject * poArgs)
  1046. {
  1047. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1048. rkNetStream.SendDestroyOfflineShop();
  1049. return Py_BuildNone();
  1050. }
  1051.  
  1052. PyObject * netSendRefreshOfflineShopMoney(PyObject * poSelf, PyObject * poArgs)
  1053. {
  1054. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1055. rkNetStream.SendRefreshOfflineShopMoney();
  1056. return Py_BuildNone();
  1057. }
  1058.  
  1059. PyObject * netSendRefreshUnsoldItems(PyObject * poSelf, PyObject * poArgs)
  1060. {
  1061. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1062. rkNetStream.SendRefreshUnsoldItems();
  1063. return Py_BuildNone();
  1064. }
  1065.  
  1066. PyObject * netSendOfflineShopTakeItem(PyObject * poSelf, PyObject * poArgs)
  1067. {
  1068. BYTE bDisplayPos;
  1069. if (!PyTuple_GetInteger(poArgs, 0, &bDisplayPos))
  1070. return Py_BuildException();
  1071.  
  1072. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1073. rkNetStream.SendOfflineShopTakeItem(bDisplayPos);
  1074. return Py_BuildNone();
  1075. }
  1076.  
  1077. PyObject * netSendOfflineShopWithdrawMoney(PyObject * poSelf, PyObject * poArgs)
  1078. {
  1079. long long llMoney;
  1080. if (!PyTuple_GetLongLong(poArgs, 0, &llMoney))
  1081. return Py_BuildException();
  1082.  
  1083. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1084. rkNetStream.SendOfflineShopWithdrawMoney(llMoney);
  1085. return Py_BuildNone();
  1086. }
  1087.  
  1088. PyObject * netSendOfflineShopCheck(PyObject * poSelf, PyObject * poArgs)
  1089. {
  1090. CPythonNetworkStream & rkNetStream = CPythonNetworkStream::instance();
  1091. rkNetStream.SendOfflineShopCheck();
  1092. return Py_BuildNone();
  1093. }
  1094.  
  1095. PyObject* netSendExchangeStartPacket(PyObject* poSelf, PyObject* poArgs)
  1096. {
  1097. int vid;
  1098. if (!PyTuple_GetInteger(poArgs, 0, &vid))
  1099. return Py_BuildException();
  1100.  
  1101. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1102. rkNetStream.SendExchangeStartPacket(vid);
  1103. return Py_BuildNone();
  1104. }
  1105.  
  1106. PyObject* netSendExchangeElkAddPacket(PyObject* poSelf, PyObject* poArgs)
  1107. {
  1108. int iElk;
  1109. if (!PyTuple_GetInteger(poArgs, 0, &iElk))
  1110. return Py_BuildException();
  1111.  
  1112. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1113. rkNetStream.SendExchangeElkAddPacket(iElk);
  1114. return Py_BuildNone();
  1115. }
  1116.  
  1117. PyObject* netSendExchangeItemAddPacket(PyObject* poSelf, PyObject* poArgs)
  1118. {
  1119. BYTE bWindowType;
  1120. if (!PyTuple_GetInteger(poArgs, 0, &bWindowType))
  1121. return Py_BuildException();
  1122. WORD wSlotIndex;
  1123. if (!PyTuple_GetInteger(poArgs, 1, &wSlotIndex))
  1124. return Py_BuildException();
  1125. int iDisplaySlotIndex;
  1126. if (!PyTuple_GetInteger(poArgs, 2, &iDisplaySlotIndex))
  1127. return Py_BuildException();
  1128.  
  1129. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1130. rkNetStream.SendExchangeItemAddPacket(TItemPos(bWindowType, wSlotIndex), iDisplaySlotIndex);
  1131. return Py_BuildNone();
  1132. }
  1133.  
  1134. PyObject* netSendExchangeItemDelPacket(PyObject* poSelf, PyObject* poArgs)
  1135. {
  1136. int pos;
  1137. if (!PyTuple_GetInteger(poArgs, 0, &pos))
  1138. return Py_BuildException();
  1139.  
  1140. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1141. rkNetStream.SendExchangeItemDelPacket((BYTE) pos);
  1142. return Py_BuildNone();
  1143. }
  1144.  
  1145. PyObject* netSendExchangeAcceptPacket(PyObject* poSelf, PyObject* poArgs)
  1146. {
  1147. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1148. rkNetStream.SendExchangeAcceptPacket();
  1149. return Py_BuildNone();
  1150. }
  1151.  
  1152. PyObject* netSendExchangeExitPacket(PyObject* poSelf, PyObject* poArgs)
  1153. {
  1154. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1155. rkNetStream.SendExchangeExitPacket();
  1156. return Py_BuildNone();
  1157. }
  1158.  
  1159. PyObject* netExitApplication(PyObject* poSelf, PyObject* poArgs)
  1160. {
  1161. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1162. rkNetStream.ExitApplication();
  1163. return Py_BuildNone();
  1164. }
  1165.  
  1166. PyObject* netExitGame(PyObject* poSelf, PyObject* poArgs)
  1167. {
  1168. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1169. rkNetStream.ExitGame();
  1170. return Py_BuildNone();
  1171. }
  1172.  
  1173. PyObject* netLogOutGame(PyObject* poSelf, PyObject* poArgs)
  1174. {
  1175. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1176. rkNetStream.LogOutGame();
  1177. return Py_BuildNone();
  1178. }
  1179.  
  1180. PyObject* netDisconnect(PyObject* poSelf, PyObject* poArgs)
  1181. {
  1182. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1183. rkNetStream.SetOffLinePhase();
  1184. rkNetStream.Disconnect();
  1185.  
  1186. return Py_BuildNone();
  1187. }
  1188.  
  1189. PyObject* netIsConnect(PyObject* poSelf, PyObject* poArgs)
  1190. {
  1191. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1192. return Py_BuildValue("i", rkNetStream.IsOnline());
  1193. }
  1194.  
  1195. PyObject* netToggleGameDebugInfo(PyObject* poSelf, PyObject* poArgs)
  1196. {
  1197. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1198. rkNetStream.ToggleGameDebugInfo();
  1199. return Py_BuildNone();
  1200. }
  1201.  
  1202. PyObject* netRegisterEmoticonString(PyObject* poSelf, PyObject* poArgs)
  1203. {
  1204. char * pcEmoticonString;
  1205. if (!PyTuple_GetString(poArgs, 0, &pcEmoticonString))
  1206. return Py_BuildException();
  1207.  
  1208. CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
  1209. rkNetStream.RegisterEmoticonString(pcEmoticonString);
  1210. return Py_BuildNone();
  1211. }
  1212.  
  1213. PyObject* netSendMessengerAddByVIDPacket(PyObject* poSelf, PyObject* poArgs)
  1214. {
  1215. int vid;
  1216. if (!PyTuple_GetInteger(poArgs, 0, &vid))
  1217. return Py_BuildException();
  1218.  
  1219. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1220. rns.SendMessengerAddByVIDPacket(vid);
  1221.  
  1222. return Py_BuildNone();
  1223. }
  1224.  
  1225. PyObject* netSendMessengerAddByNamePacket(PyObject* poSelf, PyObject* poArgs)
  1226. {
  1227. char * szName;
  1228. if (!PyTuple_GetString(poArgs, 0, &szName))
  1229. return Py_BuildException();
  1230.  
  1231. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1232. rns.SendMessengerAddByNamePacket(szName);
  1233.  
  1234. return Py_BuildNone();
  1235. }
  1236.  
  1237. PyObject* netSendMessengerRemovePacket(PyObject* poSelf, PyObject* poArgs)
  1238. {
  1239. char * szKey;
  1240. if (!PyTuple_GetString(poArgs, 0, &szKey))
  1241. return Py_BuildException();
  1242. char * szName;
  1243. if (!PyTuple_GetString(poArgs, 1, &szName))
  1244. return Py_BuildException();
  1245.  
  1246. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1247. rns.SendMessengerRemovePacket(szKey, szName);
  1248.  
  1249. return Py_BuildNone();
  1250. }
  1251.  
  1252. PyObject* netSendPartyInvitePacket(PyObject* poSelf, PyObject* poArgs)
  1253. {
  1254. int vid;
  1255. if (!PyTuple_GetInteger(poArgs, 0, &vid))
  1256. return Py_BuildException();
  1257.  
  1258. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1259. rns.SendPartyInvitePacket(vid);
  1260.  
  1261. return Py_BuildNone();
  1262. }
  1263.  
  1264. PyObject* netSendPartyInviteAnswerPacket(PyObject* poSelf, PyObject* poArgs)
  1265. {
  1266. int vid;
  1267. if (!PyTuple_GetInteger(poArgs, 0, &vid))
  1268. return Py_BuildException();
  1269. int answer;
  1270. if (!PyTuple_GetInteger(poArgs, 1, &answer))
  1271. return Py_BuildException();
  1272.  
  1273. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1274. rns.SendPartyInviteAnswerPacket(vid, answer);
  1275.  
  1276. return Py_BuildNone();
  1277. }
  1278.  
  1279. PyObject* netSendPartyExitPacket(PyObject* poSelf, PyObject* poArgs)
  1280. {
  1281. IAbstractPlayer& rPlayer=IAbstractPlayer::GetSingleton();
  1282.  
  1283. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1284.  
  1285. DWORD dwVID = rPlayer.GetMainCharacterIndex();
  1286. DWORD dwPID;
  1287. if (rPlayer.PartyMemberVIDToPID(dwVID, &dwPID))
  1288. rns.SendPartyRemovePacket(dwPID);
  1289.  
  1290. return Py_BuildNone();
  1291. }
  1292.  
  1293. PyObject* netSendPartyRemovePacket(PyObject* poSelf, PyObject* poArgs)
  1294. {
  1295. int vid;
  1296. if (!PyTuple_GetInteger(poArgs, 0, &vid))
  1297. return Py_BuildException();
  1298.  
  1299. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1300. rns.SendPartyRemovePacket(vid);
  1301.  
  1302. return Py_BuildNone();
  1303. }
  1304.  
  1305. PyObject* netSendPartySetStatePacket(PyObject* poSelf, PyObject* poArgs)
  1306. {
  1307. int iVID;
  1308. if (!PyTuple_GetInteger(poArgs, 0, &iVID))
  1309. return Py_BuildException();
  1310. int iState;
  1311. if (!PyTuple_GetInteger(poArgs, 1, &iState))
  1312. return Py_BuildException();
  1313. int iFlag;
  1314. if (!PyTuple_GetInteger(poArgs, 2, &iFlag))
  1315. return Py_BuildException();
  1316.  
  1317. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1318. rns.SendPartySetStatePacket(iVID, iState, iFlag);
  1319.  
  1320. return Py_BuildNone();
  1321. }
  1322.  
  1323. PyObject* netSendPartyUseSkillPacket(PyObject* poSelf, PyObject* poArgs)
  1324. {
  1325. int iSkillIndex;
  1326. if (!PyTuple_GetInteger(poArgs, 0, &iSkillIndex))
  1327. return Py_BuildException();
  1328. int iVID;
  1329. if (!PyTuple_GetInteger(poArgs, 1, &iVID))
  1330. return Py_BuildException();
  1331.  
  1332. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1333. rns.SendPartyUseSkillPacket(iSkillIndex, iVID);
  1334.  
  1335. return Py_BuildNone();
  1336. }
  1337.  
  1338. PyObject* netSendPartyParameterPacket(PyObject* poSelf, PyObject* poArgs)
  1339. {
  1340. int iMode;
  1341. if (!PyTuple_GetInteger(poArgs, 0, &iMode))
  1342. return Py_BuildException();
  1343.  
  1344. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1345. rns.SendPartyParameterPacket(iMode);
  1346.  
  1347. return Py_BuildNone();
  1348. }
  1349.  
  1350. PyObject* netSendSafeboxSaveMoneyPacket(PyObject* poSelf, PyObject* poArgs)
  1351. {
  1352. int iMoney;
  1353. if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
  1354. return Py_BuildException();
  1355.  
  1356. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1357. rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_SAVE, iMoney);
  1358.  
  1359. return Py_BuildNone();
  1360. }
  1361.  
  1362. PyObject* netSendSafeboxWithdrawMoneyPacket(PyObject* poSelf, PyObject* poArgs)
  1363. {
  1364. int iMoney;
  1365. if (!PyTuple_GetInteger(poArgs, 0, &iMoney))
  1366. return Py_BuildException();
  1367.  
  1368. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1369. rns.SendSafeBoxMoneyPacket(SAFEBOX_MONEY_STATE_WITHDRAW, iMoney);
  1370.  
  1371. return Py_BuildNone();
  1372. }
  1373.  
  1374. PyObject* netSendSafeboxCheckinPacket(PyObject* poSelf, PyObject* poArgs)
  1375. {
  1376. TItemPos InventoryPos;
  1377. int iSafeBoxPos;
  1378.  
  1379. switch (PyTuple_Size(poArgs))
  1380. {
  1381. case 2:
  1382. InventoryPos.window_type = INVENTORY;
  1383. if (!PyTuple_GetInteger(poArgs, 0, &InventoryPos.cell))
  1384. return Py_BuildException();
  1385. if (!PyTuple_GetInteger(poArgs, 1, &iSafeBoxPos))
  1386. return Py_BuildException();
  1387. break;
  1388. case 3:
  1389. if (!PyTuple_GetInteger(poArgs, 0, &InventoryPos.window_type))
  1390. return Py_BuildException();
  1391. if (!PyTuple_GetInteger(poArgs, 1, &InventoryPos.cell))
  1392. return Py_BuildException();
  1393. if (!PyTuple_GetInteger(poArgs, 2, &iSafeBoxPos))
  1394. return Py_BuildException();
  1395. break;
  1396.  
  1397. }
  1398.  
  1399. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1400. rns.SendSafeBoxCheckinPacket(InventoryPos, iSafeBoxPos);
  1401.  
  1402. return Py_BuildNone();
  1403. }
  1404.  
  1405. PyObject* netSendSafeboxCheckoutPacket(PyObject* poSelf, PyObject* poArgs)
  1406. {
  1407. int iSafeBoxPos;
  1408. TItemPos InventoryPos;
  1409.  
  1410. switch (PyTuple_Size(poArgs))
  1411. {
  1412. case 2:
  1413. if (!PyTuple_GetInteger(poArgs, 0, &iSafeBoxPos))
  1414. return Py_BuildException();
  1415. if (!PyTuple_GetInteger(poArgs, 1, &InventoryPos.cell))
  1416. return Py_BuildException();
  1417. break;
  1418. case 3:
  1419. if (!PyTuple_GetInteger(poArgs, 0, &iSafeBoxPos))
  1420. return Py_BuildException();
  1421. if (!PyTuple_GetInteger(poArgs, 1, &InventoryPos.window_type))
  1422. return Py_BuildException();
  1423. if (!PyTuple_GetInteger(poArgs, 2, &InventoryPos.cell))
  1424. return Py_BuildException();
  1425. break;
  1426. default:
  1427. break;
  1428. }
  1429.  
  1430. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1431. rns.SendSafeBoxCheckoutPacket(iSafeBoxPos, InventoryPos);
  1432.  
  1433. return Py_BuildNone();
  1434. }
  1435.  
  1436. PyObject* netSendSafeboxItemMovePacket(PyObject* poSelf, PyObject* poArgs)
  1437. {
  1438. int iSourcePos;
  1439. if (!PyTuple_GetInteger(poArgs, 0, &iSourcePos))
  1440. return Py_BuildException();
  1441. int iTargetPos;
  1442. if (!PyTuple_GetInteger(poArgs, 1, &iTargetPos))
  1443. return Py_BuildException();
  1444. int iCount;
  1445. if (!PyTuple_GetInteger(poArgs, 2, &iCount))
  1446. return Py_BuildException();
  1447.  
  1448. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1449. rns.SendSafeBoxItemMovePacket(iSourcePos, iTargetPos, iCount);
  1450.  
  1451. return Py_BuildNone();
  1452. }
  1453.  
  1454. PyObject* netSendMallCheckoutPacket(PyObject* poSelf, PyObject* poArgs)
  1455. {
  1456. int iMallPos;
  1457. TItemPos InventoryPos;
  1458.  
  1459. switch (PyTuple_Size(poArgs))
  1460. {
  1461. case 2:
  1462. if (!PyTuple_GetInteger(poArgs, 0, &iMallPos))
  1463. return Py_BuildException();
  1464. if (!PyTuple_GetInteger(poArgs, 1, &InventoryPos.cell))
  1465. return Py_BuildException();
  1466. break;
  1467. case 3:
  1468. if (!PyTuple_GetInteger(poArgs, 0, &iMallPos))
  1469. return Py_BuildException();
  1470. if (!PyTuple_GetInteger(poArgs, 1, &InventoryPos.window_type))
  1471. return Py_BuildException();
  1472. if (!PyTuple_GetInteger(poArgs, 2, &InventoryPos.cell))
  1473. return Py_BuildException();
  1474. break;
  1475. default:
  1476. return Py_BuildException();
  1477. }
  1478. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1479. rns.SendMallCheckoutPacket(iMallPos, InventoryPos);
  1480.  
  1481. return Py_BuildNone();
  1482. }
  1483.  
  1484. PyObject* netSendAnswerMakeGuildPacket(PyObject* poSelf, PyObject* poArgs)
  1485. {
  1486. char * szName;
  1487. if (!PyTuple_GetString(poArgs, 0, &szName))
  1488. return Py_BuildException();
  1489.  
  1490. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1491. rns.SendAnswerMakeGuildPacket(szName);
  1492.  
  1493. return Py_BuildNone();
  1494. }
  1495.  
  1496. PyObject* netSendQuestInputStringPacket(PyObject* poSelf, PyObject* poArgs)
  1497. {
  1498. char * szString;
  1499. if (!PyTuple_GetString(poArgs, 0, &szString))
  1500. return Py_BuildException();
  1501.  
  1502. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1503. rns.SendQuestInputStringPacket(szString);
  1504.  
  1505. return Py_BuildNone();
  1506. }
  1507.  
  1508. PyObject * netSendQuestInputLongStringPacket(PyObject * poSelf, PyObject * poArgs)
  1509. {
  1510. char * szString;
  1511. if (!PyTuple_GetString(poArgs, 0, &szString))
  1512. return Py_BuildException();
  1513.  
  1514. CPythonNetworkStream & rns = CPythonNetworkStream::Instance();
  1515. rns.SendQuestInputStringLongPacket(szString);
  1516. return Py_BuildNone();
  1517. }
  1518.  
  1519. PyObject* netSendQuestConfirmPacket(PyObject* poSelf, PyObject* poArgs)
  1520. {
  1521. int iAnswer;
  1522. if (!PyTuple_GetInteger(poArgs, 0, &iAnswer))
  1523. return Py_BuildException();
  1524. int iPID;
  1525. if (!PyTuple_GetInteger(poArgs, 1, &iPID))
  1526. return Py_BuildException();
  1527.  
  1528. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1529. rns.SendQuestConfirmPacket(iAnswer, iPID);
  1530.  
  1531. return Py_BuildNone();
  1532. }
  1533.  
  1534. PyObject* netSendGuildAddMemberPacket(PyObject* poSelf, PyObject* poArgs)
  1535. {
  1536. int iVID;
  1537. if (!PyTuple_GetInteger(poArgs, 0, &iVID))
  1538. return Py_BuildException();
  1539.  
  1540. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1541. rns.SendGuildAddMemberPacket(iVID);
  1542.  
  1543. return Py_BuildNone();
  1544. }
  1545.  
  1546. PyObject* netSendGuildRemoveMemberPacket(PyObject* poSelf, PyObject* poArgs)
  1547. {
  1548. char * szKey;
  1549. if (!PyTuple_GetString(poArgs, 0, &szKey))
  1550. return Py_BuildException();
  1551.  
  1552. CPythonGuild::TGuildMemberData * pGuildMemberData;
  1553. if (!CPythonGuild::Instance().GetMemberDataPtrByName(szKey, &pGuildMemberData))
  1554. {
  1555. TraceError("netSendGuildRemoveMemberPacket(szKey=%s) - Can't Find Guild Member\n", szKey);
  1556. return Py_BuildNone();
  1557. }
  1558.  
  1559. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1560. rns.SendGuildRemoveMemberPacket(pGuildMemberData->dwPID);
  1561.  
  1562. return Py_BuildNone();
  1563. }
  1564.  
  1565. PyObject* netSendGuildChangeGradeNamePacket(PyObject* poSelf, PyObject* poArgs)
  1566. {
  1567. int iGradeNumber;
  1568. if (!PyTuple_GetInteger(poArgs, 0, &iGradeNumber))
  1569. return Py_BuildException();
  1570. char * szGradeName;
  1571. if (!PyTuple_GetString(poArgs, 1, &szGradeName))
  1572. return Py_BuildException();
  1573.  
  1574. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1575. rns.SendGuildChangeGradeNamePacket(iGradeNumber, szGradeName);
  1576.  
  1577. return Py_BuildNone();
  1578. }
  1579.  
  1580. PyObject* netSendGuildChangeGradeAuthorityPacket(PyObject* poSelf, PyObject* poArgs)
  1581. {
  1582. int iGradeNumber;
  1583. if (!PyTuple_GetInteger(poArgs, 0, &iGradeNumber))
  1584. return Py_BuildException();
  1585. int iAuthority;
  1586. if (!PyTuple_GetInteger(poArgs, 1, &iAuthority))
  1587. return Py_BuildException();
  1588.  
  1589. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1590. rns.SendGuildChangeGradeAuthorityPacket(iGradeNumber, iAuthority);
  1591.  
  1592. return Py_BuildNone();
  1593. }
  1594.  
  1595. PyObject* netSendGuildOfferPacket(PyObject* poSelf, PyObject* poArgs)
  1596. {
  1597. int iExperience;
  1598. if (!PyTuple_GetInteger(poArgs, 0, &iExperience))
  1599. return Py_BuildException();
  1600.  
  1601. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1602. rns.SendGuildOfferPacket(iExperience);
  1603.  
  1604. return Py_BuildNone();
  1605. }
  1606.  
  1607. PyObject* netSnedGuildPostCommentPacket(PyObject* poSelf, PyObject* poArgs)
  1608. {
  1609. char * szComment;
  1610. if (!PyTuple_GetString(poArgs, 0, &szComment))
  1611. return Py_BuildException();
  1612.  
  1613. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1614. rns.SendGuildPostCommentPacket(szComment);
  1615.  
  1616. return Py_BuildNone();
  1617. }
  1618.  
  1619. PyObject* netSnedGuildDeleteCommentPacket(PyObject* poSelf, PyObject* poArgs)
  1620. {
  1621. int iIndex;
  1622. if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
  1623. return Py_BuildException();
  1624.  
  1625. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1626. rns.SendGuildDeleteCommentPacket(iIndex);
  1627.  
  1628. return Py_BuildNone();
  1629. }
  1630.  
  1631. PyObject* netSendGuildRefreshCommentsPacket(PyObject* poSelf, PyObject* poArgs)
  1632. {
  1633. int iHightestIndex;
  1634. if (!PyTuple_GetInteger(poArgs, 0, &iHightestIndex))
  1635. return Py_BuildException();
  1636.  
  1637. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1638. rns.SendGuildRefreshCommentsPacket(iHightestIndex);
  1639.  
  1640. return Py_BuildNone();
  1641. }
  1642.  
  1643. PyObject* netSendGuildChangeMemberGradePacket(PyObject* poSelf, PyObject* poArgs)
  1644. {
  1645. int iPID;
  1646. if (!PyTuple_GetInteger(poArgs, 0, &iPID))
  1647. return Py_BuildException();
  1648. int iGradeNumber;
  1649. if (!PyTuple_GetInteger(poArgs, 1, &iGradeNumber))
  1650. return Py_BuildException();
  1651.  
  1652. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1653. rns.SendGuildChangeMemberGradePacket(iPID, iGradeNumber);
  1654.  
  1655. return Py_BuildNone();
  1656. }
  1657.  
  1658. PyObject* netSendGuildUseSkillPacket(PyObject* poSelf, PyObject* poArgs)
  1659. {
  1660. int iSkillID;
  1661. if (!PyTuple_GetInteger(poArgs, 0, &iSkillID))
  1662. return Py_BuildException();
  1663. int iTargetVID;
  1664. if (!PyTuple_GetInteger(poArgs, 1, &iTargetVID))
  1665. return Py_BuildException();
  1666.  
  1667. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1668. rns.SendGuildUseSkillPacket(iSkillID, iTargetVID);
  1669.  
  1670. return Py_BuildNone();
  1671. }
  1672.  
  1673. PyObject* netSendGuildChangeMemberGeneralPacket(PyObject* poSelf, PyObject* poArgs)
  1674. {
  1675. int iPID;
  1676. if (!PyTuple_GetInteger(poArgs, 0, &iPID))
  1677. return Py_BuildException();
  1678. int iFlag;
  1679. if (!PyTuple_GetInteger(poArgs, 1, &iFlag))
  1680. return Py_BuildException();
  1681.  
  1682. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1683. rns.SendGuildChangeMemberGeneralPacket(iPID, iFlag);
  1684.  
  1685. return Py_BuildNone();
  1686. }
  1687.  
  1688. PyObject* netSendGuildInviteAnswerPacket(PyObject* poSelf, PyObject* poArgs)
  1689. {
  1690. int iGuildID;
  1691. if (!PyTuple_GetInteger(poArgs, 0, &iGuildID))
  1692. return Py_BuildException();
  1693. int iAnswer;
  1694. if (!PyTuple_GetInteger(poArgs, 1, &iAnswer))
  1695. return Py_BuildException();
  1696.  
  1697. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1698. rns.SendGuildInviteAnswerPacket(iGuildID, iAnswer);
  1699.  
  1700. return Py_BuildNone();
  1701. }
  1702.  
  1703. PyObject* netSendGuildChargeGSPPacket(PyObject* poSelf, PyObject* poArgs)
  1704. {
  1705. int iGSP;
  1706. if (!PyTuple_GetInteger(poArgs, 0, &iGSP))
  1707. return Py_BuildException();
  1708.  
  1709. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1710. rns.SendGuildChargeGSPPacket(iGSP);
  1711.  
  1712. return Py_BuildNone();
  1713. }
  1714.  
  1715. PyObject* netSendGuildDepositMoneyPacket(PyObject* poSelf, PyObject* poArgs)
  1716. {
  1717. int iGSP;
  1718. if (!PyTuple_GetInteger(poArgs, 0, &iGSP))
  1719. return Py_BuildException();
  1720.  
  1721. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1722. rns.SendGuildDepositMoneyPacket(iGSP);
  1723.  
  1724. return Py_BuildNone();
  1725. }
  1726.  
  1727. PyObject* netSendGuildWithdrawMoneyPacket(PyObject* poSelf, PyObject* poArgs)
  1728. {
  1729. int iGSP;
  1730. if (!PyTuple_GetInteger(poArgs, 0, &iGSP))
  1731. return Py_BuildException();
  1732.  
  1733. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1734. rns.SendGuildWithdrawMoneyPacket(iGSP);
  1735.  
  1736. return Py_BuildNone();
  1737. }
  1738.  
  1739. PyObject* netSendRequestRefineInfoPacket(PyObject* poSelf, PyObject* poArgs)
  1740. {
  1741. int iSlotIndex;
  1742. if (!PyTuple_GetInteger(poArgs, 0, &iSlotIndex))
  1743. return Py_BuildException();
  1744.  
  1745. // CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1746. // rns.SendRequestRefineInfoPacket(iSlotIndex);
  1747. assert(!"netSendRequestRefineInfoPacket - 더이상 사용하지 않는 함수 입니다");
  1748.  
  1749. return Py_BuildNone();
  1750. }
  1751.  
  1752. PyObject* netSendRefinePacket(PyObject* poSelf, PyObject* poArgs)
  1753. {
  1754. int iSlotIndex;
  1755. if (!PyTuple_GetInteger(poArgs, 0, &iSlotIndex))
  1756. return Py_BuildException();
  1757. int iType;
  1758. if (!PyTuple_GetInteger(poArgs, 1, &iType))
  1759. return Py_BuildException();
  1760.  
  1761. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1762. rns.SendRefinePacket(iSlotIndex, iType);
  1763.  
  1764. return Py_BuildNone();
  1765. }
  1766.  
  1767. PyObject* netSendSelectItemPacket(PyObject* poSelf, PyObject* poArgs)
  1768. {
  1769. int iItemPos;
  1770. if (!PyTuple_GetInteger(poArgs, 0, &iItemPos))
  1771. return Py_BuildException();
  1772.  
  1773. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1774. rns.SendSelectItemPacket(iItemPos);
  1775.  
  1776. return Py_BuildNone();
  1777. }
  1778.  
  1779. PyObject* netSetPacketSequenceMode(PyObject* poSelf, PyObject* poArgs)
  1780. {
  1781. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1782. CAccountConnector & rkAccountConnector = CAccountConnector::Instance();
  1783. rns.SetPacketSequenceMode(true);
  1784. rkAccountConnector.SetPacketSequenceMode(true);
  1785.  
  1786. return Py_BuildNone();
  1787. }
  1788.  
  1789. PyObject* netSetEmpireLanguageMode(PyObject* poSelf, PyObject* poArgs)
  1790. {
  1791. int iMode;
  1792. if (!PyTuple_GetInteger(poArgs, 0, &iMode))
  1793. return Py_BuildException();
  1794.  
  1795. //CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1796. gs_bEmpireLanuageEnable = iMode;
  1797.  
  1798. return Py_BuildNone();
  1799. }
  1800.  
  1801. PyObject* netSetSkillGroupFake(PyObject* poSelf, PyObject* poArgs)
  1802. {
  1803. int iIndex;
  1804. if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
  1805. return Py_BuildException();
  1806.  
  1807. CPythonNetworkStream& rns=CPythonNetworkStream::Instance();
  1808. rns.__TEST_SetSkillGroupFake(iIndex);
  1809.  
  1810. return Py_BuildNone();
  1811. }
  1812.  
  1813. #include "GuildMarkUploader.h"
  1814. #include "GuildMarkDownloader.h"
  1815.  
  1816. PyObject* netSendGuildSymbol(PyObject* poSelf, PyObject* poArgs)
  1817. {
  1818. char * szIP;
  1819. if (!PyTuple_GetString(poArgs, 0, &szIP))
  1820. return Py_BuildException();
  1821. int iPort;
  1822. if (!PyTuple_GetInteger(poArgs, 1, &iPort))
  1823. return Py_BuildException();
  1824. char * szFileName;
  1825. if (!PyTuple_GetString(poArgs, 2, &szFileName))
  1826. return Py_BuildException();
  1827. int iGuildID;
  1828. if (!PyTuple_GetInteger(poArgs, 3, &iGuildID))
  1829. return Py_BuildException();
  1830.  
  1831. CNetworkAddress kAddress;
  1832. kAddress.Set(szIP, iPort);
  1833.  
  1834. UINT uiError;
  1835.  
  1836. CGuildMarkUploader& rkGuildMarkUploader=CGuildMarkUploader::Instance();
  1837. if (!rkGuildMarkUploader.ConnectToSendSymbol(kAddress, 0, 0, iGuildID, szFileName, &uiError))
  1838. {
  1839. assert(!"Failed connecting to send symbol");
  1840. }
  1841.  
  1842. return Py_BuildNone();
  1843. }
  1844.  
  1845. PyObject* netDisconnectUploader(PyObject* poSelf, PyObject* poArgs)
  1846. {
  1847. CGuildMarkUploader& rkGuildMarkUploader=CGuildMarkUploader::Instance();
  1848. rkGuildMarkUploader.Disconnect();
  1849. return Py_BuildNone();
  1850. }
  1851.  
  1852. PyObject* netRecvGuildSymbol(PyObject* poSelf, PyObject* poArgs)
  1853. {
  1854. char * szIP;
  1855. if (!PyTuple_GetString(poArgs, 0, &szIP))
  1856. return Py_BuildException();
  1857. int iPort;
  1858. if (!PyTuple_GetInteger(poArgs, 1, &iPort))
  1859. return Py_BuildException();
  1860. int iGuildID;
  1861. if (!PyTuple_GetInteger(poArgs, 2, &iGuildID))
  1862. return Py_BuildException();
  1863.  
  1864. CNetworkAddress kAddress;
  1865. kAddress.Set(szIP, iPort);
  1866.  
  1867. std::vector<DWORD> kVec_dwGuildID;
  1868. kVec_dwGuildID.clear();
  1869. kVec_dwGuildID.push_back(iGuildID);
  1870.  
  1871. CGuildMarkDownloader& rkGuildMarkDownloader=CGuildMarkDownloader::Instance();
  1872. if (!rkGuildMarkDownloader.ConnectToRecvSymbol(kAddress, 0, 0, kVec_dwGuildID))
  1873. {
  1874. assert(!"Failed connecting to recv symbol");
  1875. }
  1876.  
  1877. return Py_BuildNone();
  1878. }
  1879.  
  1880. PyObject* netRegisterErrorLog(PyObject* poSelf, PyObject* poArgs)
  1881. {
  1882. char * szLog;
  1883. if (!PyTuple_GetString(poArgs, 0, &szLog))
  1884. return Py_BuildException();
  1885.  
  1886. return Py_BuildNone();
  1887. }
  1888.  
  1889. void initnet()
  1890. {
  1891. static PyMethodDef s_methods[] =
  1892. {
  1893. { "GetBettingGuildWarValue", netGetBettingGuildWarValue, METH_VARARGS },
  1894. { "EnableChatInsultFilter", netEnableChatInsultFilter, METH_VARARGS },
  1895. { "SetServerInfo", netSetServerInfo, METH_VARARGS },
  1896. { "GetServerInfo", netGetServerInfo, METH_VARARGS },
  1897. { "PreserveServerCommand", netPreserveServerCommand, METH_VARARGS },
  1898. { "GetPreservedServerCommand", netGetPreservedServerCommand, METH_VARARGS },
  1899.  
  1900. { "StartGame", netStartGame, METH_VARARGS },
  1901. { "Warp", netWarp, METH_VARARGS },
  1902. { "IsTest", netIsTest, METH_VARARGS },
  1903. { "SetMarkServer", netSetMarkServer, METH_VARARGS },
  1904. { "IsChatInsultIn", netIsChatInsultIn, METH_VARARGS },
  1905. { "IsInsultIn", netIsInsultIn, METH_VARARGS },
  1906. { "LoadInsultList", netLoadInsultList, METH_VARARGS },
  1907. { "UploadMark", netUploadMark, METH_VARARGS },
  1908. { "UploadSymbol", netUploadSymbol, METH_VARARGS },
  1909. { "GetGuildID", netGetGuildID, METH_VARARGS },
  1910. { "GetEmpireID", netGetEmpireID, METH_VARARGS },
  1911. { "GetMainActorVID", netGetMainActorVID, METH_VARARGS },
  1912. { "GetMainActorRace", netGetMainActorRace, METH_VARARGS },
  1913. { "GetMainActorEmpire", netGetMainActorEmpire, METH_VARARGS },
  1914. { "GetMainActorSkillGroup", netGetMainActorSkillGroup, METH_VARARGS },
  1915. { "GetAccountCharacterSlotDataInteger", netGetAccountCharacterSlotDataInteger, METH_VARARGS },
  1916. { "GetAccountCharacterSlotDataString", netGetAccountCharacterSlotDataString, METH_VARARGS },
  1917.  
  1918. // FIELD_MUSIC
  1919. { "GetFieldMusicFileName", netGetFieldMusicFileName, METH_VARARGS },
  1920. { "GetFieldMusicVolume", netGetFieldMusicVolume, METH_VARARGS },
  1921. // END_OF_FIELD_MUSIC
  1922.  
  1923. { "ToggleGameDebugInfo", netToggleGameDebugInfo, METH_VARARGS },
  1924. { "SetLoginInfo", netSetLoginInfo, METH_VARARGS },
  1925. { "SetPhaseWindow", netSetPhaseWindow, METH_VARARGS },
  1926. { "ClearPhaseWindow", netClearPhaseWindow, METH_VARARGS },
  1927. { "SetServerCommandParserWindow", netSetServerCommandParserWindow, METH_VARARGS },
  1928. { "SetAccountConnectorHandler", netSetAccountConnectorHandler, METH_VARARGS },
  1929. { "SetHandler", netSetHandler, METH_VARARGS },
  1930. { "SetTCPRecvBufferSize", netSetTCPRecvBufferSize, METH_VARARGS },
  1931. { "SetTCPSendBufferSize", netSetTCPSendBufferSize, METH_VARARGS },
  1932. { "SetUDPRecvBufferSize", netSetUDPRecvBufferSize, METH_VARARGS },
  1933. { "DirectEnter", netDirectEnter, METH_VARARGS },
  1934.  
  1935. { "LogOutGame", netLogOutGame, METH_VARARGS },
  1936. { "ExitGame", netExitGame, METH_VARARGS },
  1937. { "ExitApplication", netExitApplication, METH_VARARGS },
  1938. { "ConnectTCP", netConnectTCP, METH_VARARGS },
  1939. { "ConnectUDP", netConnectUDP, METH_VARARGS },
  1940. { "ConnectToAccountServer", netConnectToAccountServer, METH_VARARGS },
  1941.  
  1942. { "SendLoginPacket", netSendLoginPacket, METH_VARARGS },
  1943. { "SendChinaMatrixCardPacket", netSendChinaMatrixCardPacket, METH_VARARGS },
  1944. { "SendRunupMatrixCardPacket", netSendRunupMatrixCardPacket, METH_VARARGS },
  1945. { "SendNEWCIBNPasspodAnswerPacket", netSendNEWCIBNPasspodAnswerPacket, METH_VARARGS },
  1946. { "SendSelectEmpirePacket", netSendSelectEmpirePacket, METH_VARARGS },
  1947. { "SendSelectCharacterPacket", netSendSelectCharacterPacket, METH_VARARGS },
  1948. { "SendChangeNamePacket", netSendChangeNamePacket, METH_VARARGS },
  1949. { "SendCreateCharacterPacket", netSendCreateCharacterPacket, METH_VARARGS },
  1950. { "SendDestroyCharacterPacket", netSendDestroyCharacterPacket, METH_VARARGS },
  1951. { "SendEnterGamePacket", netSendEnterGamePacket, METH_VARARGS },
  1952.  
  1953. { "SendItemUsePacket", netSendItemUsePacket, METH_VARARGS },
  1954. { "SendItemUseToItemPacket", netSendItemUseToItemPacket, METH_VARARGS },
  1955. { "SendItemDropPacket", netSendItemDropPacket, METH_VARARGS },
  1956. { "SendItemDropPacketNew", netSendItemDropPacketNew, METH_VARARGS },
  1957. { "SendItemDestroyPacket", netSendItemDestroyPacket, METH_VARARGS },
  1958. { "SendElkDropPacket", netSendElkDropPacket, METH_VARARGS },
  1959. { "SendGoldDropPacketNew", netSendGoldDropPacketNew, METH_VARARGS },
  1960. { "SendItemMovePacket", netSendItemMovePacket, METH_VARARGS },
  1961. { "SendItemPickUpPacket", netSendItemPickUpPacket, METH_VARARGS },
  1962. { "SendGiveItemPacket", netSendGiveItemPacket, METH_VARARGS },
  1963.  
  1964. { "SetOfflinePhase", netSetOfflinePhase, METH_VARARGS },
  1965. { "Disconnect", netDisconnect, METH_VARARGS },
  1966. { "IsConnect", netIsConnect, METH_VARARGS },
  1967.  
  1968. { "SendChatPacket", netSendChatPacket, METH_VARARGS },
  1969. { "SendEmoticon", netSendEmoticon, METH_VARARGS },
  1970. { "SendWhisperPacket", netSendWhisperPacket, METH_VARARGS },
  1971. { "SendMobileMessagePacket", netSendMobileMessagePacket, METH_VARARGS },
  1972.  
  1973. { "SendCharacterPositionPacket", netSendCharacterPositionPacket, METH_VARARGS },
  1974.  
  1975. { "SendShopEndPacket", netSendShopEndPacket, METH_VARARGS },
  1976. { "SendShopBuyPacket", netSendShopBuyPacket, METH_VARARGS },
  1977. { "SendShopSellPacket", netSendShopSellPacket, METH_VARARGS },
  1978. { "SendShopSellPacketNew", netSendShopSellPacketNew, METH_VARARGS },
  1979.  
  1980. #ifdef ENABLE_OFFLINE_SHOP_SYSTEM
  1981. { "SendOfflineShopEndPacket", netSendOfflineShopEndPacket, METH_VARARGS },
  1982. { "SendOfflineShopBuyPacket", netSendOfflineShopBuyPacket, METH_VARARGS },
  1983. { "SendChangeOfflineShopTime", netSendChangeOfflineShopTime, METH_VARARGS },
  1984. { "SendChangePriceOfflineShopItem", netSendChangePriceOfflineShopItem, METH_VARARGS },
  1985. { "SendAddOfflineShopItem", netSendAddOfflineShopItem, METH_VARARGS },
  1986. { "SendRemoveOfflineShopItem", netSendRemoveOfflineShopItem, METH_VARARGS },
  1987. { "SendDestroyOfflineShop", netSendDestroyOfflineShop, METH_VARARGS },
  1988. { "SendRefreshOfflineShop", netSendRefreshOfflineShop, METH_VARARGS },
  1989. { "SendRefreshOfflineShopMoney", netSendRefreshOfflineShopMoney, METH_VARARGS },
  1990. { "SendRefreshUnsoldItems", netSendRefreshUnsoldItems, METH_VARARGS },
  1991. { "SendOfflineShopWithdrawMoney", netSendOfflineShopWithdrawMoney, METH_VARARGS },
  1992. { "SendOfflineShopTakeItem", netSendOfflineShopTakeItem, METH_VARARGS },
  1993. { "SendOfflineShopCheck", netSendOfflineShopCheck, METH_VARARGS },
  1994. #endif
  1995.  
  1996.  
  1997. { "SendExchangeStartPacket", netSendExchangeStartPacket, METH_VARARGS },
  1998. { "SendExchangeItemAddPacket", netSendExchangeItemAddPacket, METH_VARARGS },
  1999. { "SendExchangeItemDelPacket", netSendExchangeItemDelPacket, METH_VARARGS },
  2000. { "SendExchangeElkAddPacket", netSendExchangeElkAddPacket, METH_VARARGS },
  2001. { "SendExchangeAcceptPacket", netSendExchangeAcceptPacket, METH_VARARGS },
  2002. { "SendExchangeExitPacket", netSendExchangeExitPacket, METH_VARARGS },
  2003.  
  2004. { "SendOnClickPacket", netOnClickPacket, METH_VARARGS },
  2005.  
  2006. // Emoticon String
  2007. { "RegisterEmoticonString", netRegisterEmoticonString, METH_VARARGS },
  2008.  
  2009. // Messenger
  2010. { "SendMessengerAddByVIDPacket", netSendMessengerAddByVIDPacket, METH_VARARGS },
  2011. { "SendMessengerAddByNamePacket", netSendMessengerAddByNamePacket, METH_VARARGS },
  2012. { "SendMessengerRemovePacket", netSendMessengerRemovePacket, METH_VARARGS },
  2013.  
  2014. // Party
  2015. { "SendPartyInvitePacket", netSendPartyInvitePacket, METH_VARARGS },
  2016. { "SendPartyInviteAnswerPacket", netSendPartyInviteAnswerPacket, METH_VARARGS },
  2017. { "SendPartyExitPacket", netSendPartyExitPacket, METH_VARARGS },
  2018. { "SendPartyRemovePacket", netSendPartyRemovePacket, METH_VARARGS },
  2019. { "SendPartySetStatePacket", netSendPartySetStatePacket, METH_VARARGS },
  2020. { "SendPartyUseSkillPacket", netSendPartyUseSkillPacket, METH_VARARGS },
  2021. { "SendPartyParameterPacket", netSendPartyParameterPacket, METH_VARARGS },
  2022.  
  2023. // Safebox
  2024. { "SendSafeboxSaveMoneyPacket", netSendSafeboxSaveMoneyPacket, METH_VARARGS },
  2025. { "SendSafeboxWithdrawMoneyPacket", netSendSafeboxWithdrawMoneyPacket, METH_VARARGS },
  2026. { "SendSafeboxCheckinPacket", netSendSafeboxCheckinPacket, METH_VARARGS },
  2027. { "SendSafeboxCheckoutPacket", netSendSafeboxCheckoutPacket, METH_VARARGS },
  2028. { "SendSafeboxItemMovePacket", netSendSafeboxItemMovePacket, METH_VARARGS },
  2029.  
  2030. // Mall
  2031. { "SendMallCheckoutPacket", netSendMallCheckoutPacket, METH_VARARGS },
  2032.  
  2033. // Guild
  2034. { "SendAnswerMakeGuildPacket", netSendAnswerMakeGuildPacket, METH_VARARGS },
  2035. { "SendQuestInputStringPacket", netSendQuestInputStringPacket, METH_VARARGS },
  2036. { "SendQuestInputLongStringPacket", netSendQuestInputLongStringPacket, METH_VARARGS },
  2037. { "SendQuestConfirmPacket", netSendQuestConfirmPacket, METH_VARARGS },
  2038. { "SendGuildAddMemberPacket", netSendGuildAddMemberPacket, METH_VARARGS },
  2039. { "SendGuildRemoveMemberPacket", netSendGuildRemoveMemberPacket, METH_VARARGS },
  2040. { "SendGuildChangeGradeNamePacket", netSendGuildChangeGradeNamePacket, METH_VARARGS },
  2041. { "SendGuildChangeGradeAuthorityPacket", netSendGuildChangeGradeAuthorityPacket, METH_VARARGS },
  2042. { "SendGuildOfferPacket", netSendGuildOfferPacket, METH_VARARGS },
  2043. { "SendGuildPostCommentPacket", netSnedGuildPostCommentPacket, METH_VARARGS },
  2044. { "SendGuildDeleteCommentPacket", netSnedGuildDeleteCommentPacket, METH_VARARGS },
  2045. { "SendGuildRefreshCommentsPacket", netSendGuildRefreshCommentsPacket, METH_VARARGS },
  2046. { "SendGuildChangeMemberGradePacket", netSendGuildChangeMemberGradePacket, METH_VARARGS },
  2047. { "SendGuildUseSkillPacket", netSendGuildUseSkillPacket, METH_VARARGS },
  2048. { "SendGuildChangeMemberGeneralPacket", netSendGuildChangeMemberGeneralPacket, METH_VARARGS },
  2049. { "SendGuildInviteAnswerPacket", netSendGuildInviteAnswerPacket, METH_VARARGS },
  2050. { "SendGuildChargeGSPPacket", netSendGuildChargeGSPPacket, METH_VARARGS },
  2051. { "SendGuildDepositMoneyPacket", netSendGuildDepositMoneyPacket, METH_VARARGS },
  2052. { "SendGuildWithdrawMoneyPacket", netSendGuildWithdrawMoneyPacket, METH_VARARGS },
  2053.  
  2054. // Refine
  2055. { "SendRequestRefineInfoPacket", netSendRequestRefineInfoPacket, METH_VARARGS },
  2056. { "SendRefinePacket", netSendRefinePacket, METH_VARARGS },
  2057. { "SendSelectItemPacket", netSendSelectItemPacket, METH_VARARGS },
  2058.  
  2059. // SYSTEM
  2060. { "SetPacketSequenceMode", netSetPacketSequenceMode, METH_VARARGS },
  2061. { "SetEmpireLanguageMode", netSetEmpireLanguageMode, METH_VARARGS },
  2062.  
  2063. // For Test
  2064. { "SetSkillGroupFake", netSetSkillGroupFake, METH_VARARGS },
  2065.  
  2066. // Guild Symbol
  2067. { "SendGuildSymbol", netSendGuildSymbol, METH_VARARGS },
  2068. { "DisconnectUploader", netDisconnectUploader, METH_VARARGS },
  2069. { "RecvGuildSymbol", netRecvGuildSymbol, METH_VARARGS },
  2070.  
  2071. // Log
  2072. { "RegisterErrorLog", netRegisterErrorLog, METH_VARARGS },
  2073.  
  2074. { NULL, NULL, NULL },
  2075. };
  2076.  
  2077. PyObject* poModule = Py_InitModule("net", s_methods);
  2078.  
  2079. PyModule_AddIntConstant(poModule, "ERROR_NONE", CPythonNetworkStream::ERROR_NONE);
  2080. PyModule_AddIntConstant(poModule, "ERROR_CONNECT_MARK_SERVER", CPythonNetworkStream::ERROR_CONNECT_MARK_SERVER);
  2081. PyModule_AddIntConstant(poModule, "ERROR_LOAD_MARK", CPythonNetworkStream::ERROR_LOAD_MARK);
  2082. PyModule_AddIntConstant(poModule, "ERROR_MARK_WIDTH", CPythonNetworkStream::ERROR_MARK_WIDTH);
  2083. PyModule_AddIntConstant(poModule, "ERROR_MARK_HEIGHT", CPythonNetworkStream::ERROR_MARK_HEIGHT);
  2084.  
  2085. // MARK_BUG_FIX
  2086. PyModule_AddIntConstant(poModule, "ERROR_MARK_UPLOAD_NEED_RECONNECT", CPythonNetworkStream::ERROR_MARK_UPLOAD_NEED_RECONNECT);
  2087. PyModule_AddIntConstant(poModule, "ERROR_MARK_CHECK_NEED_RECONNECT", CPythonNetworkStream::ERROR_MARK_CHECK_NEED_RECONNECT);
  2088. // END_OF_MARK_BUG_FIX
  2089.  
  2090. PyModule_AddIntConstant(poModule, "PHASE_WINDOW_LOGIN", CPythonNetworkStream::PHASE_WINDOW_LOGIN);
  2091. PyModule_AddIntConstant(poModule, "PHASE_WINDOW_SELECT", CPythonNetworkStream::PHASE_WINDOW_SELECT);
  2092. PyModule_AddIntConstant(poModule, "PHASE_WINDOW_CREATE", CPythonNetworkStream::PHASE_WINDOW_CREATE);
  2093. PyModule_AddIntConstant(poModule, "PHASE_WINDOW_LOAD", CPythonNetworkStream::PHASE_WINDOW_LOAD);
  2094. PyModule_AddIntConstant(poModule, "PHASE_WINDOW_GAME", CPythonNetworkStream::PHASE_WINDOW_GAME);
  2095. PyModule_AddIntConstant(poModule, "PHASE_WINDOW_EMPIRE", CPythonNetworkStream::PHASE_WINDOW_EMPIRE);
  2096. PyModule_AddIntConstant(poModule, "PHASE_WINDOW_LOGO", CPythonNetworkStream::PHASE_WINDOW_LOGO);
  2097.  
  2098. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_ID", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_ID);
  2099. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_NAME", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_NAME);
  2100. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_RACE", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_RACE);
  2101. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_LEVEL", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_LEVEL);
  2102. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_STR", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_STR);
  2103. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_DEX", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_DEX);
  2104. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_INT", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_INT);
  2105. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_HTH", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_HTH);
  2106. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_PLAYTIME", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_PLAYTIME);
  2107. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_FORM", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_FORM);
  2108. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_ADDR", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_ADDR);
  2109. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_PORT", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_PORT);
  2110. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_GUILD_ID", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_GUILD_ID);
  2111. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_GUILD_NAME", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_GUILD_NAME);
  2112. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_CHANGE_NAME_FLAG", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_CHANGE_NAME_FLAG);
  2113. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_HAIR", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_HAIR);
  2114. PyModule_AddIntConstant(poModule, "ACCOUNT_CHARACTER_SLOT_ACCE", CPythonNetworkStream::ACCOUNT_CHARACTER_SLOT_ACCE);
  2115.  
  2116. PyModule_AddIntConstant(poModule, "SERVER_COMMAND_LOG_OUT", CPythonNetworkStream::SERVER_COMMAND_LOG_OUT);
  2117. PyModule_AddIntConstant(poModule, "SERVER_COMMAND_RETURN_TO_SELECT_CHARACTER", CPythonNetworkStream::SERVER_COMMAND_RETURN_TO_SELECT_CHARACTER);
  2118. PyModule_AddIntConstant(poModule, "SERVER_COMMAND_QUIT", CPythonNetworkStream::SERVER_COMMAND_QUIT);
  2119.  
  2120. PyModule_AddIntConstant(poModule, "EMPIRE_A", 1);
  2121. PyModule_AddIntConstant(poModule, "EMPIRE_B", 2);
  2122. PyModule_AddIntConstant(poModule, "EMPIRE_C", 3);
  2123. PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_REFINE_FAIL", DS_SUB_HEADER_REFINE_FAIL);
  2124. PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE", DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE);
  2125. PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL", DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL);
  2126. PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY", DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY);
  2127. PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL", DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL);
  2128. PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL", DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL);
  2129. PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_REFINE_SUCCEED", DS_SUB_HEADER_REFINE_SUCCEED);
  2130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement