1. * PythonApplicationModule.cpp
  2. PyObject* appGetIpAddress(PyObject* poSelf, PyObject* poArgs)
  3. {
  4. int iServerNum;
  5. if (!PyTuple_GetInteger(poArgs, 0, &iServerNum))
  6. return Py_BuildException();
  7. switch (iServerNum)
  8. {
  9. case 1:
  10. return Py_BuildValue("s", "127.0.0.1");
  11. case 2:
  12. return Py_BuildValue("s", "192.168.1.2");
  13. default:
  14. break;
  15. }
  16. return Py_BuildNone();
  17. }
  18. PyObject* appGetAuthPort(PyObject* poSelf, PyObject* poArgs)
  19. {
  20. int iServerNum;
  21. if (!PyTuple_GetInteger(poArgs, 0, &iServerNum))
  22. return Py_BuildException();
  23. switch (iServerNum)
  24. {
  25. case 1:
  26. return Py_BuildValue("i", 11000);
  27. case 2:
  28. return Py_BuildValue("i", 11002);
  29. default:
  30. break;
  31. }
  32. return Py_BuildNone();
  33. }
  34. PyObject* appGetChannelPort(PyObject* poSelf, PyObject* poArgs)
  35. {
  36. int iServerNum;
  37. if (!PyTuple_GetInteger(poArgs, 0, &iServerNum))
  38. return Py_BuildException();
  39. int iChannelNum;
  40. if (!PyTuple_GetInteger(poArgs, 1, &iChannelNum))
  41. return Py_BuildException();
  42. if (iServerNum == 1)
  43. {
  44. switch (iChannelNum)
  45. {
  46. case 1:
  47. return Py_BuildValue("i", 13000);
  48. case 2:
  49. return Py_BuildValue("i", 14000);
  50. case 3:
  51. return Py_BuildValue("i", 15000);
  52. case 4:
  53. return Py_BuildValue("i", 16000);
  54. default:
  55. break;
  56. }
  57. }
  58. else if (iServerNum == 2)
  59. {
  60. switch (iChannelNum)
  61. {
  62. case 1:
  63. return Py_BuildValue("i", 23000);
  64. case 2:
  65. return Py_BuildValue("i", 24000);
  66. case 3:
  67. return Py_BuildValue("i", 25000);
  68. case 4:
  69. return Py_BuildValue("i", 26000);
  70. default:
  71. break;
  72. }
  73. }
  74. return Py_BuildNone();
  75. }
  76. void initapp()
  77. {
  78. static PyMethodDef s_methods[] =
  79. {
  80. ...
  81. { "GetIpAddress", appGetIpAddress, METH_VARARGS },
  82. { "GetAuthPort", appGetAuthPort, METH_VARARGS },
  83. { "GetChannelPort", appGetChannel1Port, METH_VARARGS },
  84. ...
  85. { NULL, NULL },
  86. };
  87. }
  88. * introLogin.py
  89. ...
  90. try:
  91. account_ip = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["ip"]
  92. account_port = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["port"]
  93. except:
  94. account_ip = 0
  95. account_port = 0
  96. ...
  97. >>>
  98. try:
  99. account_ip = app.GetIpAddress(serverID)
  100. account_port = app.GetChannelPort(serverID, regionID)
  101. except:
  102. account_ip = 0
  103. account_port = 0