forked from metin2/client
1492 lines
50 KiB
C++
1492 lines
50 KiB
C++
#include "StdAfx.h"
|
||
#include "PythonCharacterManager.h"
|
||
#include "PythonNonPlayer.h"
|
||
|
||
PyObject * chrRaceToJob(PyObject * poSelf, PyObject * poArgs)
|
||
{
|
||
int race;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &race))
|
||
return Py_BuildException();
|
||
|
||
return Py_BuildValue("i", RaceToJob(race));
|
||
}
|
||
|
||
PyObject * chrRaceToSex(PyObject * poSelf, PyObject * poArgs)
|
||
{
|
||
int race;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &race))
|
||
return Py_BuildException();
|
||
|
||
return Py_BuildValue("i", RaceToSex(race));
|
||
}
|
||
|
||
PyObject * chrDestroy(PyObject * poSelf, PyObject * poArgs)
|
||
{
|
||
CPythonCharacterManager::Instance().Destroy();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrUpdate(PyObject * poSelf, PyObject * poArgs)
|
||
{
|
||
CPythonCharacterManager::Instance().Update();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrDeform(PyObject * poSelf, PyObject * poArgs)
|
||
{
|
||
CPythonCharacterManager::Instance().Deform();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrRender(PyObject * poSelf, PyObject * poArgs)
|
||
{
|
||
CPythonCharacterManager::Instance().Render();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrRenderCollision(PyObject * poSelf, PyObject * poArgs)
|
||
{
|
||
CPythonCharacterManager::Instance().RenderCollision();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
// Functions For Python Test Code
|
||
PyObject * chrCreateInstance(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
if (PyTuple_Size(poArgs)==2)
|
||
{
|
||
PyObject* poDict=PyTuple_GetItem(poArgs, 1);
|
||
if (!PyDict_Check(poDict))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase::SCreateData kCreateData;
|
||
kCreateData.m_bType=CActorInstance::TYPE_PC;
|
||
kCreateData.m_dwLevel = 0;
|
||
kCreateData.m_dwGuildID=0;
|
||
kCreateData.m_dwEmpireID=0;
|
||
kCreateData.m_dwVID=iVirtualID;
|
||
kCreateData.m_dwMountVnum=0;
|
||
kCreateData.m_dwRace=0;
|
||
kCreateData.m_fRot=CInstanceBase::DIR_NORTH;
|
||
kCreateData.m_lPosX=0;
|
||
kCreateData.m_lPosY=0;
|
||
kCreateData.m_stName="NONAME";
|
||
kCreateData.m_dwStateFlags=0;
|
||
kCreateData.m_dwMovSpd=100;
|
||
kCreateData.m_dwAtkSpd=100;
|
||
kCreateData.m_sAlignment=0;
|
||
kCreateData.m_byPKMode=0;
|
||
kCreateData.m_kAffectFlags.Clear();
|
||
kCreateData.m_dwArmor=8;
|
||
kCreateData.m_dwWeapon=0;
|
||
kCreateData.m_dwHair=0;
|
||
kCreateData.m_isMain=false;
|
||
|
||
PyObject* poHorse=PyDict_GetItemString(poDict, "horse");
|
||
if (poHorse)
|
||
kCreateData.m_dwMountVnum=PyLong_AsLong(poHorse);
|
||
|
||
PyObject* poX=PyDict_GetItemString(poDict, "x");
|
||
if (poX)
|
||
kCreateData.m_lPosX=PyLong_AsLong(poX);
|
||
|
||
PyObject* poY=PyDict_GetItemString(poDict, "y");
|
||
if (poY)
|
||
kCreateData.m_lPosX=PyLong_AsLong(poY);
|
||
|
||
CPythonCharacterManager::Instance().CreateInstance(kCreateData);
|
||
}
|
||
else
|
||
{
|
||
CPythonCharacterManager::Instance().RegisterInstance(iVirtualID);
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrDeleteInstance(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CPythonCharacterManager::Instance().DeleteInstance(iVirtualID);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrDeleteInstanceByFade(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CPythonCharacterManager::Instance().DeleteInstanceByFade(iVirtualID);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSelectInstance(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CPythonCharacterManager::Instance().SelectInstance(iVirtualID);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrHasInstance(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
bool bFlag = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID) ? TRUE : FALSE;
|
||
return Py_BuildValue("i", bFlag);
|
||
}
|
||
|
||
PyObject * chrIsEnemy(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (!pInstance)
|
||
return Py_BuildValue("i", 0);
|
||
|
||
return Py_BuildValue("i", pInstance->IsEnemy());
|
||
}
|
||
|
||
PyObject * chrIsNPC(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (!pInstance)
|
||
return Py_BuildValue("i", 0);
|
||
|
||
return Py_BuildValue("i", pInstance->IsNPC());
|
||
}
|
||
|
||
PyObject * chrIsGameMaster(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (!pInstance)
|
||
return Py_BuildValue("i", 0);
|
||
|
||
return Py_BuildValue("i", pInstance->IsGameMaster());
|
||
}
|
||
|
||
PyObject * chrIsPartyMember(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (!pInstance)
|
||
return Py_BuildValue("i", 0);
|
||
|
||
return Py_BuildValue("i", pInstance->IsPartyMember());
|
||
}
|
||
|
||
PyObject * chrSelect(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
switch (CPythonNonPlayer::Instance().GetEventType(pkInst->GetVirtualNumber()))
|
||
{
|
||
case CPythonNonPlayer::ON_CLICK_EVENT_SHOP:
|
||
pkInst->SetAddRenderMode();
|
||
pkInst->SetAddColor(D3DXCOLOR(0.0f, 0.3f, 0.0f, 1.0f));
|
||
break;
|
||
|
||
default:
|
||
// NOTE: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>Ⱑ <20><><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD> <20>ڸ<EFBFBD>Ʈ <20>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD> [cronan 040226]
|
||
//pkInst->SetAddColor(D3DXCOLOR(0.3f, 0.0f, 0.0f, 1.0f));
|
||
break;
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetAddRenderMode(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
float fr;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fr))
|
||
return Py_BuildException();
|
||
float fg;
|
||
if (!PyTuple_GetFloat(poArgs, 2, &fg))
|
||
return Py_BuildException();
|
||
float fb;
|
||
if (!PyTuple_GetFloat(poArgs, 3, &fb))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->SetAddRenderMode();
|
||
pkInst->SetAddColor(D3DXCOLOR(fr, fg, fb, 1.0f));
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetBlendRenderMode(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
float fAlpha;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fAlpha))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->SetAlpha(fAlpha);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrUnselect(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->RestoreRenderMode();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrPick(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
DWORD VirtualID = 0;
|
||
if (CPythonCharacterManager::Instance().OLD_GetPickedInstanceVID(&VirtualID))
|
||
return Py_BuildValue("i", VirtualID);
|
||
else
|
||
return Py_BuildValue("i", -1);
|
||
}
|
||
|
||
PyObject * chrHide(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->Hide();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrShow(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->Show();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrPickAll(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
DWORD VirtualID = CPythonCharacterManager::Instance().PickAll();
|
||
return Py_BuildValue("i", VirtualID);
|
||
}
|
||
|
||
PyObject * chrSetRace(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iRace;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iRace))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->SetRace(iRace);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetHair(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iRace;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iRace))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->SetHair(iRace);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrChangeHair(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iHair;
|
||
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iHair))
|
||
return Py_BuildException();
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->ChangeHair(iHair);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetArmor(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iForm;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iForm))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->SetArmor(iForm);
|
||
|
||
pkInst->RegisterBoundingSphere();
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrChangeShape(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iForm;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iForm))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->ChangeArmor(iForm);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetWeapon(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iForm;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iForm))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->SetWeapon(iForm);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetVirtualID(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->SetVirtualID(iVID);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetNameString(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
char * c_szName;
|
||
if (!PyTuple_GetString(poArgs, 0, &c_szName))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->SetNameString(c_szName, strlen(c_szName));
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetInstanceType(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iInstanceType;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iInstanceType))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->SetInstanceType(iInstanceType);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrAttachEffectByName(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iParentPartIndex;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iParentPartIndex))
|
||
return Py_BuildException();
|
||
|
||
char * pszBoneName;
|
||
if (!PyTuple_GetString(poArgs, 1, &pszBoneName))
|
||
{
|
||
pszBoneName = NULL;
|
||
//return Py_BuildException();
|
||
}
|
||
|
||
char * pszEffectName;
|
||
if (!PyTuple_GetString(poArgs, 2, &pszEffectName))
|
||
return Py_BuildException();
|
||
|
||
int iLife = CActorInstance::EFFECT_LIFE_INFINITE;
|
||
|
||
if (PyTuple_Size(poArgs)==4)
|
||
{
|
||
if (!PyTuple_GetInteger(poArgs, 3, &iLife))
|
||
return Py_BuildException();
|
||
}
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
//pkInst->AttachEffectByName(iParentPartIndex, pszBoneName, pszEffectName, iLife);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrAttachEffectByID(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iParentPartIndex;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iParentPartIndex))
|
||
return Py_BuildException();
|
||
|
||
char * pszBoneName;
|
||
if (!PyTuple_GetString(poArgs, 1, &pszBoneName))
|
||
{
|
||
pszBoneName = NULL;
|
||
}
|
||
// return Py_BuildException();
|
||
|
||
// FIXME : bug or error on getting unsigned value
|
||
int iEffectID;
|
||
if (!PyTuple_GetInteger(poArgs, 2, &iEffectID))
|
||
return Py_BuildException();
|
||
|
||
int iLife = CActorInstance::EFFECT_LIFE_INFINITE;
|
||
|
||
if (PyTuple_Size(poArgs)==4)
|
||
{
|
||
if (!PyTuple_GetInteger(poArgs, 3, &iLife))
|
||
return Py_BuildException();
|
||
}
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
//pkInst->AttachEffectByID(iParentPartIndex, pszBoneName, iEffectID, iLife);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrRefresh(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
// Select ȭ<>鿡<EFBFBD><E9BFA1><EFBFBD><EFBFBD> WAIT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>غ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̱<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||
//pkInst->Refresh(CRaceMotionData::NAME_WAIT, true);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrMountHorse(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->MountHorse(20030);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrDismountHorse(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->DismountHorse();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrRevive(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->Revive();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrDie(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->Die();
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrLookAt(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iCellX;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iCellX))
|
||
return Py_BuildException();
|
||
|
||
int iCellY;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iCellY))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
// pkInst->LookAt(TPixelPosition(iCellX * c_Section_xAttributeCellSize, iCellY * c_Section_xAttributeCellSize));
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetMotionMode(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iMotionMode;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iMotionMode))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->SetMotionMode(iMotionMode);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetLoopMotion(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iMotionIndex;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iMotionIndex))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->SetLoopMotion(WORD(iMotionIndex));
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrBlendLoopMotion(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iMotionIndex;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iMotionIndex))
|
||
return Py_BuildException();
|
||
float fBlendTime;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fBlendTime))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->SetLoopMotion(WORD(iMotionIndex), fBlendTime);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrPushOnceMotion(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iMotionIndex;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iMotionIndex))
|
||
return Py_BuildException();
|
||
|
||
float fBlendTime;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fBlendTime))
|
||
{
|
||
fBlendTime = 0.1f;
|
||
}
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->PushOnceMotion(WORD(iMotionIndex), fBlendTime);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrPushLoopMotion(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iMotionIndex;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iMotionIndex))
|
||
return Py_BuildException();
|
||
|
||
float fBlendTime;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fBlendTime))
|
||
{
|
||
fBlendTime = 0.1f;
|
||
}
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
pkInst->PushLoopMotion(WORD(iMotionIndex), fBlendTime);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetPixelPosition(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iX;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iX))
|
||
return Py_BuildException();
|
||
int iY;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iY))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
int iZ;
|
||
if (PyTuple_GetInteger(poArgs, 2, &iZ))
|
||
{
|
||
pkInst->NEW_SetPixelPosition(TPixelPosition(iX, iY, iZ));
|
||
}
|
||
else
|
||
{
|
||
pkInst->SCRIPT_SetPixelPosition(iX, iY);
|
||
}
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetDirection(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iDirection;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iDirection))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
pkInst->SetDirection(iDirection);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrGetPixelPosition(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (!pkInst)
|
||
return Py_BuildException();
|
||
|
||
TPixelPosition PixelPosition;
|
||
pkInst->NEW_GetPixelPosition(&PixelPosition);
|
||
|
||
return Py_BuildValue("fff", PixelPosition.x, PixelPosition.y, PixelPosition.z);
|
||
}
|
||
|
||
PyObject * chrSetRotation(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
float fRotation;
|
||
if (!PyTuple_GetFloat(poArgs, 0, &fRotation))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pCharacterInstance)
|
||
return Py_BuildNone();
|
||
|
||
fRotation = fmod(fRotation + 180.0f, 360.0f);
|
||
|
||
pCharacterInstance->SetRotation(fRotation);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetRotationAll(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
float fRotX;
|
||
if (!PyTuple_GetFloat(poArgs, 0, &fRotX))
|
||
return Py_BuildException();
|
||
float fRotY;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fRotY))
|
||
return Py_BuildException();
|
||
float fRotZ;
|
||
if (!PyTuple_GetFloat(poArgs, 2, &fRotZ))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pCharacterInstance)
|
||
return Py_BuildNone();
|
||
|
||
pCharacterInstance->GetGraphicThingInstanceRef().SetXYRotation(fRotX, fRotY);
|
||
pCharacterInstance->GetGraphicThingInstanceRef().SetRotation(fRotZ);
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrBlendRotation(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
float fRotation;
|
||
if (!PyTuple_GetFloat(poArgs, 0, &fRotation))
|
||
return Py_BuildException();
|
||
float fBlendTime;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fBlendTime))
|
||
return Py_BuildException();
|
||
|
||
fRotation = fmod(720.0f - fRotation, 360.0f);
|
||
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pCharacterInstance)
|
||
return Py_BuildNone();
|
||
pCharacterInstance->BlendRotation(fRotation, fBlendTime);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrGetRotation(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pCharacterInstance)
|
||
return Py_BuildValue("f", 0.0f);
|
||
|
||
float fRotation = pCharacterInstance->GetRotation();
|
||
|
||
return Py_BuildValue("f", 360.0f - fRotation);
|
||
}
|
||
|
||
PyObject * chrGetRace(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pCharacterInstance)
|
||
return Py_BuildValue("i", 0);
|
||
|
||
return Py_BuildValue("i", pCharacterInstance->GetRace());
|
||
}
|
||
|
||
PyObject * chrGetName(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pCharacterInstance)
|
||
return Py_BuildValue("i", 0);
|
||
|
||
return Py_BuildValue("s", pCharacterInstance->GetNameString());
|
||
}
|
||
|
||
PyObject * chrGetNameByVID(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (!pInstance)
|
||
return Py_BuildValue("s", "None");
|
||
|
||
return Py_BuildValue("s", pInstance->GetNameString());
|
||
}
|
||
|
||
PyObject * chrGetGuildID(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (!pInstance)
|
||
return Py_BuildValue("i", 0);
|
||
|
||
return Py_BuildValue("i", pInstance->GetGuildID());
|
||
}
|
||
|
||
PyObject * chrGetProjectPosition(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
int iHeight;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iHeight))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (!pInstance)
|
||
return Py_BuildValue("ii", -100, -100);
|
||
|
||
TPixelPosition PixelPosition;
|
||
pInstance->NEW_GetPixelPosition(&PixelPosition);
|
||
|
||
CPythonGraphic & rpyGraphic = CPythonGraphic::Instance();
|
||
|
||
float fx, fy, fz;
|
||
rpyGraphic.ProjectPosition(PixelPosition.x,
|
||
-PixelPosition.y,
|
||
PixelPosition.z + float(iHeight),
|
||
&fx, &fy, &fz);
|
||
|
||
if (1 == int(fz))
|
||
return Py_BuildValue("ii", -100, -100);
|
||
|
||
return Py_BuildValue("ii", int(fx), int(fy));
|
||
}
|
||
|
||
PyObject * chrGetVirtualNumber(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (NULL != pkInst)
|
||
return Py_BuildValue("i", pkInst->GetVirtualNumber());
|
||
|
||
return Py_BuildValue("i", CActorInstance::TYPE_PC);
|
||
}
|
||
|
||
PyObject * chrGetInstanceType(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
|
||
if (NULL != pkInst)
|
||
return Py_BuildValue("i", pkInst->GetInstanceType());
|
||
|
||
return Py_BuildValue("i", CActorInstance::TYPE_PC);
|
||
}
|
||
|
||
PyObject * chrGetBoundBoxOnlyXY(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pkInst)
|
||
return Py_BuildValue("ffff", 0.0f, 0.0f, 0.0f, 0.0f);
|
||
|
||
D3DXVECTOR3 v3Min, v3Max;
|
||
pkInst->GetBoundBox(&v3Min, &v3Max);
|
||
|
||
return Py_BuildValue("ffff", v3Min.x, v3Min.y, v3Max.x, v3Max.y);
|
||
}
|
||
|
||
PyObject * chrtestGetPKData(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
if (!pkInst)
|
||
return Py_BuildValue("ii", 0, 4);
|
||
|
||
return Py_BuildValue("ii", pkInst->GetAlignment(), pkInst->GetAlignmentGrade());
|
||
}
|
||
|
||
PyObject * chrtestSetComboType(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iComboType;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iComboType))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (!pkInst)
|
||
return Py_BuildNone();
|
||
|
||
pkInst->GetGraphicThingInstanceRef().SetComboType(iComboType);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestSetAddRenderMode(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
int iColor;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iColor))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (pkInst)
|
||
{
|
||
pkInst->SetAddRenderMode();
|
||
pkInst->SetAddColor(0xff000000 | iColor);
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestSetModulateRenderMode(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
int iColor;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iColor))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (pkInst)
|
||
{
|
||
pkInst->SetModulateRenderMode();
|
||
pkInst->SetAddColor(0xff000000 | iColor);
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestSetAddRenderModeRGB(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
float fr;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fr))
|
||
return Py_BuildException();
|
||
float fg;
|
||
if (!PyTuple_GetFloat(poArgs, 2, &fg))
|
||
return Py_BuildException();
|
||
float fb;
|
||
if (!PyTuple_GetFloat(poArgs, 3, &fb))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (pkInst)
|
||
{
|
||
pkInst->SetAddRenderMode();
|
||
pkInst->SetAddColor(D3DXCOLOR(fr, fg, fb, 1.0f));
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestSetModulateRenderModeRGB(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
float fr;
|
||
if (!PyTuple_GetFloat(poArgs, 1, &fr))
|
||
return Py_BuildException();
|
||
float fg;
|
||
if (!PyTuple_GetFloat(poArgs, 2, &fg))
|
||
return Py_BuildException();
|
||
float fb;
|
||
if (!PyTuple_GetFloat(poArgs, 3, &fb))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (pkInst)
|
||
{
|
||
pkInst->SetModulateRenderMode();
|
||
pkInst->SetAddColor(D3DXCOLOR(fr, fg, fb, 1.0f));
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestSetSpecularRenderMode(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
int iPart;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iPart))
|
||
return Py_BuildException();
|
||
float fAlpha;
|
||
if (!PyTuple_GetFloat(poArgs, 2, &fAlpha))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (pkInst)
|
||
{
|
||
pkInst->GetGraphicThingInstanceRef().SetSpecularInfo(TRUE, iPart, fAlpha);
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestSetSpecularRenderMode2(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
int iPart;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iPart))
|
||
return Py_BuildException();
|
||
float fAlpha;
|
||
if (!PyTuple_GetFloat(poArgs, 2, &fAlpha))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (pkInst)
|
||
{
|
||
pkInst->GetGraphicThingInstanceRef().SetSpecularInfoForce(TRUE, iPart, fAlpha);
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestRestoreRenderMode(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVirtualID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID))
|
||
return Py_BuildException();
|
||
|
||
CInstanceBase * pkInst = CPythonCharacterManager::Instance().GetInstancePtr(iVirtualID);
|
||
if (pkInst)
|
||
{
|
||
pkInst->RestoreRenderMode();
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrFaintTest(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
if (pCharacterInstance)
|
||
{
|
||
if (pCharacterInstance->GetGraphicThingInstanceRef().IsFaint())
|
||
{
|
||
pCharacterInstance->GetGraphicThingInstanceRef().SetFaint(false);
|
||
}
|
||
else
|
||
{
|
||
pCharacterInstance->GetGraphicThingInstanceRef().InterceptOnceMotion(CRaceMotionData::NAME_DAMAGE_FLYING);
|
||
pCharacterInstance->GetGraphicThingInstanceRef().PushOnceMotion(CRaceMotionData::NAME_STAND_UP);
|
||
pCharacterInstance->GetGraphicThingInstanceRef().PushLoopMotion(CRaceMotionData::NAME_WAIT);
|
||
pCharacterInstance->GetGraphicThingInstanceRef().SetFaint(true);
|
||
}
|
||
}
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetMoveSpeed(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
//int iSpeed;
|
||
//if (!PyTuple_GetInteger(poArgs, 0, &iSpeed))
|
||
// return Py_BadArgument();
|
||
|
||
//CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
//if (!pCharacterInstance)
|
||
// return Py_BuildValue("i", 0);
|
||
|
||
//pCharacterInstance->SetMoveSpeed(iSpeed);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrSetAttackSpeed(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
//int iSpeed;
|
||
//if (!PyTuple_GetInteger(poArgs, 0, &iSpeed))
|
||
// return Py_BadArgument();
|
||
|
||
//CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetSelectedInstancePtr();
|
||
|
||
//if (!pCharacterInstance)
|
||
// return Py_BuildValue("i", 0);
|
||
|
||
//pCharacterInstance->SetAttackSpeed(iSpeed);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrWeaponTraceSetTexture(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
char * szPathName;
|
||
if (!PyTuple_GetString(poArgs, 0, &szPathName))
|
||
return Py_BadArgument();
|
||
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetMainInstancePtr();
|
||
if (pInstance)
|
||
{
|
||
pInstance->GetGraphicThingInstanceRef().SetWeaponTraceTexture(szPathName);
|
||
}
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrWeaponTraceUseTexture(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetMainInstancePtr();
|
||
if (pInstance)
|
||
{
|
||
pInstance->GetGraphicThingInstanceRef().UseTextureWeaponTrace();
|
||
}
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrWeaponTraceUseAlpha(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
CInstanceBase * pInstance = CPythonCharacterManager::Instance().GetMainInstancePtr();
|
||
if (pInstance)
|
||
{
|
||
pInstance->GetGraphicThingInstanceRef().UseAlphaWeaponTrace();
|
||
}
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrMoveToDestPosition(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int iVID;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &iVID))
|
||
return Py_BadArgument();
|
||
|
||
int ix;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &ix))
|
||
return Py_BadArgument();
|
||
int iy;
|
||
if (!PyTuple_GetInteger(poArgs, 2, &iy))
|
||
return Py_BadArgument();
|
||
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().GetInstancePtr(iVID);
|
||
if (!pCharacterInstance)
|
||
return Py_BuildNone();
|
||
|
||
pCharacterInstance->NEW_MoveToDestPixelPositionDirection(TPixelPosition(ix, iy, 0.0f));
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
PyObject * chrtestSetRideMan(PyObject* poSelf, PyObject* poArgs)
|
||
{
|
||
int ix;
|
||
if (!PyTuple_GetInteger(poArgs, 0, &ix))
|
||
return Py_BadArgument();
|
||
int iy;
|
||
if (!PyTuple_GetInteger(poArgs, 1, &iy))
|
||
return Py_BadArgument();
|
||
int imount = 20030;
|
||
PyTuple_GetInteger(poArgs, 2, &imount);
|
||
|
||
CInstanceBase * pCharacterInstance = CPythonCharacterManager::Instance().RegisterInstance(1);
|
||
CInstanceBase::SCreateData kCreateData;
|
||
ZeroMemory(&kCreateData, sizeof(kCreateData));
|
||
kCreateData.m_bType = CActorInstance::TYPE_PC;
|
||
kCreateData.m_dwRace = 0;
|
||
kCreateData.m_dwArmor = 0;
|
||
kCreateData.m_dwHair = 100;
|
||
kCreateData.m_dwMovSpd = 100;
|
||
kCreateData.m_dwAtkSpd = 100;
|
||
kCreateData.m_dwMountVnum = imount;
|
||
kCreateData.m_lPosX = ix;
|
||
kCreateData.m_lPosY = iy;
|
||
pCharacterInstance->Create(kCreateData);
|
||
|
||
return Py_BuildNone();
|
||
}
|
||
|
||
void initchr()
|
||
{
|
||
static PyMethodDef s_methods[] =
|
||
{
|
||
{ "DismountHorse", chrDismountHorse, METH_VARARGS },
|
||
{ "MountHorse", chrMountHorse, METH_VARARGS },
|
||
|
||
{ "Destroy", chrDestroy, METH_VARARGS },
|
||
{ "Update", chrUpdate, METH_VARARGS },
|
||
{ "Deform", chrDeform, METH_VARARGS },
|
||
{ "Render", chrRender, METH_VARARGS },
|
||
{ "RenderCollision", chrRenderCollision, METH_VARARGS },
|
||
|
||
// Functions For Python Code
|
||
{ "CreateInstance", chrCreateInstance, METH_VARARGS },
|
||
{ "DeleteInstance", chrDeleteInstance, METH_VARARGS },
|
||
{ "DeleteInstanceByFade", chrDeleteInstanceByFade, METH_VARARGS },
|
||
{ "SelectInstance", chrSelectInstance, METH_VARARGS },
|
||
|
||
{ "HasInstance", chrHasInstance, METH_VARARGS },
|
||
{ "IsEnemy", chrIsEnemy, METH_VARARGS },
|
||
{ "IsNPC", chrIsNPC, METH_VARARGS },
|
||
{ "IsGameMaster", chrIsGameMaster, METH_VARARGS },
|
||
{ "IsPartyMember", chrIsPartyMember, METH_VARARGS },
|
||
|
||
{ "Select", chrSelect, METH_VARARGS },
|
||
{ "SetAddRenderMode", chrSetAddRenderMode, METH_VARARGS },
|
||
{ "SetBlendRenderMode", chrSetBlendRenderMode, METH_VARARGS },
|
||
{ "Unselect", chrUnselect, METH_VARARGS },
|
||
|
||
{ "Hide", chrHide, METH_VARARGS },
|
||
{ "Show", chrShow, METH_VARARGS },
|
||
{ "Pick", chrPick, METH_VARARGS },
|
||
{ "PickAll", chrPickAll, METH_VARARGS },
|
||
|
||
{ "SetArmor", chrSetArmor, METH_VARARGS },
|
||
{ "SetWeapon", chrSetWeapon, METH_VARARGS },
|
||
{ "ChangeShape", chrChangeShape, METH_VARARGS },
|
||
{ "SetRace", chrSetRace, METH_VARARGS },
|
||
{ "SetHair", chrSetHair, METH_VARARGS },
|
||
{ "ChangeHair", chrChangeHair, METH_VARARGS },
|
||
{ "SetVirtualID", chrSetVirtualID, METH_VARARGS },
|
||
{ "SetNameString", chrSetNameString, METH_VARARGS },
|
||
{ "SetInstanceType", chrSetInstanceType, METH_VARARGS },
|
||
|
||
{ "SetPixelPosition", chrSetPixelPosition, METH_VARARGS },
|
||
{ "SetDirection", chrSetDirection, METH_VARARGS },
|
||
{ "Refresh", chrRefresh, METH_VARARGS },
|
||
{ "Revive", chrRevive, METH_VARARGS },
|
||
{ "Die", chrDie, METH_VARARGS },
|
||
|
||
{ "AttachEffectByID", chrAttachEffectByID, METH_VARARGS },
|
||
{ "AttachEffectByName", chrAttachEffectByName, METH_VARARGS },
|
||
|
||
{ "LookAt", chrLookAt, METH_VARARGS },
|
||
{ "SetMotionMode", chrSetMotionMode, METH_VARARGS },
|
||
{ "SetLoopMotion", chrSetLoopMotion, METH_VARARGS },
|
||
{ "BlendLoopMotion", chrBlendLoopMotion, METH_VARARGS },
|
||
{ "PushOnceMotion", chrPushOnceMotion, METH_VARARGS },
|
||
{ "PushLoopMotion", chrPushLoopMotion, METH_VARARGS },
|
||
{ "GetPixelPosition", chrGetPixelPosition, METH_VARARGS },
|
||
{ "SetRotation", chrSetRotation, METH_VARARGS },
|
||
{ "SetRotationAll", chrSetRotationAll, METH_VARARGS },
|
||
{ "BlendRotation", chrBlendRotation, METH_VARARGS },
|
||
{ "GetRotation", chrGetRotation, METH_VARARGS },
|
||
{ "GetRace", chrGetRace, METH_VARARGS },
|
||
{ "GetName", chrGetName, METH_VARARGS },
|
||
{ "GetNameByVID", chrGetNameByVID, METH_VARARGS },
|
||
{ "GetGuildID", chrGetGuildID, METH_VARARGS },
|
||
{ "GetProjectPosition", chrGetProjectPosition, METH_VARARGS },
|
||
|
||
{ "GetVirtualNumber", chrGetVirtualNumber, METH_VARARGS },
|
||
{ "GetInstanceType", chrGetInstanceType, METH_VARARGS },
|
||
|
||
{ "GetBoundBoxOnlyXY", chrGetBoundBoxOnlyXY, METH_VARARGS },
|
||
|
||
{ "RaceToJob", chrRaceToJob, METH_VARARGS },
|
||
{ "RaceToSex", chrRaceToSex, METH_VARARGS },
|
||
|
||
// For Test
|
||
{ "testGetPKData", chrtestGetPKData, METH_VARARGS },
|
||
{ "FaintTest", chrFaintTest, METH_VARARGS },
|
||
{ "SetMoveSpeed", chrSetMoveSpeed, METH_VARARGS },
|
||
{ "SetAttackSpeed", chrSetAttackSpeed, METH_VARARGS },
|
||
{ "WeaponTraceSetTexture", chrWeaponTraceSetTexture, METH_VARARGS },
|
||
{ "WeaponTraceUseAlpha", chrWeaponTraceUseAlpha, METH_VARARGS },
|
||
{ "WeaponTraceUseTexture", chrWeaponTraceUseTexture, METH_VARARGS },
|
||
{ "MoveToDestPosition", chrMoveToDestPosition, METH_VARARGS },
|
||
{ "testSetComboType", chrtestSetComboType, METH_VARARGS },
|
||
{ "testSetAddRenderMode", chrtestSetAddRenderMode, METH_VARARGS },
|
||
{ "testSetModulateRenderMode", chrtestSetModulateRenderMode, METH_VARARGS },
|
||
{ "testSetAddRenderModeRGB", chrtestSetAddRenderModeRGB, METH_VARARGS },
|
||
{ "testSetModulateRenderModeRGB", chrtestSetModulateRenderModeRGB, METH_VARARGS },
|
||
{ "testSetSpecularRenderMode", chrtestSetSpecularRenderMode, METH_VARARGS },
|
||
{ "testSetSpecularRenderMode2", chrtestSetSpecularRenderMode2, METH_VARARGS },
|
||
{ "testRestoreRenderMode", chrtestRestoreRenderMode, METH_VARARGS },
|
||
{ "testSetRideMan", chrtestSetRideMan, METH_VARARGS },
|
||
|
||
{ NULL, NULL, NULL },
|
||
};
|
||
|
||
PyObject * poModule = Py_InitModule("chr", s_methods);
|
||
|
||
// Length
|
||
PyModule_AddIntConstant(poModule, "PLAYER_NAME_MAX_LEN", PLAYER_NAME_MAX_LEN);
|
||
|
||
// General
|
||
PyModule_AddIntConstant(poModule, "MOTION_NONE", CRaceMotionData::NAME_NONE);
|
||
|
||
PyModule_AddIntConstant(poModule, "MOTION_SPAWN", CRaceMotionData::NAME_SPAWN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_WAIT", CRaceMotionData::NAME_WAIT);
|
||
PyModule_AddIntConstant(poModule, "MOTION_WALK", CRaceMotionData::NAME_WALK);
|
||
PyModule_AddIntConstant(poModule, "MOTION_RUN", CRaceMotionData::NAME_RUN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_CHANGE_WEAPON", CRaceMotionData::NAME_CHANGE_WEAPON);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DAMAGE", CRaceMotionData::NAME_DAMAGE);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DAMAGE_FLYING", CRaceMotionData::NAME_DAMAGE_FLYING);
|
||
PyModule_AddIntConstant(poModule, "MOTION_STAND_UP", CRaceMotionData::NAME_STAND_UP);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DAMAGE_BACK", CRaceMotionData::NAME_DAMAGE_BACK);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DAMAGE_FLYING_BACK", CRaceMotionData::NAME_DAMAGE_FLYING_BACK);
|
||
PyModule_AddIntConstant(poModule, "MOTION_STAND_UP_BACK", CRaceMotionData::NAME_STAND_UP_BACK);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DEAD", CRaceMotionData::NAME_DEAD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DEAD_BACK", CRaceMotionData::NAME_DEAD_BACK);
|
||
PyModule_AddIntConstant(poModule, "MOTION_NORMAL_ATTACK", CRaceMotionData::NAME_NORMAL_ATTACK);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_1", CRaceMotionData::NAME_COMBO_ATTACK_1);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_2", CRaceMotionData::NAME_COMBO_ATTACK_2);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_3", CRaceMotionData::NAME_COMBO_ATTACK_3);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_4", CRaceMotionData::NAME_COMBO_ATTACK_4);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_5", CRaceMotionData::NAME_COMBO_ATTACK_5);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_6", CRaceMotionData::NAME_COMBO_ATTACK_6);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_7", CRaceMotionData::NAME_COMBO_ATTACK_7);
|
||
PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_8", CRaceMotionData::NAME_COMBO_ATTACK_8);
|
||
PyModule_AddIntConstant(poModule, "MOTION_INTRO_WAIT", CRaceMotionData::NAME_INTRO_WAIT);
|
||
PyModule_AddIntConstant(poModule, "MOTION_INTRO_SELECTED", CRaceMotionData::NAME_INTRO_SELECTED);
|
||
PyModule_AddIntConstant(poModule, "MOTION_INTRO_NOT_SELECTED", CRaceMotionData::NAME_INTRO_NOT_SELECTED);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FISHING_THROW", CRaceMotionData::NAME_FISHING_THROW);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FISHING_WAIT", CRaceMotionData::NAME_FISHING_WAIT);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FISHING_STOP", CRaceMotionData::NAME_FISHING_STOP);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FISHING_REACT", CRaceMotionData::NAME_FISHING_REACT);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FISHING_CATCH", CRaceMotionData::NAME_FISHING_CATCH);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FISHING_FAIL", CRaceMotionData::NAME_FISHING_FAIL);
|
||
PyModule_AddIntConstant(poModule, "MOTION_STOP", CRaceMotionData::NAME_STOP);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SKILL", CRaceMotionData::NAME_SKILL);
|
||
PyModule_AddIntConstant(poModule, "MOTION_CLAP", CRaceMotionData::NAME_CLAP);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DANCE_1", CRaceMotionData::NAME_DANCE_1);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DANCE_2", CRaceMotionData::NAME_DANCE_2);
|
||
|
||
PyModule_AddIntConstant(poModule, "MOTION_DANCE_3", CRaceMotionData::NAME_DANCE_3);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DANCE_4", CRaceMotionData::NAME_DANCE_4);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DANCE_5", CRaceMotionData::NAME_DANCE_5);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DANCE_6", CRaceMotionData::NAME_DANCE_6);
|
||
PyModule_AddIntConstant(poModule, "MOTION_CONGRATULATION", CRaceMotionData::NAME_CONGRATULATION);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FORGIVE", CRaceMotionData::NAME_FORGIVE);
|
||
PyModule_AddIntConstant(poModule, "MOTION_ANGRY", CRaceMotionData::NAME_ANGRY);
|
||
PyModule_AddIntConstant(poModule, "MOTION_ATTRACTIVE", CRaceMotionData::NAME_ATTRACTIVE);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SAD", CRaceMotionData::NAME_SAD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SHY", CRaceMotionData::NAME_SHY);
|
||
PyModule_AddIntConstant(poModule, "MOTION_CHEERUP", CRaceMotionData::NAME_CHEERUP);
|
||
PyModule_AddIntConstant(poModule, "MOTION_BANTER", CRaceMotionData::NAME_BANTER);
|
||
PyModule_AddIntConstant(poModule, "MOTION_JOY", CRaceMotionData::NAME_JOY);
|
||
|
||
|
||
PyModule_AddIntConstant(poModule, "MOTION_CHEERS_1", CRaceMotionData::NAME_CHEERS_1);
|
||
PyModule_AddIntConstant(poModule, "MOTION_CHEERS_2", CRaceMotionData::NAME_CHEERS_2);
|
||
PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_WARRIOR", CRaceMotionData::NAME_KISS_WITH_WARRIOR);
|
||
PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_ASSASSIN", CRaceMotionData::NAME_KISS_WITH_ASSASSIN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_SURA", CRaceMotionData::NAME_KISS_WITH_SURA);
|
||
PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_SHAMAN", CRaceMotionData::NAME_KISS_WITH_SHAMAN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_WARRIOR", CRaceMotionData::NAME_FRENCH_KISS_WITH_WARRIOR);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_ASSASSIN", CRaceMotionData::NAME_FRENCH_KISS_WITH_ASSASSIN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_SURA", CRaceMotionData::NAME_FRENCH_KISS_WITH_SURA);
|
||
PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_SHAMAN", CRaceMotionData::NAME_FRENCH_KISS_WITH_SHAMAN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_WARRIOR", CRaceMotionData::NAME_SLAP_HIT_WITH_WARRIOR);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_ASSASSIN", CRaceMotionData::NAME_SLAP_HIT_WITH_ASSASSIN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_SURA", CRaceMotionData::NAME_SLAP_HIT_WITH_SURA);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_SHAMAN", CRaceMotionData::NAME_SLAP_HIT_WITH_SHAMAN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_WARRIOR", CRaceMotionData::NAME_SLAP_HURT_WITH_WARRIOR);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_ASSASSIN", CRaceMotionData::NAME_SLAP_HURT_WITH_ASSASSIN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_SURA", CRaceMotionData::NAME_SLAP_HURT_WITH_SURA);
|
||
PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_SHAMAN", CRaceMotionData::NAME_SLAP_HURT_WITH_SHAMAN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_DIG", CRaceMotionData::NAME_DIG);
|
||
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_RESERVED", CRaceMotionData::MODE_RESERVED);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_GENERAL", CRaceMotionData::MODE_GENERAL);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_ONEHAND_SWORD", CRaceMotionData::MODE_ONEHAND_SWORD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_TWOHAND_SWORD", CRaceMotionData::MODE_TWOHAND_SWORD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_DUALHAND_SWORD", CRaceMotionData::MODE_DUALHAND_SWORD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_BOW", CRaceMotionData::MODE_BOW);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_FAN", CRaceMotionData::MODE_FAN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_BELL", CRaceMotionData::MODE_BELL);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_FISHING", CRaceMotionData::MODE_FISHING);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE", CRaceMotionData::MODE_HORSE);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_ONEHAND_SWORD", CRaceMotionData::MODE_HORSE_ONEHAND_SWORD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_TWOHAND_SWORD", CRaceMotionData::MODE_HORSE_TWOHAND_SWORD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_DUALHAND_SWORD", CRaceMotionData::MODE_HORSE_DUALHAND_SWORD);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_BOW", CRaceMotionData::MODE_HORSE_BOW);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_FAN", CRaceMotionData::MODE_HORSE_FAN);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_BELL", CRaceMotionData::MODE_HORSE_BELL);
|
||
PyModule_AddIntConstant(poModule, "MOTION_MODE_WEDDING_DRESS", CRaceMotionData::MODE_WEDDING_DRESS);
|
||
|
||
PyModule_AddIntConstant(poModule, "DIR_NORTH", CInstanceBase::DIR_NORTH);
|
||
PyModule_AddIntConstant(poModule, "DIR_NORTHEAST", CInstanceBase::DIR_NORTHEAST);
|
||
PyModule_AddIntConstant(poModule, "DIR_EAST", CInstanceBase::DIR_EAST);
|
||
PyModule_AddIntConstant(poModule, "DIR_SOUTHEAST", CInstanceBase::DIR_SOUTHEAST);
|
||
PyModule_AddIntConstant(poModule, "DIR_SOUTH", CInstanceBase::DIR_SOUTH);
|
||
PyModule_AddIntConstant(poModule, "DIR_SOUTHWEST", CInstanceBase::DIR_SOUTHWEST);
|
||
PyModule_AddIntConstant(poModule, "DIR_WEST", CInstanceBase::DIR_WEST);
|
||
PyModule_AddIntConstant(poModule, "DIR_NORTHWEST", CInstanceBase::DIR_NORTHWEST);
|
||
|
||
PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_PLAYER", CActorInstance::TYPE_PC);
|
||
PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_NPC", CActorInstance::TYPE_NPC);
|
||
PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_ENEMY", CActorInstance::TYPE_ENEMY);
|
||
PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_BUILDING", CActorInstance::TYPE_BUILDING);
|
||
PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_OBJECT", CActorInstance::TYPE_OBJECT);
|
||
|
||
PyModule_AddIntConstant(poModule, "PART_WEAPON", CRaceData::PART_WEAPON);
|
||
PyModule_AddIntConstant(poModule, "PART_HEAD", CRaceData::PART_HEAD);
|
||
PyModule_AddIntConstant(poModule, "PART_WEAPON_LEFT", CRaceData::PART_WEAPON_LEFT);
|
||
|
||
/////
|
||
|
||
PyModule_AddIntConstant(poModule, "AFFECT_POISON", CInstanceBase::AFFECT_POISON);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_SLOW", CInstanceBase::AFFECT_SLOW);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_STUN", CInstanceBase::AFFECT_STUN);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_MOV_SPEED_POTION", CInstanceBase::AFFECT_MOV_SPEED_POTION);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_ATT_SPEED_POTION", CInstanceBase::AFFECT_ATT_SPEED_POTION);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_FISH_MIND", CInstanceBase::AFFECT_FISH_MIND);
|
||
|
||
PyModule_AddIntConstant(poModule, "AFFECT_JEONGWI", CInstanceBase::AFFECT_JEONGWI);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_GEOMGYEONG", CInstanceBase::AFFECT_GEOMGYEONG);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_CHEONGEUN", CInstanceBase::AFFECT_CHEONGEUN);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_GYEONGGONG", CInstanceBase::AFFECT_GYEONGGONG);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_EUNHYEONG", CInstanceBase::AFFECT_EUNHYEONG);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_GWIGEOM", CInstanceBase::AFFECT_GWIGEOM);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_GONGPO", CInstanceBase::AFFECT_GONGPO);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_JUMAGAP", CInstanceBase::AFFECT_JUMAGAP);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_HOSIN", CInstanceBase::AFFECT_HOSIN);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_BOHO", CInstanceBase::AFFECT_BOHO);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_KWAESOK", CInstanceBase::AFFECT_KWAESOK);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_HEUKSIN", CInstanceBase::AFFECT_HEUKSIN);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_MUYEONG", CInstanceBase::AFFECT_MUYEONG);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_GICHEON", CInstanceBase::AFFECT_GICHEON);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_JEUNGRYEOK", CInstanceBase::AFFECT_JEUNGRYEOK);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_PABEOP", CInstanceBase::AFFECT_PABEOP);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_FALLEN_CHEONGEUN", CInstanceBase::AFFECT_FALLEN_CHEONGEUN);
|
||
PyModule_AddIntConstant(poModule, "AFFECT_CHINA_FIREWORK", CInstanceBase::AFFECT_CHINA_FIREWORK);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_MALL", CInstanceBase::NEW_AFFECT_MALL);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_NO_DEATH_PENALTY", CInstanceBase::NEW_AFFECT_NO_DEATH_PENALTY);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_SKILL_BOOK_BONUS", CInstanceBase::NEW_AFFECT_SKILL_BOOK_BONUS);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_SKILL_BOOK_NO_DELAY", CInstanceBase::NEW_AFFECT_SKILL_BOOK_NO_DELAY);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_EXP_BONUS", CInstanceBase::NEW_AFFECT_EXP_BONUS);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_EXP_BONUS_EURO_FREE", CInstanceBase::NEW_AFFECT_EXP_BONUS_EURO_FREE);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15",CInstanceBase::NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15);
|
||
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_ITEM_BONUS", CInstanceBase::NEW_AFFECT_ITEM_BONUS);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_SAFEBOX", CInstanceBase::NEW_AFFECT_SAFEBOX);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_AUTOLOOT", CInstanceBase::NEW_AFFECT_AUTOLOOT);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_FISH_MIND", CInstanceBase::NEW_AFFECT_FISH_MIND);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_MARRIAGE_FAST", CInstanceBase::NEW_AFFECT_MARRIAGE_FAST);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_GOLD_BONUS", CInstanceBase::NEW_AFFECT_GOLD_BONUS);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_AUTO_HP_RECOVERY", CInstanceBase::NEW_AFFECT_AUTO_HP_RECOVERY);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_AUTO_SP_RECOVERY", CInstanceBase::NEW_AFFECT_AUTO_SP_RECOVERY);
|
||
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_QUALIFIED", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_QUALIFIED);
|
||
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_DECK1", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_DECK1);
|
||
PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_DECK2", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_DECK2);
|
||
|
||
}
|