From 9c30f06083ac819955290eda35290930d1212a5b Mon Sep 17 00:00:00 2001 From: shen <> Date: Tue, 22 Sep 2026 20:04:18 -0700 Subject: [PATCH] Register observable 2V0 gameplay stubs through RunApp --- audit/history.jsonl | 1 + docs/PORT-PLAN.md | 2 +- .../platform/ScriptLib/GameplayModules.cpp | 1978 +++++++++++++++++ .../src/platform/ScriptLib/PythonBoot.cpp | 3 + extension/src/platform/ScriptLib/PythonBoot.h | 4 +- .../UserInterface/PythonApplication.cpp | 27 +- extension/src/python_host_node.h | 4 +- project/python_host_check.gd | 9 +- 8 files changed, 2014 insertions(+), 14 deletions(-) create mode 100644 extension/src/platform/ScriptLib/GameplayModules.cpp diff --git a/audit/history.jsonl b/audit/history.jsonl index 38a4f0b7..6f480cdf 100644 --- a/audit/history.jsonl +++ b/audit/history.jsonl @@ -503,3 +503,4 @@ {"time": "2026-09-23T11:40:00Z", "event": "port_round", "unit": "PORT-PLAN 批次 2V0-a: the EterPythonLib window-system headers enter the mirror", "ported": ["EterPythonLib/StdAfx.h", "EterPythonLib/PythonGraphic.h", "EterPythonLib/PythonWindow.h", "EterPythonLib/PythonWindowManager.h", "EterPythonLib/PythonSlotWindow.h", "EterPythonLib/PythonGridSlotWindow.h"], "adapted": [], "deleted": [], "divergent": [], "needs_live": [], "staging": {"scope": "headers only; no .cpp unit and therefore no port-map entry — declarations, nothing to call. The EterPythonLib .cpp units are 2V0-b.", "mechanical": "port_copy.py copy, 0 of 6 with manual edits: every one compiles as a mechanical CP949->UTF-8 / CRLF->LF / include-case copy.", "stdafx": "EterPythonLib/StdAfx.h had to come first: port_header_gate compiles each header behind its library's StdAfx.h, as 40250 does, and without it these five see neither , the STL, nor CSingleton.", "slice_list_correction": "audit/slices/2V0.json lists EterLib/Dimm.h as a missing header. It is not: 40250 vendors the MIDL output of the Windows SDK as EterLib/Dimm.h, and extension/src/port/common/shim/win32/Dimm.h already shims it (a mirror copy shadows the shim for EterLib/IME.h's quoted include and breaks the build on 'rpc.h'). Copied, found, and removed again."}, "status_note": "2V0 entry state measured: of the slice's 212 headers 164 were already in the mirror, 48 were not (1 EterLib = the SDK shim above, 5 EterPythonLib = this round, 42 UserInterface = 2V0-d, all behind UserInterface/PythonApplication.h). Of the 10 units, 2 are ported (ScriptLib/PythonLauncher.cpp, UserInterface/PythonPackModule.cpp) and 8 are not.", "tests": ["cmake --build build --target port_header_gate -> the 6 new gate translation units compile (each header alone, twice, behind EterPythonLib/StdAfx.h)", "ctest --test-dir build -> 27/27 passed"], "not_done": "EterPythonLib/*.cpp(2V0-b);wndMgr/grp/grpImage/grpText 模块(2V0-c);42 个 UserInterface 头 + PythonApplicationModule.cpp(2V0-d)", "commit": "2V0-a"} {"time": "2026-09-23T02:17:52Z", "event": "port_round", "unit": "PORT-PLAN 批次 2V0-b: window tree completion and 64-bit LZO boundary repair", "ported": ["EterPythonLib/PythonWindow.cpp (211 functions)", "EterPythonLib/PythonWindowManager.cpp (76)", "EterPythonLib/PythonSlotWindow.cpp (80)", "EterPythonLib/PythonGridSlotWindow.cpp (14)", "EterLib/ReferenceObject.cpp (9)", "EterLib/Resource.cpp (18)", "EterLib/ResourceManager.cpp (25)"], "adapted": ["EterBase/lzo.cpp: CLZObject::Compress and CLZObject::Decompress use native-width lzo_uint at the liblzo API while retaining 32-bit pack-header lengths"], "divergent": [], "needs_live": [], "status_note": "The seven units in b4c9d6ce are exact mechanical copies of 40250 (0 manual edits); their 433 functions are recorded in port-map. The original port.window_tree test had four expectations contrary to 40250: DeactivateWindow restores the previous active window and SetTop changes update order; corrected the expectations. A fresh 64-bit build exposed stack corruption in the older LZO caller because Win32 UINT (4 bytes) was passed as native lzo_uint* (8 bytes); fixed the boundary. The normal app path still does not load the UI shell; module registration and rendering remain 2V0-c through 2V0-f.", "tests": ["port_copy.py diff on seven units: 0 manual edits", "ctest -R port.window_tree: pass", "ctest -R port.eterpack: pass, including added LZO compress/decompress round trip and full pack inventory", "ctest -R port.python_launcher: pass", "ctest --test-dir build --output-on-failure -j6: 28/28 pass", "port_map.py check: 0 errors"], "not_done": "2V0-c through 2V0-f; normal app startup and visible interactive Logo/Popup are the whole 2V0 acceptance gate, not the 2V0-b substep.", "commit": "2V0-b-completion"} {"time": "2026-09-23T02:57:22Z", "event": "port_round", "unit": "PORT-PLAN 2V0-c/d and beginning of 2V0-e", "ported": ["EterPythonLib/PythonWindowManagerModule.cpp", "EterPythonLib/PythonGraphicModule.cpp", "EterPythonLib/PythonGraphicImageModule.cpp", "EterPythonLib/PythonGraphicTextModule.cpp", "EterPythonLib/PythonGraphicThingModule.cpp", "UserInterface/PythonApplicationModule.cpp", "ScriptLib/PythonDebugModule.cpp", "42 UserInterface dependency headers"], "adapted": ["Python pointer handles via PyLong_FromVoidPtr/PyLong_AsVoidPtr (native pointer width)", "Win32 FindFirstFile/FindNextFile shim for app file enumeration", "Godot PythonBoot registers dbg, grp, grpImage, grpText, wndMgr and app and propagates dbg.LogBox failures"], "divergent": ["CPythonApplication platform lifecycle and graphics methods remain MT_PLATFORM_STUB; no visible Logo/Popup yet", "DevIL image and DirectShow logo backends remain MT_PLATFORM_STUB"], "tests": ["cmake --build build -> pass", "ctest --test-dir build --output-on-failure -j6 -> 29/29 passed, 1 skipped", "godot --headless --path project --script python_host_test.gd -> system.py reaches constInfo.py import net and reports ImportError through RunMainScript", "port_map.py check -> 0 errors"], "not_done": "2V0-e native gameplay module stubs and prototype.RunApp; 2V0-f Godot UI renderer/input/Logo/Popup runtime acceptance", "status_note": "The app binding imports, but its CPythonApplication adapter is only a link surface. The 2V0 acceptance gate is not yet met."} +{"time": "2026-09-23T03:04:18Z", "event": "port_round", "unit": "PORT-PLAN 2V0-e: native gameplay import stubs through prototype.RunApp", "ported": [], "adapted": ["27 native module import surfaces generated from 40250 UserInterface export names; functions log module.method and return a placeholder zero", "LocaleService default en/1252 from supplied Client/locale.cfg; ForceSetLocale stores requested path", "CPythonApplication::Create platform stub raises CREATE_DEVICE so prototype.RunApp handles failure as original Python code expects"], "divergent": ["Gameplay module methods and constants are placeholders, not ports; their calls do not implement gameplay", "The app platform adapter does not create a device, so RunApp exits before Logo/Popup"], "tests": ["godot --headless --path project --script python_host_test.gd -> PASS: system.py reaches prototype.RunApp, catches CREATE_DEVICE, and net/player/item are marked __port_stub__", "ctest --test-dir build --output-on-failure -j6 -> 29/29 passed, one skipped", "port_map.py check -> 0 errors"], "not_done": "2V0-f: real Godot UI adapter, visible interactive Logo/Popup, input/focus/clipping/text/image tests"} diff --git a/docs/PORT-PLAN.md b/docs/PORT-PLAN.md index 9aad4ecf..d7e7b3bd 100644 --- a/docs/PORT-PLAN.md +++ b/docs/PORT-PLAN.md @@ -399,7 +399,7 @@ extension/third_party/cpython-2.7.18/ # 静态库(2P 批次 | 2V0-b | `EterPythonLib/PythonWindow.cpp`、`PythonWindowManager.cpp`(窗口树逻辑;含 Slot/GridSlot 与资源层依赖) | 完成:原版源码机械移植,`port.window_tree` 通过;正式 UI 渲染仍属 2V0-f | | 2V0-c | `wndMgr` / `grp` / `grpImage` / `grpText` / `grpThing` 模块 | 绑定已移植并通过导入/窗口句柄测试;图形绘制仍属 2V0-f | | 2V0-d | 42 个 `UserInterface` 头(都在 `PythonApplication.h` 后面)+ `PythonApplicationModule.cpp`(`app`) | 头与绑定已编译、链接并导入;应用生命周期 adapter 仍属 2V0-f | - | 2V0-e | `dbg` 等桩模块补齐,`system.py` 跑到 `prototype.RunApp()` | 进行中:`dbg` 原版绑定已移植;Godot 进程内 `system.py` 目前停在 `constInfo.py` 的 `import net` | + | 2V0-e | `dbg` 等桩模块补齐,`system.py` 跑到 `prototype.RunApp()` | 完成:27 个玩法 native 模块导出名桩记录每次调用;真实 `system.py` 已进入 `RunApp()`,目前由待实现的 `app.Create()` 报 `CREATE_DEVICE` | | 2V0-f | Godot 渲染器上的 platform UI adapter;Logo/Popup 可显示可操作 | 未做 | 2. **2V1 — 登录/选角**:加入 `PythonNetworkStream{,PhaseHandShake,PhaseLogin,PhaseSelect,PhaseLoading}.cpp`、 `PythonNetworkStreamModule.cpp`、AccountConnector 及登录/选角脚本真实调用到的模块。验收为 FakeServer 离线完成 phase 顺序, diff --git a/extension/src/platform/ScriptLib/GameplayModules.cpp b/extension/src/platform/ScriptLib/GameplayModules.cpp new file mode 100644 index 00000000..bb809b91 --- /dev/null +++ b/extension/src/platform/ScriptLib/GameplayModules.cpp @@ -0,0 +1,1978 @@ +// 2V0-e temporary native module surfaces generated from 40250 UserInterface module exports. +// These modules expose names for script loading; calls record that they still need the real 2V1-2V3 implementation. +#include "ScriptLib/StdAfx.h" +#include + +namespace { +PyObject* stub_call_named(const char* name) { + std::fprintf(stderr, "2V0 native stub called: %s\n", name); + std::fflush(stderr); + return Py_BuildValue("i", 0); +} + +// 40250 UserInterface/ServerStateCheckerModule.cpp: ServerStateChecker export names. +PyObject* stub_ServerStateChecker_Create(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Create"); } +PyObject* stub_ServerStateChecker_Update(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Update"); } +PyObject* stub_ServerStateChecker_Request(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Request"); } +PyObject* stub_ServerStateChecker_AddChannel(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.AddChannel"); } +PyObject* stub_ServerStateChecker_Initialize(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Initialize"); } +PyMethodDef methods_ServerStateChecker[] = { + { "Create", stub_ServerStateChecker_Create, METH_VARARGS }, + { "Update", stub_ServerStateChecker_Update, METH_VARARGS }, + { "Request", stub_ServerStateChecker_Request, METH_VARARGS }, + { "AddChannel", stub_ServerStateChecker_AddChannel, METH_VARARGS }, + { "Initialize", stub_ServerStateChecker_Initialize, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_ServerStateChecker[] = {NULL}; +const char* strings_ServerStateChecker[] = {NULL}; +// 40250 UserInterface/PythonBackgroundModule.cpp: background export names. +PyObject* stub_background_IsSoftwareTiling(PyObject*, PyObject*) { return stub_call_named("background.IsSoftwareTiling"); } +PyObject* stub_background_EnableSoftwareTiling(PyObject*, PyObject*) { return stub_call_named("background.EnableSoftwareTiling"); } +PyObject* stub_background_EnableSnow(PyObject*, PyObject*) { return stub_call_named("background.EnableSnow"); } +PyObject* stub_background_GlobalPositionToLocalPosition(PyObject*, PyObject*) { return stub_call_named("background.GlobalPositionToLocalPosition"); } +PyObject* stub_background_GlobalPositionToMapInfo(PyObject*, PyObject*) { return stub_call_named("background.GlobalPositionToMapInfo"); } +PyObject* stub_background_GetRenderShadowTime(PyObject*, PyObject*) { return stub_call_named("background.GetRenderShadowTime"); } +PyObject* stub_background_LoadMap(PyObject*, PyObject*) { return stub_call_named("background.LoadMap"); } +PyObject* stub_background_Destroy(PyObject*, PyObject*) { return stub_call_named("background.Destroy"); } +PyObject* stub_background_RegisterEnvironmentData(PyObject*, PyObject*) { return stub_call_named("background.RegisterEnvironmentData"); } +PyObject* stub_background_SetEnvironmentData(PyObject*, PyObject*) { return stub_call_named("background.SetEnvironmentData"); } +PyObject* stub_background_GetCurrentMapName(PyObject*, PyObject*) { return stub_call_named("background.GetCurrentMapName"); } +PyObject* stub_background_GetPickingPoint(PyObject*, PyObject*) { return stub_call_named("background.GetPickingPoint"); } +PyObject* stub_background_BeginEnvironment(PyObject*, PyObject*) { return stub_call_named("background.BeginEnvironment"); } +PyObject* stub_background_EndEnvironment(PyObject*, PyObject*) { return stub_call_named("background.EndEnvironment"); } +PyObject* stub_background_SetCharacterDirLight(PyObject*, PyObject*) { return stub_call_named("background.SetCharacterDirLight"); } +PyObject* stub_background_SetBackgroundDirLight(PyObject*, PyObject*) { return stub_call_named("background.SetBackgroundDirLight"); } +PyObject* stub_background_Initialize(PyObject*, PyObject*) { return stub_call_named("background.Initialize"); } +PyObject* stub_background_Update(PyObject*, PyObject*) { return stub_call_named("background.Update"); } +PyObject* stub_background_Render(PyObject*, PyObject*) { return stub_call_named("background.Render"); } +PyObject* stub_background_RenderPCBlocker(PyObject*, PyObject*) { return stub_call_named("background.RenderPCBlocker"); } +PyObject* stub_background_RenderCollision(PyObject*, PyObject*) { return stub_call_named("background.RenderCollision"); } +PyObject* stub_background_RenderSky(PyObject*, PyObject*) { return stub_call_named("background.RenderSky"); } +PyObject* stub_background_RenderCloud(PyObject*, PyObject*) { return stub_call_named("background.RenderCloud"); } +PyObject* stub_background_RenderWater(PyObject*, PyObject*) { return stub_call_named("background.RenderWater"); } +PyObject* stub_background_RenderEffect(PyObject*, PyObject*) { return stub_call_named("background.RenderEffect"); } +PyObject* stub_background_RenderBeforeLensFlare(PyObject*, PyObject*) { return stub_call_named("background.RenderBeforeLensFlare"); } +PyObject* stub_background_RenderAfterLensFlare(PyObject*, PyObject*) { return stub_call_named("background.RenderAfterLensFlare"); } +PyObject* stub_background_RenderCharacterShadowToTexture(PyObject*, PyObject*) { return stub_call_named("background.RenderCharacterShadowToTexture"); } +PyObject* stub_background_RenderDungeon(PyObject*, PyObject*) { return stub_call_named("background.RenderDungeon"); } +PyObject* stub_background_GetHeight(PyObject*, PyObject*) { return stub_call_named("background.GetHeight"); } +PyObject* stub_background_SetShadowLevel(PyObject*, PyObject*) { return stub_call_named("background.SetShadowLevel"); } +PyObject* stub_background_SetVisiblePart(PyObject*, PyObject*) { return stub_call_named("background.SetVisiblePart"); } +PyObject* stub_background_GetShadowMapColor(PyObject*, PyObject*) { return stub_call_named("background.GetShadowMapColor"); } +PyObject* stub_background_SetSplatLimit(PyObject*, PyObject*) { return stub_call_named("background.SetSplatLimit"); } +PyObject* stub_background_GetRenderedSplatNum(PyObject*, PyObject*) { return stub_call_named("background.GetRenderedSplatNum"); } +PyObject* stub_background_GetRenderedGraphicThingInstanceNum(PyObject*, PyObject*) { return stub_call_named("background.GetRenderedGraphicThingInstanceNum"); } +PyObject* stub_background_SelectViewDistanceNum(PyObject*, PyObject*) { return stub_call_named("background.SelectViewDistanceNum"); } +PyObject* stub_background_SetViewDistanceSet(PyObject*, PyObject*) { return stub_call_named("background.SetViewDistanceSet"); } +PyObject* stub_background_GetFarClip(PyObject*, PyObject*) { return stub_call_named("background.GetFarClip"); } +PyObject* stub_background_GetDistanceSetInfo(PyObject*, PyObject*) { return stub_call_named("background.GetDistanceSetInfo"); } +PyObject* stub_background_SetBGLoading(PyObject*, PyObject*) { return stub_call_named("background.SetBGLoading"); } +PyObject* stub_background_SetRenderSort(PyObject*, PyObject*) { return stub_call_named("background.SetRenderSort"); } +PyObject* stub_background_SetTransparentTree(PyObject*, PyObject*) { return stub_call_named("background.SetTransparentTree"); } +PyObject* stub_background_SetXMasTree(PyObject*, PyObject*) { return stub_call_named("background.SetXMasTree"); } +PyObject* stub_background_RegisterDungeonMapName(PyObject*, PyObject*) { return stub_call_named("background.RegisterDungeonMapName"); } +PyObject* stub_background_VisibleGuildArea(PyObject*, PyObject*) { return stub_call_named("background.VisibleGuildArea"); } +PyObject* stub_background_DisableGuildArea(PyObject*, PyObject*) { return stub_call_named("background.DisableGuildArea"); } +PyObject* stub_background_WarpTest(PyObject*, PyObject*) { return stub_call_named("background.WarpTest"); } +PyMethodDef methods_background[] = { + { "IsSoftwareTiling", stub_background_IsSoftwareTiling, METH_VARARGS }, + { "EnableSoftwareTiling", stub_background_EnableSoftwareTiling, METH_VARARGS }, + { "EnableSnow", stub_background_EnableSnow, METH_VARARGS }, + { "GlobalPositionToLocalPosition", stub_background_GlobalPositionToLocalPosition, METH_VARARGS }, + { "GlobalPositionToMapInfo", stub_background_GlobalPositionToMapInfo, METH_VARARGS }, + { "GetRenderShadowTime", stub_background_GetRenderShadowTime, METH_VARARGS }, + { "LoadMap", stub_background_LoadMap, METH_VARARGS }, + { "Destroy", stub_background_Destroy, METH_VARARGS }, + { "RegisterEnvironmentData", stub_background_RegisterEnvironmentData, METH_VARARGS }, + { "SetEnvironmentData", stub_background_SetEnvironmentData, METH_VARARGS }, + { "GetCurrentMapName", stub_background_GetCurrentMapName, METH_VARARGS }, + { "GetPickingPoint", stub_background_GetPickingPoint, METH_VARARGS }, + { "BeginEnvironment", stub_background_BeginEnvironment, METH_VARARGS }, + { "EndEnvironment", stub_background_EndEnvironment, METH_VARARGS }, + { "SetCharacterDirLight", stub_background_SetCharacterDirLight, METH_VARARGS }, + { "SetBackgroundDirLight", stub_background_SetBackgroundDirLight, METH_VARARGS }, + { "Initialize", stub_background_Initialize, METH_VARARGS }, + { "Update", stub_background_Update, METH_VARARGS }, + { "Render", stub_background_Render, METH_VARARGS }, + { "RenderPCBlocker", stub_background_RenderPCBlocker, METH_VARARGS }, + { "RenderCollision", stub_background_RenderCollision, METH_VARARGS }, + { "RenderSky", stub_background_RenderSky, METH_VARARGS }, + { "RenderCloud", stub_background_RenderCloud, METH_VARARGS }, + { "RenderWater", stub_background_RenderWater, METH_VARARGS }, + { "RenderEffect", stub_background_RenderEffect, METH_VARARGS }, + { "RenderBeforeLensFlare", stub_background_RenderBeforeLensFlare, METH_VARARGS }, + { "RenderAfterLensFlare", stub_background_RenderAfterLensFlare, METH_VARARGS }, + { "RenderCharacterShadowToTexture", stub_background_RenderCharacterShadowToTexture, METH_VARARGS }, + { "RenderDungeon", stub_background_RenderDungeon, METH_VARARGS }, + { "GetHeight", stub_background_GetHeight, METH_VARARGS }, + { "SetShadowLevel", stub_background_SetShadowLevel, METH_VARARGS }, + { "SetVisiblePart", stub_background_SetVisiblePart, METH_VARARGS }, + { "GetShadowMapColor", stub_background_GetShadowMapColor, METH_VARARGS }, + { "SetSplatLimit", stub_background_SetSplatLimit, METH_VARARGS }, + { "GetRenderedSplatNum", stub_background_GetRenderedSplatNum, METH_VARARGS }, + { "GetRenderedGraphicThingInstanceNum", stub_background_GetRenderedGraphicThingInstanceNum, METH_VARARGS }, + { "SelectViewDistanceNum", stub_background_SelectViewDistanceNum, METH_VARARGS }, + { "SetViewDistanceSet", stub_background_SetViewDistanceSet, METH_VARARGS }, + { "GetFarClip", stub_background_GetFarClip, METH_VARARGS }, + { "GetDistanceSetInfo", stub_background_GetDistanceSetInfo, METH_VARARGS }, + { "SetBGLoading", stub_background_SetBGLoading, METH_VARARGS }, + { "SetRenderSort", stub_background_SetRenderSort, METH_VARARGS }, + { "SetTransparentTree", stub_background_SetTransparentTree, METH_VARARGS }, + { "SetXMasTree", stub_background_SetXMasTree, METH_VARARGS }, + { "RegisterDungeonMapName", stub_background_RegisterDungeonMapName, METH_VARARGS }, + { "VisibleGuildArea", stub_background_VisibleGuildArea, METH_VARARGS }, + { "DisableGuildArea", stub_background_DisableGuildArea, METH_VARARGS }, + { "WarpTest", stub_background_WarpTest, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_background[] = {"PART_SKY", "PART_TREE", "PART_CLOUD", "PART_WATER", "PART_OBJECT", "PART_TERRAIN", "SKY_RENDER_MODE_DEFAULT", "SKY_RENDER_MODE_DIFFUSE", "SKY_RENDER_MODE_TEXTURE", "SKY_RENDER_MODE_MODULATE", "SKY_RENDER_MODE_MODULATE2X", "SKY_RENDER_MODE_MODULATE4X", "SHADOW_NONE", "SHADOW_GROUND", "SHADOW_GROUND_AND_SOLO", "SHADOW_ALL", "SHADOW_ALL_HIGH", "SHADOW_ALL_MAX", "DISTANCE0", "DISTANCE1", "DISTANCE2", "DISTANCE3", "DISTANCE4", "DISTANCE_SORT", "TEXTURE_SORT", NULL}; +const char* strings_background[] = {NULL}; +// 40250 UserInterface/PythonChatModule.cpp: chat export names. +PyObject* stub_chat_SetChatColor(PyObject*, PyObject*) { return stub_call_named("chat.SetChatColor"); } +PyObject* stub_chat_Clear(PyObject*, PyObject*) { return stub_call_named("chat.Clear"); } +PyObject* stub_chat_Close(PyObject*, PyObject*) { return stub_call_named("chat.Close"); } +PyObject* stub_chat_CreateChatSet(PyObject*, PyObject*) { return stub_call_named("chat.CreateChatSet"); } +PyObject* stub_chat_Update(PyObject*, PyObject*) { return stub_call_named("chat.Update"); } +PyObject* stub_chat_Render(PyObject*, PyObject*) { return stub_call_named("chat.Render"); } +PyObject* stub_chat_SetBoardState(PyObject*, PyObject*) { return stub_call_named("chat.SetBoardState"); } +PyObject* stub_chat_SetPosition(PyObject*, PyObject*) { return stub_call_named("chat.SetPosition"); } +PyObject* stub_chat_SetHeight(PyObject*, PyObject*) { return stub_call_named("chat.SetHeight"); } +PyObject* stub_chat_SetStep(PyObject*, PyObject*) { return stub_call_named("chat.SetStep"); } +PyObject* stub_chat_ToggleChatMode(PyObject*, PyObject*) { return stub_call_named("chat.ToggleChatMode"); } +PyObject* stub_chat_EnableChatMode(PyObject*, PyObject*) { return stub_call_named("chat.EnableChatMode"); } +PyObject* stub_chat_DisableChatMode(PyObject*, PyObject*) { return stub_call_named("chat.DisableChatMode"); } +PyObject* stub_chat_SetEndPos(PyObject*, PyObject*) { return stub_call_named("chat.SetEndPos"); } +PyObject* stub_chat_GetLineCount(PyObject*, PyObject*) { return stub_call_named("chat.GetLineCount"); } +PyObject* stub_chat_GetVisibleLineCount(PyObject*, PyObject*) { return stub_call_named("chat.GetVisibleLineCount"); } +PyObject* stub_chat_GetLineStep(PyObject*, PyObject*) { return stub_call_named("chat.GetLineStep"); } +PyObject* stub_chat_AppendChat(PyObject*, PyObject*) { return stub_call_named("chat.AppendChat"); } +PyObject* stub_chat_AppendChatWithDelay(PyObject*, PyObject*) { return stub_call_named("chat.AppendChatWithDelay"); } +PyObject* stub_chat_ArrangeShowingChat(PyObject*, PyObject*) { return stub_call_named("chat.ArrangeShowingChat"); } +PyObject* stub_chat_IgnoreCharacter(PyObject*, PyObject*) { return stub_call_named("chat.IgnoreCharacter"); } +PyObject* stub_chat_IsIgnoreCharacter(PyObject*, PyObject*) { return stub_call_named("chat.IsIgnoreCharacter"); } +PyObject* stub_chat_CreateWhisper(PyObject*, PyObject*) { return stub_call_named("chat.CreateWhisper"); } +PyObject* stub_chat_AppendWhisper(PyObject*, PyObject*) { return stub_call_named("chat.AppendWhisper"); } +PyObject* stub_chat_RenderWhisper(PyObject*, PyObject*) { return stub_call_named("chat.RenderWhisper"); } +PyObject* stub_chat_SetWhisperBoxSize(PyObject*, PyObject*) { return stub_call_named("chat.SetWhisperBoxSize"); } +PyObject* stub_chat_SetWhisperPosition(PyObject*, PyObject*) { return stub_call_named("chat.SetWhisperPosition"); } +PyObject* stub_chat_ClearWhisper(PyObject*, PyObject*) { return stub_call_named("chat.ClearWhisper"); } +PyObject* stub_chat_InitWhisper(PyObject*, PyObject*) { return stub_call_named("chat.InitWhisper"); } +PyObject* stub_chat_GetLinkFromHyperlink(PyObject*, PyObject*) { return stub_call_named("chat.GetLinkFromHyperlink"); } +PyMethodDef methods_chat[] = { + { "SetChatColor", stub_chat_SetChatColor, METH_VARARGS }, + { "Clear", stub_chat_Clear, METH_VARARGS }, + { "Close", stub_chat_Close, METH_VARARGS }, + { "CreateChatSet", stub_chat_CreateChatSet, METH_VARARGS }, + { "Update", stub_chat_Update, METH_VARARGS }, + { "Render", stub_chat_Render, METH_VARARGS }, + { "SetBoardState", stub_chat_SetBoardState, METH_VARARGS }, + { "SetPosition", stub_chat_SetPosition, METH_VARARGS }, + { "SetHeight", stub_chat_SetHeight, METH_VARARGS }, + { "SetStep", stub_chat_SetStep, METH_VARARGS }, + { "ToggleChatMode", stub_chat_ToggleChatMode, METH_VARARGS }, + { "EnableChatMode", stub_chat_EnableChatMode, METH_VARARGS }, + { "DisableChatMode", stub_chat_DisableChatMode, METH_VARARGS }, + { "SetEndPos", stub_chat_SetEndPos, METH_VARARGS }, + { "GetLineCount", stub_chat_GetLineCount, METH_VARARGS }, + { "GetVisibleLineCount", stub_chat_GetVisibleLineCount, METH_VARARGS }, + { "GetLineStep", stub_chat_GetLineStep, METH_VARARGS }, + { "AppendChat", stub_chat_AppendChat, METH_VARARGS }, + { "AppendChatWithDelay", stub_chat_AppendChatWithDelay, METH_VARARGS }, + { "ArrangeShowingChat", stub_chat_ArrangeShowingChat, METH_VARARGS }, + { "IgnoreCharacter", stub_chat_IgnoreCharacter, METH_VARARGS }, + { "IsIgnoreCharacter", stub_chat_IsIgnoreCharacter, METH_VARARGS }, + { "CreateWhisper", stub_chat_CreateWhisper, METH_VARARGS }, + { "AppendWhisper", stub_chat_AppendWhisper, METH_VARARGS }, + { "RenderWhisper", stub_chat_RenderWhisper, METH_VARARGS }, + { "SetWhisperBoxSize", stub_chat_SetWhisperBoxSize, METH_VARARGS }, + { "SetWhisperPosition", stub_chat_SetWhisperPosition, METH_VARARGS }, + { "ClearWhisper", stub_chat_ClearWhisper, METH_VARARGS }, + { "InitWhisper", stub_chat_InitWhisper, METH_VARARGS }, + { "GetLinkFromHyperlink", stub_chat_GetLinkFromHyperlink, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_chat[] = {"CHAT_TYPE_TALKING", "CHAT_TYPE_INFO", "CHAT_TYPE_NOTICE", "CHAT_TYPE_PARTY", "CHAT_TYPE_GUILD", "CHAT_TYPE_COMMAND", "CHAT_TYPE_SHOUT", "CHAT_TYPE_WHISPER", "WHISPER_TYPE_CHAT", "WHISPER_TYPE_SYSTEM", "WHISPER_TYPE_GM", "BOARD_STATE_VIEW", "BOARD_STATE_EDIT", "BOARD_STATE_LOG", "CHAT_SET_CHAT_WINDOW", "CHAT_SET_LOG_WINDOW", NULL}; +const char* strings_chat[] = {NULL}; +// 40250 UserInterface/PythonCharacterModule.cpp: chr export names. +PyObject* stub_chr_DismountHorse(PyObject*, PyObject*) { return stub_call_named("chr.DismountHorse"); } +PyObject* stub_chr_MountHorse(PyObject*, PyObject*) { return stub_call_named("chr.MountHorse"); } +PyObject* stub_chr_Destroy(PyObject*, PyObject*) { return stub_call_named("chr.Destroy"); } +PyObject* stub_chr_Update(PyObject*, PyObject*) { return stub_call_named("chr.Update"); } +PyObject* stub_chr_Deform(PyObject*, PyObject*) { return stub_call_named("chr.Deform"); } +PyObject* stub_chr_Render(PyObject*, PyObject*) { return stub_call_named("chr.Render"); } +PyObject* stub_chr_RenderCollision(PyObject*, PyObject*) { return stub_call_named("chr.RenderCollision"); } +PyObject* stub_chr_CreateInstance(PyObject*, PyObject*) { return stub_call_named("chr.CreateInstance"); } +PyObject* stub_chr_DeleteInstance(PyObject*, PyObject*) { return stub_call_named("chr.DeleteInstance"); } +PyObject* stub_chr_DeleteInstanceByFade(PyObject*, PyObject*) { return stub_call_named("chr.DeleteInstanceByFade"); } +PyObject* stub_chr_SelectInstance(PyObject*, PyObject*) { return stub_call_named("chr.SelectInstance"); } +PyObject* stub_chr_HasInstance(PyObject*, PyObject*) { return stub_call_named("chr.HasInstance"); } +PyObject* stub_chr_IsEnemy(PyObject*, PyObject*) { return stub_call_named("chr.IsEnemy"); } +PyObject* stub_chr_IsNPC(PyObject*, PyObject*) { return stub_call_named("chr.IsNPC"); } +PyObject* stub_chr_IsGameMaster(PyObject*, PyObject*) { return stub_call_named("chr.IsGameMaster"); } +PyObject* stub_chr_IsPartyMember(PyObject*, PyObject*) { return stub_call_named("chr.IsPartyMember"); } +PyObject* stub_chr_Select(PyObject*, PyObject*) { return stub_call_named("chr.Select"); } +PyObject* stub_chr_SetAddRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.SetAddRenderMode"); } +PyObject* stub_chr_SetBlendRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.SetBlendRenderMode"); } +PyObject* stub_chr_Unselect(PyObject*, PyObject*) { return stub_call_named("chr.Unselect"); } +PyObject* stub_chr_Hide(PyObject*, PyObject*) { return stub_call_named("chr.Hide"); } +PyObject* stub_chr_Show(PyObject*, PyObject*) { return stub_call_named("chr.Show"); } +PyObject* stub_chr_Pick(PyObject*, PyObject*) { return stub_call_named("chr.Pick"); } +PyObject* stub_chr_PickAll(PyObject*, PyObject*) { return stub_call_named("chr.PickAll"); } +PyObject* stub_chr_SetArmor(PyObject*, PyObject*) { return stub_call_named("chr.SetArmor"); } +PyObject* stub_chr_SetWeapon(PyObject*, PyObject*) { return stub_call_named("chr.SetWeapon"); } +PyObject* stub_chr_ChangeShape(PyObject*, PyObject*) { return stub_call_named("chr.ChangeShape"); } +PyObject* stub_chr_SetRace(PyObject*, PyObject*) { return stub_call_named("chr.SetRace"); } +PyObject* stub_chr_SetHair(PyObject*, PyObject*) { return stub_call_named("chr.SetHair"); } +PyObject* stub_chr_ChangeHair(PyObject*, PyObject*) { return stub_call_named("chr.ChangeHair"); } +PyObject* stub_chr_SetVirtualID(PyObject*, PyObject*) { return stub_call_named("chr.SetVirtualID"); } +PyObject* stub_chr_SetNameString(PyObject*, PyObject*) { return stub_call_named("chr.SetNameString"); } +PyObject* stub_chr_SetInstanceType(PyObject*, PyObject*) { return stub_call_named("chr.SetInstanceType"); } +PyObject* stub_chr_SetPixelPosition(PyObject*, PyObject*) { return stub_call_named("chr.SetPixelPosition"); } +PyObject* stub_chr_SetDirection(PyObject*, PyObject*) { return stub_call_named("chr.SetDirection"); } +PyObject* stub_chr_Refresh(PyObject*, PyObject*) { return stub_call_named("chr.Refresh"); } +PyObject* stub_chr_Revive(PyObject*, PyObject*) { return stub_call_named("chr.Revive"); } +PyObject* stub_chr_Die(PyObject*, PyObject*) { return stub_call_named("chr.Die"); } +PyObject* stub_chr_AttachEffectByID(PyObject*, PyObject*) { return stub_call_named("chr.AttachEffectByID"); } +PyObject* stub_chr_AttachEffectByName(PyObject*, PyObject*) { return stub_call_named("chr.AttachEffectByName"); } +PyObject* stub_chr_LookAt(PyObject*, PyObject*) { return stub_call_named("chr.LookAt"); } +PyObject* stub_chr_SetMotionMode(PyObject*, PyObject*) { return stub_call_named("chr.SetMotionMode"); } +PyObject* stub_chr_SetLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.SetLoopMotion"); } +PyObject* stub_chr_BlendLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.BlendLoopMotion"); } +PyObject* stub_chr_PushOnceMotion(PyObject*, PyObject*) { return stub_call_named("chr.PushOnceMotion"); } +PyObject* stub_chr_PushLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.PushLoopMotion"); } +PyObject* stub_chr_GetPixelPosition(PyObject*, PyObject*) { return stub_call_named("chr.GetPixelPosition"); } +PyObject* stub_chr_SetRotation(PyObject*, PyObject*) { return stub_call_named("chr.SetRotation"); } +PyObject* stub_chr_SetRotationAll(PyObject*, PyObject*) { return stub_call_named("chr.SetRotationAll"); } +PyObject* stub_chr_BlendRotation(PyObject*, PyObject*) { return stub_call_named("chr.BlendRotation"); } +PyObject* stub_chr_GetRotation(PyObject*, PyObject*) { return stub_call_named("chr.GetRotation"); } +PyObject* stub_chr_GetRace(PyObject*, PyObject*) { return stub_call_named("chr.GetRace"); } +PyObject* stub_chr_GetName(PyObject*, PyObject*) { return stub_call_named("chr.GetName"); } +PyObject* stub_chr_GetNameByVID(PyObject*, PyObject*) { return stub_call_named("chr.GetNameByVID"); } +PyObject* stub_chr_GetGuildID(PyObject*, PyObject*) { return stub_call_named("chr.GetGuildID"); } +PyObject* stub_chr_GetProjectPosition(PyObject*, PyObject*) { return stub_call_named("chr.GetProjectPosition"); } +PyObject* stub_chr_GetVirtualNumber(PyObject*, PyObject*) { return stub_call_named("chr.GetVirtualNumber"); } +PyObject* stub_chr_GetInstanceType(PyObject*, PyObject*) { return stub_call_named("chr.GetInstanceType"); } +PyObject* stub_chr_GetBoundBoxOnlyXY(PyObject*, PyObject*) { return stub_call_named("chr.GetBoundBoxOnlyXY"); } +PyObject* stub_chr_RaceToJob(PyObject*, PyObject*) { return stub_call_named("chr.RaceToJob"); } +PyObject* stub_chr_RaceToSex(PyObject*, PyObject*) { return stub_call_named("chr.RaceToSex"); } +PyObject* stub_chr_testGetPKData(PyObject*, PyObject*) { return stub_call_named("chr.testGetPKData"); } +PyObject* stub_chr_FaintTest(PyObject*, PyObject*) { return stub_call_named("chr.FaintTest"); } +PyObject* stub_chr_SetMoveSpeed(PyObject*, PyObject*) { return stub_call_named("chr.SetMoveSpeed"); } +PyObject* stub_chr_SetAttackSpeed(PyObject*, PyObject*) { return stub_call_named("chr.SetAttackSpeed"); } +PyObject* stub_chr_WeaponTraceSetTexture(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceSetTexture"); } +PyObject* stub_chr_WeaponTraceUseAlpha(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceUseAlpha"); } +PyObject* stub_chr_WeaponTraceUseTexture(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceUseTexture"); } +PyObject* stub_chr_MoveToDestPosition(PyObject*, PyObject*) { return stub_call_named("chr.MoveToDestPosition"); } +PyObject* stub_chr_testSetComboType(PyObject*, PyObject*) { return stub_call_named("chr.testSetComboType"); } +PyObject* stub_chr_testSetAddRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetAddRenderMode"); } +PyObject* stub_chr_testSetModulateRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetModulateRenderMode"); } +PyObject* stub_chr_testSetAddRenderModeRGB(PyObject*, PyObject*) { return stub_call_named("chr.testSetAddRenderModeRGB"); } +PyObject* stub_chr_testSetModulateRenderModeRGB(PyObject*, PyObject*) { return stub_call_named("chr.testSetModulateRenderModeRGB"); } +PyObject* stub_chr_testSetSpecularRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetSpecularRenderMode"); } +PyObject* stub_chr_testSetSpecularRenderMode2(PyObject*, PyObject*) { return stub_call_named("chr.testSetSpecularRenderMode2"); } +PyObject* stub_chr_testRestoreRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testRestoreRenderMode"); } +PyObject* stub_chr_testSetRideMan(PyObject*, PyObject*) { return stub_call_named("chr.testSetRideMan"); } +PyMethodDef methods_chr[] = { + { "DismountHorse", stub_chr_DismountHorse, METH_VARARGS }, + { "MountHorse", stub_chr_MountHorse, METH_VARARGS }, + { "Destroy", stub_chr_Destroy, METH_VARARGS }, + { "Update", stub_chr_Update, METH_VARARGS }, + { "Deform", stub_chr_Deform, METH_VARARGS }, + { "Render", stub_chr_Render, METH_VARARGS }, + { "RenderCollision", stub_chr_RenderCollision, METH_VARARGS }, + { "CreateInstance", stub_chr_CreateInstance, METH_VARARGS }, + { "DeleteInstance", stub_chr_DeleteInstance, METH_VARARGS }, + { "DeleteInstanceByFade", stub_chr_DeleteInstanceByFade, METH_VARARGS }, + { "SelectInstance", stub_chr_SelectInstance, METH_VARARGS }, + { "HasInstance", stub_chr_HasInstance, METH_VARARGS }, + { "IsEnemy", stub_chr_IsEnemy, METH_VARARGS }, + { "IsNPC", stub_chr_IsNPC, METH_VARARGS }, + { "IsGameMaster", stub_chr_IsGameMaster, METH_VARARGS }, + { "IsPartyMember", stub_chr_IsPartyMember, METH_VARARGS }, + { "Select", stub_chr_Select, METH_VARARGS }, + { "SetAddRenderMode", stub_chr_SetAddRenderMode, METH_VARARGS }, + { "SetBlendRenderMode", stub_chr_SetBlendRenderMode, METH_VARARGS }, + { "Unselect", stub_chr_Unselect, METH_VARARGS }, + { "Hide", stub_chr_Hide, METH_VARARGS }, + { "Show", stub_chr_Show, METH_VARARGS }, + { "Pick", stub_chr_Pick, METH_VARARGS }, + { "PickAll", stub_chr_PickAll, METH_VARARGS }, + { "SetArmor", stub_chr_SetArmor, METH_VARARGS }, + { "SetWeapon", stub_chr_SetWeapon, METH_VARARGS }, + { "ChangeShape", stub_chr_ChangeShape, METH_VARARGS }, + { "SetRace", stub_chr_SetRace, METH_VARARGS }, + { "SetHair", stub_chr_SetHair, METH_VARARGS }, + { "ChangeHair", stub_chr_ChangeHair, METH_VARARGS }, + { "SetVirtualID", stub_chr_SetVirtualID, METH_VARARGS }, + { "SetNameString", stub_chr_SetNameString, METH_VARARGS }, + { "SetInstanceType", stub_chr_SetInstanceType, METH_VARARGS }, + { "SetPixelPosition", stub_chr_SetPixelPosition, METH_VARARGS }, + { "SetDirection", stub_chr_SetDirection, METH_VARARGS }, + { "Refresh", stub_chr_Refresh, METH_VARARGS }, + { "Revive", stub_chr_Revive, METH_VARARGS }, + { "Die", stub_chr_Die, METH_VARARGS }, + { "AttachEffectByID", stub_chr_AttachEffectByID, METH_VARARGS }, + { "AttachEffectByName", stub_chr_AttachEffectByName, METH_VARARGS }, + { "LookAt", stub_chr_LookAt, METH_VARARGS }, + { "SetMotionMode", stub_chr_SetMotionMode, METH_VARARGS }, + { "SetLoopMotion", stub_chr_SetLoopMotion, METH_VARARGS }, + { "BlendLoopMotion", stub_chr_BlendLoopMotion, METH_VARARGS }, + { "PushOnceMotion", stub_chr_PushOnceMotion, METH_VARARGS }, + { "PushLoopMotion", stub_chr_PushLoopMotion, METH_VARARGS }, + { "GetPixelPosition", stub_chr_GetPixelPosition, METH_VARARGS }, + { "SetRotation", stub_chr_SetRotation, METH_VARARGS }, + { "SetRotationAll", stub_chr_SetRotationAll, METH_VARARGS }, + { "BlendRotation", stub_chr_BlendRotation, METH_VARARGS }, + { "GetRotation", stub_chr_GetRotation, METH_VARARGS }, + { "GetRace", stub_chr_GetRace, METH_VARARGS }, + { "GetName", stub_chr_GetName, METH_VARARGS }, + { "GetNameByVID", stub_chr_GetNameByVID, METH_VARARGS }, + { "GetGuildID", stub_chr_GetGuildID, METH_VARARGS }, + { "GetProjectPosition", stub_chr_GetProjectPosition, METH_VARARGS }, + { "GetVirtualNumber", stub_chr_GetVirtualNumber, METH_VARARGS }, + { "GetInstanceType", stub_chr_GetInstanceType, METH_VARARGS }, + { "GetBoundBoxOnlyXY", stub_chr_GetBoundBoxOnlyXY, METH_VARARGS }, + { "RaceToJob", stub_chr_RaceToJob, METH_VARARGS }, + { "RaceToSex", stub_chr_RaceToSex, METH_VARARGS }, + { "testGetPKData", stub_chr_testGetPKData, METH_VARARGS }, + { "FaintTest", stub_chr_FaintTest, METH_VARARGS }, + { "SetMoveSpeed", stub_chr_SetMoveSpeed, METH_VARARGS }, + { "SetAttackSpeed", stub_chr_SetAttackSpeed, METH_VARARGS }, + { "WeaponTraceSetTexture", stub_chr_WeaponTraceSetTexture, METH_VARARGS }, + { "WeaponTraceUseAlpha", stub_chr_WeaponTraceUseAlpha, METH_VARARGS }, + { "WeaponTraceUseTexture", stub_chr_WeaponTraceUseTexture, METH_VARARGS }, + { "MoveToDestPosition", stub_chr_MoveToDestPosition, METH_VARARGS }, + { "testSetComboType", stub_chr_testSetComboType, METH_VARARGS }, + { "testSetAddRenderMode", stub_chr_testSetAddRenderMode, METH_VARARGS }, + { "testSetModulateRenderMode", stub_chr_testSetModulateRenderMode, METH_VARARGS }, + { "testSetAddRenderModeRGB", stub_chr_testSetAddRenderModeRGB, METH_VARARGS }, + { "testSetModulateRenderModeRGB", stub_chr_testSetModulateRenderModeRGB, METH_VARARGS }, + { "testSetSpecularRenderMode", stub_chr_testSetSpecularRenderMode, METH_VARARGS }, + { "testSetSpecularRenderMode2", stub_chr_testSetSpecularRenderMode2, METH_VARARGS }, + { "testRestoreRenderMode", stub_chr_testRestoreRenderMode, METH_VARARGS }, + { "testSetRideMan", stub_chr_testSetRideMan, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_chr[] = {"PLAYER_NAME_MAX_LEN", "MOTION_NONE", "MOTION_SPAWN", "MOTION_WAIT", "MOTION_WALK", "MOTION_RUN", "MOTION_CHANGE_WEAPON", "MOTION_DAMAGE", "MOTION_DAMAGE_FLYING", "MOTION_STAND_UP", "MOTION_DAMAGE_BACK", "MOTION_DAMAGE_FLYING_BACK", "MOTION_STAND_UP_BACK", "MOTION_DEAD", "MOTION_DEAD_BACK", "MOTION_NORMAL_ATTACK", "MOTION_COMBO_ATTACK_1", "MOTION_COMBO_ATTACK_2", "MOTION_COMBO_ATTACK_3", "MOTION_COMBO_ATTACK_4", "MOTION_COMBO_ATTACK_5", "MOTION_COMBO_ATTACK_6", "MOTION_COMBO_ATTACK_7", "MOTION_COMBO_ATTACK_8", "MOTION_INTRO_WAIT", "MOTION_INTRO_SELECTED", "MOTION_INTRO_NOT_SELECTED", "MOTION_FISHING_THROW", "MOTION_FISHING_WAIT", "MOTION_FISHING_STOP", "MOTION_FISHING_REACT", "MOTION_FISHING_CATCH", "MOTION_FISHING_FAIL", "MOTION_STOP", "MOTION_SKILL", "MOTION_CLAP", "MOTION_DANCE_1", "MOTION_DANCE_2", "MOTION_DANCE_3", "MOTION_DANCE_4", "MOTION_DANCE_5", "MOTION_DANCE_6", "MOTION_CONGRATULATION", "MOTION_FORGIVE", "MOTION_ANGRY", "MOTION_ATTRACTIVE", "MOTION_SAD", "MOTION_SHY", "MOTION_CHEERUP", "MOTION_BANTER", "MOTION_JOY", "MOTION_CHEERS_1", "MOTION_CHEERS_2", "MOTION_KISS_WITH_WARRIOR", "MOTION_KISS_WITH_ASSASSIN", "MOTION_KISS_WITH_SURA", "MOTION_KISS_WITH_SHAMAN", "MOTION_FRENCH_KISS_WITH_WARRIOR", "MOTION_FRENCH_KISS_WITH_ASSASSIN", "MOTION_FRENCH_KISS_WITH_SURA", "MOTION_FRENCH_KISS_WITH_SHAMAN", "MOTION_SLAP_HIT_WITH_WARRIOR", "MOTION_SLAP_HIT_WITH_ASSASSIN", "MOTION_SLAP_HIT_WITH_SURA", "MOTION_SLAP_HIT_WITH_SHAMAN", "MOTION_SLAP_HURT_WITH_WARRIOR", "MOTION_SLAP_HURT_WITH_ASSASSIN", "MOTION_SLAP_HURT_WITH_SURA", "MOTION_SLAP_HURT_WITH_SHAMAN", "MOTION_DIG", "MOTION_MODE_RESERVED", "MOTION_MODE_GENERAL", "MOTION_MODE_ONEHAND_SWORD", "MOTION_MODE_TWOHAND_SWORD", "MOTION_MODE_DUALHAND_SWORD", "MOTION_MODE_BOW", "MOTION_MODE_FAN", "MOTION_MODE_BELL", "MOTION_MODE_FISHING", "MOTION_MODE_HORSE", "MOTION_MODE_HORSE_ONEHAND_SWORD", "MOTION_MODE_HORSE_TWOHAND_SWORD", "MOTION_MODE_HORSE_DUALHAND_SWORD", "MOTION_MODE_HORSE_BOW", "MOTION_MODE_HORSE_FAN", "MOTION_MODE_HORSE_BELL", "MOTION_MODE_WEDDING_DRESS", "DIR_NORTH", "DIR_NORTHEAST", "DIR_EAST", "DIR_SOUTHEAST", "DIR_SOUTH", "DIR_SOUTHWEST", "DIR_WEST", "DIR_NORTHWEST", "INSTANCE_TYPE_PLAYER", "INSTANCE_TYPE_NPC", "INSTANCE_TYPE_ENEMY", "INSTANCE_TYPE_BUILDING", "INSTANCE_TYPE_OBJECT", "PART_WEAPON", "PART_HEAD", "PART_WEAPON_LEFT", "AFFECT_POISON", "AFFECT_SLOW", "AFFECT_STUN", "AFFECT_MOV_SPEED_POTION", "AFFECT_ATT_SPEED_POTION", "AFFECT_FISH_MIND", "AFFECT_JEONGWI", "AFFECT_GEOMGYEONG", "AFFECT_CHEONGEUN", "AFFECT_GYEONGGONG", "AFFECT_EUNHYEONG", "AFFECT_GWIGEOM", "AFFECT_GONGPO", "AFFECT_JUMAGAP", "AFFECT_HOSIN", "AFFECT_BOHO", "AFFECT_KWAESOK", "AFFECT_HEUKSIN", "AFFECT_MUYEONG", "AFFECT_GICHEON", "AFFECT_JEUNGRYEOK", "AFFECT_PABEOP", "AFFECT_FALLEN_CHEONGEUN", "AFFECT_CHINA_FIREWORK", "NEW_AFFECT_MALL", "NEW_AFFECT_NO_DEATH_PENALTY", "NEW_AFFECT_SKILL_BOOK_BONUS", "NEW_AFFECT_SKILL_BOOK_NO_DELAY", "NEW_AFFECT_EXP_BONUS", "NEW_AFFECT_EXP_BONUS_EURO_FREE", "NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15", "NEW_AFFECT_ITEM_BONUS", "NEW_AFFECT_SAFEBOX", "NEW_AFFECT_AUTOLOOT", "NEW_AFFECT_FISH_MIND", "NEW_AFFECT_MARRIAGE_FAST", "NEW_AFFECT_GOLD_BONUS", "NEW_AFFECT_AUTO_HP_RECOVERY", "NEW_AFFECT_AUTO_SP_RECOVERY", "NEW_AFFECT_DRAGON_SOUL_QUALIFIED", "NEW_AFFECT_DRAGON_SOUL_DECK1", "NEW_AFFECT_DRAGON_SOUL_DECK2", NULL}; +const char* strings_chr[] = {NULL}; +// 40250 UserInterface/PythonCharacterManagerModule.cpp: chrmgr export names. +PyObject* stub_chrmgr_SetEmpireNameMode(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetEmpireNameMode"); } +PyObject* stub_chrmgr_GetVIDInfo(PyObject*, PyObject*) { return stub_call_named("chrmgr.GetVIDInfo"); } +PyObject* stub_chrmgr_GetPickedVID(PyObject*, PyObject*) { return stub_call_named("chrmgr.GetPickedVID"); } +PyObject* stub_chrmgr_SetShapeModel(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetShapeModel"); } +PyObject* stub_chrmgr_AppendShapeSkin(PyObject*, PyObject*) { return stub_call_named("chrmgr.AppendShapeSkin"); } +PyObject* stub_chrmgr_SetPathName(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetPathName"); } +PyObject* stub_chrmgr_LoadRaceData(PyObject*, PyObject*) { return stub_call_named("chrmgr.LoadRaceData"); } +PyObject* stub_chrmgr_LoadLocalRaceData(PyObject*, PyObject*) { return stub_call_named("chrmgr.LoadLocalRaceData"); } +PyObject* stub_chrmgr_CreateRace(PyObject*, PyObject*) { return stub_call_named("chrmgr.CreateRace"); } +PyObject* stub_chrmgr_SelectRace(PyObject*, PyObject*) { return stub_call_named("chrmgr.SelectRace"); } +PyObject* stub_chrmgr_RegisterAttachingBoneName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterAttachingBoneName"); } +PyObject* stub_chrmgr_RegisterMotionMode(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotionMode"); } +PyObject* stub_chrmgr_RegisterMotion(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotion"); } +PyObject* stub_chrmgr_SetMotionRandomWeight(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetMotionRandomWeight"); } +PyObject* stub_chrmgr_RegisterNormalAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterNormalAttack"); } +PyObject* stub_chrmgr_ReserveComboAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.ReserveComboAttack"); } +PyObject* stub_chrmgr_RegisterComboAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterComboAttack"); } +PyObject* stub_chrmgr_ReserveComboAttackNew(PyObject*, PyObject*) { return stub_call_named("chrmgr.ReserveComboAttackNew"); } +PyObject* stub_chrmgr_RegisterComboAttackNew(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterComboAttackNew"); } +PyObject* stub_chrmgr_RegisterMotionData(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotionData"); } +PyObject* stub_chrmgr_RegisterRaceName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterRaceName"); } +PyObject* stub_chrmgr_RegisterRaceSrcName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterRaceSrcName"); } +PyObject* stub_chrmgr_RegisterCacheMotionData(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterCacheMotionData"); } +PyObject* stub_chrmgr_SetAffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetAffect"); } +PyObject* stub_chrmgr_SetEmoticon(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetEmoticon"); } +PyObject* stub_chrmgr_IsPossibleEmoticon(PyObject*, PyObject*) { return stub_call_named("chrmgr.IsPossibleEmoticon"); } +PyObject* stub_chrmgr_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterEffect"); } +PyObject* stub_chrmgr_RegisterCacheEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterCacheEffect"); } +PyObject* stub_chrmgr_RegisterPointEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterPointEffect"); } +PyObject* stub_chrmgr_ShowPointEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.ShowPointEffect"); } +PyObject* stub_chrmgr_ToggleDirectionLine(PyObject*, PyObject*) { return stub_call_named("chrmgr.ToggleDirectionLine"); } +PyObject* stub_chrmgr_SetMovingSpeed(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetMovingSpeed"); } +PyObject* stub_chrmgr_SetDustGap(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetDustGap"); } +PyObject* stub_chrmgr_SetHorseDustGap(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetHorseDustGap"); } +PyObject* stub_chrmgr_RegisterTitleName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterTitleName"); } +PyObject* stub_chrmgr_RegisterNameColor(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterNameColor"); } +PyObject* stub_chrmgr_RegisterTitleColor(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterTitleColor"); } +PyMethodDef methods_chrmgr[] = { + { "SetEmpireNameMode", stub_chrmgr_SetEmpireNameMode, METH_VARARGS }, + { "GetVIDInfo", stub_chrmgr_GetVIDInfo, METH_VARARGS }, + { "GetPickedVID", stub_chrmgr_GetPickedVID, METH_VARARGS }, + { "SetShapeModel", stub_chrmgr_SetShapeModel, METH_VARARGS }, + { "AppendShapeSkin", stub_chrmgr_AppendShapeSkin, METH_VARARGS }, + { "SetPathName", stub_chrmgr_SetPathName, METH_VARARGS }, + { "LoadRaceData", stub_chrmgr_LoadRaceData, METH_VARARGS }, + { "LoadLocalRaceData", stub_chrmgr_LoadLocalRaceData, METH_VARARGS }, + { "CreateRace", stub_chrmgr_CreateRace, METH_VARARGS }, + { "SelectRace", stub_chrmgr_SelectRace, METH_VARARGS }, + { "RegisterAttachingBoneName", stub_chrmgr_RegisterAttachingBoneName, METH_VARARGS }, + { "RegisterMotionMode", stub_chrmgr_RegisterMotionMode, METH_VARARGS }, + { "RegisterMotion", stub_chrmgr_RegisterMotion, METH_VARARGS }, + { "SetMotionRandomWeight", stub_chrmgr_SetMotionRandomWeight, METH_VARARGS }, + { "RegisterNormalAttack", stub_chrmgr_RegisterNormalAttack, METH_VARARGS }, + { "ReserveComboAttack", stub_chrmgr_ReserveComboAttack, METH_VARARGS }, + { "RegisterComboAttack", stub_chrmgr_RegisterComboAttack, METH_VARARGS }, + { "ReserveComboAttackNew", stub_chrmgr_ReserveComboAttackNew, METH_VARARGS }, + { "RegisterComboAttackNew", stub_chrmgr_RegisterComboAttackNew, METH_VARARGS }, + { "RegisterMotionData", stub_chrmgr_RegisterMotionData, METH_VARARGS }, + { "RegisterRaceName", stub_chrmgr_RegisterRaceName, METH_VARARGS }, + { "RegisterRaceSrcName", stub_chrmgr_RegisterRaceSrcName, METH_VARARGS }, + { "RegisterCacheMotionData", stub_chrmgr_RegisterCacheMotionData, METH_VARARGS }, + { "SetAffect", stub_chrmgr_SetAffect, METH_VARARGS }, + { "SetEmoticon", stub_chrmgr_SetEmoticon, METH_VARARGS }, + { "IsPossibleEmoticon", stub_chrmgr_IsPossibleEmoticon, METH_VARARGS }, + { "RegisterEffect", stub_chrmgr_RegisterEffect, METH_VARARGS }, + { "RegisterCacheEffect", stub_chrmgr_RegisterCacheEffect, METH_VARARGS }, + { "RegisterPointEffect", stub_chrmgr_RegisterPointEffect, METH_VARARGS }, + { "ShowPointEffect", stub_chrmgr_ShowPointEffect, METH_VARARGS }, + { "ToggleDirectionLine", stub_chrmgr_ToggleDirectionLine, METH_VARARGS }, + { "SetMovingSpeed", stub_chrmgr_SetMovingSpeed, METH_VARARGS }, + { "SetDustGap", stub_chrmgr_SetDustGap, METH_VARARGS }, + { "SetHorseDustGap", stub_chrmgr_SetHorseDustGap, METH_VARARGS }, + { "RegisterTitleName", stub_chrmgr_RegisterTitleName, METH_VARARGS }, + { "RegisterNameColor", stub_chrmgr_RegisterNameColor, METH_VARARGS }, + { "RegisterTitleColor", stub_chrmgr_RegisterTitleColor, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_chrmgr[] = {"NAMECOLOR_MOB", "NAMECOLOR_NPC", "NAMECOLOR_PC", "NAMECOLOR_EMPIRE_MOB", "NAMECOLOR_EMPIRE_NPC", "NAMECOLOR_EMPIRE_PC", "NAMECOLOR_FUNC", "NAMECOLOR_PK", "NAMECOLOR_PVP", "NAMECOLOR_PARTY", "NAMECOLOR_WARP", "NAMECOLOR_WAYPOINT", "NAMECOLOR_EXTRA", "EFFECT_SPAWN_DISAPPEAR", "EFFECT_SPAWN_APPEAR", "EFFECT_DUST", "EFFECT_HORSE_DUST", "EFFECT_STUN", "EFFECT_HIT", "EFFECT_FLAME_ATTACK", "EFFECT_FLAME_HIT", "EFFECT_FLAME_ATTACH", "EFFECT_ELECTRIC_ATTACK", "EFFECT_ELECTRIC_HIT", "EFFECT_ELECTRIC_ATTACH", "EFFECT_SELECT", "EFFECT_TARGET", "EFFECT_CRITICAL", "EFFECT_DAMAGE_TARGET", "EFFECT_DAMAGE_NOT_TARGET", "EFFECT_DAMAGE_SELFDAMAGE", "EFFECT_DAMAGE_SELFDAMAGE2", "EFFECT_DAMAGE_POISON", "EFFECT_DAMAGE_MISS", "EFFECT_DAMAGE_TARGETMISS", "EFFECT_DAMAGE_CRITICAL", "EFFECT_LEVELUP", "EFFECT_SKILLUP", "EFFECT_HPUP_RED", "EFFECT_SPUP_BLUE", "EFFECT_SPEEDUP_GREEN", "EFFECT_DXUP_PURPLE", "EFFECT_PENETRATE", "EFFECT_BLOCK", "EFFECT_DODGE", "EFFECT_FIRECRACKER", "EFFECT_SPIN_TOP", "EFFECT_WEAPON", "EFFECT_AFFECT", "EFFECT_EMOTICON", "EFFECT_EMPIRE", "EFFECT_REFINED", "EFFECT_SUCCESS", "EFFECT_FAIL", "EFFECT_FR_SUCCESS", "EFFECT_LEVELUP_ON_14_FOR_GERMANY", "EFFECT_LEVELUP_UNDER_15_FOR_GERMANY", "EFFECT_PERCENT_DAMAGE1", "EFFECT_PERCENT_DAMAGE2", "EFFECT_PERCENT_DAMAGE3", "EFFECT_AUTO_HPUP", "EFFECT_AUTO_SPUP", "EFFECT_RAMADAN_RING_EQUIP", "EFFECT_HALLOWEEN_CANDY_EQUIP", "EFFECT_HAPPINESS_RING_EQUIP", "EFFECT_LOVE_PENDANT_EQUIP", NULL}; +const char* strings_chrmgr[] = {NULL}; +// 40250 UserInterface/PythonEffectModule.cpp: effect export names. +PyObject* stub_effect_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("effect.RegisterEffect"); } +PyObject* stub_effect_CreateEffect(PyObject*, PyObject*) { return stub_call_named("effect.CreateEffect"); } +PyObject* stub_effect_DeleteEffect(PyObject*, PyObject*) { return stub_call_named("effect.DeleteEffect"); } +PyObject* stub_effect_SetPosition(PyObject*, PyObject*) { return stub_call_named("effect.SetPosition"); } +PyObject* stub_effect_RegisterIndexedFlyData(PyObject*, PyObject*) { return stub_call_named("effect.RegisterIndexedFlyData"); } +PyObject* stub_effect_Update(PyObject*, PyObject*) { return stub_call_named("effect.Update"); } +PyObject* stub_effect_Render(PyObject*, PyObject*) { return stub_call_named("effect.Render"); } +PyMethodDef methods_effect[] = { + { "RegisterEffect", stub_effect_RegisterEffect, METH_VARARGS }, + { "CreateEffect", stub_effect_CreateEffect, METH_VARARGS }, + { "DeleteEffect", stub_effect_DeleteEffect, METH_VARARGS }, + { "SetPosition", stub_effect_SetPosition, METH_VARARGS }, + { "RegisterIndexedFlyData", stub_effect_RegisterIndexedFlyData, METH_VARARGS }, + { "Update", stub_effect_Update, METH_VARARGS }, + { "Render", stub_effect_Render, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_effect[] = {"INDEX_FLY_TYPE_NORMAL", "INDEX_FLY_TYPE_FIRE_CRACKER", "INDEX_FLY_TYPE_AUTO_FIRE", "FLY_NONE", "FLY_EXP", "FLY_HP_MEDIUM", "FLY_HP_BIG", "FLY_SP_SMALL", "FLY_SP_MEDIUM", "FLY_SP_BIG", "FLY_FIREWORK1", "FLY_FIREWORK2", "FLY_FIREWORK3", "FLY_FIREWORK4", "FLY_FIREWORK5", "FLY_FIREWORK6", "FLY_FIREWORK_XMAS", "FLY_CHAIN_LIGHTNING", "FLY_HP_SMALL", "FLY_SKILL_MUYEONG", NULL}; +const char* strings_effect[] = {NULL}; +// 40250 UserInterface/PythonEventManagerMoudle.cpp: event export names. +PyObject* stub_event_RegisterEventSet(PyObject*, PyObject*) { return stub_call_named("event.RegisterEventSet"); } +PyObject* stub_event_RegisterEventSetFromString(PyObject*, PyObject*) { return stub_call_named("event.RegisterEventSetFromString"); } +PyObject* stub_event_ClearEventSet(PyObject*, PyObject*) { return stub_call_named("event.ClearEventSet"); } +PyObject* stub_event_SetRestrictedCount(PyObject*, PyObject*) { return stub_call_named("event.SetRestrictedCount"); } +PyObject* stub_event_GetEventSetLocalYPosition(PyObject*, PyObject*) { return stub_call_named("event.GetEventSetLocalYPosition"); } +PyObject* stub_event_AddEventSetLocalYPosition(PyObject*, PyObject*) { return stub_call_named("event.AddEventSetLocalYPosition"); } +PyObject* stub_event_InsertText(PyObject*, PyObject*) { return stub_call_named("event.InsertText"); } +PyObject* stub_event_InsertTextInline(PyObject*, PyObject*) { return stub_call_named("event.InsertTextInline"); } +PyObject* stub_event_UpdateEventSet(PyObject*, PyObject*) { return stub_call_named("event.UpdateEventSet"); } +PyObject* stub_event_RenderEventSet(PyObject*, PyObject*) { return stub_call_named("event.RenderEventSet"); } +PyObject* stub_event_SetEventSetWidth(PyObject*, PyObject*) { return stub_call_named("event.SetEventSetWidth"); } +PyObject* stub_event_Skip(PyObject*, PyObject*) { return stub_call_named("event.Skip"); } +PyObject* stub_event_IsWait(PyObject*, PyObject*) { return stub_call_named("event.IsWait"); } +PyObject* stub_event_EndEventProcess(PyObject*, PyObject*) { return stub_call_named("event.EndEventProcess"); } +PyObject* stub_event_SelectAnswer(PyObject*, PyObject*) { return stub_call_named("event.SelectAnswer"); } +PyObject* stub_event_GetLineCount(PyObject*, PyObject*) { return stub_call_named("event.GetLineCount"); } +PyObject* stub_event_SetVisibleStartLine(PyObject*, PyObject*) { return stub_call_named("event.SetVisibleStartLine"); } +PyObject* stub_event_GetVisibleStartLine(PyObject*, PyObject*) { return stub_call_named("event.GetVisibleStartLine"); } +PyObject* stub_event_SetEventHandler(PyObject*, PyObject*) { return stub_call_named("event.SetEventHandler"); } +PyObject* stub_event_SetInterfaceWindow(PyObject*, PyObject*) { return stub_call_named("event.SetInterfaceWindow"); } +PyObject* stub_event_SetLeftTimeString(PyObject*, PyObject*) { return stub_call_named("event.SetLeftTimeString"); } +PyObject* stub_event_QuestButtonClick(PyObject*, PyObject*) { return stub_call_named("event.QuestButtonClick"); } +PyObject* stub_event_Destroy(PyObject*, PyObject*) { return stub_call_named("event.Destroy"); } +PyMethodDef methods_event[] = { + { "RegisterEventSet", stub_event_RegisterEventSet, METH_VARARGS }, + { "RegisterEventSetFromString", stub_event_RegisterEventSetFromString, METH_VARARGS }, + { "ClearEventSet", stub_event_ClearEventSet, METH_VARARGS }, + { "SetRestrictedCount", stub_event_SetRestrictedCount, METH_VARARGS }, + { "GetEventSetLocalYPosition", stub_event_GetEventSetLocalYPosition, METH_VARARGS }, + { "AddEventSetLocalYPosition", stub_event_AddEventSetLocalYPosition, METH_VARARGS }, + { "InsertText", stub_event_InsertText, METH_VARARGS }, + { "InsertTextInline", stub_event_InsertTextInline, METH_VARARGS }, + { "UpdateEventSet", stub_event_UpdateEventSet, METH_VARARGS }, + { "RenderEventSet", stub_event_RenderEventSet, METH_VARARGS }, + { "SetEventSetWidth", stub_event_SetEventSetWidth, METH_VARARGS }, + { "Skip", stub_event_Skip, METH_VARARGS }, + { "IsWait", stub_event_IsWait, METH_VARARGS }, + { "EndEventProcess", stub_event_EndEventProcess, METH_VARARGS }, + { "SelectAnswer", stub_event_SelectAnswer, METH_VARARGS }, + { "GetLineCount", stub_event_GetLineCount, METH_VARARGS }, + { "SetVisibleStartLine", stub_event_SetVisibleStartLine, METH_VARARGS }, + { "GetVisibleStartLine", stub_event_GetVisibleStartLine, METH_VARARGS }, + { "SetEventHandler", stub_event_SetEventHandler, METH_VARARGS }, + { "SetInterfaceWindow", stub_event_SetInterfaceWindow, METH_VARARGS }, + { "SetLeftTimeString", stub_event_SetLeftTimeString, METH_VARARGS }, + { "QuestButtonClick", stub_event_QuestButtonClick, METH_VARARGS }, + { "Destroy", stub_event_Destroy, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_event[] = {"BOX_VISIBLE_LINE_COUNT", "BUTTON_TYPE_NEXT", "BUTTON_TYPE_DONE", "BUTTON_TYPE_CANCEL", NULL}; +const char* strings_event[] = {NULL}; +// 40250 UserInterface/PythonGameEventManagerModule.cpp: eventMgr export names. +PyObject* stub_eventMgr_Update(PyObject*, PyObject*) { return stub_call_named("eventMgr.Update"); } +PyMethodDef methods_eventMgr[] = { + { "Update", stub_eventMgr_Update, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_eventMgr[] = {NULL}; +const char* strings_eventMgr[] = {NULL}; +// 40250 UserInterface/PythonExchangeModule.cpp: exchange export names. +PyObject* stub_exchange_InitTrading(PyObject*, PyObject*) { return stub_call_named("exchange.InitTrading"); } +PyObject* stub_exchange_isTrading(PyObject*, PyObject*) { return stub_call_named("exchange.isTrading"); } +PyObject* stub_exchange_GetElkFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkFromSelf"); } +PyObject* stub_exchange_GetElkFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkFromTarget"); } +PyObject* stub_exchange_GetItemVnumFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemVnumFromSelf"); } +PyObject* stub_exchange_GetItemVnumFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemVnumFromTarget"); } +PyObject* stub_exchange_GetItemCountFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemCountFromSelf"); } +PyObject* stub_exchange_GetItemCountFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemCountFromTarget"); } +PyObject* stub_exchange_GetAcceptFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetAcceptFromSelf"); } +PyObject* stub_exchange_GetAcceptFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetAcceptFromTarget"); } +PyObject* stub_exchange_GetNameFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetNameFromSelf"); } +PyObject* stub_exchange_GetNameFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetNameFromTarget"); } +PyObject* stub_exchange_GetItemMetinSocketFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemMetinSocketFromTarget"); } +PyObject* stub_exchange_GetItemMetinSocketFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemMetinSocketFromSelf"); } +PyObject* stub_exchange_GetItemAttributeFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemAttributeFromTarget"); } +PyObject* stub_exchange_GetItemAttributeFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemAttributeFromSelf"); } +PyObject* stub_exchange_GetElkMode(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkMode"); } +PyObject* stub_exchange_SetElkMode(PyObject*, PyObject*) { return stub_call_named("exchange.SetElkMode"); } +PyMethodDef methods_exchange[] = { + { "InitTrading", stub_exchange_InitTrading, METH_VARARGS }, + { "isTrading", stub_exchange_isTrading, METH_VARARGS }, + { "GetElkFromSelf", stub_exchange_GetElkFromSelf, METH_VARARGS }, + { "GetElkFromTarget", stub_exchange_GetElkFromTarget, METH_VARARGS }, + { "GetItemVnumFromSelf", stub_exchange_GetItemVnumFromSelf, METH_VARARGS }, + { "GetItemVnumFromTarget", stub_exchange_GetItemVnumFromTarget, METH_VARARGS }, + { "GetItemCountFromSelf", stub_exchange_GetItemCountFromSelf, METH_VARARGS }, + { "GetItemCountFromTarget", stub_exchange_GetItemCountFromTarget, METH_VARARGS }, + { "GetAcceptFromSelf", stub_exchange_GetAcceptFromSelf, METH_VARARGS }, + { "GetAcceptFromTarget", stub_exchange_GetAcceptFromTarget, METH_VARARGS }, + { "GetNameFromSelf", stub_exchange_GetNameFromSelf, METH_VARARGS }, + { "GetNameFromTarget", stub_exchange_GetNameFromTarget, METH_VARARGS }, + { "GetItemMetinSocketFromTarget", stub_exchange_GetItemMetinSocketFromTarget, METH_VARARGS }, + { "GetItemMetinSocketFromSelf", stub_exchange_GetItemMetinSocketFromSelf, METH_VARARGS }, + { "GetItemAttributeFromTarget", stub_exchange_GetItemAttributeFromTarget, METH_VARARGS }, + { "GetItemAttributeFromSelf", stub_exchange_GetItemAttributeFromSelf, METH_VARARGS }, + { "GetElkMode", stub_exchange_GetElkMode, METH_VARARGS }, + { "SetElkMode", stub_exchange_SetElkMode, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_exchange[] = {"EXCHANGE_ITEM_MAX_NUM", NULL}; +const char* strings_exchange[] = {NULL}; +// 40250 UserInterface/PythonFlyModule.cpp: fly export names. +PyObject* stub_fly_Update(PyObject*, PyObject*) { return stub_call_named("fly.Update"); } +PyObject* stub_fly_Render(PyObject*, PyObject*) { return stub_call_named("fly.Render"); } +PyMethodDef methods_fly[] = { + { "Update", stub_fly_Update, METH_VARARGS }, + { "Render", stub_fly_Render, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_fly[] = {NULL}; +const char* strings_fly[] = {NULL}; +// 40250 UserInterface/PythonGuild.cpp: guild export names. +PyObject* stub_guild_IsGuildEnable(PyObject*, PyObject*) { return stub_call_named("guild.IsGuildEnable"); } +PyObject* stub_guild_GuildIDToMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GuildIDToMarkID"); } +PyObject* stub_guild_GetMarkImageFilenameByMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GetMarkImageFilenameByMarkID"); } +PyObject* stub_guild_GetMarkIndexByMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GetMarkIndexByMarkID"); } +PyObject* stub_guild_GetGuildID(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildID"); } +PyObject* stub_guild_HasGuildLand(PyObject*, PyObject*) { return stub_call_named("guild.HasGuildLand"); } +PyObject* stub_guild_GetGuildName(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildName"); } +PyObject* stub_guild_GetGuildMasterName(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMasterName"); } +PyObject* stub_guild_GetEnemyGuildName(PyObject*, PyObject*) { return stub_call_named("guild.GetEnemyGuildName"); } +PyObject* stub_guild_GetGuildMoney(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMoney"); } +PyObject* stub_guild_GetGuildBoardCommentCount(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildBoardCommentCount"); } +PyObject* stub_guild_GetGuildBoardCommentData(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildBoardCommentData"); } +PyObject* stub_guild_GetGuildLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildLevel"); } +PyObject* stub_guild_GetGuildExperience(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildExperience"); } +PyObject* stub_guild_GetGuildMemberCount(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberCount"); } +PyObject* stub_guild_GetGuildMemberLevelSummary(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberLevelSummary"); } +PyObject* stub_guild_GetGuildMemberLevelAverage(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberLevelAverage"); } +PyObject* stub_guild_GetGuildExperienceSummary(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildExperienceSummary"); } +PyObject* stub_guild_GetGuildSkillPoint(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildSkillPoint"); } +PyObject* stub_guild_GetDragonPowerPoint(PyObject*, PyObject*) { return stub_call_named("guild.GetDragonPowerPoint"); } +PyObject* stub_guild_GetGuildSkillLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildSkillLevel"); } +PyObject* stub_guild_GetSkillLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillLevel"); } +PyObject* stub_guild_GetSkillMaxLevelNew(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillMaxLevelNew"); } +PyObject* stub_guild_SetSkillIndex(PyObject*, PyObject*) { return stub_call_named("guild.SetSkillIndex"); } +PyObject* stub_guild_GetSkillIndex(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillIndex"); } +PyObject* stub_guild_GetGradeData(PyObject*, PyObject*) { return stub_call_named("guild.GetGradeData"); } +PyObject* stub_guild_GetGradeName(PyObject*, PyObject*) { return stub_call_named("guild.GetGradeName"); } +PyObject* stub_guild_GetMemberCount(PyObject*, PyObject*) { return stub_call_named("guild.GetMemberCount"); } +PyObject* stub_guild_GetMemberData(PyObject*, PyObject*) { return stub_call_named("guild.GetMemberData"); } +PyObject* stub_guild_MemberIndexToPID(PyObject*, PyObject*) { return stub_call_named("guild.MemberIndexToPID"); } +PyObject* stub_guild_IsMember(PyObject*, PyObject*) { return stub_call_named("guild.IsMember"); } +PyObject* stub_guild_IsMemberByName(PyObject*, PyObject*) { return stub_call_named("guild.IsMemberByName"); } +PyObject* stub_guild_MainPlayerHasAuthority(PyObject*, PyObject*) { return stub_call_named("guild.MainPlayerHasAuthority"); } +PyObject* stub_guild_Destroy(PyObject*, PyObject*) { return stub_call_named("guild.Destroy"); } +PyMethodDef methods_guild[] = { + { "IsGuildEnable", stub_guild_IsGuildEnable, METH_VARARGS }, + { "GuildIDToMarkID", stub_guild_GuildIDToMarkID, METH_VARARGS }, + { "GetMarkImageFilenameByMarkID", stub_guild_GetMarkImageFilenameByMarkID, METH_VARARGS }, + { "GetMarkIndexByMarkID", stub_guild_GetMarkIndexByMarkID, METH_VARARGS }, + { "GetGuildID", stub_guild_GetGuildID, METH_VARARGS }, + { "HasGuildLand", stub_guild_HasGuildLand, METH_VARARGS }, + { "GetGuildName", stub_guild_GetGuildName, METH_VARARGS }, + { "GetGuildMasterName", stub_guild_GetGuildMasterName, METH_VARARGS }, + { "GetEnemyGuildName", stub_guild_GetEnemyGuildName, METH_VARARGS }, + { "GetGuildMoney", stub_guild_GetGuildMoney, METH_VARARGS }, + { "GetGuildBoardCommentCount", stub_guild_GetGuildBoardCommentCount, METH_VARARGS }, + { "GetGuildBoardCommentData", stub_guild_GetGuildBoardCommentData, METH_VARARGS }, + { "GetGuildLevel", stub_guild_GetGuildLevel, METH_VARARGS }, + { "GetGuildExperience", stub_guild_GetGuildExperience, METH_VARARGS }, + { "GetGuildMemberCount", stub_guild_GetGuildMemberCount, METH_VARARGS }, + { "GetGuildMemberLevelSummary", stub_guild_GetGuildMemberLevelSummary, METH_VARARGS }, + { "GetGuildMemberLevelAverage", stub_guild_GetGuildMemberLevelAverage, METH_VARARGS }, + { "GetGuildExperienceSummary", stub_guild_GetGuildExperienceSummary, METH_VARARGS }, + { "GetGuildSkillPoint", stub_guild_GetGuildSkillPoint, METH_VARARGS }, + { "GetDragonPowerPoint", stub_guild_GetDragonPowerPoint, METH_VARARGS }, + { "GetGuildSkillLevel", stub_guild_GetGuildSkillLevel, METH_VARARGS }, + { "GetSkillLevel", stub_guild_GetSkillLevel, METH_VARARGS }, + { "GetSkillMaxLevelNew", stub_guild_GetSkillMaxLevelNew, METH_VARARGS }, + { "SetSkillIndex", stub_guild_SetSkillIndex, METH_VARARGS }, + { "GetSkillIndex", stub_guild_GetSkillIndex, METH_VARARGS }, + { "GetGradeData", stub_guild_GetGradeData, METH_VARARGS }, + { "GetGradeName", stub_guild_GetGradeName, METH_VARARGS }, + { "GetMemberCount", stub_guild_GetMemberCount, METH_VARARGS }, + { "GetMemberData", stub_guild_GetMemberData, METH_VARARGS }, + { "MemberIndexToPID", stub_guild_MemberIndexToPID, METH_VARARGS }, + { "IsMember", stub_guild_IsMember, METH_VARARGS }, + { "IsMemberByName", stub_guild_IsMemberByName, METH_VARARGS }, + { "MainPlayerHasAuthority", stub_guild_MainPlayerHasAuthority, METH_VARARGS }, + { "Destroy", stub_guild_Destroy, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_guild[] = {"AUTH_ADD_MEMBER", "AUTH_REMOVE_MEMBER", "AUTH_NOTICE", "AUTH_SKILL", "ENEMY_GUILD_SLOT_MAX_COUNT", NULL}; +const char* strings_guild[] = {NULL}; +// 40250 UserInterface/PythonIMEModule.cpp: ime export names. +PyObject* stub_ime_Enable(PyObject*, PyObject*) { return stub_call_named("ime.Enable"); } +PyObject* stub_ime_Disable(PyObject*, PyObject*) { return stub_call_named("ime.Disable"); } +PyObject* stub_ime_EnableCaptureInput(PyObject*, PyObject*) { return stub_call_named("ime.EnableCaptureInput"); } +PyObject* stub_ime_DisableCaptureInput(PyObject*, PyObject*) { return stub_call_named("ime.DisableCaptureInput"); } +PyObject* stub_ime_SetMax(PyObject*, PyObject*) { return stub_call_named("ime.SetMax"); } +PyObject* stub_ime_SetUserMax(PyObject*, PyObject*) { return stub_call_named("ime.SetUserMax"); } +PyObject* stub_ime_SetText(PyObject*, PyObject*) { return stub_call_named("ime.SetText"); } +PyObject* stub_ime_GetText(PyObject*, PyObject*) { return stub_call_named("ime.GetText"); } +PyObject* stub_ime_GetCodePage(PyObject*, PyObject*) { return stub_call_named("ime.GetCodePage"); } +PyObject* stub_ime_GetCandidateCount(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidateCount"); } +PyObject* stub_ime_GetCandidate(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidate"); } +PyObject* stub_ime_GetCandidateSelection(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidateSelection"); } +PyObject* stub_ime_GetReading(PyObject*, PyObject*) { return stub_call_named("ime.GetReading"); } +PyObject* stub_ime_GetReadingError(PyObject*, PyObject*) { return stub_call_named("ime.GetReadingError"); } +PyObject* stub_ime_EnableIME(PyObject*, PyObject*) { return stub_call_named("ime.EnableIME"); } +PyObject* stub_ime_DisableIME(PyObject*, PyObject*) { return stub_call_named("ime.DisableIME"); } +PyObject* stub_ime_GetInputMode(PyObject*, PyObject*) { return stub_call_named("ime.GetInputMode"); } +PyObject* stub_ime_SetInputMode(PyObject*, PyObject*) { return stub_call_named("ime.SetInputMode"); } +PyObject* stub_ime_SetNumberMode(PyObject*, PyObject*) { return stub_call_named("ime.SetNumberMode"); } +PyObject* stub_ime_SetStringMode(PyObject*, PyObject*) { return stub_call_named("ime.SetStringMode"); } +PyObject* stub_ime_AddExceptKey(PyObject*, PyObject*) { return stub_call_named("ime.AddExceptKey"); } +PyObject* stub_ime_ClearExceptKey(PyObject*, PyObject*) { return stub_call_named("ime.ClearExceptKey"); } +PyObject* stub_ime_MoveLeft(PyObject*, PyObject*) { return stub_call_named("ime.MoveLeft"); } +PyObject* stub_ime_MoveRight(PyObject*, PyObject*) { return stub_call_named("ime.MoveRight"); } +PyObject* stub_ime_MoveHome(PyObject*, PyObject*) { return stub_call_named("ime.MoveHome"); } +PyObject* stub_ime_MoveEnd(PyObject*, PyObject*) { return stub_call_named("ime.MoveEnd"); } +PyObject* stub_ime_SetCursorPosition(PyObject*, PyObject*) { return stub_call_named("ime.SetCursorPosition"); } +PyObject* stub_ime_Delete(PyObject*, PyObject*) { return stub_call_named("ime.Delete"); } +PyObject* stub_ime_PasteString(PyObject*, PyObject*) { return stub_call_named("ime.PasteString"); } +PyObject* stub_ime_PasteBackspace(PyObject*, PyObject*) { return stub_call_named("ime.PasteBackspace"); } +PyObject* stub_ime_PasteReturn(PyObject*, PyObject*) { return stub_call_named("ime.PasteReturn"); } +PyObject* stub_ime_PasteTextFromClipBoard(PyObject*, PyObject*) { return stub_call_named("ime.PasteTextFromClipBoard"); } +PyObject* stub_ime_EnablePaste(PyObject*, PyObject*) { return stub_call_named("ime.EnablePaste"); } +PyMethodDef methods_ime[] = { + { "Enable", stub_ime_Enable, METH_VARARGS }, + { "Disable", stub_ime_Disable, METH_VARARGS }, + { "EnableCaptureInput", stub_ime_EnableCaptureInput, METH_VARARGS }, + { "DisableCaptureInput", stub_ime_DisableCaptureInput, METH_VARARGS }, + { "SetMax", stub_ime_SetMax, METH_VARARGS }, + { "SetUserMax", stub_ime_SetUserMax, METH_VARARGS }, + { "SetText", stub_ime_SetText, METH_VARARGS }, + { "GetText", stub_ime_GetText, METH_VARARGS }, + { "GetCodePage", stub_ime_GetCodePage, METH_VARARGS }, + { "GetCandidateCount", stub_ime_GetCandidateCount, METH_VARARGS }, + { "GetCandidate", stub_ime_GetCandidate, METH_VARARGS }, + { "GetCandidateSelection", stub_ime_GetCandidateSelection, METH_VARARGS }, + { "GetReading", stub_ime_GetReading, METH_VARARGS }, + { "GetReadingError", stub_ime_GetReadingError, METH_VARARGS }, + { "EnableIME", stub_ime_EnableIME, METH_VARARGS }, + { "DisableIME", stub_ime_DisableIME, METH_VARARGS }, + { "GetInputMode", stub_ime_GetInputMode, METH_VARARGS }, + { "SetInputMode", stub_ime_SetInputMode, METH_VARARGS }, + { "SetNumberMode", stub_ime_SetNumberMode, METH_VARARGS }, + { "SetStringMode", stub_ime_SetStringMode, METH_VARARGS }, + { "AddExceptKey", stub_ime_AddExceptKey, METH_VARARGS }, + { "ClearExceptKey", stub_ime_ClearExceptKey, METH_VARARGS }, + { "MoveLeft", stub_ime_MoveLeft, METH_VARARGS }, + { "MoveRight", stub_ime_MoveRight, METH_VARARGS }, + { "MoveHome", stub_ime_MoveHome, METH_VARARGS }, + { "MoveEnd", stub_ime_MoveEnd, METH_VARARGS }, + { "SetCursorPosition", stub_ime_SetCursorPosition, METH_VARARGS }, + { "Delete", stub_ime_Delete, METH_VARARGS }, + { "PasteString", stub_ime_PasteString, METH_VARARGS }, + { "PasteBackspace", stub_ime_PasteBackspace, METH_VARARGS }, + { "PasteReturn", stub_ime_PasteReturn, METH_VARARGS }, + { "PasteTextFromClipBoard", stub_ime_PasteTextFromClipBoard, METH_VARARGS }, + { "EnablePaste", stub_ime_EnablePaste, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_ime[] = {NULL}; +const char* strings_ime[] = {NULL}; +// 40250 UserInterface/PythonItemModule.cpp: item export names. +PyObject* stub_item_SetUseSoundFileName(PyObject*, PyObject*) { return stub_call_named("item.SetUseSoundFileName"); } +PyObject* stub_item_SetDropSoundFileName(PyObject*, PyObject*) { return stub_call_named("item.SetDropSoundFileName"); } +PyObject* stub_item_SelectItem(PyObject*, PyObject*) { return stub_call_named("item.SelectItem"); } +PyObject* stub_item_GetItemName(PyObject*, PyObject*) { return stub_call_named("item.GetItemName"); } +PyObject* stub_item_GetItemDescription(PyObject*, PyObject*) { return stub_call_named("item.GetItemDescription"); } +PyObject* stub_item_GetItemSummary(PyObject*, PyObject*) { return stub_call_named("item.GetItemSummary"); } +PyObject* stub_item_GetIconImage(PyObject*, PyObject*) { return stub_call_named("item.GetIconImage"); } +PyObject* stub_item_GetIconImageFileName(PyObject*, PyObject*) { return stub_call_named("item.GetIconImageFileName"); } +PyObject* stub_item_GetItemSize(PyObject*, PyObject*) { return stub_call_named("item.GetItemSize"); } +PyObject* stub_item_GetItemType(PyObject*, PyObject*) { return stub_call_named("item.GetItemType"); } +PyObject* stub_item_GetItemSubType(PyObject*, PyObject*) { return stub_call_named("item.GetItemSubType"); } +PyObject* stub_item_GetIBuyItemPrice(PyObject*, PyObject*) { return stub_call_named("item.GetIBuyItemPrice"); } +PyObject* stub_item_GetISellItemPrice(PyObject*, PyObject*) { return stub_call_named("item.GetISellItemPrice"); } +PyObject* stub_item_IsAntiFlag(PyObject*, PyObject*) { return stub_call_named("item.IsAntiFlag"); } +PyObject* stub_item_IsFlag(PyObject*, PyObject*) { return stub_call_named("item.IsFlag"); } +PyObject* stub_item_IsWearableFlag(PyObject*, PyObject*) { return stub_call_named("item.IsWearableFlag"); } +PyObject* stub_item_Is1GoldItem(PyObject*, PyObject*) { return stub_call_named("item.Is1GoldItem"); } +PyObject* stub_item_GetLimit(PyObject*, PyObject*) { return stub_call_named("item.GetLimit"); } +PyObject* stub_item_GetAffect(PyObject*, PyObject*) { return stub_call_named("item.GetAffect"); } +PyObject* stub_item_GetValue(PyObject*, PyObject*) { return stub_call_named("item.GetValue"); } +PyObject* stub_item_GetSocket(PyObject*, PyObject*) { return stub_call_named("item.GetSocket"); } +PyObject* stub_item_GetIconInstance(PyObject*, PyObject*) { return stub_call_named("item.GetIconInstance"); } +PyObject* stub_item_GetUseType(PyObject*, PyObject*) { return stub_call_named("item.GetUseType"); } +PyObject* stub_item_DeleteIconInstance(PyObject*, PyObject*) { return stub_call_named("item.DeleteIconInstance"); } +PyObject* stub_item_IsEquipmentVID(PyObject*, PyObject*) { return stub_call_named("item.IsEquipmentVID"); } +PyObject* stub_item_IsRefineScroll(PyObject*, PyObject*) { return stub_call_named("item.IsRefineScroll"); } +PyObject* stub_item_IsDetachScroll(PyObject*, PyObject*) { return stub_call_named("item.IsDetachScroll"); } +PyObject* stub_item_IsKey(PyObject*, PyObject*) { return stub_call_named("item.IsKey"); } +PyObject* stub_item_IsMetin(PyObject*, PyObject*) { return stub_call_named("item.IsMetin"); } +PyObject* stub_item_CanAddToQuickSlotItem(PyObject*, PyObject*) { return stub_call_named("item.CanAddToQuickSlotItem"); } +PyObject* stub_item_Update(PyObject*, PyObject*) { return stub_call_named("item.Update"); } +PyObject* stub_item_Render(PyObject*, PyObject*) { return stub_call_named("item.Render"); } +PyObject* stub_item_CreateItem(PyObject*, PyObject*) { return stub_call_named("item.CreateItem"); } +PyObject* stub_item_DeleteItem(PyObject*, PyObject*) { return stub_call_named("item.DeleteItem"); } +PyObject* stub_item_Pick(PyObject*, PyObject*) { return stub_call_named("item.Pick"); } +PyObject* stub_item_LoadItemTable(PyObject*, PyObject*) { return stub_call_named("item.LoadItemTable"); } +PyMethodDef methods_item[] = { + { "SetUseSoundFileName", stub_item_SetUseSoundFileName, METH_VARARGS }, + { "SetDropSoundFileName", stub_item_SetDropSoundFileName, METH_VARARGS }, + { "SelectItem", stub_item_SelectItem, METH_VARARGS }, + { "GetItemName", stub_item_GetItemName, METH_VARARGS }, + { "GetItemDescription", stub_item_GetItemDescription, METH_VARARGS }, + { "GetItemSummary", stub_item_GetItemSummary, METH_VARARGS }, + { "GetIconImage", stub_item_GetIconImage, METH_VARARGS }, + { "GetIconImageFileName", stub_item_GetIconImageFileName, METH_VARARGS }, + { "GetItemSize", stub_item_GetItemSize, METH_VARARGS }, + { "GetItemType", stub_item_GetItemType, METH_VARARGS }, + { "GetItemSubType", stub_item_GetItemSubType, METH_VARARGS }, + { "GetIBuyItemPrice", stub_item_GetIBuyItemPrice, METH_VARARGS }, + { "GetISellItemPrice", stub_item_GetISellItemPrice, METH_VARARGS }, + { "IsAntiFlag", stub_item_IsAntiFlag, METH_VARARGS }, + { "IsFlag", stub_item_IsFlag, METH_VARARGS }, + { "IsWearableFlag", stub_item_IsWearableFlag, METH_VARARGS }, + { "Is1GoldItem", stub_item_Is1GoldItem, METH_VARARGS }, + { "GetLimit", stub_item_GetLimit, METH_VARARGS }, + { "GetAffect", stub_item_GetAffect, METH_VARARGS }, + { "GetValue", stub_item_GetValue, METH_VARARGS }, + { "GetSocket", stub_item_GetSocket, METH_VARARGS }, + { "GetIconInstance", stub_item_GetIconInstance, METH_VARARGS }, + { "GetUseType", stub_item_GetUseType, METH_VARARGS }, + { "DeleteIconInstance", stub_item_DeleteIconInstance, METH_VARARGS }, + { "IsEquipmentVID", stub_item_IsEquipmentVID, METH_VARARGS }, + { "IsRefineScroll", stub_item_IsRefineScroll, METH_VARARGS }, + { "IsDetachScroll", stub_item_IsDetachScroll, METH_VARARGS }, + { "IsKey", stub_item_IsKey, METH_VARARGS }, + { "IsMetin", stub_item_IsMetin, METH_VARARGS }, + { "CanAddToQuickSlotItem", stub_item_CanAddToQuickSlotItem, METH_VARARGS }, + { "Update", stub_item_Update, METH_VARARGS }, + { "Render", stub_item_Render, METH_VARARGS }, + { "CreateItem", stub_item_CreateItem, METH_VARARGS }, + { "DeleteItem", stub_item_DeleteItem, METH_VARARGS }, + { "Pick", stub_item_Pick, METH_VARARGS }, + { "LoadItemTable", stub_item_LoadItemTable, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_item[] = {"USESOUND_ACCESSORY", "USESOUND_ARMOR", "USESOUND_BOW", "USESOUND_DEFAULT", "USESOUND_WEAPON", "USESOUND_POTION", "USESOUND_PORTAL", "DROPSOUND_ACCESSORY", "DROPSOUND_ARMOR", "DROPSOUND_BOW", "DROPSOUND_DEFAULT", "DROPSOUND_WEAPON", "EQUIPMENT_COUNT", "EQUIPMENT_HEAD", "EQUIPMENT_BODY", "EQUIPMENT_WEAPON", "EQUIPMENT_WRIST", "EQUIPMENT_SHOES", "EQUIPMENT_NECK", "EQUIPMENT_EAR", "EQUIPMENT_UNIQUE1", "EQUIPMENT_UNIQUE2", "EQUIPMENT_ARROW", "EQUIPMENT_RING1", "EQUIPMENT_RING2", "EQUIPMENT_BELT", "ITEM_TYPE_NONE", "ITEM_TYPE_WEAPON", "ITEM_TYPE_ARMOR", "ITEM_TYPE_USE", "ITEM_TYPE_AUTOUSE", "ITEM_TYPE_MATERIAL", "ITEM_TYPE_SPECIAL", "ITEM_TYPE_TOOL", "ITEM_TYPE_LOTTERY", "ITEM_TYPE_ELK", "ITEM_TYPE_METIN", "ITEM_TYPE_CONTAINER", "ITEM_TYPE_FISH", "ITEM_TYPE_ROD", "ITEM_TYPE_RESOURCE", "ITEM_TYPE_CAMPFIRE", "ITEM_TYPE_UNIQUE", "ITEM_TYPE_SKILLBOOK", "ITEM_TYPE_QUEST", "ITEM_TYPE_POLYMORPH", "ITEM_TYPE_TREASURE_BOX", "ITEM_TYPE_TREASURE_KEY", "ITEM_TYPE_PICK", "ITEM_TYPE_BLEND", "ITEM_TYPE_DS", "ITEM_TYPE_SPECIAL_DS", "ITEM_TYPE_RING", "ITEM_TYPE_BELT", "ITEM_TYPE_COSTUME", "COSTUME_TYPE_BODY", "COSTUME_TYPE_HAIR", "COSTUME_SLOT_START", "COSTUME_SLOT_COUNT", "COSTUME_SLOT_BODY", "COSTUME_SLOT_HAIR", "COSTUME_SLOT_END", "BELT_INVENTORY_SLOT_START", "BELT_INVENTORY_SLOT_COUNT", "BELT_INVENTORY_SLOT_END", "WEAPON_SWORD", "WEAPON_DAGGER", "WEAPON_BOW", "WEAPON_TWO_HANDED", "WEAPON_BELL", "WEAPON_FAN", "WEAPON_ARROW", "WEAPON_NUM_TYPES", "USE_POTION", "USE_TALISMAN", "USE_TUNING", "USE_MOVE", "USE_TREASURE_BOX", "USE_MONEYBAG", "USE_BAIT", "USE_ABILITY_UP", "USE_AFFECT", "USE_CREATE_STONE", "USE_SPECIAL", "USE_POTION_NODELAY", "USE_CLEAR", "USE_INVISIBILITY", "USE_DETACHMENT", "USE_TIME_CHARGE_PER", "USE_TIME_CHARGE_FIX", "MATERIAL_DS_REFINE_NORMAL", "MATERIAL_DS_REFINE_BLESSED", "MATERIAL_DS_REFINE_HOLLY", "METIN_NORMAL", "METIN_GOLD", "LIMIT_NONE", "LIMIT_LEVEL", "LIMIT_STR", "LIMIT_DEX", "LIMIT_INT", "LIMIT_CON", "LIMIT_PCBANG", "LIMIT_REAL_TIME", "LIMIT_REAL_TIME_START_FIRST_USE", "LIMIT_TIMER_BASED_ON_WEAR", "LIMIT_TYPE_MAX_NUM", "LIMIT_MAX_NUM", "ITEM_ANTIFLAG_FEMALE", "ITEM_ANTIFLAG_MALE", "ITEM_ANTIFLAG_WARRIOR", "ITEM_ANTIFLAG_ASSASSIN", "ITEM_ANTIFLAG_SURA", "ITEM_ANTIFLAG_SHAMAN", "ITEM_ANTIFLAG_GET", "ITEM_ANTIFLAG_DROP", "ITEM_ANTIFLAG_SELL", "ITEM_ANTIFLAG_EMPIRE_A", "ITEM_ANTIFLAG_EMPIRE_B", "ITEM_ANTIFLAG_EMPIRE_R", "ITEM_ANTIFLAG_SAVE", "ITEM_ANTIFLAG_GIVE", "ITEM_ANTIFLAG_PKDROP", "ITEM_ANTIFLAG_STACK", "ITEM_ANTIFLAG_MYSHOP", "ITEM_FLAG_RARE", "ITEM_FLAG_UNIQUE", "ITEM_FLAG_CONFIRM_WHEN_USE", "ANTIFLAG_FEMALE", "ANTIFLAG_MALE", "ANTIFLAG_WARRIOR", "ANTIFLAG_ASSASSIN", "ANTIFLAG_SURA", "ANTIFLAG_SHAMAN", "ANTIFLAG_GET", "ANTIFLAG_DROP", "ANTIFLAG_SELL", "ANTIFLAG_EMPIRE_A", "ANTIFLAG_EMPIRE_B", "ANTIFLAG_EMPIRE_R", "ANTIFLAG_SAVE", "ANTIFLAG_GIVE", "ANTIFLAG_PKDROP", "ANTIFLAG_STACK", "ANTIFLAG_MYSHOP", "WEARABLE_BODY", "WEARABLE_HEAD", "WEARABLE_FOOTS", "WEARABLE_WRIST", "WEARABLE_WEAPON", "WEARABLE_NECK", "WEARABLE_EAR", "WEARABLE_UNIQUE", "WEARABLE_SHIELD", "WEARABLE_ARROW", "ARMOR_BODY", "ARMOR_HEAD", "ARMOR_SHIELD", "ARMOR_WRIST", "ARMOR_FOOTS", "ARMOR_NECK", "ARMOR_EAR", "ITEM_APPLY_MAX_NUM", "ITEM_SOCKET_MAX_NUM", "APPLY_NONE", "APPLY_STR", "APPLY_DEX", "APPLY_CON", "APPLY_INT", "APPLY_MAX_HP", "APPLY_MAX_SP", "APPLY_HP_REGEN", "APPLY_SP_REGEN", "APPLY_DEF_GRADE_BONUS", "APPLY_ATT_GRADE_BONUS", "APPLY_ATT_SPEED", "APPLY_MOV_SPEED", "APPLY_CAST_SPEED", "APPLY_MAGIC_ATT_GRADE", "APPLY_MAGIC_DEF_GRADE", "APPLY_SKILL", "APPLY_ATTBONUS_ANIMAL", "APPLY_ATTBONUS_UNDEAD", "APPLY_ATTBONUS_DEVIL", "APPLY_ATTBONUS_HUMAN", "APPLY_BOW_DISTANCE", "APPLY_RESIST_BOW", "APPLY_RESIST_FIRE", "APPLY_RESIST_ELEC", "APPLY_RESIST_MAGIC", "APPLY_POISON_PCT", "APPLY_SLOW_PCT", "APPLY_STUN_PCT", "APPLY_CRITICAL_PCT", "APPLY_PENETRATE_PCT", "APPLY_ATTBONUS_ORC", "APPLY_ATTBONUS_MILGYO", "APPLY_STEAL_HP", "APPLY_STEAL_SP", "APPLY_MANA_BURN_PCT", "APPLY_DAMAGE_SP_RECOVER", "APPLY_BLOCK", "APPLY_DODGE", "APPLY_RESIST_SWORD", "APPLY_RESIST_TWOHAND", "APPLY_RESIST_DAGGER", "APPLY_RESIST_BELL", "APPLY_RESIST_FAN", "APPLY_RESIST_WIND", "APPLY_REFLECT_MELEE", "APPLY_REFLECT_CURSE", "APPLY_POISON_REDUCE", "APPLY_KILL_SP_RECOVER", "APPLY_EXP_DOUBLE_BONUS", "APPLY_GOLD_DOUBLE_BONUS", "APPLY_ITEM_DROP_BONUS", "APPLY_POTION_BONUS", "APPLY_KILL_HP_RECOVER", "APPLY_IMMUNE_STUN", "APPLY_IMMUNE_SLOW", "APPLY_IMMUNE_FALL", "APPLY_MAX_STAMINA", "APPLY_ATTBONUS_WARRIOR", "APPLY_ATTBONUS_ASSASSIN", "APPLY_ATTBONUS_SURA", "APPLY_ATTBONUS_SHAMAN", "APPLY_ATTBONUS_MONSTER", "APPLY_MALL_ATTBONUS", "APPLY_MALL_DEFBONUS", "APPLY_MALL_EXPBONUS", "APPLY_MALL_ITEMBONUS", "APPLY_MALL_GOLDBONUS", "APPLY_MAX_HP_PCT", "APPLY_MAX_SP_PCT", "APPLY_SKILL_DAMAGE_BONUS", "APPLY_NORMAL_HIT_DAMAGE_BONUS", "APPLY_SKILL_DEFEND_BONUS", "APPLY_NORMAL_HIT_DEFEND_BONUS", "APPLY_PC_BANG_EXP_BONUS", "APPLY_PC_BANG_DROP_BONUS", "APPLY_RESIST_WARRIOR", "APPLY_RESIST_ASSASSIN", "APPLY_RESIST_SURA", "APPLY_RESIST_SHAMAN", "APPLY_ENERGY", "APPLY_COSTUME_ATTR_BONUS", "APPLY_MAGIC_ATTBONUS_PER", "APPLY_MELEE_MAGIC_ATTBONUS_PER", "APPLY_RESIST_ICE", "APPLY_RESIST_EARTH", "APPLY_RESIST_DARK", "APPLY_ANTI_CRITICAL_PCT", "APPLY_ANTI_PENETRATE_PCT", NULL}; +const char* strings_item[] = {NULL}; +// 40250 UserInterface/PythonMessenger.cpp: messenger export names. +PyObject* stub_messenger_RemoveFriend(PyObject*, PyObject*) { return stub_call_named("messenger.RemoveFriend"); } +PyObject* stub_messenger_IsFriendByName(PyObject*, PyObject*) { return stub_call_named("messenger.IsFriendByName"); } +PyObject* stub_messenger_Destroy(PyObject*, PyObject*) { return stub_call_named("messenger.Destroy"); } +PyObject* stub_messenger_RefreshGuildMember(PyObject*, PyObject*) { return stub_call_named("messenger.RefreshGuildMember"); } +PyObject* stub_messenger_SetMessengerHandler(PyObject*, PyObject*) { return stub_call_named("messenger.SetMessengerHandler"); } +PyMethodDef methods_messenger[] = { + { "RemoveFriend", stub_messenger_RemoveFriend, METH_VARARGS }, + { "IsFriendByName", stub_messenger_IsFriendByName, METH_VARARGS }, + { "Destroy", stub_messenger_Destroy, METH_VARARGS }, + { "RefreshGuildMember", stub_messenger_RefreshGuildMember, METH_VARARGS }, + { "SetMessengerHandler", stub_messenger_SetMessengerHandler, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_messenger[] = {NULL}; +const char* strings_messenger[] = {NULL}; +// 40250 UserInterface/PythonMiniMapModule.cpp: miniMap export names. +PyObject* stub_miniMap_SetScale(PyObject*, PyObject*) { return stub_call_named("miniMap.SetScale"); } +PyObject* stub_miniMap_ScaleUp(PyObject*, PyObject*) { return stub_call_named("miniMap.ScaleUp"); } +PyObject* stub_miniMap_ScaleDown(PyObject*, PyObject*) { return stub_call_named("miniMap.ScaleDown"); } +PyObject* stub_miniMap_SetMiniMapSize(PyObject*, PyObject*) { return stub_call_named("miniMap.SetMiniMapSize"); } +PyObject* stub_miniMap_SetCenterPosition(PyObject*, PyObject*) { return stub_call_named("miniMap.SetCenterPosition"); } +PyObject* stub_miniMap_Destroy(PyObject*, PyObject*) { return stub_call_named("miniMap.Destroy"); } +PyObject* stub_miniMap_Create(PyObject*, PyObject*) { return stub_call_named("miniMap.Create"); } +PyObject* stub_miniMap_Update(PyObject*, PyObject*) { return stub_call_named("miniMap.Update"); } +PyObject* stub_miniMap_Render(PyObject*, PyObject*) { return stub_call_named("miniMap.Render"); } +PyObject* stub_miniMap_Show(PyObject*, PyObject*) { return stub_call_named("miniMap.Show"); } +PyObject* stub_miniMap_Hide(PyObject*, PyObject*) { return stub_call_named("miniMap.Hide"); } +PyObject* stub_miniMap_isShow(PyObject*, PyObject*) { return stub_call_named("miniMap.isShow"); } +PyObject* stub_miniMap_GetInfo(PyObject*, PyObject*) { return stub_call_named("miniMap.GetInfo"); } +PyObject* stub_miniMap_LoadAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.LoadAtlas"); } +PyObject* stub_miniMap_UpdateAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.UpdateAtlas"); } +PyObject* stub_miniMap_RenderAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.RenderAtlas"); } +PyObject* stub_miniMap_ShowAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.ShowAtlas"); } +PyObject* stub_miniMap_HideAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.HideAtlas"); } +PyObject* stub_miniMap_isShowAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.isShowAtlas"); } +PyObject* stub_miniMap_IsAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.IsAtlas"); } +PyObject* stub_miniMap_GetAtlasInfo(PyObject*, PyObject*) { return stub_call_named("miniMap.GetAtlasInfo"); } +PyObject* stub_miniMap_GetAtlasSize(PyObject*, PyObject*) { return stub_call_named("miniMap.GetAtlasSize"); } +PyObject* stub_miniMap_AddWayPoint(PyObject*, PyObject*) { return stub_call_named("miniMap.AddWayPoint"); } +PyObject* stub_miniMap_RemoveWayPoint(PyObject*, PyObject*) { return stub_call_named("miniMap.RemoveWayPoint"); } +PyObject* stub_miniMap_RegisterAtlasWindow(PyObject*, PyObject*) { return stub_call_named("miniMap.RegisterAtlasWindow"); } +PyObject* stub_miniMap_UnregisterAtlasWindow(PyObject*, PyObject*) { return stub_call_named("miniMap.UnregisterAtlasWindow"); } +PyObject* stub_miniMap_GetGuildAreaID(PyObject*, PyObject*) { return stub_call_named("miniMap.GetGuildAreaID"); } +PyMethodDef methods_miniMap[] = { + { "SetScale", stub_miniMap_SetScale, METH_VARARGS }, + { "ScaleUp", stub_miniMap_ScaleUp, METH_VARARGS }, + { "ScaleDown", stub_miniMap_ScaleDown, METH_VARARGS }, + { "SetMiniMapSize", stub_miniMap_SetMiniMapSize, METH_VARARGS }, + { "SetCenterPosition", stub_miniMap_SetCenterPosition, METH_VARARGS }, + { "Destroy", stub_miniMap_Destroy, METH_VARARGS }, + { "Create", stub_miniMap_Create, METH_VARARGS }, + { "Update", stub_miniMap_Update, METH_VARARGS }, + { "Render", stub_miniMap_Render, METH_VARARGS }, + { "Show", stub_miniMap_Show, METH_VARARGS }, + { "Hide", stub_miniMap_Hide, METH_VARARGS }, + { "isShow", stub_miniMap_isShow, METH_VARARGS }, + { "GetInfo", stub_miniMap_GetInfo, METH_VARARGS }, + { "LoadAtlas", stub_miniMap_LoadAtlas, METH_VARARGS }, + { "UpdateAtlas", stub_miniMap_UpdateAtlas, METH_VARARGS }, + { "RenderAtlas", stub_miniMap_RenderAtlas, METH_VARARGS }, + { "ShowAtlas", stub_miniMap_ShowAtlas, METH_VARARGS }, + { "HideAtlas", stub_miniMap_HideAtlas, METH_VARARGS }, + { "isShowAtlas", stub_miniMap_isShowAtlas, METH_VARARGS }, + { "IsAtlas", stub_miniMap_IsAtlas, METH_VARARGS }, + { "GetAtlasInfo", stub_miniMap_GetAtlasInfo, METH_VARARGS }, + { "GetAtlasSize", stub_miniMap_GetAtlasSize, METH_VARARGS }, + { "AddWayPoint", stub_miniMap_AddWayPoint, METH_VARARGS }, + { "RemoveWayPoint", stub_miniMap_RemoveWayPoint, METH_VARARGS }, + { "RegisterAtlasWindow", stub_miniMap_RegisterAtlasWindow, METH_VARARGS }, + { "UnregisterAtlasWindow", stub_miniMap_UnregisterAtlasWindow, METH_VARARGS }, + { "GetGuildAreaID", stub_miniMap_GetGuildAreaID, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_miniMap[] = {"TYPE_OPC", "TYPE_OPCPVP", "TYPE_OPCPVPSELF", "TYPE_NPC", "TYPE_MONSTER", "TYPE_WARP", "TYPE_WAYPOINT", "TYPE_PARTY", "TYPE_EMPIRE", NULL}; +const char* strings_miniMap[] = {NULL}; +// 40250 UserInterface/PythonNetworkStreamModule.cpp: net export names. +PyObject* stub_net_GetBettingGuildWarValue(PyObject*, PyObject*) { return stub_call_named("net.GetBettingGuildWarValue"); } +PyObject* stub_net_EnableChatInsultFilter(PyObject*, PyObject*) { return stub_call_named("net.EnableChatInsultFilter"); } +PyObject* stub_net_SetServerInfo(PyObject*, PyObject*) { return stub_call_named("net.SetServerInfo"); } +PyObject* stub_net_GetServerInfo(PyObject*, PyObject*) { return stub_call_named("net.GetServerInfo"); } +PyObject* stub_net_PreserveServerCommand(PyObject*, PyObject*) { return stub_call_named("net.PreserveServerCommand"); } +PyObject* stub_net_GetPreservedServerCommand(PyObject*, PyObject*) { return stub_call_named("net.GetPreservedServerCommand"); } +PyObject* stub_net_StartGame(PyObject*, PyObject*) { return stub_call_named("net.StartGame"); } +PyObject* stub_net_Warp(PyObject*, PyObject*) { return stub_call_named("net.Warp"); } +PyObject* stub_net_IsTest(PyObject*, PyObject*) { return stub_call_named("net.IsTest"); } +PyObject* stub_net_SetMarkServer(PyObject*, PyObject*) { return stub_call_named("net.SetMarkServer"); } +PyObject* stub_net_IsChatInsultIn(PyObject*, PyObject*) { return stub_call_named("net.IsChatInsultIn"); } +PyObject* stub_net_IsInsultIn(PyObject*, PyObject*) { return stub_call_named("net.IsInsultIn"); } +PyObject* stub_net_LoadInsultList(PyObject*, PyObject*) { return stub_call_named("net.LoadInsultList"); } +PyObject* stub_net_UploadMark(PyObject*, PyObject*) { return stub_call_named("net.UploadMark"); } +PyObject* stub_net_UploadSymbol(PyObject*, PyObject*) { return stub_call_named("net.UploadSymbol"); } +PyObject* stub_net_GetGuildID(PyObject*, PyObject*) { return stub_call_named("net.GetGuildID"); } +PyObject* stub_net_GetEmpireID(PyObject*, PyObject*) { return stub_call_named("net.GetEmpireID"); } +PyObject* stub_net_GetMainActorVID(PyObject*, PyObject*) { return stub_call_named("net.GetMainActorVID"); } +PyObject* stub_net_GetMainActorRace(PyObject*, PyObject*) { return stub_call_named("net.GetMainActorRace"); } +PyObject* stub_net_GetMainActorEmpire(PyObject*, PyObject*) { return stub_call_named("net.GetMainActorEmpire"); } +PyObject* stub_net_GetMainActorSkillGroup(PyObject*, PyObject*) { return stub_call_named("net.GetMainActorSkillGroup"); } +PyObject* stub_net_GetAccountCharacterSlotDataInteger(PyObject*, PyObject*) { return stub_call_named("net.GetAccountCharacterSlotDataInteger"); } +PyObject* stub_net_GetAccountCharacterSlotDataString(PyObject*, PyObject*) { return stub_call_named("net.GetAccountCharacterSlotDataString"); } +PyObject* stub_net_GetFieldMusicFileName(PyObject*, PyObject*) { return stub_call_named("net.GetFieldMusicFileName"); } +PyObject* stub_net_GetFieldMusicVolume(PyObject*, PyObject*) { return stub_call_named("net.GetFieldMusicVolume"); } +PyObject* stub_net_ToggleGameDebugInfo(PyObject*, PyObject*) { return stub_call_named("net.ToggleGameDebugInfo"); } +PyObject* stub_net_SetLoginInfo(PyObject*, PyObject*) { return stub_call_named("net.SetLoginInfo"); } +PyObject* stub_net_SetPhaseWindow(PyObject*, PyObject*) { return stub_call_named("net.SetPhaseWindow"); } +PyObject* stub_net_ClearPhaseWindow(PyObject*, PyObject*) { return stub_call_named("net.ClearPhaseWindow"); } +PyObject* stub_net_SetServerCommandParserWindow(PyObject*, PyObject*) { return stub_call_named("net.SetServerCommandParserWindow"); } +PyObject* stub_net_SetAccountConnectorHandler(PyObject*, PyObject*) { return stub_call_named("net.SetAccountConnectorHandler"); } +PyObject* stub_net_SetHandler(PyObject*, PyObject*) { return stub_call_named("net.SetHandler"); } +PyObject* stub_net_SetTCPRecvBufferSize(PyObject*, PyObject*) { return stub_call_named("net.SetTCPRecvBufferSize"); } +PyObject* stub_net_SetTCPSendBufferSize(PyObject*, PyObject*) { return stub_call_named("net.SetTCPSendBufferSize"); } +PyObject* stub_net_SetUDPRecvBufferSize(PyObject*, PyObject*) { return stub_call_named("net.SetUDPRecvBufferSize"); } +PyObject* stub_net_DirectEnter(PyObject*, PyObject*) { return stub_call_named("net.DirectEnter"); } +PyObject* stub_net_LogOutGame(PyObject*, PyObject*) { return stub_call_named("net.LogOutGame"); } +PyObject* stub_net_ExitGame(PyObject*, PyObject*) { return stub_call_named("net.ExitGame"); } +PyObject* stub_net_ExitApplication(PyObject*, PyObject*) { return stub_call_named("net.ExitApplication"); } +PyObject* stub_net_ConnectTCP(PyObject*, PyObject*) { return stub_call_named("net.ConnectTCP"); } +PyObject* stub_net_ConnectUDP(PyObject*, PyObject*) { return stub_call_named("net.ConnectUDP"); } +PyObject* stub_net_ConnectToAccountServer(PyObject*, PyObject*) { return stub_call_named("net.ConnectToAccountServer"); } +PyObject* stub_net_SendLoginPacket(PyObject*, PyObject*) { return stub_call_named("net.SendLoginPacket"); } +PyObject* stub_net_SendChinaMatrixCardPacket(PyObject*, PyObject*) { return stub_call_named("net.SendChinaMatrixCardPacket"); } +PyObject* stub_net_SendRunupMatrixCardPacket(PyObject*, PyObject*) { return stub_call_named("net.SendRunupMatrixCardPacket"); } +PyObject* stub_net_SendNEWCIBNPasspodAnswerPacket(PyObject*, PyObject*) { return stub_call_named("net.SendNEWCIBNPasspodAnswerPacket"); } +PyObject* stub_net_SendSelectEmpirePacket(PyObject*, PyObject*) { return stub_call_named("net.SendSelectEmpirePacket"); } +PyObject* stub_net_SendSelectCharacterPacket(PyObject*, PyObject*) { return stub_call_named("net.SendSelectCharacterPacket"); } +PyObject* stub_net_SendChangeNamePacket(PyObject*, PyObject*) { return stub_call_named("net.SendChangeNamePacket"); } +PyObject* stub_net_SendCreateCharacterPacket(PyObject*, PyObject*) { return stub_call_named("net.SendCreateCharacterPacket"); } +PyObject* stub_net_SendDestroyCharacterPacket(PyObject*, PyObject*) { return stub_call_named("net.SendDestroyCharacterPacket"); } +PyObject* stub_net_SendEnterGamePacket(PyObject*, PyObject*) { return stub_call_named("net.SendEnterGamePacket"); } +PyObject* stub_net_SendItemUsePacket(PyObject*, PyObject*) { return stub_call_named("net.SendItemUsePacket"); } +PyObject* stub_net_SendItemUseToItemPacket(PyObject*, PyObject*) { return stub_call_named("net.SendItemUseToItemPacket"); } +PyObject* stub_net_SendItemDropPacket(PyObject*, PyObject*) { return stub_call_named("net.SendItemDropPacket"); } +PyObject* stub_net_SendItemDropPacketNew(PyObject*, PyObject*) { return stub_call_named("net.SendItemDropPacketNew"); } +PyObject* stub_net_SendElkDropPacket(PyObject*, PyObject*) { return stub_call_named("net.SendElkDropPacket"); } +PyObject* stub_net_SendGoldDropPacketNew(PyObject*, PyObject*) { return stub_call_named("net.SendGoldDropPacketNew"); } +PyObject* stub_net_SendItemMovePacket(PyObject*, PyObject*) { return stub_call_named("net.SendItemMovePacket"); } +PyObject* stub_net_SendItemPickUpPacket(PyObject*, PyObject*) { return stub_call_named("net.SendItemPickUpPacket"); } +PyObject* stub_net_SendGiveItemPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGiveItemPacket"); } +PyObject* stub_net_SetOfflinePhase(PyObject*, PyObject*) { return stub_call_named("net.SetOfflinePhase"); } +PyObject* stub_net_Disconnect(PyObject*, PyObject*) { return stub_call_named("net.Disconnect"); } +PyObject* stub_net_IsConnect(PyObject*, PyObject*) { return stub_call_named("net.IsConnect"); } +PyObject* stub_net_SendChatPacket(PyObject*, PyObject*) { return stub_call_named("net.SendChatPacket"); } +PyObject* stub_net_SendEmoticon(PyObject*, PyObject*) { return stub_call_named("net.SendEmoticon"); } +PyObject* stub_net_SendWhisperPacket(PyObject*, PyObject*) { return stub_call_named("net.SendWhisperPacket"); } +PyObject* stub_net_SendMobileMessagePacket(PyObject*, PyObject*) { return stub_call_named("net.SendMobileMessagePacket"); } +PyObject* stub_net_SendCharacterPositionPacket(PyObject*, PyObject*) { return stub_call_named("net.SendCharacterPositionPacket"); } +PyObject* stub_net_SendShopEndPacket(PyObject*, PyObject*) { return stub_call_named("net.SendShopEndPacket"); } +PyObject* stub_net_SendShopBuyPacket(PyObject*, PyObject*) { return stub_call_named("net.SendShopBuyPacket"); } +PyObject* stub_net_SendShopSellPacket(PyObject*, PyObject*) { return stub_call_named("net.SendShopSellPacket"); } +PyObject* stub_net_SendShopSellPacketNew(PyObject*, PyObject*) { return stub_call_named("net.SendShopSellPacketNew"); } +PyObject* stub_net_SendExchangeStartPacket(PyObject*, PyObject*) { return stub_call_named("net.SendExchangeStartPacket"); } +PyObject* stub_net_SendExchangeItemAddPacket(PyObject*, PyObject*) { return stub_call_named("net.SendExchangeItemAddPacket"); } +PyObject* stub_net_SendExchangeItemDelPacket(PyObject*, PyObject*) { return stub_call_named("net.SendExchangeItemDelPacket"); } +PyObject* stub_net_SendExchangeElkAddPacket(PyObject*, PyObject*) { return stub_call_named("net.SendExchangeElkAddPacket"); } +PyObject* stub_net_SendExchangeAcceptPacket(PyObject*, PyObject*) { return stub_call_named("net.SendExchangeAcceptPacket"); } +PyObject* stub_net_SendExchangeExitPacket(PyObject*, PyObject*) { return stub_call_named("net.SendExchangeExitPacket"); } +PyObject* stub_net_SendOnClickPacket(PyObject*, PyObject*) { return stub_call_named("net.SendOnClickPacket"); } +PyObject* stub_net_RegisterEmoticonString(PyObject*, PyObject*) { return stub_call_named("net.RegisterEmoticonString"); } +PyObject* stub_net_SendMessengerAddByVIDPacket(PyObject*, PyObject*) { return stub_call_named("net.SendMessengerAddByVIDPacket"); } +PyObject* stub_net_SendMessengerAddByNamePacket(PyObject*, PyObject*) { return stub_call_named("net.SendMessengerAddByNamePacket"); } +PyObject* stub_net_SendMessengerRemovePacket(PyObject*, PyObject*) { return stub_call_named("net.SendMessengerRemovePacket"); } +PyObject* stub_net_SendPartyInvitePacket(PyObject*, PyObject*) { return stub_call_named("net.SendPartyInvitePacket"); } +PyObject* stub_net_SendPartyInviteAnswerPacket(PyObject*, PyObject*) { return stub_call_named("net.SendPartyInviteAnswerPacket"); } +PyObject* stub_net_SendPartyExitPacket(PyObject*, PyObject*) { return stub_call_named("net.SendPartyExitPacket"); } +PyObject* stub_net_SendPartyRemovePacket(PyObject*, PyObject*) { return stub_call_named("net.SendPartyRemovePacket"); } +PyObject* stub_net_SendPartySetStatePacket(PyObject*, PyObject*) { return stub_call_named("net.SendPartySetStatePacket"); } +PyObject* stub_net_SendPartyUseSkillPacket(PyObject*, PyObject*) { return stub_call_named("net.SendPartyUseSkillPacket"); } +PyObject* stub_net_SendPartyParameterPacket(PyObject*, PyObject*) { return stub_call_named("net.SendPartyParameterPacket"); } +PyObject* stub_net_SendSafeboxSaveMoneyPacket(PyObject*, PyObject*) { return stub_call_named("net.SendSafeboxSaveMoneyPacket"); } +PyObject* stub_net_SendSafeboxWithdrawMoneyPacket(PyObject*, PyObject*) { return stub_call_named("net.SendSafeboxWithdrawMoneyPacket"); } +PyObject* stub_net_SendSafeboxCheckinPacket(PyObject*, PyObject*) { return stub_call_named("net.SendSafeboxCheckinPacket"); } +PyObject* stub_net_SendSafeboxCheckoutPacket(PyObject*, PyObject*) { return stub_call_named("net.SendSafeboxCheckoutPacket"); } +PyObject* stub_net_SendSafeboxItemMovePacket(PyObject*, PyObject*) { return stub_call_named("net.SendSafeboxItemMovePacket"); } +PyObject* stub_net_SendMallCheckoutPacket(PyObject*, PyObject*) { return stub_call_named("net.SendMallCheckoutPacket"); } +PyObject* stub_net_SendAnswerMakeGuildPacket(PyObject*, PyObject*) { return stub_call_named("net.SendAnswerMakeGuildPacket"); } +PyObject* stub_net_SendQuestInputStringPacket(PyObject*, PyObject*) { return stub_call_named("net.SendQuestInputStringPacket"); } +PyObject* stub_net_SendQuestConfirmPacket(PyObject*, PyObject*) { return stub_call_named("net.SendQuestConfirmPacket"); } +PyObject* stub_net_SendGuildAddMemberPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildAddMemberPacket"); } +PyObject* stub_net_SendGuildRemoveMemberPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildRemoveMemberPacket"); } +PyObject* stub_net_SendGuildChangeGradeNamePacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildChangeGradeNamePacket"); } +PyObject* stub_net_SendGuildChangeGradeAuthorityPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildChangeGradeAuthorityPacket"); } +PyObject* stub_net_SendGuildOfferPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildOfferPacket"); } +PyObject* stub_net_SendGuildPostCommentPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildPostCommentPacket"); } +PyObject* stub_net_SendGuildDeleteCommentPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildDeleteCommentPacket"); } +PyObject* stub_net_SendGuildRefreshCommentsPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildRefreshCommentsPacket"); } +PyObject* stub_net_SendGuildChangeMemberGradePacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildChangeMemberGradePacket"); } +PyObject* stub_net_SendGuildUseSkillPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildUseSkillPacket"); } +PyObject* stub_net_SendGuildChangeMemberGeneralPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildChangeMemberGeneralPacket"); } +PyObject* stub_net_SendGuildInviteAnswerPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildInviteAnswerPacket"); } +PyObject* stub_net_SendGuildChargeGSPPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildChargeGSPPacket"); } +PyObject* stub_net_SendGuildDepositMoneyPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildDepositMoneyPacket"); } +PyObject* stub_net_SendGuildWithdrawMoneyPacket(PyObject*, PyObject*) { return stub_call_named("net.SendGuildWithdrawMoneyPacket"); } +PyObject* stub_net_SendRequestRefineInfoPacket(PyObject*, PyObject*) { return stub_call_named("net.SendRequestRefineInfoPacket"); } +PyObject* stub_net_SendRefinePacket(PyObject*, PyObject*) { return stub_call_named("net.SendRefinePacket"); } +PyObject* stub_net_SendSelectItemPacket(PyObject*, PyObject*) { return stub_call_named("net.SendSelectItemPacket"); } +PyObject* stub_net_SetPacketSequenceMode(PyObject*, PyObject*) { return stub_call_named("net.SetPacketSequenceMode"); } +PyObject* stub_net_SetEmpireLanguageMode(PyObject*, PyObject*) { return stub_call_named("net.SetEmpireLanguageMode"); } +PyObject* stub_net_SetSkillGroupFake(PyObject*, PyObject*) { return stub_call_named("net.SetSkillGroupFake"); } +PyObject* stub_net_SendGuildSymbol(PyObject*, PyObject*) { return stub_call_named("net.SendGuildSymbol"); } +PyObject* stub_net_DisconnectUploader(PyObject*, PyObject*) { return stub_call_named("net.DisconnectUploader"); } +PyObject* stub_net_RecvGuildSymbol(PyObject*, PyObject*) { return stub_call_named("net.RecvGuildSymbol"); } +PyObject* stub_net_RegisterErrorLog(PyObject*, PyObject*) { return stub_call_named("net.RegisterErrorLog"); } +PyMethodDef methods_net[] = { + { "GetBettingGuildWarValue", stub_net_GetBettingGuildWarValue, METH_VARARGS }, + { "EnableChatInsultFilter", stub_net_EnableChatInsultFilter, METH_VARARGS }, + { "SetServerInfo", stub_net_SetServerInfo, METH_VARARGS }, + { "GetServerInfo", stub_net_GetServerInfo, METH_VARARGS }, + { "PreserveServerCommand", stub_net_PreserveServerCommand, METH_VARARGS }, + { "GetPreservedServerCommand", stub_net_GetPreservedServerCommand, METH_VARARGS }, + { "StartGame", stub_net_StartGame, METH_VARARGS }, + { "Warp", stub_net_Warp, METH_VARARGS }, + { "IsTest", stub_net_IsTest, METH_VARARGS }, + { "SetMarkServer", stub_net_SetMarkServer, METH_VARARGS }, + { "IsChatInsultIn", stub_net_IsChatInsultIn, METH_VARARGS }, + { "IsInsultIn", stub_net_IsInsultIn, METH_VARARGS }, + { "LoadInsultList", stub_net_LoadInsultList, METH_VARARGS }, + { "UploadMark", stub_net_UploadMark, METH_VARARGS }, + { "UploadSymbol", stub_net_UploadSymbol, METH_VARARGS }, + { "GetGuildID", stub_net_GetGuildID, METH_VARARGS }, + { "GetEmpireID", stub_net_GetEmpireID, METH_VARARGS }, + { "GetMainActorVID", stub_net_GetMainActorVID, METH_VARARGS }, + { "GetMainActorRace", stub_net_GetMainActorRace, METH_VARARGS }, + { "GetMainActorEmpire", stub_net_GetMainActorEmpire, METH_VARARGS }, + { "GetMainActorSkillGroup", stub_net_GetMainActorSkillGroup, METH_VARARGS }, + { "GetAccountCharacterSlotDataInteger", stub_net_GetAccountCharacterSlotDataInteger, METH_VARARGS }, + { "GetAccountCharacterSlotDataString", stub_net_GetAccountCharacterSlotDataString, METH_VARARGS }, + { "GetFieldMusicFileName", stub_net_GetFieldMusicFileName, METH_VARARGS }, + { "GetFieldMusicVolume", stub_net_GetFieldMusicVolume, METH_VARARGS }, + { "ToggleGameDebugInfo", stub_net_ToggleGameDebugInfo, METH_VARARGS }, + { "SetLoginInfo", stub_net_SetLoginInfo, METH_VARARGS }, + { "SetPhaseWindow", stub_net_SetPhaseWindow, METH_VARARGS }, + { "ClearPhaseWindow", stub_net_ClearPhaseWindow, METH_VARARGS }, + { "SetServerCommandParserWindow", stub_net_SetServerCommandParserWindow, METH_VARARGS }, + { "SetAccountConnectorHandler", stub_net_SetAccountConnectorHandler, METH_VARARGS }, + { "SetHandler", stub_net_SetHandler, METH_VARARGS }, + { "SetTCPRecvBufferSize", stub_net_SetTCPRecvBufferSize, METH_VARARGS }, + { "SetTCPSendBufferSize", stub_net_SetTCPSendBufferSize, METH_VARARGS }, + { "SetUDPRecvBufferSize", stub_net_SetUDPRecvBufferSize, METH_VARARGS }, + { "DirectEnter", stub_net_DirectEnter, METH_VARARGS }, + { "LogOutGame", stub_net_LogOutGame, METH_VARARGS }, + { "ExitGame", stub_net_ExitGame, METH_VARARGS }, + { "ExitApplication", stub_net_ExitApplication, METH_VARARGS }, + { "ConnectTCP", stub_net_ConnectTCP, METH_VARARGS }, + { "ConnectUDP", stub_net_ConnectUDP, METH_VARARGS }, + { "ConnectToAccountServer", stub_net_ConnectToAccountServer, METH_VARARGS }, + { "SendLoginPacket", stub_net_SendLoginPacket, METH_VARARGS }, + { "SendChinaMatrixCardPacket", stub_net_SendChinaMatrixCardPacket, METH_VARARGS }, + { "SendRunupMatrixCardPacket", stub_net_SendRunupMatrixCardPacket, METH_VARARGS }, + { "SendNEWCIBNPasspodAnswerPacket", stub_net_SendNEWCIBNPasspodAnswerPacket, METH_VARARGS }, + { "SendSelectEmpirePacket", stub_net_SendSelectEmpirePacket, METH_VARARGS }, + { "SendSelectCharacterPacket", stub_net_SendSelectCharacterPacket, METH_VARARGS }, + { "SendChangeNamePacket", stub_net_SendChangeNamePacket, METH_VARARGS }, + { "SendCreateCharacterPacket", stub_net_SendCreateCharacterPacket, METH_VARARGS }, + { "SendDestroyCharacterPacket", stub_net_SendDestroyCharacterPacket, METH_VARARGS }, + { "SendEnterGamePacket", stub_net_SendEnterGamePacket, METH_VARARGS }, + { "SendItemUsePacket", stub_net_SendItemUsePacket, METH_VARARGS }, + { "SendItemUseToItemPacket", stub_net_SendItemUseToItemPacket, METH_VARARGS }, + { "SendItemDropPacket", stub_net_SendItemDropPacket, METH_VARARGS }, + { "SendItemDropPacketNew", stub_net_SendItemDropPacketNew, METH_VARARGS }, + { "SendElkDropPacket", stub_net_SendElkDropPacket, METH_VARARGS }, + { "SendGoldDropPacketNew", stub_net_SendGoldDropPacketNew, METH_VARARGS }, + { "SendItemMovePacket", stub_net_SendItemMovePacket, METH_VARARGS }, + { "SendItemPickUpPacket", stub_net_SendItemPickUpPacket, METH_VARARGS }, + { "SendGiveItemPacket", stub_net_SendGiveItemPacket, METH_VARARGS }, + { "SetOfflinePhase", stub_net_SetOfflinePhase, METH_VARARGS }, + { "Disconnect", stub_net_Disconnect, METH_VARARGS }, + { "IsConnect", stub_net_IsConnect, METH_VARARGS }, + { "SendChatPacket", stub_net_SendChatPacket, METH_VARARGS }, + { "SendEmoticon", stub_net_SendEmoticon, METH_VARARGS }, + { "SendWhisperPacket", stub_net_SendWhisperPacket, METH_VARARGS }, + { "SendMobileMessagePacket", stub_net_SendMobileMessagePacket, METH_VARARGS }, + { "SendCharacterPositionPacket", stub_net_SendCharacterPositionPacket, METH_VARARGS }, + { "SendShopEndPacket", stub_net_SendShopEndPacket, METH_VARARGS }, + { "SendShopBuyPacket", stub_net_SendShopBuyPacket, METH_VARARGS }, + { "SendShopSellPacket", stub_net_SendShopSellPacket, METH_VARARGS }, + { "SendShopSellPacketNew", stub_net_SendShopSellPacketNew, METH_VARARGS }, + { "SendExchangeStartPacket", stub_net_SendExchangeStartPacket, METH_VARARGS }, + { "SendExchangeItemAddPacket", stub_net_SendExchangeItemAddPacket, METH_VARARGS }, + { "SendExchangeItemDelPacket", stub_net_SendExchangeItemDelPacket, METH_VARARGS }, + { "SendExchangeElkAddPacket", stub_net_SendExchangeElkAddPacket, METH_VARARGS }, + { "SendExchangeAcceptPacket", stub_net_SendExchangeAcceptPacket, METH_VARARGS }, + { "SendExchangeExitPacket", stub_net_SendExchangeExitPacket, METH_VARARGS }, + { "SendOnClickPacket", stub_net_SendOnClickPacket, METH_VARARGS }, + { "RegisterEmoticonString", stub_net_RegisterEmoticonString, METH_VARARGS }, + { "SendMessengerAddByVIDPacket", stub_net_SendMessengerAddByVIDPacket, METH_VARARGS }, + { "SendMessengerAddByNamePacket", stub_net_SendMessengerAddByNamePacket, METH_VARARGS }, + { "SendMessengerRemovePacket", stub_net_SendMessengerRemovePacket, METH_VARARGS }, + { "SendPartyInvitePacket", stub_net_SendPartyInvitePacket, METH_VARARGS }, + { "SendPartyInviteAnswerPacket", stub_net_SendPartyInviteAnswerPacket, METH_VARARGS }, + { "SendPartyExitPacket", stub_net_SendPartyExitPacket, METH_VARARGS }, + { "SendPartyRemovePacket", stub_net_SendPartyRemovePacket, METH_VARARGS }, + { "SendPartySetStatePacket", stub_net_SendPartySetStatePacket, METH_VARARGS }, + { "SendPartyUseSkillPacket", stub_net_SendPartyUseSkillPacket, METH_VARARGS }, + { "SendPartyParameterPacket", stub_net_SendPartyParameterPacket, METH_VARARGS }, + { "SendSafeboxSaveMoneyPacket", stub_net_SendSafeboxSaveMoneyPacket, METH_VARARGS }, + { "SendSafeboxWithdrawMoneyPacket", stub_net_SendSafeboxWithdrawMoneyPacket, METH_VARARGS }, + { "SendSafeboxCheckinPacket", stub_net_SendSafeboxCheckinPacket, METH_VARARGS }, + { "SendSafeboxCheckoutPacket", stub_net_SendSafeboxCheckoutPacket, METH_VARARGS }, + { "SendSafeboxItemMovePacket", stub_net_SendSafeboxItemMovePacket, METH_VARARGS }, + { "SendMallCheckoutPacket", stub_net_SendMallCheckoutPacket, METH_VARARGS }, + { "SendAnswerMakeGuildPacket", stub_net_SendAnswerMakeGuildPacket, METH_VARARGS }, + { "SendQuestInputStringPacket", stub_net_SendQuestInputStringPacket, METH_VARARGS }, + { "SendQuestConfirmPacket", stub_net_SendQuestConfirmPacket, METH_VARARGS }, + { "SendGuildAddMemberPacket", stub_net_SendGuildAddMemberPacket, METH_VARARGS }, + { "SendGuildRemoveMemberPacket", stub_net_SendGuildRemoveMemberPacket, METH_VARARGS }, + { "SendGuildChangeGradeNamePacket", stub_net_SendGuildChangeGradeNamePacket, METH_VARARGS }, + { "SendGuildChangeGradeAuthorityPacket", stub_net_SendGuildChangeGradeAuthorityPacket, METH_VARARGS }, + { "SendGuildOfferPacket", stub_net_SendGuildOfferPacket, METH_VARARGS }, + { "SendGuildPostCommentPacket", stub_net_SendGuildPostCommentPacket, METH_VARARGS }, + { "SendGuildDeleteCommentPacket", stub_net_SendGuildDeleteCommentPacket, METH_VARARGS }, + { "SendGuildRefreshCommentsPacket", stub_net_SendGuildRefreshCommentsPacket, METH_VARARGS }, + { "SendGuildChangeMemberGradePacket", stub_net_SendGuildChangeMemberGradePacket, METH_VARARGS }, + { "SendGuildUseSkillPacket", stub_net_SendGuildUseSkillPacket, METH_VARARGS }, + { "SendGuildChangeMemberGeneralPacket", stub_net_SendGuildChangeMemberGeneralPacket, METH_VARARGS }, + { "SendGuildInviteAnswerPacket", stub_net_SendGuildInviteAnswerPacket, METH_VARARGS }, + { "SendGuildChargeGSPPacket", stub_net_SendGuildChargeGSPPacket, METH_VARARGS }, + { "SendGuildDepositMoneyPacket", stub_net_SendGuildDepositMoneyPacket, METH_VARARGS }, + { "SendGuildWithdrawMoneyPacket", stub_net_SendGuildWithdrawMoneyPacket, METH_VARARGS }, + { "SendRequestRefineInfoPacket", stub_net_SendRequestRefineInfoPacket, METH_VARARGS }, + { "SendRefinePacket", stub_net_SendRefinePacket, METH_VARARGS }, + { "SendSelectItemPacket", stub_net_SendSelectItemPacket, METH_VARARGS }, + { "SetPacketSequenceMode", stub_net_SetPacketSequenceMode, METH_VARARGS }, + { "SetEmpireLanguageMode", stub_net_SetEmpireLanguageMode, METH_VARARGS }, + { "SetSkillGroupFake", stub_net_SetSkillGroupFake, METH_VARARGS }, + { "SendGuildSymbol", stub_net_SendGuildSymbol, METH_VARARGS }, + { "DisconnectUploader", stub_net_DisconnectUploader, METH_VARARGS }, + { "RecvGuildSymbol", stub_net_RecvGuildSymbol, METH_VARARGS }, + { "RegisterErrorLog", stub_net_RegisterErrorLog, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_net[] = {"ERROR_NONE", "ERROR_CONNECT_MARK_SERVER", "ERROR_LOAD_MARK", "ERROR_MARK_WIDTH", "ERROR_MARK_HEIGHT", "ERROR_MARK_UPLOAD_NEED_RECONNECT", "ERROR_MARK_CHECK_NEED_RECONNECT", "PHASE_WINDOW_LOGIN", "PHASE_WINDOW_SELECT", "PHASE_WINDOW_CREATE", "PHASE_WINDOW_LOAD", "PHASE_WINDOW_GAME", "PHASE_WINDOW_EMPIRE", "PHASE_WINDOW_LOGO", "ACCOUNT_CHARACTER_SLOT_ID", "ACCOUNT_CHARACTER_SLOT_NAME", "ACCOUNT_CHARACTER_SLOT_RACE", "ACCOUNT_CHARACTER_SLOT_LEVEL", "ACCOUNT_CHARACTER_SLOT_STR", "ACCOUNT_CHARACTER_SLOT_DEX", "ACCOUNT_CHARACTER_SLOT_INT", "ACCOUNT_CHARACTER_SLOT_HTH", "ACCOUNT_CHARACTER_SLOT_PLAYTIME", "ACCOUNT_CHARACTER_SLOT_FORM", "ACCOUNT_CHARACTER_SLOT_ADDR", "ACCOUNT_CHARACTER_SLOT_PORT", "ACCOUNT_CHARACTER_SLOT_GUILD_ID", "ACCOUNT_CHARACTER_SLOT_GUILD_NAME", "ACCOUNT_CHARACTER_SLOT_CHANGE_NAME_FLAG", "ACCOUNT_CHARACTER_SLOT_HAIR", "SERVER_COMMAND_LOG_OUT", "SERVER_COMMAND_RETURN_TO_SELECT_CHARACTER", "SERVER_COMMAND_QUIT", "EMPIRE_A", "EMPIRE_B", "EMPIRE_C", "DS_SUB_HEADER_REFINE_FAIL", "DS_SUB_HEADER_REFINE_FAIL_MAX_REFINE", "DS_SUB_HEADER_REFINE_FAIL_INVALID_MATERIAL", "DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MONEY", "DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL", "DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL", "DS_SUB_HEADER_REFINE_SUCCEED", NULL}; +const char* strings_net[] = {NULL}; +// 40250 UserInterface/PythonNonPlayerModule.cpp: nonplayer export names. +PyObject* stub_nonplayer_GetEventType(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetEventType"); } +PyObject* stub_nonplayer_GetEventTypeByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetEventTypeByVID"); } +PyObject* stub_nonplayer_GetLevelByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetLevelByVID"); } +PyObject* stub_nonplayer_GetGradeByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetGradeByVID"); } +PyObject* stub_nonplayer_GetMonsterName(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetMonsterName"); } +PyObject* stub_nonplayer_LoadNonPlayerData(PyObject*, PyObject*) { return stub_call_named("nonplayer.LoadNonPlayerData"); } +PyMethodDef methods_nonplayer[] = { + { "GetEventType", stub_nonplayer_GetEventType, METH_VARARGS }, + { "GetEventTypeByVID", stub_nonplayer_GetEventTypeByVID, METH_VARARGS }, + { "GetLevelByVID", stub_nonplayer_GetLevelByVID, METH_VARARGS }, + { "GetGradeByVID", stub_nonplayer_GetGradeByVID, METH_VARARGS }, + { "GetMonsterName", stub_nonplayer_GetMonsterName, METH_VARARGS }, + { "LoadNonPlayerData", stub_nonplayer_LoadNonPlayerData, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_nonplayer[] = {"ON_CLICK_EVENT_NONE", "ON_CLICK_EVENT_BATTLE", "ON_CLICK_EVENT_SHOP", "ON_CLICK_EVENT_TALK", "ON_CLICK_EVENT_VEHICLE", "PAWN", "S_PAWN", "KNIGHT", "S_KNIGHT", "BOSS", "KING", NULL}; +const char* strings_nonplayer[] = {NULL}; +// 40250 UserInterface/PythonPlayerModule.cpp: player export names. +PyObject* stub_player_GetAutoPotionInfo(PyObject*, PyObject*) { return stub_call_named("player.GetAutoPotionInfo"); } +PyObject* stub_player_SetAutoPotionInfo(PyObject*, PyObject*) { return stub_call_named("player.SetAutoPotionInfo"); } +PyObject* stub_player_PickCloseItem(PyObject*, PyObject*) { return stub_call_named("player.PickCloseItem"); } +PyObject* stub_player_SetGameWindow(PyObject*, PyObject*) { return stub_call_named("player.SetGameWindow"); } +PyObject* stub_player_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("player.RegisterEffect"); } +PyObject* stub_player_RegisterCacheEffect(PyObject*, PyObject*) { return stub_call_named("player.RegisterCacheEffect"); } +PyObject* stub_player_SetMouseState(PyObject*, PyObject*) { return stub_call_named("player.SetMouseState"); } +PyObject* stub_player_SetMouseFunc(PyObject*, PyObject*) { return stub_call_named("player.SetMouseFunc"); } +PyObject* stub_player_GetMouseFunc(PyObject*, PyObject*) { return stub_call_named("player.GetMouseFunc"); } +PyObject* stub_player_SetMouseMiddleButtonState(PyObject*, PyObject*) { return stub_call_named("player.SetMouseMiddleButtonState"); } +PyObject* stub_player_SetMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.SetMainCharacterIndex"); } +PyObject* stub_player_GetMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterIndex"); } +PyObject* stub_player_GetMainCharacterName(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterName"); } +PyObject* stub_player_GetMainCharacterPosition(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterPosition"); } +PyObject* stub_player_IsMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.IsMainCharacterIndex"); } +PyObject* stub_player_CanAttackInstance(PyObject*, PyObject*) { return stub_call_named("player.CanAttackInstance"); } +PyObject* stub_player_IsActingEmotion(PyObject*, PyObject*) { return stub_call_named("player.IsActingEmotion"); } +PyObject* stub_player_IsPVPInstance(PyObject*, PyObject*) { return stub_call_named("player.IsPVPInstance"); } +PyObject* stub_player_IsSameEmpire(PyObject*, PyObject*) { return stub_call_named("player.IsSameEmpire"); } +PyObject* stub_player_IsChallengeInstance(PyObject*, PyObject*) { return stub_call_named("player.IsChallengeInstance"); } +PyObject* stub_player_IsRevengeInstance(PyObject*, PyObject*) { return stub_call_named("player.IsRevengeInstance"); } +PyObject* stub_player_IsCantFightInstance(PyObject*, PyObject*) { return stub_call_named("player.IsCantFightInstance"); } +PyObject* stub_player_GetCharacterDistance(PyObject*, PyObject*) { return stub_call_named("player.GetCharacterDistance"); } +PyObject* stub_player_IsInSafeArea(PyObject*, PyObject*) { return stub_call_named("player.IsInSafeArea"); } +PyObject* stub_player_IsMountingHorse(PyObject*, PyObject*) { return stub_call_named("player.IsMountingHorse"); } +PyObject* stub_player_IsObserverMode(PyObject*, PyObject*) { return stub_call_named("player.IsObserverMode"); } +PyObject* stub_player_ActEmotion(PyObject*, PyObject*) { return stub_call_named("player.ActEmotion"); } +PyObject* stub_player_ShowPlayer(PyObject*, PyObject*) { return stub_call_named("player.ShowPlayer"); } +PyObject* stub_player_HidePlayer(PyObject*, PyObject*) { return stub_call_named("player.HidePlayer"); } +PyObject* stub_player_ComboAttack(PyObject*, PyObject*) { return stub_call_named("player.ComboAttack"); } +PyObject* stub_player_SetAutoCameraRotationSpeed(PyObject*, PyObject*) { return stub_call_named("player.SetAutoCameraRotationSpeed"); } +PyObject* stub_player_SetAttackKeyState(PyObject*, PyObject*) { return stub_call_named("player.SetAttackKeyState"); } +PyObject* stub_player_SetSingleDIKKeyState(PyObject*, PyObject*) { return stub_call_named("player.SetSingleDIKKeyState"); } +PyObject* stub_player_EndKeyWalkingImmediately(PyObject*, PyObject*) { return stub_call_named("player.EndKeyWalkingImmediately"); } +PyObject* stub_player_StartMouseWalking(PyObject*, PyObject*) { return stub_call_named("player.StartMouseWalking"); } +PyObject* stub_player_EndMouseWalking(PyObject*, PyObject*) { return stub_call_named("player.EndMouseWalking"); } +PyObject* stub_player_ResetCameraRotation(PyObject*, PyObject*) { return stub_call_named("player.ResetCameraRotation"); } +PyObject* stub_player_SetQuickCameraMode(PyObject*, PyObject*) { return stub_call_named("player.SetQuickCameraMode"); } +PyObject* stub_player_SetSkill(PyObject*, PyObject*) { return stub_call_named("player.SetSkill"); } +PyObject* stub_player_GetSkillIndex(PyObject*, PyObject*) { return stub_call_named("player.GetSkillIndex"); } +PyObject* stub_player_GetSkillSlotIndex(PyObject*, PyObject*) { return stub_call_named("player.GetSkillSlotIndex"); } +PyObject* stub_player_GetSkillGrade(PyObject*, PyObject*) { return stub_call_named("player.GetSkillGrade"); } +PyObject* stub_player_GetSkillLevel(PyObject*, PyObject*) { return stub_call_named("player.GetSkillLevel"); } +PyObject* stub_player_GetSkillCurrentEfficientPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetSkillCurrentEfficientPercentage"); } +PyObject* stub_player_GetSkillNextEfficientPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetSkillNextEfficientPercentage"); } +PyObject* stub_player_ClickSkillSlot(PyObject*, PyObject*) { return stub_call_named("player.ClickSkillSlot"); } +PyObject* stub_player_ChangeCurrentSkillNumberOnly(PyObject*, PyObject*) { return stub_call_named("player.ChangeCurrentSkillNumberOnly"); } +PyObject* stub_player_ClearSkillDict(PyObject*, PyObject*) { return stub_call_named("player.ClearSkillDict"); } +PyObject* stub_player_GetItemIndex(PyObject*, PyObject*) { return stub_call_named("player.GetItemIndex"); } +PyObject* stub_player_GetItemFlags(PyObject*, PyObject*) { return stub_call_named("player.GetItemFlags"); } +PyObject* stub_player_GetItemCount(PyObject*, PyObject*) { return stub_call_named("player.GetItemCount"); } +PyObject* stub_player_GetItemCountByVnum(PyObject*, PyObject*) { return stub_call_named("player.GetItemCountByVnum"); } +PyObject* stub_player_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("player.GetItemMetinSocket"); } +PyObject* stub_player_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("player.GetItemAttribute"); } +PyObject* stub_player_GetItemUnbindTime(PyObject*, PyObject*) { return stub_call_named("player.GetItemUnbindTime"); } +PyObject* stub_player_GetISellItemPrice(PyObject*, PyObject*) { return stub_call_named("player.GetISellItemPrice"); } +PyObject* stub_player_MoveItem(PyObject*, PyObject*) { return stub_call_named("player.MoveItem"); } +PyObject* stub_player_SendClickItemPacket(PyObject*, PyObject*) { return stub_call_named("player.SendClickItemPacket"); } +PyObject* stub_player_GetName(PyObject*, PyObject*) { return stub_call_named("player.GetName"); } +PyObject* stub_player_GetJob(PyObject*, PyObject*) { return stub_call_named("player.GetJob"); } +PyObject* stub_player_GetRace(PyObject*, PyObject*) { return stub_call_named("player.GetRace"); } +PyObject* stub_player_GetPlayTime(PyObject*, PyObject*) { return stub_call_named("player.GetPlayTime"); } +PyObject* stub_player_SetPlayTime(PyObject*, PyObject*) { return stub_call_named("player.SetPlayTime"); } +PyObject* stub_player_IsSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("player.IsSkillCoolTime"); } +PyObject* stub_player_GetSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("player.GetSkillCoolTime"); } +PyObject* stub_player_IsSkillActive(PyObject*, PyObject*) { return stub_call_named("player.IsSkillActive"); } +PyObject* stub_player_UseGuildSkill(PyObject*, PyObject*) { return stub_call_named("player.UseGuildSkill"); } +PyObject* stub_player_AffectIndexToSkillIndex(PyObject*, PyObject*) { return stub_call_named("player.AffectIndexToSkillIndex"); } +PyObject* stub_player_GetEXP(PyObject*, PyObject*) { return stub_call_named("player.GetEXP"); } +PyObject* stub_player_GetStatus(PyObject*, PyObject*) { return stub_call_named("player.GetStatus"); } +PyObject* stub_player_SetStatus(PyObject*, PyObject*) { return stub_call_named("player.SetStatus"); } +PyObject* stub_player_GetElk(PyObject*, PyObject*) { return stub_call_named("player.GetElk"); } +PyObject* stub_player_GetMoney(PyObject*, PyObject*) { return stub_call_named("player.GetMoney"); } +PyObject* stub_player_GetGuildID(PyObject*, PyObject*) { return stub_call_named("player.GetGuildID"); } +PyObject* stub_player_GetGuildName(PyObject*, PyObject*) { return stub_call_named("player.GetGuildName"); } +PyObject* stub_player_GetAlignmentData(PyObject*, PyObject*) { return stub_call_named("player.GetAlignmentData"); } +PyObject* stub_player_RequestAddLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestAddLocalQuickSlot"); } +PyObject* stub_player_RequestAddToEmptyLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestAddToEmptyLocalQuickSlot"); } +PyObject* stub_player_RequestDeleteGlobalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestDeleteGlobalQuickSlot"); } +PyObject* stub_player_RequestMoveGlobalQuickSlotToLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestMoveGlobalQuickSlotToLocalQuickSlot"); } +PyObject* stub_player_RequestUseLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestUseLocalQuickSlot"); } +PyObject* stub_player_LocalQuickSlotIndexToGlobalQuickSlotIndex(PyObject*, PyObject*) { return stub_call_named("player.LocalQuickSlotIndexToGlobalQuickSlotIndex"); } +PyObject* stub_player_GetQuickPage(PyObject*, PyObject*) { return stub_call_named("player.GetQuickPage"); } +PyObject* stub_player_SetQuickPage(PyObject*, PyObject*) { return stub_call_named("player.SetQuickPage"); } +PyObject* stub_player_GetLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.GetLocalQuickSlot"); } +PyObject* stub_player_GetGlobalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.GetGlobalQuickSlot"); } +PyObject* stub_player_RemoveQuickSlotByValue(PyObject*, PyObject*) { return stub_call_named("player.RemoveQuickSlotByValue"); } +PyObject* stub_player_isItem(PyObject*, PyObject*) { return stub_call_named("player.isItem"); } +PyObject* stub_player_IsEquipmentSlot(PyObject*, PyObject*) { return stub_call_named("player.IsEquipmentSlot"); } +PyObject* stub_player_IsDSEquipmentSlot(PyObject*, PyObject*) { return stub_call_named("player.IsDSEquipmentSlot"); } +PyObject* stub_player_IsCostumeSlot(PyObject*, PyObject*) { return stub_call_named("player.IsCostumeSlot"); } +PyObject* stub_player_IsValuableItem(PyObject*, PyObject*) { return stub_call_named("player.IsValuableItem"); } +PyObject* stub_player_IsOpenPrivateShop(PyObject*, PyObject*) { return stub_call_named("player.IsOpenPrivateShop"); } +PyObject* stub_player_IsBeltInventorySlot(PyObject*, PyObject*) { return stub_call_named("player.IsBeltInventorySlot"); } +PyObject* stub_player_IsEquippingBelt(PyObject*, PyObject*) { return stub_call_named("player.IsEquippingBelt"); } +PyObject* stub_player_IsAvailableBeltInventoryCell(PyObject*, PyObject*) { return stub_call_named("player.IsAvailableBeltInventoryCell"); } +PyObject* stub_player_GetItemGrade(PyObject*, PyObject*) { return stub_call_named("player.GetItemGrade"); } +PyObject* stub_player_CanRefine(PyObject*, PyObject*) { return stub_call_named("player.CanRefine"); } +PyObject* stub_player_CanDetach(PyObject*, PyObject*) { return stub_call_named("player.CanDetach"); } +PyObject* stub_player_CanUnlock(PyObject*, PyObject*) { return stub_call_named("player.CanUnlock"); } +PyObject* stub_player_CanAttachMetin(PyObject*, PyObject*) { return stub_call_named("player.CanAttachMetin"); } +PyObject* stub_player_IsRefineGradeScroll(PyObject*, PyObject*) { return stub_call_named("player.IsRefineGradeScroll"); } +PyObject* stub_player_ClearTarget(PyObject*, PyObject*) { return stub_call_named("player.ClearTarget"); } +PyObject* stub_player_SetTarget(PyObject*, PyObject*) { return stub_call_named("player.SetTarget"); } +PyObject* stub_player_OpenCharacterMenu(PyObject*, PyObject*) { return stub_call_named("player.OpenCharacterMenu"); } +PyObject* stub_player_Update(PyObject*, PyObject*) { return stub_call_named("player.Update"); } +PyObject* stub_player_Render(PyObject*, PyObject*) { return stub_call_named("player.Render"); } +PyObject* stub_player_Clear(PyObject*, PyObject*) { return stub_call_named("player.Clear"); } +PyObject* stub_player_IsPartyMember(PyObject*, PyObject*) { return stub_call_named("player.IsPartyMember"); } +PyObject* stub_player_IsPartyLeader(PyObject*, PyObject*) { return stub_call_named("player.IsPartyLeader"); } +PyObject* stub_player_IsPartyLeaderByPID(PyObject*, PyObject*) { return stub_call_named("player.IsPartyLeaderByPID"); } +PyObject* stub_player_GetPartyMemberHPPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberHPPercentage"); } +PyObject* stub_player_GetPartyMemberState(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberState"); } +PyObject* stub_player_GetPartyMemberAffects(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberAffects"); } +PyObject* stub_player_RemovePartyMember(PyObject*, PyObject*) { return stub_call_named("player.RemovePartyMember"); } +PyObject* stub_player_ExitParty(PyObject*, PyObject*) { return stub_call_named("player.ExitParty"); } +PyObject* stub_player_GetPKMode(PyObject*, PyObject*) { return stub_call_named("player.GetPKMode"); } +PyObject* stub_player_HasMobilePhoneNumber(PyObject*, PyObject*) { return stub_call_named("player.HasMobilePhoneNumber"); } +PyObject* stub_player_RegisterEmotionIcon(PyObject*, PyObject*) { return stub_call_named("player.RegisterEmotionIcon"); } +PyObject* stub_player_GetEmotionIconImage(PyObject*, PyObject*) { return stub_call_named("player.GetEmotionIconImage"); } +PyObject* stub_player_SetWeaponAttackBonusFlag(PyObject*, PyObject*) { return stub_call_named("player.SetWeaponAttackBonusFlag"); } +PyObject* stub_player_ToggleCoolTime(PyObject*, PyObject*) { return stub_call_named("player.ToggleCoolTime"); } +PyObject* stub_player_ToggleLevelLimit(PyObject*, PyObject*) { return stub_call_named("player.ToggleLevelLimit"); } +PyObject* stub_player_GetTargetVID(PyObject*, PyObject*) { return stub_call_named("player.GetTargetVID"); } +PyObject* stub_player_SetItemData(PyObject*, PyObject*) { return stub_call_named("player.SetItemData"); } +PyObject* stub_player_SetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("player.SetItemMetinSocket"); } +PyObject* stub_player_SetItemAttribute(PyObject*, PyObject*) { return stub_call_named("player.SetItemAttribute"); } +PyObject* stub_player_SetItemCount(PyObject*, PyObject*) { return stub_call_named("player.SetItemCount"); } +PyObject* stub_player_GetItemLink(PyObject*, PyObject*) { return stub_call_named("player.GetItemLink"); } +PyObject* stub_player_SlotTypeToInvenType(PyObject*, PyObject*) { return stub_call_named("player.SlotTypeToInvenType"); } +PyObject* stub_player_SendDragonSoulRefine(PyObject*, PyObject*) { return stub_call_named("player.SendDragonSoulRefine"); } +PyMethodDef methods_player[] = { + { "GetAutoPotionInfo", stub_player_GetAutoPotionInfo, METH_VARARGS }, + { "SetAutoPotionInfo", stub_player_SetAutoPotionInfo, METH_VARARGS }, + { "PickCloseItem", stub_player_PickCloseItem, METH_VARARGS }, + { "SetGameWindow", stub_player_SetGameWindow, METH_VARARGS }, + { "RegisterEffect", stub_player_RegisterEffect, METH_VARARGS }, + { "RegisterCacheEffect", stub_player_RegisterCacheEffect, METH_VARARGS }, + { "SetMouseState", stub_player_SetMouseState, METH_VARARGS }, + { "SetMouseFunc", stub_player_SetMouseFunc, METH_VARARGS }, + { "GetMouseFunc", stub_player_GetMouseFunc, METH_VARARGS }, + { "SetMouseMiddleButtonState", stub_player_SetMouseMiddleButtonState, METH_VARARGS }, + { "SetMainCharacterIndex", stub_player_SetMainCharacterIndex, METH_VARARGS }, + { "GetMainCharacterIndex", stub_player_GetMainCharacterIndex, METH_VARARGS }, + { "GetMainCharacterName", stub_player_GetMainCharacterName, METH_VARARGS }, + { "GetMainCharacterPosition", stub_player_GetMainCharacterPosition, METH_VARARGS }, + { "IsMainCharacterIndex", stub_player_IsMainCharacterIndex, METH_VARARGS }, + { "CanAttackInstance", stub_player_CanAttackInstance, METH_VARARGS }, + { "IsActingEmotion", stub_player_IsActingEmotion, METH_VARARGS }, + { "IsPVPInstance", stub_player_IsPVPInstance, METH_VARARGS }, + { "IsSameEmpire", stub_player_IsSameEmpire, METH_VARARGS }, + { "IsChallengeInstance", stub_player_IsChallengeInstance, METH_VARARGS }, + { "IsRevengeInstance", stub_player_IsRevengeInstance, METH_VARARGS }, + { "IsCantFightInstance", stub_player_IsCantFightInstance, METH_VARARGS }, + { "GetCharacterDistance", stub_player_GetCharacterDistance, METH_VARARGS }, + { "IsInSafeArea", stub_player_IsInSafeArea, METH_VARARGS }, + { "IsMountingHorse", stub_player_IsMountingHorse, METH_VARARGS }, + { "IsObserverMode", stub_player_IsObserverMode, METH_VARARGS }, + { "ActEmotion", stub_player_ActEmotion, METH_VARARGS }, + { "ShowPlayer", stub_player_ShowPlayer, METH_VARARGS }, + { "HidePlayer", stub_player_HidePlayer, METH_VARARGS }, + { "ComboAttack", stub_player_ComboAttack, METH_VARARGS }, + { "SetAutoCameraRotationSpeed", stub_player_SetAutoCameraRotationSpeed, METH_VARARGS }, + { "SetAttackKeyState", stub_player_SetAttackKeyState, METH_VARARGS }, + { "SetSingleDIKKeyState", stub_player_SetSingleDIKKeyState, METH_VARARGS }, + { "EndKeyWalkingImmediately", stub_player_EndKeyWalkingImmediately, METH_VARARGS }, + { "StartMouseWalking", stub_player_StartMouseWalking, METH_VARARGS }, + { "EndMouseWalking", stub_player_EndMouseWalking, METH_VARARGS }, + { "ResetCameraRotation", stub_player_ResetCameraRotation, METH_VARARGS }, + { "SetQuickCameraMode", stub_player_SetQuickCameraMode, METH_VARARGS }, + { "SetSkill", stub_player_SetSkill, METH_VARARGS }, + { "GetSkillIndex", stub_player_GetSkillIndex, METH_VARARGS }, + { "GetSkillSlotIndex", stub_player_GetSkillSlotIndex, METH_VARARGS }, + { "GetSkillGrade", stub_player_GetSkillGrade, METH_VARARGS }, + { "GetSkillLevel", stub_player_GetSkillLevel, METH_VARARGS }, + { "GetSkillCurrentEfficientPercentage", stub_player_GetSkillCurrentEfficientPercentage, METH_VARARGS }, + { "GetSkillNextEfficientPercentage", stub_player_GetSkillNextEfficientPercentage, METH_VARARGS }, + { "ClickSkillSlot", stub_player_ClickSkillSlot, METH_VARARGS }, + { "ChangeCurrentSkillNumberOnly", stub_player_ChangeCurrentSkillNumberOnly, METH_VARARGS }, + { "ClearSkillDict", stub_player_ClearSkillDict, METH_VARARGS }, + { "GetItemIndex", stub_player_GetItemIndex, METH_VARARGS }, + { "GetItemFlags", stub_player_GetItemFlags, METH_VARARGS }, + { "GetItemCount", stub_player_GetItemCount, METH_VARARGS }, + { "GetItemCountByVnum", stub_player_GetItemCountByVnum, METH_VARARGS }, + { "GetItemMetinSocket", stub_player_GetItemMetinSocket, METH_VARARGS }, + { "GetItemAttribute", stub_player_GetItemAttribute, METH_VARARGS }, + { "GetItemUnbindTime", stub_player_GetItemUnbindTime, METH_VARARGS }, + { "GetISellItemPrice", stub_player_GetISellItemPrice, METH_VARARGS }, + { "MoveItem", stub_player_MoveItem, METH_VARARGS }, + { "SendClickItemPacket", stub_player_SendClickItemPacket, METH_VARARGS }, + { "GetName", stub_player_GetName, METH_VARARGS }, + { "GetJob", stub_player_GetJob, METH_VARARGS }, + { "GetRace", stub_player_GetRace, METH_VARARGS }, + { "GetPlayTime", stub_player_GetPlayTime, METH_VARARGS }, + { "SetPlayTime", stub_player_SetPlayTime, METH_VARARGS }, + { "IsSkillCoolTime", stub_player_IsSkillCoolTime, METH_VARARGS }, + { "GetSkillCoolTime", stub_player_GetSkillCoolTime, METH_VARARGS }, + { "IsSkillActive", stub_player_IsSkillActive, METH_VARARGS }, + { "UseGuildSkill", stub_player_UseGuildSkill, METH_VARARGS }, + { "AffectIndexToSkillIndex", stub_player_AffectIndexToSkillIndex, METH_VARARGS }, + { "GetEXP", stub_player_GetEXP, METH_VARARGS }, + { "GetStatus", stub_player_GetStatus, METH_VARARGS }, + { "SetStatus", stub_player_SetStatus, METH_VARARGS }, + { "GetElk", stub_player_GetElk, METH_VARARGS }, + { "GetMoney", stub_player_GetMoney, METH_VARARGS }, + { "GetGuildID", stub_player_GetGuildID, METH_VARARGS }, + { "GetGuildName", stub_player_GetGuildName, METH_VARARGS }, + { "GetAlignmentData", stub_player_GetAlignmentData, METH_VARARGS }, + { "RequestAddLocalQuickSlot", stub_player_RequestAddLocalQuickSlot, METH_VARARGS }, + { "RequestAddToEmptyLocalQuickSlot", stub_player_RequestAddToEmptyLocalQuickSlot, METH_VARARGS }, + { "RequestDeleteGlobalQuickSlot", stub_player_RequestDeleteGlobalQuickSlot, METH_VARARGS }, + { "RequestMoveGlobalQuickSlotToLocalQuickSlot", stub_player_RequestMoveGlobalQuickSlotToLocalQuickSlot, METH_VARARGS }, + { "RequestUseLocalQuickSlot", stub_player_RequestUseLocalQuickSlot, METH_VARARGS }, + { "LocalQuickSlotIndexToGlobalQuickSlotIndex", stub_player_LocalQuickSlotIndexToGlobalQuickSlotIndex, METH_VARARGS }, + { "GetQuickPage", stub_player_GetQuickPage, METH_VARARGS }, + { "SetQuickPage", stub_player_SetQuickPage, METH_VARARGS }, + { "GetLocalQuickSlot", stub_player_GetLocalQuickSlot, METH_VARARGS }, + { "GetGlobalQuickSlot", stub_player_GetGlobalQuickSlot, METH_VARARGS }, + { "RemoveQuickSlotByValue", stub_player_RemoveQuickSlotByValue, METH_VARARGS }, + { "isItem", stub_player_isItem, METH_VARARGS }, + { "IsEquipmentSlot", stub_player_IsEquipmentSlot, METH_VARARGS }, + { "IsDSEquipmentSlot", stub_player_IsDSEquipmentSlot, METH_VARARGS }, + { "IsCostumeSlot", stub_player_IsCostumeSlot, METH_VARARGS }, + { "IsValuableItem", stub_player_IsValuableItem, METH_VARARGS }, + { "IsOpenPrivateShop", stub_player_IsOpenPrivateShop, METH_VARARGS }, + { "IsBeltInventorySlot", stub_player_IsBeltInventorySlot, METH_VARARGS }, + { "IsEquippingBelt", stub_player_IsEquippingBelt, METH_VARARGS }, + { "IsAvailableBeltInventoryCell", stub_player_IsAvailableBeltInventoryCell, METH_VARARGS }, + { "GetItemGrade", stub_player_GetItemGrade, METH_VARARGS }, + { "CanRefine", stub_player_CanRefine, METH_VARARGS }, + { "CanDetach", stub_player_CanDetach, METH_VARARGS }, + { "CanUnlock", stub_player_CanUnlock, METH_VARARGS }, + { "CanAttachMetin", stub_player_CanAttachMetin, METH_VARARGS }, + { "IsRefineGradeScroll", stub_player_IsRefineGradeScroll, METH_VARARGS }, + { "ClearTarget", stub_player_ClearTarget, METH_VARARGS }, + { "SetTarget", stub_player_SetTarget, METH_VARARGS }, + { "OpenCharacterMenu", stub_player_OpenCharacterMenu, METH_VARARGS }, + { "Update", stub_player_Update, METH_VARARGS }, + { "Render", stub_player_Render, METH_VARARGS }, + { "Clear", stub_player_Clear, METH_VARARGS }, + { "IsPartyMember", stub_player_IsPartyMember, METH_VARARGS }, + { "IsPartyLeader", stub_player_IsPartyLeader, METH_VARARGS }, + { "IsPartyLeaderByPID", stub_player_IsPartyLeaderByPID, METH_VARARGS }, + { "GetPartyMemberHPPercentage", stub_player_GetPartyMemberHPPercentage, METH_VARARGS }, + { "GetPartyMemberState", stub_player_GetPartyMemberState, METH_VARARGS }, + { "GetPartyMemberAffects", stub_player_GetPartyMemberAffects, METH_VARARGS }, + { "RemovePartyMember", stub_player_RemovePartyMember, METH_VARARGS }, + { "ExitParty", stub_player_ExitParty, METH_VARARGS }, + { "GetPKMode", stub_player_GetPKMode, METH_VARARGS }, + { "HasMobilePhoneNumber", stub_player_HasMobilePhoneNumber, METH_VARARGS }, + { "RegisterEmotionIcon", stub_player_RegisterEmotionIcon, METH_VARARGS }, + { "GetEmotionIconImage", stub_player_GetEmotionIconImage, METH_VARARGS }, + { "SetWeaponAttackBonusFlag", stub_player_SetWeaponAttackBonusFlag, METH_VARARGS }, + { "ToggleCoolTime", stub_player_ToggleCoolTime, METH_VARARGS }, + { "ToggleLevelLimit", stub_player_ToggleLevelLimit, METH_VARARGS }, + { "GetTargetVID", stub_player_GetTargetVID, METH_VARARGS }, + { "SetItemData", stub_player_SetItemData, METH_VARARGS }, + { "SetItemMetinSocket", stub_player_SetItemMetinSocket, METH_VARARGS }, + { "SetItemAttribute", stub_player_SetItemAttribute, METH_VARARGS }, + { "SetItemCount", stub_player_SetItemCount, METH_VARARGS }, + { "GetItemLink", stub_player_GetItemLink, METH_VARARGS }, + { "SlotTypeToInvenType", stub_player_SlotTypeToInvenType, METH_VARARGS }, + { "SendDragonSoulRefine", stub_player_SendDragonSoulRefine, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_player[] = {"LEVEL", "VOICE", "EXP", "NEXT_EXP", "HP", "MAX_HP", "SP", "MAX_SP", "STAMINA", "MAX_STAMINA", "ELK", "ST", "HT", "DX", "IQ", "ATT_POWER", "ATT_MIN", "ATT_MAX", "MIN_MAGIC_WEP", "MAX_MAGIC_WEP", "ATT_SPEED", "ATT_BONUS", "EVADE_RATE", "MOVING_SPEED", "DEF_GRADE", "DEF_BONUS", "CASTING_SPEED", "MAG_ATT", "MAG_DEF", "EMPIRE_POINT", "STAT", "SKILL_PASSIVE", "SKILL_SUPPORT", "SKILL_ACTIVE", "SKILL_HORSE", "PLAYTIME", "BOW_DISTANCE", "HP_RECOVERY", "SP_RECOVERY", "ATTACKER_BONUS", "MAX_NUM", "POINT_CRITICAL_PCT", "POINT_PENETRATE_PCT", "POINT_MALL_ATTBONUS", "POINT_MALL_DEFBONUS", "POINT_MALL_EXPBONUS", "POINT_MALL_ITEMBONUS", "POINT_MALL_GOLDBONUS", "POINT_MAX_HP_PCT", "POINT_MAX_SP_PCT", "POINT_SKILL_DAMAGE_BONUS", "POINT_NORMAL_HIT_DAMAGE_BONUS", "POINT_SKILL_DEFEND_BONUS", "POINT_NORMAL_HIT_DEFEND_BONUS", "POINT_PC_BANG_EXP_BONUS", "POINT_PC_BANG_DROP_BONUS", "ENERGY", "ENERGY_END_TIME", "SKILL_GRADE_NORMAL", "SKILL_GRADE_MASTER", "SKILL_GRADE_GRAND_MASTER", "SKILL_GRADE_PERFECT_MASTER", "CATEGORY_ACTIVE", "CATEGORY_PASSIVE", "INVENTORY_PAGE_SIZE", "INVENTORY_PAGE_COUNT", "INVENTORY_SLOT_COUNT", "EQUIPMENT_SLOT_START", "EQUIPMENT_PAGE_COUNT", "NEW_EQUIPMENT_SLOT_START", "NEW_EQUIPMENT_SLOT_COUNT", "MBF_SKILL", "MBF_ATTACK", "MBF_CAMERA", "MBF_SMART", "MBF_MOVE", "MBF_AUTO", "MBS_PRESS", "MBS_CLICK", "MBT_RIGHT", "MBT_LEFT", "SLOT_TYPE_NONE", "SLOT_TYPE_INVENTORY", "SLOT_TYPE_SKILL", "SLOT_TYPE_SHOP", "SLOT_TYPE_EXCHANGE_OWNER", "SLOT_TYPE_EXCHANGE_TARGET", "SLOT_TYPE_QUICK_SLOT", "SLOT_TYPE_SAFEBOX", "SLOT_TYPE_PRIVATE_SHOP", "SLOT_TYPE_MALL", "SLOT_TYPE_EMOTION", "SLOT_TYPE_DRAGON_SOUL_INVENTORY", "RESERVED_WINDOW", "INVENTORY", "EQUIPMENT", "SAFEBOX", "MALL", "DRAGON_SOUL_INVENTORY", "GROUND", "ITEM_MONEY", "SKILL_SLOT_COUNT", "EFFECT_PICK", "METIN_SOCKET_TYPE_NONE", "METIN_SOCKET_TYPE_SILVER", "METIN_SOCKET_TYPE_GOLD", "METIN_SOCKET_MAX_NUM", "ATTRIBUTE_SLOT_MAX_NUM", "REFINE_CANT", "REFINE_OK", "REFINE_ALREADY_MAX_SOCKET_COUNT", "REFINE_NEED_MORE_GOOD_SCROLL", "REFINE_CANT_MAKE_SOCKET_ITEM", "REFINE_NOT_NEXT_GRADE_ITEM", "REFINE_CANT_REFINE_METIN_TO_EQUIPMENT", "REFINE_CANT_REFINE_ROD", "ATTACH_METIN_CANT", "ATTACH_METIN_OK", "ATTACH_METIN_NOT_MATCHABLE_ITEM", "ATTACH_METIN_NO_MATCHABLE_SOCKET", "ATTACH_METIN_NOT_EXIST_GOLD_SOCKET", "ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT", "DETACH_METIN_CANT", "DETACH_METIN_OK", "PARTY_STATE_NORMAL", "PARTY_STATE_LEADER", "PARTY_STATE_ATTACKER", "PARTY_STATE_TANKER", "PARTY_STATE_BUFFER", "PARTY_STATE_SKILL_MASTER", "PARTY_STATE_BERSERKER", "PARTY_STATE_DEFENDER", "PARTY_STATE_MAX_NUM", "SKILL_INDEX_TONGSOL", "SKILL_INDEX_FISHING", "SKILL_INDEX_MINING", "SKILL_INDEX_MAKING", "SKILL_INDEX_COMBO", "SKILL_INDEX_LANGUAGE1", "SKILL_INDEX_LANGUAGE2", "SKILL_INDEX_LANGUAGE3", "SKILL_INDEX_POLYMORPH", "SKILL_INDEX_RIDING", "SKILL_INDEX_SUMMON", "PK_MODE_PEACE", "PK_MODE_REVENGE", "PK_MODE_FREE", "PK_MODE_PROTECT", "PK_MODE_GUILD", "PK_MODE_MAX_NUM", "BLOCK_EXCHANGE", "BLOCK_PARTY", "BLOCK_GUILD", "BLOCK_WHISPER", "BLOCK_FRIEND", "BLOCK_PARTY_REQUEST", "PARTY_EXP_NON_DISTRIBUTION", "PARTY_EXP_DISTRIBUTION_PARITY", "EMOTION_CLAP", "EMOTION_CHEERS_1", "EMOTION_CHEERS_2", "EMOTION_DANCE_1", "EMOTION_DANCE_2", "EMOTION_DANCE_3", "EMOTION_DANCE_4", "EMOTION_DANCE_5", "EMOTION_DANCE_6", "EMOTION_CONGRATULATION", "EMOTION_FORGIVE", "EMOTION_ANGRY", "EMOTION_ATTRACTIVE", "EMOTION_SAD", "EMOTION_SHY", "EMOTION_CHEERUP", "EMOTION_BANTER", "EMOTION_JOY", "EMOTION_KISS", "EMOTION_FRENCH_KISS", "EMOTION_SLAP", "AUTO_POTION_TYPE_HP", "AUTO_POTION_TYPE_SP", "DRAGON_SOUL_PAGE_SIZE", "DRAGON_SOUL_PAGE_COUNT", "DRAGON_SOUL_SLOT_COUNT", "DRAGON_SOUL_EQUIPMENT_SLOT_START", "DRAGON_SOUL_EQUIPMENT_PAGE_COUNT", "DRAGON_SOUL_EQUIPMENT_FIRST_SIZE", "DRAGON_SOUL_REFINE_CLOSE", "DS_SUB_HEADER_DO_UPGRADE", "DS_SUB_HEADER_DO_IMPROVEMENT", "DS_SUB_HEADER_DO_REFINE", NULL}; +const char* strings_player[] = {NULL}; +// 40250 UserInterface/PythonProfilerModule.cpp: profiler export names. +PyObject* stub_profiler_Push(PyObject*, PyObject*) { return stub_call_named("profiler.Push"); } +PyObject* stub_profiler_Pop(PyObject*, PyObject*) { return stub_call_named("profiler.Pop"); } +PyMethodDef methods_profiler[] = { + { "Push", stub_profiler_Push, METH_VARARGS }, + { "Pop", stub_profiler_Pop, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_profiler[] = {NULL}; +const char* strings_profiler[] = {NULL}; +// 40250 UserInterface/PythonQuest.cpp: quest export names. +PyObject* stub_quest_GetQuestCount(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestCount"); } +PyObject* stub_quest_GetQuestData(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestData"); } +PyObject* stub_quest_GetQuestIndex(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestIndex"); } +PyObject* stub_quest_GetQuestLastTime(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestLastTime"); } +PyObject* stub_quest_Clear(PyObject*, PyObject*) { return stub_call_named("quest.Clear"); } +PyMethodDef methods_quest[] = { + { "GetQuestCount", stub_quest_GetQuestCount, METH_VARARGS }, + { "GetQuestData", stub_quest_GetQuestData, METH_VARARGS }, + { "GetQuestIndex", stub_quest_GetQuestIndex, METH_VARARGS }, + { "GetQuestLastTime", stub_quest_GetQuestLastTime, METH_VARARGS }, + { "Clear", stub_quest_Clear, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_quest[] = {"QUEST_MAX_NUM", NULL}; +const char* strings_quest[] = {NULL}; +// 40250 UserInterface/PythonSafeBox.cpp: safebox export names. +PyObject* stub_safebox_GetCurrentSafeboxSize(PyObject*, PyObject*) { return stub_call_named("safebox.GetCurrentSafeboxSize"); } +PyObject* stub_safebox_GetItemID(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemID"); } +PyObject* stub_safebox_GetItemCount(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemCount"); } +PyObject* stub_safebox_GetItemFlags(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemFlags"); } +PyObject* stub_safebox_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemMetinSocket"); } +PyObject* stub_safebox_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemAttribute"); } +PyObject* stub_safebox_GetMoney(PyObject*, PyObject*) { return stub_call_named("safebox.GetMoney"); } +PyObject* stub_safebox_GetMallItemID(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemID"); } +PyObject* stub_safebox_GetMallItemCount(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemCount"); } +PyObject* stub_safebox_GetMallItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemMetinSocket"); } +PyObject* stub_safebox_GetMallItemAttribute(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemAttribute"); } +PyObject* stub_safebox_GetMallSize(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallSize"); } +PyMethodDef methods_safebox[] = { + { "GetCurrentSafeboxSize", stub_safebox_GetCurrentSafeboxSize, METH_VARARGS }, + { "GetItemID", stub_safebox_GetItemID, METH_VARARGS }, + { "GetItemCount", stub_safebox_GetItemCount, METH_VARARGS }, + { "GetItemFlags", stub_safebox_GetItemFlags, METH_VARARGS }, + { "GetItemMetinSocket", stub_safebox_GetItemMetinSocket, METH_VARARGS }, + { "GetItemAttribute", stub_safebox_GetItemAttribute, METH_VARARGS }, + { "GetMoney", stub_safebox_GetMoney, METH_VARARGS }, + { "GetMallItemID", stub_safebox_GetMallItemID, METH_VARARGS }, + { "GetMallItemCount", stub_safebox_GetMallItemCount, METH_VARARGS }, + { "GetMallItemMetinSocket", stub_safebox_GetMallItemMetinSocket, METH_VARARGS }, + { "GetMallItemAttribute", stub_safebox_GetMallItemAttribute, METH_VARARGS }, + { "GetMallSize", stub_safebox_GetMallSize, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_safebox[] = {"SAFEBOX_SLOT_X_COUNT", "SAFEBOX_SLOT_Y_COUNT", "SAFEBOX_PAGE_SIZE", NULL}; +const char* strings_safebox[] = {NULL}; +// 40250 UserInterface/PythonShop.cpp: shop export names. +PyObject* stub_shop_Open(PyObject*, PyObject*) { return stub_call_named("shop.Open"); } +PyObject* stub_shop_Close(PyObject*, PyObject*) { return stub_call_named("shop.Close"); } +PyObject* stub_shop_IsOpen(PyObject*, PyObject*) { return stub_call_named("shop.IsOpen"); } +PyObject* stub_shop_IsPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.IsPrivateShop"); } +PyObject* stub_shop_IsMainPlayerPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.IsMainPlayerPrivateShop"); } +PyObject* stub_shop_GetItemID(PyObject*, PyObject*) { return stub_call_named("shop.GetItemID"); } +PyObject* stub_shop_GetItemCount(PyObject*, PyObject*) { return stub_call_named("shop.GetItemCount"); } +PyObject* stub_shop_GetItemPrice(PyObject*, PyObject*) { return stub_call_named("shop.GetItemPrice"); } +PyObject* stub_shop_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("shop.GetItemMetinSocket"); } +PyObject* stub_shop_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("shop.GetItemAttribute"); } +PyObject* stub_shop_GetTabCount(PyObject*, PyObject*) { return stub_call_named("shop.GetTabCount"); } +PyObject* stub_shop_GetTabName(PyObject*, PyObject*) { return stub_call_named("shop.GetTabName"); } +PyObject* stub_shop_GetTabCoinType(PyObject*, PyObject*) { return stub_call_named("shop.GetTabCoinType"); } +PyObject* stub_shop_ClearPrivateShopStock(PyObject*, PyObject*) { return stub_call_named("shop.ClearPrivateShopStock"); } +PyObject* stub_shop_AddPrivateShopItemStock(PyObject*, PyObject*) { return stub_call_named("shop.AddPrivateShopItemStock"); } +PyObject* stub_shop_DelPrivateShopItemStock(PyObject*, PyObject*) { return stub_call_named("shop.DelPrivateShopItemStock"); } +PyObject* stub_shop_GetPrivateShopItemPrice(PyObject*, PyObject*) { return stub_call_named("shop.GetPrivateShopItemPrice"); } +PyObject* stub_shop_BuildPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.BuildPrivateShop"); } +PyMethodDef methods_shop[] = { + { "Open", stub_shop_Open, METH_VARARGS }, + { "Close", stub_shop_Close, METH_VARARGS }, + { "IsOpen", stub_shop_IsOpen, METH_VARARGS }, + { "IsPrivateShop", stub_shop_IsPrivateShop, METH_VARARGS }, + { "IsMainPlayerPrivateShop", stub_shop_IsMainPlayerPrivateShop, METH_VARARGS }, + { "GetItemID", stub_shop_GetItemID, METH_VARARGS }, + { "GetItemCount", stub_shop_GetItemCount, METH_VARARGS }, + { "GetItemPrice", stub_shop_GetItemPrice, METH_VARARGS }, + { "GetItemMetinSocket", stub_shop_GetItemMetinSocket, METH_VARARGS }, + { "GetItemAttribute", stub_shop_GetItemAttribute, METH_VARARGS }, + { "GetTabCount", stub_shop_GetTabCount, METH_VARARGS }, + { "GetTabName", stub_shop_GetTabName, METH_VARARGS }, + { "GetTabCoinType", stub_shop_GetTabCoinType, METH_VARARGS }, + { "ClearPrivateShopStock", stub_shop_ClearPrivateShopStock, METH_VARARGS }, + { "AddPrivateShopItemStock", stub_shop_AddPrivateShopItemStock, METH_VARARGS }, + { "DelPrivateShopItemStock", stub_shop_DelPrivateShopItemStock, METH_VARARGS }, + { "GetPrivateShopItemPrice", stub_shop_GetPrivateShopItemPrice, METH_VARARGS }, + { "BuildPrivateShop", stub_shop_BuildPrivateShop, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_shop[] = {"SHOP_SLOT_COUNT", "SHOP_COIN_TYPE_GOLD", "SHOP_COIN_TYPE_SECONDARY_COIN", NULL}; +const char* strings_shop[] = {NULL}; +// 40250 UserInterface/PythonSkill.cpp: skill export names. +PyObject* stub_skill_SetPathName(PyObject*, PyObject*) { return stub_call_named("skill.SetPathName"); } +PyObject* stub_skill_RegisterSkill(PyObject*, PyObject*) { return stub_call_named("skill.RegisterSkill"); } +PyObject* stub_skill_LoadSkillData(PyObject*, PyObject*) { return stub_call_named("skill.LoadSkillData"); } +PyObject* stub_skill_ClearSkillData(PyObject*, PyObject*) { return stub_call_named("skill.ClearSkillData"); } +PyObject* stub_skill_GetSkillName(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillName"); } +PyObject* stub_skill_GetSkillDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillDescription"); } +PyObject* stub_skill_GetSkillType(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillType"); } +PyObject* stub_skill_GetSkillConditionDescriptionCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillConditionDescriptionCount"); } +PyObject* stub_skill_GetSkillConditionDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillConditionDescription"); } +PyObject* stub_skill_GetSkillAffectDescriptionCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillAffectDescriptionCount"); } +PyObject* stub_skill_GetSkillAffectDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillAffectDescription"); } +PyObject* stub_skill_GetSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillCoolTime"); } +PyObject* stub_skill_GetSkillNeedSP(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillNeedSP"); } +PyObject* stub_skill_GetSkillContinuationSP(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillContinuationSP"); } +PyObject* stub_skill_GetSkillMaxLevel(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillMaxLevel"); } +PyObject* stub_skill_GetSkillLevelUpPoint(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillLevelUpPoint"); } +PyObject* stub_skill_GetSkillLevelLimit(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillLevelLimit"); } +PyObject* stub_skill_IsSkillRequirement(PyObject*, PyObject*) { return stub_call_named("skill.IsSkillRequirement"); } +PyObject* stub_skill_GetSkillRequirementData(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequirementData"); } +PyObject* stub_skill_GetSkillRequireStatCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequireStatCount"); } +PyObject* stub_skill_GetSkillRequireStatData(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequireStatData"); } +PyObject* stub_skill_CanLevelUpSkill(PyObject*, PyObject*) { return stub_call_named("skill.CanLevelUpSkill"); } +PyObject* stub_skill_IsLevelUpSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsLevelUpSkill"); } +PyObject* stub_skill_CheckRequirementSueccess(PyObject*, PyObject*) { return stub_call_named("skill.CheckRequirementSueccess"); } +PyObject* stub_skill_GetNeedCharacterLevel(PyObject*, PyObject*) { return stub_call_named("skill.GetNeedCharacterLevel"); } +PyObject* stub_skill_IsToggleSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsToggleSkill"); } +PyObject* stub_skill_IsUseHPSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsUseHPSkill"); } +PyObject* stub_skill_IsStandingSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsStandingSkill"); } +PyObject* stub_skill_CanUseSkill(PyObject*, PyObject*) { return stub_call_named("skill.CanUseSkill"); } +PyObject* stub_skill_GetIconName(PyObject*, PyObject*) { return stub_call_named("skill.GetIconName"); } +PyObject* stub_skill_GetIconImage(PyObject*, PyObject*) { return stub_call_named("skill.GetIconImage"); } +PyObject* stub_skill_GetIconImageNew(PyObject*, PyObject*) { return stub_call_named("skill.GetIconImageNew"); } +PyObject* stub_skill_GetIconInstance(PyObject*, PyObject*) { return stub_call_named("skill.GetIconInstance"); } +PyObject* stub_skill_GetIconInstanceNew(PyObject*, PyObject*) { return stub_call_named("skill.GetIconInstanceNew"); } +PyObject* stub_skill_DeleteIconInstance(PyObject*, PyObject*) { return stub_call_named("skill.DeleteIconInstance"); } +PyObject* stub_skill_GetGradeData(PyObject*, PyObject*) { return stub_call_named("skill.GetGradeData"); } +PyObject* stub_skill_GetNewAffectDataCount(PyObject*, PyObject*) { return stub_call_named("skill.GetNewAffectDataCount"); } +PyObject* stub_skill_GetNewAffectData(PyObject*, PyObject*) { return stub_call_named("skill.GetNewAffectData"); } +PyObject* stub_skill_GetDuration(PyObject*, PyObject*) { return stub_call_named("skill.GetDuration"); } +PyObject* stub_skill_TEST(PyObject*, PyObject*) { return stub_call_named("skill.TEST"); } +PyMethodDef methods_skill[] = { + { "SetPathName", stub_skill_SetPathName, METH_VARARGS }, + { "RegisterSkill", stub_skill_RegisterSkill, METH_VARARGS }, + { "LoadSkillData", stub_skill_LoadSkillData, METH_VARARGS }, + { "ClearSkillData", stub_skill_ClearSkillData, METH_VARARGS }, + { "GetSkillName", stub_skill_GetSkillName, METH_VARARGS }, + { "GetSkillDescription", stub_skill_GetSkillDescription, METH_VARARGS }, + { "GetSkillType", stub_skill_GetSkillType, METH_VARARGS }, + { "GetSkillConditionDescriptionCount", stub_skill_GetSkillConditionDescriptionCount, METH_VARARGS }, + { "GetSkillConditionDescription", stub_skill_GetSkillConditionDescription, METH_VARARGS }, + { "GetSkillAffectDescriptionCount", stub_skill_GetSkillAffectDescriptionCount, METH_VARARGS }, + { "GetSkillAffectDescription", stub_skill_GetSkillAffectDescription, METH_VARARGS }, + { "GetSkillCoolTime", stub_skill_GetSkillCoolTime, METH_VARARGS }, + { "GetSkillNeedSP", stub_skill_GetSkillNeedSP, METH_VARARGS }, + { "GetSkillContinuationSP", stub_skill_GetSkillContinuationSP, METH_VARARGS }, + { "GetSkillMaxLevel", stub_skill_GetSkillMaxLevel, METH_VARARGS }, + { "GetSkillLevelUpPoint", stub_skill_GetSkillLevelUpPoint, METH_VARARGS }, + { "GetSkillLevelLimit", stub_skill_GetSkillLevelLimit, METH_VARARGS }, + { "IsSkillRequirement", stub_skill_IsSkillRequirement, METH_VARARGS }, + { "GetSkillRequirementData", stub_skill_GetSkillRequirementData, METH_VARARGS }, + { "GetSkillRequireStatCount", stub_skill_GetSkillRequireStatCount, METH_VARARGS }, + { "GetSkillRequireStatData", stub_skill_GetSkillRequireStatData, METH_VARARGS }, + { "CanLevelUpSkill", stub_skill_CanLevelUpSkill, METH_VARARGS }, + { "IsLevelUpSkill", stub_skill_IsLevelUpSkill, METH_VARARGS }, + { "CheckRequirementSueccess", stub_skill_CheckRequirementSueccess, METH_VARARGS }, + { "GetNeedCharacterLevel", stub_skill_GetNeedCharacterLevel, METH_VARARGS }, + { "IsToggleSkill", stub_skill_IsToggleSkill, METH_VARARGS }, + { "IsUseHPSkill", stub_skill_IsUseHPSkill, METH_VARARGS }, + { "IsStandingSkill", stub_skill_IsStandingSkill, METH_VARARGS }, + { "CanUseSkill", stub_skill_CanUseSkill, METH_VARARGS }, + { "GetIconName", stub_skill_GetIconName, METH_VARARGS }, + { "GetIconImage", stub_skill_GetIconImage, METH_VARARGS }, + { "GetIconImageNew", stub_skill_GetIconImageNew, METH_VARARGS }, + { "GetIconInstance", stub_skill_GetIconInstance, METH_VARARGS }, + { "GetIconInstanceNew", stub_skill_GetIconInstanceNew, METH_VARARGS }, + { "DeleteIconInstance", stub_skill_DeleteIconInstance, METH_VARARGS }, + { "GetGradeData", stub_skill_GetGradeData, METH_VARARGS }, + { "GetNewAffectDataCount", stub_skill_GetNewAffectDataCount, METH_VARARGS }, + { "GetNewAffectData", stub_skill_GetNewAffectData, METH_VARARGS }, + { "GetDuration", stub_skill_GetDuration, METH_VARARGS }, + { "TEST", stub_skill_TEST, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_skill[] = {"SKILL_TYPE_NONE", "SKILL_TYPE_ACTIVE", "SKILL_TYPE_SUPPORT", "SKILL_TYPE_GUILD", "SKILL_TYPE_HORSE", "SKILL_TYPE_MAX_NUM", "SKILL_GRADE_COUNT", "SKILL_GRADE_STEP_COUNT", "SKILL_GRADEGAP", "SKILL_EFFECT_COUNT", NULL}; +const char* strings_skill[] = {NULL}; +// 40250 UserInterface/PythonSoundManagerModule.cpp: snd export names. +PyObject* stub_snd_PlaySound(PyObject*, PyObject*) { return stub_call_named("snd.PlaySound"); } +PyObject* stub_snd_PlaySound3D(PyObject*, PyObject*) { return stub_call_named("snd.PlaySound3D"); } +PyObject* stub_snd_PlayMusic(PyObject*, PyObject*) { return stub_call_named("snd.PlayMusic"); } +PyObject* stub_snd_FadeInMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeInMusic"); } +PyObject* stub_snd_FadeOutMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeOutMusic"); } +PyObject* stub_snd_FadeOutAllMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeOutAllMusic"); } +PyObject* stub_snd_FadeLimitOutMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeLimitOutMusic"); } +PyObject* stub_snd_StopAllSound(PyObject*, PyObject*) { return stub_call_named("snd.StopAllSound"); } +PyObject* stub_snd_SetMusicVolumef(PyObject*, PyObject*) { return stub_call_named("snd.SetMusicVolumef"); } +PyObject* stub_snd_SetMusicVolume(PyObject*, PyObject*) { return stub_call_named("snd.SetMusicVolume"); } +PyObject* stub_snd_SetSoundVolumef(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundVolumef"); } +PyObject* stub_snd_SetSoundVolume(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundVolume"); } +PyObject* stub_snd_SetSoundScale(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundScale"); } +PyObject* stub_snd_SetAmbienceSoundScale(PyObject*, PyObject*) { return stub_call_named("snd.SetAmbienceSoundScale"); } +PyMethodDef methods_snd[] = { + { "PlaySound", stub_snd_PlaySound, METH_VARARGS }, + { "PlaySound3D", stub_snd_PlaySound3D, METH_VARARGS }, + { "PlayMusic", stub_snd_PlayMusic, METH_VARARGS }, + { "FadeInMusic", stub_snd_FadeInMusic, METH_VARARGS }, + { "FadeOutMusic", stub_snd_FadeOutMusic, METH_VARARGS }, + { "FadeOutAllMusic", stub_snd_FadeOutAllMusic, METH_VARARGS }, + { "FadeLimitOutMusic", stub_snd_FadeLimitOutMusic, METH_VARARGS }, + { "StopAllSound", stub_snd_StopAllSound, METH_VARARGS }, + { "SetMusicVolumef", stub_snd_SetMusicVolumef, METH_VARARGS }, + { "SetMusicVolume", stub_snd_SetMusicVolume, METH_VARARGS }, + { "SetSoundVolumef", stub_snd_SetSoundVolumef, METH_VARARGS }, + { "SetSoundVolume", stub_snd_SetSoundVolume, METH_VARARGS }, + { "SetSoundScale", stub_snd_SetSoundScale, METH_VARARGS }, + { "SetAmbienceSoundScale", stub_snd_SetAmbienceSoundScale, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_snd[] = {NULL}; +const char* strings_snd[] = {NULL}; +// 40250 UserInterface/PythonSystemModule.cpp: systemSetting export names. +PyObject* stub_systemSetting_GetWidth(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetWidth"); } +PyObject* stub_systemSetting_GetHeight(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetHeight"); } +PyObject* stub_systemSetting_SetInterfaceHandler(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetInterfaceHandler"); } +PyObject* stub_systemSetting_DestroyInterfaceHandler(PyObject*, PyObject*) { return stub_call_named("systemSetting.DestroyInterfaceHandler"); } +PyObject* stub_systemSetting_ReserveResource(PyObject*, PyObject*) { return stub_call_named("systemSetting.ReserveResource"); } +PyObject* stub_systemSetting_isInterfaceConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.isInterfaceConfig"); } +PyObject* stub_systemSetting_SaveWindowStatus(PyObject*, PyObject*) { return stub_call_named("systemSetting.SaveWindowStatus"); } +PyObject* stub_systemSetting_GetWindowStatus(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetWindowStatus"); } +PyObject* stub_systemSetting_GetResolutionCount(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetResolutionCount"); } +PyObject* stub_systemSetting_GetFrequencyCount(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetFrequencyCount"); } +PyObject* stub_systemSetting_GetCurrentResolution(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetCurrentResolution"); } +PyObject* stub_systemSetting_GetResolution(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetResolution"); } +PyObject* stub_systemSetting_GetFrequency(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetFrequency"); } +PyObject* stub_systemSetting_ApplyConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.ApplyConfig"); } +PyObject* stub_systemSetting_SetConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetConfig"); } +PyObject* stub_systemSetting_SaveConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.SaveConfig"); } +PyObject* stub_systemSetting_GetConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetConfig"); } +PyObject* stub_systemSetting_SetSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetSaveID"); } +PyObject* stub_systemSetting_isSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.isSaveID"); } +PyObject* stub_systemSetting_GetSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetSaveID"); } +PyObject* stub_systemSetting_GetMusicVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetMusicVolume"); } +PyObject* stub_systemSetting_GetSoundVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetSoundVolume"); } +PyObject* stub_systemSetting_SetMusicVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetMusicVolume"); } +PyObject* stub_systemSetting_SetSoundVolumef(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetSoundVolumef"); } +PyObject* stub_systemSetting_IsSoftwareCursor(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsSoftwareCursor"); } +PyObject* stub_systemSetting_SetViewChatFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetViewChatFlag"); } +PyObject* stub_systemSetting_IsViewChat(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsViewChat"); } +PyObject* stub_systemSetting_SetAlwaysShowNameFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetAlwaysShowNameFlag"); } +PyObject* stub_systemSetting_IsAlwaysShowName(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsAlwaysShowName"); } +PyObject* stub_systemSetting_SetShowDamageFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShowDamageFlag"); } +PyObject* stub_systemSetting_IsShowDamage(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsShowDamage"); } +PyObject* stub_systemSetting_SetShowSalesTextFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShowSalesTextFlag"); } +PyObject* stub_systemSetting_IsShowSalesText(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsShowSalesText"); } +PyObject* stub_systemSetting_GetShadowLevel(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetShadowLevel"); } +PyObject* stub_systemSetting_SetShadowLevel(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShadowLevel"); } +PyMethodDef methods_systemSetting[] = { + { "GetWidth", stub_systemSetting_GetWidth, METH_VARARGS }, + { "GetHeight", stub_systemSetting_GetHeight, METH_VARARGS }, + { "SetInterfaceHandler", stub_systemSetting_SetInterfaceHandler, METH_VARARGS }, + { "DestroyInterfaceHandler", stub_systemSetting_DestroyInterfaceHandler, METH_VARARGS }, + { "ReserveResource", stub_systemSetting_ReserveResource, METH_VARARGS }, + { "isInterfaceConfig", stub_systemSetting_isInterfaceConfig, METH_VARARGS }, + { "SaveWindowStatus", stub_systemSetting_SaveWindowStatus, METH_VARARGS }, + { "GetWindowStatus", stub_systemSetting_GetWindowStatus, METH_VARARGS }, + { "GetResolutionCount", stub_systemSetting_GetResolutionCount, METH_VARARGS }, + { "GetFrequencyCount", stub_systemSetting_GetFrequencyCount, METH_VARARGS }, + { "GetCurrentResolution", stub_systemSetting_GetCurrentResolution, METH_VARARGS }, + { "GetResolution", stub_systemSetting_GetResolution, METH_VARARGS }, + { "GetFrequency", stub_systemSetting_GetFrequency, METH_VARARGS }, + { "ApplyConfig", stub_systemSetting_ApplyConfig, METH_VARARGS }, + { "SetConfig", stub_systemSetting_SetConfig, METH_VARARGS }, + { "SaveConfig", stub_systemSetting_SaveConfig, METH_VARARGS }, + { "GetConfig", stub_systemSetting_GetConfig, METH_VARARGS }, + { "SetSaveID", stub_systemSetting_SetSaveID, METH_VARARGS }, + { "isSaveID", stub_systemSetting_isSaveID, METH_VARARGS }, + { "GetSaveID", stub_systemSetting_GetSaveID, METH_VARARGS }, + { "GetMusicVolume", stub_systemSetting_GetMusicVolume, METH_VARARGS }, + { "GetSoundVolume", stub_systemSetting_GetSoundVolume, METH_VARARGS }, + { "SetMusicVolume", stub_systemSetting_SetMusicVolume, METH_VARARGS }, + { "SetSoundVolumef", stub_systemSetting_SetSoundVolumef, METH_VARARGS }, + { "IsSoftwareCursor", stub_systemSetting_IsSoftwareCursor, METH_VARARGS }, + { "SetViewChatFlag", stub_systemSetting_SetViewChatFlag, METH_VARARGS }, + { "IsViewChat", stub_systemSetting_IsViewChat, METH_VARARGS }, + { "SetAlwaysShowNameFlag", stub_systemSetting_SetAlwaysShowNameFlag, METH_VARARGS }, + { "IsAlwaysShowName", stub_systemSetting_IsAlwaysShowName, METH_VARARGS }, + { "SetShowDamageFlag", stub_systemSetting_SetShowDamageFlag, METH_VARARGS }, + { "IsShowDamage", stub_systemSetting_IsShowDamage, METH_VARARGS }, + { "SetShowSalesTextFlag", stub_systemSetting_SetShowSalesTextFlag, METH_VARARGS }, + { "IsShowSalesText", stub_systemSetting_IsShowSalesText, METH_VARARGS }, + { "GetShadowLevel", stub_systemSetting_GetShadowLevel, METH_VARARGS }, + { "SetShadowLevel", stub_systemSetting_SetShadowLevel, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_systemSetting[] = {"WINDOW_STATUS", "WINDOW_INVENTORY", "WINDOW_ABILITY", "WINDOW_SOCIETY", "WINDOW_JOURNAL", "WINDOW_COMMAND", "WINDOW_QUICK", "WINDOW_GAUGE", "WINDOW_MINIMAP", "WINDOW_CHAT", NULL}; +const char* strings_systemSetting[] = {NULL}; +// 40250 UserInterface/PythonTextTailModule.cpp: textTail export names. +PyObject* stub_textTail_Clear(PyObject*, PyObject*) { return stub_call_named("textTail.Clear"); } +PyObject* stub_textTail_UpdateAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.UpdateAllTextTail"); } +PyObject* stub_textTail_UpdateShowingTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.UpdateShowingTextTail"); } +PyObject* stub_textTail_Render(PyObject*, PyObject*) { return stub_call_named("textTail.Render"); } +PyObject* stub_textTail_ShowCharacterTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowCharacterTextTail"); } +PyObject* stub_textTail_ShowItemTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowItemTextTail"); } +PyObject* stub_textTail_GetPosition(PyObject*, PyObject*) { return stub_call_named("textTail.GetPosition"); } +PyObject* stub_textTail_IsChat(PyObject*, PyObject*) { return stub_call_named("textTail.IsChat"); } +PyObject* stub_textTail_ArrangeTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ArrangeTextTail"); } +PyObject* stub_textTail_HideAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.HideAllTextTail"); } +PyObject* stub_textTail_ShowAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowAllTextTail"); } +PyObject* stub_textTail_Pick(PyObject*, PyObject*) { return stub_call_named("textTail.Pick"); } +PyObject* stub_textTail_SelectItemName(PyObject*, PyObject*) { return stub_call_named("textTail.SelectItemName"); } +PyObject* stub_textTail_EnablePKTitle(PyObject*, PyObject*) { return stub_call_named("textTail.EnablePKTitle"); } +PyObject* stub_textTail_RegisterCharacterTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterCharacterTextTail"); } +PyObject* stub_textTail_RegisterChatTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterChatTail"); } +PyObject* stub_textTail_RegisterInfoTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterInfoTail"); } +PyObject* stub_textTail_AttachTitle(PyObject*, PyObject*) { return stub_call_named("textTail.AttachTitle"); } +PyMethodDef methods_textTail[] = { + { "Clear", stub_textTail_Clear, METH_VARARGS }, + { "UpdateAllTextTail", stub_textTail_UpdateAllTextTail, METH_VARARGS }, + { "UpdateShowingTextTail", stub_textTail_UpdateShowingTextTail, METH_VARARGS }, + { "Render", stub_textTail_Render, METH_VARARGS }, + { "ShowCharacterTextTail", stub_textTail_ShowCharacterTextTail, METH_VARARGS }, + { "ShowItemTextTail", stub_textTail_ShowItemTextTail, METH_VARARGS }, + { "GetPosition", stub_textTail_GetPosition, METH_VARARGS }, + { "IsChat", stub_textTail_IsChat, METH_VARARGS }, + { "ArrangeTextTail", stub_textTail_ArrangeTextTail, METH_VARARGS }, + { "HideAllTextTail", stub_textTail_HideAllTextTail, METH_VARARGS }, + { "ShowAllTextTail", stub_textTail_ShowAllTextTail, METH_VARARGS }, + { "Pick", stub_textTail_Pick, METH_VARARGS }, + { "SelectItemName", stub_textTail_SelectItemName, METH_VARARGS }, + { "EnablePKTitle", stub_textTail_EnablePKTitle, METH_VARARGS }, + { "RegisterCharacterTextTail", stub_textTail_RegisterCharacterTextTail, METH_VARARGS }, + { "RegisterChatTail", stub_textTail_RegisterChatTail, METH_VARARGS }, + { "RegisterInfoTail", stub_textTail_RegisterInfoTail, METH_VARARGS }, + { "AttachTitle", stub_textTail_AttachTitle, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_textTail[] = {NULL}; +const char* strings_textTail[] = {NULL}; +// 40250 UserInterface/PythonNetworkDatagramModule.cpp: udp export names. +PyObject* stub_udp_Enable(PyObject*, PyObject*) { return stub_call_named("udp.Enable"); } +PyObject* stub_udp_Disable(PyObject*, PyObject*) { return stub_call_named("udp.Disable"); } +PyMethodDef methods_udp[] = { + { "Enable", stub_udp_Enable, METH_VARARGS }, + { "Disable", stub_udp_Disable, METH_VARARGS }, + { NULL, NULL } +}; +const char* ints_udp[] = {NULL}; +const char* strings_udp[] = {NULL}; +} // namespace + +void init_2v0_gameplay_stubs() { + { + PyObject* module = Py_InitModule("ServerStateChecker", methods_ServerStateChecker); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_ServerStateChecker; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_ServerStateChecker; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("background", methods_background); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_background; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_background; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("chat", methods_chat); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_chat; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_chat; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("chr", methods_chr); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_chr; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_chr; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("chrmgr", methods_chrmgr); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_chrmgr; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_chrmgr; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("effect", methods_effect); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_effect; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_effect; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("event", methods_event); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_event; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_event; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("eventMgr", methods_eventMgr); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_eventMgr; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_eventMgr; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("exchange", methods_exchange); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_exchange; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_exchange; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("fly", methods_fly); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_fly; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_fly; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("guild", methods_guild); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_guild; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_guild; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("ime", methods_ime); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_ime; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_ime; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("item", methods_item); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_item; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_item; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("messenger", methods_messenger); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_messenger; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_messenger; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("miniMap", methods_miniMap); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_miniMap; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_miniMap; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("net", methods_net); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_net; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_net; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("nonplayer", methods_nonplayer); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_nonplayer; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_nonplayer; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("player", methods_player); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_player; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_player; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("profiler", methods_profiler); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_profiler; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_profiler; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("quest", methods_quest); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_quest; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_quest; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("safebox", methods_safebox); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_safebox; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_safebox; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("shop", methods_shop); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_shop; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_shop; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("skill", methods_skill); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_skill; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_skill; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("snd", methods_snd); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_snd; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_snd; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("systemSetting", methods_systemSetting); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_systemSetting; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_systemSetting; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("textTail", methods_textTail); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_textTail; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_textTail; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } + { + PyObject* module = Py_InitModule("udp", methods_udp); + PyModule_AddIntConstant(module, "__port_stub__", 1); + for (const char** name = ints_udp; *name; ++name) + PyModule_AddIntConstant(module, *name, 0); + for (const char** name = strings_udp; *name; ++name) + PyModule_AddStringConstant(module, *name, ""); + } +} diff --git a/extension/src/platform/ScriptLib/PythonBoot.cpp b/extension/src/platform/ScriptLib/PythonBoot.cpp index 30d2cc53..a215a26a 100644 --- a/extension/src/platform/ScriptLib/PythonBoot.cpp +++ b/extension/src/platform/ScriptLib/PythonBoot.cpp @@ -24,6 +24,8 @@ bool fail(std::string* error, const std::string& text) } } +void init_2v0_gameplay_stubs(); + namespace PythonBoot { @@ -77,6 +79,7 @@ bool RunMainScript(const char* lpCmdLine, std::string* error) initgrpText(); initwndMgr(); initapp(); + init_2v0_gameplay_stubs(); ClearLogBoxMessage(); diff --git a/extension/src/platform/ScriptLib/PythonBoot.h b/extension/src/platform/ScriptLib/PythonBoot.h index 9e8405ab..c8ed77b9 100644 --- a/extension/src/platform/ScriptLib/PythonBoot.h +++ b/extension/src/platform/ScriptLib/PythonBoot.h @@ -26,8 +26,8 @@ bool Start(const char* stdlib_path, std::string* error); bool IsRunning(); // 40250: RunMainScript(CPythonLauncher&, const char*) — the module initializers, __DEBUG__, -// __COMMAND_LINE__ and RunFile("system.py"). Only the initializers that are ported are called; the rest -// arrive with the 2V slices, which is why system.py still stops at its first import. +// __COMMAND_LINE__ and RunFile("system.py"). 2V0-e registers temporary observable gameplay modules; +// they are replaced by the real modules in later 2V slices. // False leaves *error set to what the launcher reported through LogBox (platform/EterBase/LogBox.h). bool RunMainScript(const char* lpCmdLine, std::string* error); diff --git a/extension/src/platform/UserInterface/PythonApplication.cpp b/extension/src/platform/UserInterface/PythonApplication.cpp index f944c747..1031d73a 100644 --- a/extension/src/platform/UserInterface/PythonApplication.cpp +++ b/extension/src/platform/UserInterface/PythonApplication.cpp @@ -18,7 +18,13 @@ void CPythonApplication::Exit() { MT_PLATFORM_STUB(); } void CPythonApplication::Abort() { MT_PLATFORM_STUB(); } void CPythonApplication::SetMinFog(float) { MT_PLATFORM_STUB(); } void CPythonApplication::SetFrameSkip(bool) { MT_PLATFORM_STUB(); } -bool CPythonApplication::Create(PyObject*, const char*, int, int, int) { MT_PLATFORM_STUB(); return false; } +bool CPythonApplication::Create(PyObject*, const char*, int, int, int) { + MT_PLATFORM_STUB(); + // appCreate returns NULL on failure. Give Python the exception that + // prototype.RunApp expects rather than a SystemError with no exception set. + PyErr_SetString(PyExc_RuntimeError, "CREATE_DEVICE"); + return false; +} void CPythonApplication::UpdateGame() { MT_PLATFORM_STUB(); } void CPythonApplication::RenderGame() { MT_PLATFORM_STUB(); } bool CPythonApplication::Process() { MT_PLATFORM_STUB(); return false; } @@ -79,10 +85,19 @@ bool LoadLocaleData(const char*) { MT_PLATFORM_STUB(); return false; } void SetGuildSymbolPath(const char*) { MT_PLATFORM_STUB(); } void DefaultFont_SetName(const char*) { MT_PLATFORM_STUB(); } void TextTail_SetLivingTime(long) { MT_PLATFORM_STUB(); } -const char* LocaleService_GetName() { MT_PLATFORM_STUB(); return ""; } +namespace { +// The supplied 40250 Client/locale.cfg selects "en" (code page 1252). +// Keep these mutable for app.ForceSetLocale, as Locale.cpp does. +std::string locale_name = "en"; +std::string locale_path = "locale/en"; +} +const char* LocaleService_GetName() { return "EUROPE"; } bool LocaleService_IsCHEONMA() { MT_PLATFORM_STUB(); return false; } void LocaleService_SetCHEONMA(bool) { MT_PLATFORM_STUB(); } -unsigned LocaleService_GetCodePage() { MT_PLATFORM_STUB(); return 0; } -const char* LocaleService_GetLocaleName() { MT_PLATFORM_STUB(); return ""; } -const char* LocaleService_GetLocalePath() { MT_PLATFORM_STUB(); return ""; } -void LocaleService_ForceSetLocale(const char*, const char*) { MT_PLATFORM_STUB(); } +unsigned LocaleService_GetCodePage() { return 1252; } +const char* LocaleService_GetLocaleName() { return locale_name.c_str(); } +const char* LocaleService_GetLocalePath() { return locale_path.c_str(); } +void LocaleService_ForceSetLocale(const char* name, const char* path) { + locale_name = name ? name : ""; + locale_path = path ? path : ""; +} diff --git a/extension/src/python_host_node.h b/extension/src/python_host_node.h index 4b5f9f79..adc9fa68 100644 --- a/extension/src/python_host_node.h +++ b/extension/src/python_host_node.h @@ -6,8 +6,8 @@ // var err := Metin2PythonHost.run_main_script("") // // Both calls answer with "" on success and with the reason otherwise, so GDScript never has to guess -// from a bool. Until 批次 2V0 registers the C++ modules, run_main_script() is expected to come back with -// system.py's first import error; that is what step 4 verifies on each target platform. +// from a bool. 2V0-e reaches prototype.RunApp(); until 2V0-f implements the application adapter, +// app.Create reports CREATE_DEVICE and the original script displays its error popup. // // This is the only unit that knows both godot-cpp and the port tree: the sequence itself lives in // platform/ScriptLib/PythonBoot.h, which stays godot-free. diff --git a/project/python_host_check.gd b/project/python_host_check.gd index bf7f5ad2..7812cd0f 100644 --- a/project/python_host_check.gd +++ b/project/python_host_check.gd @@ -2,7 +2,8 @@ # # 和 ctest 的 `port.python_launcher` 跑的是同一条序列,区别只有一个:那边是独立可执行文件,这边在 # Godot 进程里,由 GDScript 发起 —— step 4 要验的就是这个差别。2V0 把 C++ 模块注册上之前, -# 在玩法模块补齐前,system.py 会停在下一个未注册的 native import。 +# 2V0-e 的玩法桩让 system.py 真正走到 prototype.RunApp(); +# 2V0-f 的应用 adapter 尚未创建图形设备,RunApp 捕获 CREATE_DEVICE 并给出原版提示。 # # 真机上通常没有 40250 的 Client/pack(APK 里只有 python27.zip),所以分两段:解释器 + 标准库这一段 # 不需要 pack,任何平台都跑;system.py 这一段需要 pack,没有就跳过并说清楚。 @@ -10,7 +11,7 @@ # 桌面:python_host_test.gd(--script);真机:MT_TEST_MODE=python 从 client_main.gd 进来。 extends RefCounted -const EXPECTED_STOP := "No module named net" +const EXPECTED_STOP := "Sorry, Your system does not support 3D graphics" var fail := 0 @@ -50,7 +51,9 @@ func run() -> int: var err: String = Metin2PythonHost.run_main_script("") print("system.py -> %s" % err) _ck(err.contains(EXPECTED_STOP), - "system.py 停在预期的 '%s'(2V0 之后这里会往前走)" % EXPECTED_STOP) + "system.py 进入 prototype.RunApp(),Create() 报告待实现的图形设备") + _ck(Metin2PythonHost.run_line("import net, player, item; assert net.__port_stub__ == 1 and player.__port_stub__ == 1 and item.__port_stub__ == 1") == "", + "2V0 玩法模块桩已注册,调用会记录到 stderr") else: print("SKIP: system.py 这一段(没有 40250 Client/pack:%s)" % AssetRoot.client_path())