Functional mai trebuie adaptate niste functii minore nimic grav
system functional perfect doar ca trebuie sa fiti foarte atenti in python network stream cpp gresita functia asta de mai jos este cea corecta
Set(HEADER_GC_SNOWFLAKE_STICK_EVENT, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCSnowflakeStickEvent), STATIC_SIZE_PACKET));
in sursa game mai exact in common vedeti ca macro de la
effect este din client si nu il citeste da erroare in length.h functia asta
#if defined(__SNOWFLAKE_STICK_EVENT__)
SE_USE_SNOWFLAKE_STICK,
#endif
asa si mai lispeste o functie complet din game/packet.h userinterface/packet.h in enum ESnowflakeStickEventQuestFlagType trebuie pusa dupa SNOWFLAKE_STICK_EVENT_QUEST_FLAG_EXCHANGE_MOUNT,
SNOWFLAKE_STICK_EVENT_QUEST_FLAG_USE_STICK_COOLDOWN,
PythonEventManager.h cauta void SetVisibleLineCount(int iIndex, int iLineCount); sub adauga
void SetFontColor(int iIndex, float r, float g, float b);
int GetLineHeight(int iIndex);
int GetProcessedLineCount(int iIndex);
int GetTotalLineCount(int iIndex);
PythonEventManager.cpp cauta int CPythonEventManager::GetLineCount(int iIndex) sau GetLineCount poate ii diferita la voi functia sub adauga
void CPythonEventManager::SetFontColor(int iIndex, float r, float g, float b)
{
if (!CheckEventSetIndex(iIndex))
return;
TEventSet * pEventSet = m_EventSetVector[iIndex];
if (!pEventSet)
return;
pEventSet->CurrentColor = D3DXCOLOR(r, g, b, 1.0f);
for (TScriptTextLineList::iterator itor = pEventSet->ScriptTextLineList.begin(); itor != pEventSet->ScriptTextLineList.end(); ++itor)
itor->pInstance->SetColor(r, g, b);
if (pEventSet->pCurrentTextLine)
pEventSet->pCurrentTextLine->SetColor(r, g, b);
}
int CPythonEventManager::GetLineHeight(int iIndex)
{
if (!CheckEventSetIndex(iIndex))
return 0;
return c_fLine_Temp - 4;
}
int CPythonEventManager::GetProcessedLineCount(int iIndex)
{
if (!CheckEventSetIndex(iIndex))
return 0;
TEventSet * pEventSet = m_EventSetVector[iIndex];
if (!pEventSet)
return 0;
return static_cast<int>(pEventSet->ScriptTextLineList.size());
}
int CPythonEventManager::GetTotalLineCount(int iIndex)
{
return GetLineCount(iIndex);
}
PythonEventManagerMoudle.cpp cauta eventDestroy sau PyObject* eventDestroy(PyObject* poSelf, PyObject* poArgs) sub adauga
PyObject * eventSetVisibleLineCount(PyObject * poSelf, PyObject * poArgs)
{
int iIndex;
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
return Py_BuildException();
int iLineCount;
if (!PyTuple_GetInteger(poArgs, 1, &iLineCount))
return Py_BuildException();
CPythonEventManager::Instance().SetVisibleLineCount(iIndex, iLineCount);
return Py_BuildNone();
}
PyObject * eventSetFontColor(PyObject * poSelf, PyObject * poArgs)
{
int iIndex;
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
return Py_BuildException();
float r, g, b;
if (!PyTuple_GetFloat(poArgs, 1, &r))
return Py_BuildException();
if (!PyTuple_GetFloat(poArgs, 2, &g))
return Py_BuildException();
if (!PyTuple_GetFloat(poArgs, 3, &b))
return Py_BuildException();
CPythonEventManager::Instance().SetFontColor(iIndex, r, g, b);
return Py_BuildNone();
}
PyObject * eventGetLineHeight(PyObject * poSelf, PyObject * poArgs)
{
int iIndex;
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
return Py_BuildException();
return Py_BuildValue("i", CPythonEventManager::Instance().GetLineHeight(iIndex));
}
PyObject * eventGetProcessedLineCount(PyObject * poSelf, PyObject * poArgs)
{
int iIndex;
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
return Py_BuildException();
return Py_BuildValue("i", CPythonEventManager::Instance().GetProcessedLineCount(iIndex));
}
PyObject * eventGetTotalLineCount(PyObject * poSelf, PyObject * poArgs)
{
int iIndex;
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
return Py_BuildException();
return Py_BuildValue("i", CPythonEventManager::Instance().GetTotalLineCount(iIndex));
}
tot aici dar mai jos in initEvent dupa GetVisibleStartLine adauga sub
{ "SetVisibleLineCount", eventSetVisibleLineCount, METH_VARARGS },
{ "SetFontColor", eventSetFontColor, METH_VARARGS },
{ "GetLineHeight", eventGetLineHeight, METH_VARARGS },
{ "GetProcessedLineCount", eventGetProcessedLineCount, METH_VARARGS },
{ "GetTotalLineCount", eventGetTotalLineCount, METH_VARARGS },
PythonItemModule.cpp dupa functia asta BYTE __GetApplyPointType(BYTE bApplyType) daca nu o aveti sa stiti ca aveti nevoie de Character detailis marty il are dar pe mainline nu asa ca ati inteleg voi
BYTE PointTypeToApplyType(BYTE bPointType)
{
if (bPointType == POINT_NONE)
return CItemData::EApplyTypes::APPLY_NONE;
for (int i = 0; i <= 0xFF; ++i)
{
if (__GetApplyPointType(static_cast<BYTE>(i)) == bPointType)
return static_cast<BYTE>(i);
}
return CItemData::EApplyTypes::APPLY_NONE;
}
PythonPlayerModule.cpp dupa functia asta extern const DWORD c_iSkillIndex_Summon = 131; ii
fix la inceput de tot poate nu il aveti pasta dar sunt niste externe acolo sigur sub puneti asta
extern BYTE PointTypeToApplyType(BYTE bPointType);
tot in fisierul asta dar mai jos inlocuiti functia asta din playerGetAffectData mai exact asta PyObject* poKey = Py_BuildValue("i", PointTypeToApplyType(it.wApplyOn)); cu
PyObject* poKey = Py_BuildValue("i", PointTypeToApplyType(it.bPointIdxApplyOn));
PythonItemModule.cpp vedeti ca eu am pus in itemdata.h block ala care are nevoie aici si am modficat asa functia asta de trebuie pusa la sfarsit
#if defined(ENABLE_SNOWFLAKE_STICK_EVENT)
PyModule_AddIntConstant(poModule, "ITEM_VNUM_SNOWFLAKE_STICK", CItemData::ITEM_VNUM_SNOWFLAKE_STICK);
PyModule_AddIntConstant(poModule, "ITEM_VNUM_SNOWFLAKE_STICK_EVENT_MOUNT", CItemData::ITEM_VNUM_SNOWFLAKE_STICK_EVENT_MOUNT);
PyModule_AddIntConstant(poModule, "ITEM_VNUM_SNOWFLAKE_STICK_EVENT_PET", CItemData::ITEM_VNUM_SNOWFLAKE_STICK_EVENT_PET);
#endif
ItemUtils.h eu nu am asta asa ca am pus functia in ItemData.h sub enum EDragonSoulSubType
enum EItemVnum
{
#if defined(ENABLE_SNOWFLAKE_STICK_EVENT)
ITEM_VNUM_SNOWFLAKE_STICK = 70612,
ITEM_VNUM_SNOWFLAKE_GIFTBOX = 70613,
ITEM_VNUM_SNOWFLAKE_STICK_EVENT_MOUNT = 70614,
ITEM_VNUM_SNOWFLAKE_STICK_EVENT_PET = 70615,
#endif
};
asa si mai este un fisier care se numeste uniquemob.h eu nu il am asa ca am mutat
enum EUniqueMob in length.h dupa enum EDragonSoulDeckType
c-am asta am gasit eu 2 zile cat l-am testat pe marty poate nu o sa aveti nevoie de toat ce am zis eu mai sus dar ce liseste sigur aveti nevoie la prima vedere pare ca merge dar dupa ce folositi tot system o sa vad dea header error
bafta la instalat il aveti complet acum
2 screen sa vedeti despre ce este vorba si la voi o sa fie pe mini game addon eu folsesc
event manager asa ca am dezactivat flag-ul si l-am mutat aici ca sa nu vii se pare ca ceva este gresit
10-02-2026, 23-18-09.png
10-02-2026, 23-20-05.png