2V3-a: walk with the keyboard through the ported player chain
PythonPlayer, PythonPlayerInput{,Keyboard,Mouse}, PythonPlayerEventHandler,
PythonPlayerSkill, PythonPlayerModule and GameType are verbatim copies; the
`player` stub module and the pending PythonPlayer/GameType stand-ins are gone.
Unported callees (CPythonSkill, CItemData, CItemManager, CPythonItem, ...) are
pending stubs. 64-bit fixes: emotion icon handles use Py_BuildPointer, and
PyDict_Next takes Py_ssize_t.
The actor did not move because GrannyUpdateModelMatrix passed the model matrix
through. Walk/run motions use constant root-motion extraction
(AccumulationFlags=AccumulationExtracted, LoopTranslation e.g. (0,-300,0) for
the warrior run, same as the .msa Accumulation). libgr2 now reads both fields
from TrackGroups[0], and the runtime moves by LoopTranslation over each
control's local-clock span, blended by control weight. VDA extraction is not
implemented.
port.login_flow presses DIK_UP; the actor walks more than 100 cm, and the fake
server parses CG packets and sees CG_MOVE FUNC_MOVE, then FUNC_WAIT at the new
position. port.login_live against the real server walked 132 cm.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
157f7c3bb4
commit
ff0983d3c8
@@ -7,14 +7,8 @@
|
||||
#include "UserInterface/PythonBackground.h"
|
||||
#include "EterLib/StateManager.h"
|
||||
#include "GameLib/MapOutdoor.h"
|
||||
#include "UserInterface/PythonChat.h"
|
||||
#include "UserInterface/PythonItem.h"
|
||||
#include "GameLib/ItemManager.h"
|
||||
#include "UserInterface/PythonCharacterManager.h"
|
||||
#include "UserInterface/PythonNonPlayer.h"
|
||||
#include "UserInterface/InstanceBase.h"
|
||||
#include "GameLib/RaceManager.h"
|
||||
#include "EffectLib/EffectManager.h"
|
||||
#include "UserInterface/PythonCharacterManager.h"
|
||||
#include "UserInterface/PythonEventManager.h"
|
||||
#include "UserInterface/PythonNetworkStream.h"
|
||||
#include "GameLib/GameEventManager.h"
|
||||
@@ -25,10 +19,13 @@
|
||||
#include "UserInterface/MarkManager.h"
|
||||
#include "UserInterface/PythonIME.h"
|
||||
#include "UserInterface/PythonApplication.h"
|
||||
#include "UserInterface/PythonItem.h"
|
||||
#include "GameLib/ItemManager.h"
|
||||
#include "UserInterface/InstanceBase.h"
|
||||
#include "UserInterface/AbstractApplication.h"
|
||||
#include "UserInterface/PythonMessenger.h"
|
||||
#include "UserInterface/PythonMiniMap.h"
|
||||
#include "UserInterface/PythonPlayer.h"
|
||||
#include "UserInterface/PythonNonPlayer.h"
|
||||
#include "EterLib/Profiler.h"
|
||||
#include "UserInterface/PythonQuest.h"
|
||||
#include "UserInterface/PythonSafeBox.h"
|
||||
@@ -36,6 +33,7 @@
|
||||
#include "UserInterface/PythonSkill.h"
|
||||
#include "EterBase/Poly/Poly.h"
|
||||
#include "EterPack/EterPackManager.h"
|
||||
#include "UserInterface/PythonPlayer.h"
|
||||
#include "UserInterface/PythonTextTail.h"
|
||||
|
||||
// 40250 UserInterface/ServerStateCheckerModule.cpp
|
||||
@@ -473,279 +471,6 @@ void AddStubConstants_nonplayer(PyObject* poModule)
|
||||
PyModule_AddIntConstant(poModule, "KING", 5);
|
||||
}
|
||||
|
||||
// 40250 UserInterface/PythonPlayerModule.cpp
|
||||
extern const DWORD c_iSkillIndex_Tongsol = 121;
|
||||
extern const DWORD c_iSkillIndex_Combo = 122;
|
||||
extern const DWORD c_iSkillIndex_Fishing = 123;
|
||||
extern const DWORD c_iSkillIndex_Mining = 124;
|
||||
extern const DWORD c_iSkillIndex_Making = 125;
|
||||
extern const DWORD c_iSkillIndex_Language1 = 126;
|
||||
extern const DWORD c_iSkillIndex_Language2 = 127;
|
||||
extern const DWORD c_iSkillIndex_Language3 = 128;
|
||||
extern const DWORD c_iSkillIndex_Polymorph = 129;
|
||||
extern const DWORD c_iSkillIndex_Riding = 130;
|
||||
extern const DWORD c_iSkillIndex_Summon = 131;
|
||||
enum
|
||||
{
|
||||
EMOTION_CLAP = 1,
|
||||
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 = 51,
|
||||
EMOTION_FRENCH_KISS,
|
||||
EMOTION_SLAP,
|
||||
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
REFINE_SCROLL_TYPE_MAKE_SOCKET = 1,
|
||||
REFINE_SCROLL_TYPE_UP_GRADE = 2,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
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,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
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,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
DETACH_METIN_CANT,
|
||||
DETACH_METIN_OK,
|
||||
};
|
||||
|
||||
// 40250 UserInterface/PythonPlayerModule.cpp
|
||||
void AddStubConstants_player(PyObject* poModule)
|
||||
{
|
||||
(void) poModule;
|
||||
PyModule_AddIntConstant(poModule, "LEVEL", POINT_LEVEL);
|
||||
PyModule_AddIntConstant(poModule, "VOICE", POINT_VOICE);
|
||||
PyModule_AddIntConstant(poModule, "EXP", POINT_EXP);
|
||||
PyModule_AddIntConstant(poModule, "NEXT_EXP", POINT_NEXT_EXP);
|
||||
PyModule_AddIntConstant(poModule, "HP", POINT_HP);
|
||||
PyModule_AddIntConstant(poModule, "MAX_HP", POINT_MAX_HP);
|
||||
PyModule_AddIntConstant(poModule, "SP", POINT_SP);
|
||||
PyModule_AddIntConstant(poModule, "MAX_SP", POINT_MAX_SP);
|
||||
PyModule_AddIntConstant(poModule, "STAMINA", POINT_STAMINA);
|
||||
PyModule_AddIntConstant(poModule, "MAX_STAMINA", POINT_MAX_STAMINA);
|
||||
PyModule_AddIntConstant(poModule, "ELK", POINT_GOLD);
|
||||
PyModule_AddIntConstant(poModule, "ST", POINT_ST);
|
||||
PyModule_AddIntConstant(poModule, "HT", POINT_HT);
|
||||
PyModule_AddIntConstant(poModule, "DX", POINT_DX);
|
||||
PyModule_AddIntConstant(poModule, "IQ", POINT_IQ);
|
||||
PyModule_AddIntConstant(poModule, "ATT_POWER", POINT_ATT_POWER);
|
||||
PyModule_AddIntConstant(poModule, "ATT_MIN", POINT_MIN_ATK);
|
||||
PyModule_AddIntConstant(poModule, "ATT_MAX", POINT_MAX_ATK);
|
||||
PyModule_AddIntConstant(poModule, "MIN_MAGIC_WEP", POINT_MIN_MAGIC_WEP);
|
||||
PyModule_AddIntConstant(poModule, "MAX_MAGIC_WEP", POINT_MAX_MAGIC_WEP);
|
||||
PyModule_AddIntConstant(poModule, "ATT_SPEED", POINT_ATT_SPEED);
|
||||
PyModule_AddIntConstant(poModule, "ATT_BONUS", POINT_ATT_GRADE_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "EVADE_RATE", POINT_EVADE_RATE);
|
||||
PyModule_AddIntConstant(poModule, "MOVING_SPEED", POINT_MOV_SPEED);
|
||||
PyModule_AddIntConstant(poModule, "DEF_GRADE", POINT_DEF_GRADE);
|
||||
PyModule_AddIntConstant(poModule, "DEF_BONUS", POINT_DEF_GRADE_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "CASTING_SPEED", POINT_CASTING_SPEED);
|
||||
PyModule_AddIntConstant(poModule, "MAG_ATT", POINT_MAGIC_ATT_GRADE);
|
||||
PyModule_AddIntConstant(poModule, "MAG_DEF", POINT_MAGIC_DEF_GRADE);
|
||||
PyModule_AddIntConstant(poModule, "EMPIRE_POINT", POINT_EMPIRE_POINT);
|
||||
PyModule_AddIntConstant(poModule, "STAT", POINT_STAT);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_PASSIVE", POINT_SUB_SKILL);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_SUPPORT", POINT_SUB_SKILL);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_ACTIVE", POINT_SKILL);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_HORSE", POINT_HORSE_SKILL);
|
||||
PyModule_AddIntConstant(poModule, "PLAYTIME", POINT_PLAYTIME);
|
||||
PyModule_AddIntConstant(poModule, "BOW_DISTANCE", POINT_BOW_DISTANCE);
|
||||
PyModule_AddIntConstant(poModule, "HP_RECOVERY", POINT_HP_RECOVERY);
|
||||
PyModule_AddIntConstant(poModule, "SP_RECOVERY", POINT_SP_RECOVERY);
|
||||
PyModule_AddIntConstant(poModule, "ATTACKER_BONUS", POINT_PARTY_ATT_GRADE);
|
||||
PyModule_AddIntConstant(poModule, "MAX_NUM", POINT_MAX_NUM);
|
||||
PyModule_AddIntConstant(poModule, "POINT_CRITICAL_PCT", POINT_CRITICAL_PCT);
|
||||
PyModule_AddIntConstant(poModule, "POINT_PENETRATE_PCT", POINT_PENETRATE_PCT);
|
||||
PyModule_AddIntConstant(poModule, "POINT_MALL_ATTBONUS", POINT_MALL_ATTBONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_MALL_DEFBONUS", POINT_MALL_DEFBONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_MALL_EXPBONUS", POINT_MALL_EXPBONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_MALL_ITEMBONUS", POINT_MALL_ITEMBONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_MALL_GOLDBONUS", POINT_MALL_GOLDBONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_MAX_HP_PCT", POINT_MAX_HP_PCT);
|
||||
PyModule_AddIntConstant(poModule, "POINT_MAX_SP_PCT", POINT_MAX_SP_PCT);
|
||||
PyModule_AddIntConstant(poModule, "POINT_SKILL_DAMAGE_BONUS", POINT_SKILL_DAMAGE_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_NORMAL_HIT_DAMAGE_BONUS", POINT_NORMAL_HIT_DAMAGE_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_SKILL_DEFEND_BONUS", POINT_SKILL_DEFEND_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_NORMAL_HIT_DEFEND_BONUS", POINT_NORMAL_HIT_DEFEND_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_PC_BANG_EXP_BONUS", POINT_PC_BANG_EXP_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "POINT_PC_BANG_DROP_BONUS", POINT_PC_BANG_DROP_BONUS);
|
||||
PyModule_AddIntConstant(poModule, "ENERGY", POINT_ENERGY);
|
||||
PyModule_AddIntConstant(poModule, "ENERGY_END_TIME", POINT_ENERGY_END_TIME);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_GRADE_NORMAL", CPythonPlayer::SKILL_NORMAL);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_GRADE_MASTER", CPythonPlayer::SKILL_MASTER);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_GRADE_GRAND_MASTER", CPythonPlayer::SKILL_GRAND_MASTER);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_GRADE_PERFECT_MASTER", CPythonPlayer::SKILL_PERFECT_MASTER);
|
||||
PyModule_AddIntConstant(poModule, "CATEGORY_ACTIVE", CPythonPlayer::CATEGORY_ACTIVE);
|
||||
PyModule_AddIntConstant(poModule, "CATEGORY_PASSIVE", CPythonPlayer::CATEGORY_PASSIVE);
|
||||
PyModule_AddIntConstant(poModule, "INVENTORY_PAGE_SIZE", c_Inventory_Page_Size);
|
||||
PyModule_AddIntConstant(poModule, "INVENTORY_PAGE_COUNT", c_Inventory_Page_Count);
|
||||
PyModule_AddIntConstant(poModule, "INVENTORY_SLOT_COUNT", c_Inventory_Count);
|
||||
PyModule_AddIntConstant(poModule, "EQUIPMENT_SLOT_START", c_Equipment_Start);
|
||||
PyModule_AddIntConstant(poModule, "EQUIPMENT_PAGE_COUNT", c_Equipment_Count);
|
||||
#ifdef ENABLE_NEW_EQUIPMENT_SYSTEM
|
||||
PyModule_AddIntConstant(poModule, "NEW_EQUIPMENT_SLOT_START", c_New_Equipment_Start);
|
||||
PyModule_AddIntConstant(poModule, "NEW_EQUIPMENT_SLOT_COUNT", c_New_Equipment_Count);
|
||||
#endif
|
||||
PyModule_AddIntConstant(poModule, "MBF_SKILL", CPythonPlayer::MBF_SKILL);
|
||||
PyModule_AddIntConstant(poModule, "MBF_ATTACK", CPythonPlayer::MBF_ATTACK);
|
||||
PyModule_AddIntConstant(poModule, "MBF_CAMERA", CPythonPlayer::MBF_CAMERA);
|
||||
PyModule_AddIntConstant(poModule, "MBF_SMART", CPythonPlayer::MBF_SMART);
|
||||
PyModule_AddIntConstant(poModule, "MBF_MOVE", CPythonPlayer::MBF_MOVE);
|
||||
PyModule_AddIntConstant(poModule, "MBF_AUTO", CPythonPlayer::MBF_AUTO);
|
||||
PyModule_AddIntConstant(poModule, "MBS_PRESS", CPythonPlayer::MBS_PRESS);
|
||||
PyModule_AddIntConstant(poModule, "MBS_CLICK", CPythonPlayer::MBS_CLICK);
|
||||
PyModule_AddIntConstant(poModule, "MBT_RIGHT", CPythonPlayer::MBT_RIGHT);
|
||||
PyModule_AddIntConstant(poModule, "MBT_LEFT", CPythonPlayer::MBT_LEFT);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_NONE", SLOT_TYPE_NONE);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_INVENTORY", SLOT_TYPE_INVENTORY);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_SKILL", SLOT_TYPE_SKILL);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_SHOP", SLOT_TYPE_SHOP);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_EXCHANGE_OWNER", SLOT_TYPE_EXCHANGE_OWNER);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_EXCHANGE_TARGET", SLOT_TYPE_EXCHANGE_TARGET);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_QUICK_SLOT", SLOT_TYPE_QUICK_SLOT);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_SAFEBOX", SLOT_TYPE_SAFEBOX);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_PRIVATE_SHOP", SLOT_TYPE_PRIVATE_SHOP);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_MALL", SLOT_TYPE_MALL);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_EMOTION", SLOT_TYPE_EMOTION);
|
||||
PyModule_AddIntConstant(poModule, "SLOT_TYPE_DRAGON_SOUL_INVENTORY", SLOT_TYPE_DRAGON_SOUL_INVENTORY);
|
||||
PyModule_AddIntConstant(poModule, "RESERVED_WINDOW", RESERVED_WINDOW);
|
||||
PyModule_AddIntConstant(poModule, "INVENTORY", INVENTORY);
|
||||
PyModule_AddIntConstant(poModule, "EQUIPMENT", EQUIPMENT);
|
||||
PyModule_AddIntConstant(poModule, "SAFEBOX", SAFEBOX);
|
||||
PyModule_AddIntConstant(poModule, "MALL", MALL);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_INVENTORY", DRAGON_SOUL_INVENTORY);
|
||||
PyModule_AddIntConstant(poModule, "GROUND", GROUND);
|
||||
PyModule_AddIntConstant(poModule, "ITEM_MONEY", -1);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_SLOT_COUNT", SKILL_MAX_NUM);
|
||||
PyModule_AddIntConstant(poModule, "EFFECT_PICK", CPythonPlayer::EFFECT_PICK);
|
||||
PyModule_AddIntConstant(poModule, "METIN_SOCKET_TYPE_NONE", CPythonPlayer::METIN_SOCKET_TYPE_NONE);
|
||||
PyModule_AddIntConstant(poModule, "METIN_SOCKET_TYPE_SILVER", CPythonPlayer::METIN_SOCKET_TYPE_SILVER);
|
||||
PyModule_AddIntConstant(poModule, "METIN_SOCKET_TYPE_GOLD", CPythonPlayer::METIN_SOCKET_TYPE_GOLD);
|
||||
PyModule_AddIntConstant(poModule, "METIN_SOCKET_MAX_NUM", ITEM_SOCKET_SLOT_MAX_NUM);
|
||||
PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_MAX_NUM", ITEM_ATTRIBUTE_SLOT_MAX_NUM);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_CANT", REFINE_CANT);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_OK", REFINE_OK);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_ALREADY_MAX_SOCKET_COUNT", REFINE_ALREADY_MAX_SOCKET_COUNT);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_NEED_MORE_GOOD_SCROLL", REFINE_NEED_MORE_GOOD_SCROLL);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_CANT_MAKE_SOCKET_ITEM", REFINE_CANT_MAKE_SOCKET_ITEM);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_NOT_NEXT_GRADE_ITEM", REFINE_NOT_NEXT_GRADE_ITEM);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_CANT_REFINE_METIN_TO_EQUIPMENT", REFINE_CANT_REFINE_METIN_TO_EQUIPMENT);
|
||||
PyModule_AddIntConstant(poModule, "REFINE_CANT_REFINE_ROD", REFINE_CANT_REFINE_ROD);
|
||||
PyModule_AddIntConstant(poModule, "ATTACH_METIN_CANT", ATTACH_METIN_CANT);
|
||||
PyModule_AddIntConstant(poModule, "ATTACH_METIN_OK", ATTACH_METIN_OK);
|
||||
PyModule_AddIntConstant(poModule, "ATTACH_METIN_NOT_MATCHABLE_ITEM", ATTACH_METIN_NOT_MATCHABLE_ITEM);
|
||||
PyModule_AddIntConstant(poModule, "ATTACH_METIN_NO_MATCHABLE_SOCKET", ATTACH_METIN_NO_MATCHABLE_SOCKET);
|
||||
PyModule_AddIntConstant(poModule, "ATTACH_METIN_NOT_EXIST_GOLD_SOCKET", ATTACH_METIN_NOT_EXIST_GOLD_SOCKET);
|
||||
PyModule_AddIntConstant(poModule, "ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT", ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT);
|
||||
PyModule_AddIntConstant(poModule, "DETACH_METIN_CANT", DETACH_METIN_CANT);
|
||||
PyModule_AddIntConstant(poModule, "DETACH_METIN_OK", DETACH_METIN_OK);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_NORMAL", CPythonPlayer::PARTY_ROLE_NORMAL);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_LEADER", CPythonPlayer::PARTY_ROLE_LEADER);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_ATTACKER", CPythonPlayer::PARTY_ROLE_ATTACKER);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_TANKER", CPythonPlayer::PARTY_ROLE_TANKER);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_BUFFER", CPythonPlayer::PARTY_ROLE_BUFFER);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_SKILL_MASTER", CPythonPlayer::PARTY_ROLE_SKILL_MASTER);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_BERSERKER", CPythonPlayer::PARTY_ROLE_BERSERKER);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_DEFENDER", CPythonPlayer::PARTY_ROLE_DEFENDER);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_STATE_MAX_NUM", CPythonPlayer::PARTY_ROLE_MAX_NUM);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_TONGSOL", c_iSkillIndex_Tongsol);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_FISHING", c_iSkillIndex_Fishing);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_MINING", c_iSkillIndex_Mining);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_MAKING", c_iSkillIndex_Making);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_COMBO", c_iSkillIndex_Combo);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_LANGUAGE1", c_iSkillIndex_Language1);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_LANGUAGE2", c_iSkillIndex_Language2);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_LANGUAGE3", c_iSkillIndex_Language3);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_POLYMORPH", c_iSkillIndex_Polymorph);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_RIDING", c_iSkillIndex_Riding);
|
||||
PyModule_AddIntConstant(poModule, "SKILL_INDEX_SUMMON", c_iSkillIndex_Summon);
|
||||
PyModule_AddIntConstant(poModule, "PK_MODE_PEACE", PK_MODE_PEACE);
|
||||
PyModule_AddIntConstant(poModule, "PK_MODE_REVENGE", PK_MODE_REVENGE);
|
||||
PyModule_AddIntConstant(poModule, "PK_MODE_FREE", PK_MODE_FREE);
|
||||
PyModule_AddIntConstant(poModule, "PK_MODE_PROTECT", PK_MODE_PROTECT);
|
||||
PyModule_AddIntConstant(poModule, "PK_MODE_GUILD", PK_MODE_GUILD);
|
||||
PyModule_AddIntConstant(poModule, "PK_MODE_MAX_NUM", PK_MODE_MAX_NUM);
|
||||
PyModule_AddIntConstant(poModule, "BLOCK_EXCHANGE", BLOCK_EXCHANGE);
|
||||
PyModule_AddIntConstant(poModule, "BLOCK_PARTY", BLOCK_PARTY_INVITE);
|
||||
PyModule_AddIntConstant(poModule, "BLOCK_GUILD", BLOCK_GUILD_INVITE);
|
||||
PyModule_AddIntConstant(poModule, "BLOCK_WHISPER", BLOCK_WHISPER);
|
||||
PyModule_AddIntConstant(poModule, "BLOCK_FRIEND", BLOCK_MESSENGER_INVITE);
|
||||
PyModule_AddIntConstant(poModule, "BLOCK_PARTY_REQUEST", BLOCK_PARTY_REQUEST);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_EXP_NON_DISTRIBUTION", PARTY_EXP_DISTRIBUTION_NON_PARITY);
|
||||
PyModule_AddIntConstant(poModule, "PARTY_EXP_DISTRIBUTION_PARITY", PARTY_EXP_DISTRIBUTION_PARITY);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_CLAP", EMOTION_CLAP);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_CHEERS_1", EMOTION_CHEERS_1);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_CHEERS_2", EMOTION_CHEERS_2);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_DANCE_1", EMOTION_DANCE_1);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_DANCE_2", EMOTION_DANCE_2);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_DANCE_3", EMOTION_DANCE_3);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_DANCE_4", EMOTION_DANCE_4);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_DANCE_5", EMOTION_DANCE_5);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_DANCE_6", EMOTION_DANCE_6); // PSY 강남스타일
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_CONGRATULATION", EMOTION_CONGRATULATION);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_FORGIVE", EMOTION_FORGIVE);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_ANGRY", EMOTION_ANGRY);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_ATTRACTIVE", EMOTION_ATTRACTIVE);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_SAD", EMOTION_SAD);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_SHY", EMOTION_SHY);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_CHEERUP", EMOTION_CHEERUP);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_BANTER", EMOTION_BANTER);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_JOY", EMOTION_JOY);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_KISS", EMOTION_KISS);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_FRENCH_KISS", EMOTION_FRENCH_KISS);
|
||||
PyModule_AddIntConstant(poModule, "EMOTION_SLAP", EMOTION_SLAP);
|
||||
PyModule_AddIntConstant(poModule, "AUTO_POTION_TYPE_HP", CPythonPlayer::AUTO_POTION_TYPE_HP);
|
||||
PyModule_AddIntConstant(poModule, "AUTO_POTION_TYPE_SP", CPythonPlayer::AUTO_POTION_TYPE_SP);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_PAGE_SIZE", c_DragonSoul_Inventory_Box_Size);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_PAGE_COUNT", DRAGON_SOUL_GRADE_MAX);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_SLOT_COUNT", c_DragonSoul_Inventory_Count);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_EQUIPMENT_SLOT_START", c_DragonSoul_Equip_Start);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_EQUIPMENT_PAGE_COUNT", DS_DECK_MAX_NUM);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_EQUIPMENT_FIRST_SIZE", c_DragonSoul_Equip_Slot_Max);
|
||||
PyModule_AddIntConstant(poModule, "DRAGON_SOUL_REFINE_CLOSE", DS_SUB_HEADER_CLOSE);
|
||||
PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_DO_UPGRADE", DS_SUB_HEADER_DO_UPGRADE);
|
||||
PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_DO_IMPROVEMENT", DS_SUB_HEADER_DO_IMPROVEMENT);
|
||||
PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_DO_REFINE", DS_SUB_HEADER_DO_REFINE);
|
||||
}
|
||||
|
||||
// 40250 UserInterface/PythonProfilerModule.cpp
|
||||
void AddStubConstants_profiler(PyObject* poModule)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user