alin2894 14 Posted April 28, 2016 Share Posted April 28, 2016 (edited) Hello, i have a problem at compiling source binary with pet system. Edited August 20, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
rekt 2 Posted April 28, 2016 Share Posted April 28, 2016 This system from? Link to comment Share on other sites More sharing options...
alin2894 14 Posted May 5, 2016 Author Share Posted May 5, 2016 #up Link to comment Share on other sites More sharing options...
Haya 4 Posted May 5, 2016 Share Posted May 5, 2016 hello ===> projet ===> add ===> pythonpetskill.h and pythonpetskill.cpp cdt 1 Link to comment Share on other sites More sharing options...
alin2894 14 Posted May 5, 2016 Author Share Posted May 5, 2016 16 minutes ago, Haya said: hello ===> projet ===> add ===> pythonpetskill.h and pythonpetskill.cpp cdt Thank you. New error .. Spoiler error C2679: binary '=' : no operator found which takes a right-hand operand of type 'CGraphicImage *' (or there is no acceptable conversion) D:\Jocuri\#SOURCE BINARY CLIENT\mainline_mmo_metin2_wolfman_esarfe_shop_limit_yang\source\UserInterface\PythonSkillPet.cpp 88 All function: Spoiler #include "StdAfx.h" #include "PythonSkillPet.h" #include "../EterBase/Poly/Poly.h" #include "../EterPack/EterPackManager.h" #include "InstanceBase.h" #include "PythonPlayer.h" bool CPythonSkillPet::RegisterSkillPet(const char * c_szFileName) { const VOID* pvData; CMappedFile kFile; if (!CEterPackManager::Instance().Get(kFile, c_szFileName, &pvData)) return false; CMemoryTextFileLoader textFileLoader; textFileLoader.Bind(kFile.Size(), pvData); CTokenVector TokenVector; for (DWORD i = 0; i < textFileLoader.GetLineCount()-1; ++i) { if (!textFileLoader.SplitLine(i, &TokenVector, "\t")) return false; //TraceError("%s ---- %s | %s | %s", c_szFileName, TokenVector[0].c_str(),TokenVector[1].c_str(),TokenVector[2].c_str()); //TraceError("SkillPetDesc %d %s %s %s %s \n", TokenVector.size(), TokenVector[0], TokenVector[1], TokenVecto[2], TokenVector[3]); if (DESCPET_TOKEN_TYPE_MAX_NUM > TokenVector.size()) { //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", -1); return false; } //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 3); DWORD iSkillIndex = atoi(TokenVector[DESCPET_TOKEN_TYPE_VNUM].c_str()); if (iSkillIndex == 0) { //TraceError("SkillPetDesc.line(%d).NO_INDEX_ERROR\n", i + 1); continue; } //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 4); /* std::map<DWORD, TSkillDataPet>::iterator it = m_SkillDataPetMap.find(1); if (m_SkillDataPetMap.end() == it) { TraceError("Arrivato alla fine"); continue; } */ //TraceError("Ciao: %s",m_SkillDataPetMap[1].strIconFileName); m_SkillDataPetMap.insert(make_pair(iSkillIndex, TSkillDataPet())); //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 5); TSkillDataPet & rSkillData = m_SkillDataPetMap[iSkillIndex]; //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 6); // Vnum rSkillData.dwSkillIndex = iSkillIndex; //TraceError("SkillPetDesc.line(%d).NO_VNUM_ERROR\n", 7); // Name rSkillData.strName = TokenVector[DESCPET_TOKEN_TYPE_NAME]; //Icon Name char szIconFileNameHeader[64+1]; _snprintf(szIconFileNameHeader, sizeof(szIconFileNameHeader), "%sskill/pet/%s.sub", g_strImagePath.c_str(), TokenVector[DESCPET_TOKEN_TYPE_ICON_NAME].c_str()); rSkillData.strIconFileName = szIconFileNameHeader; //Type std::map<std::string, DWORD>::iterator itor = m_SkillPetTypeIndexMap.begin(); for(; itor != m_SkillPetTypeIndexMap.end(); ++itor){ if (TokenVector[DESCPET_TOKEN_TYPE].compare(itor->first) == 0) rSkillData.byType = itor->second; } rSkillData.strDescription = TokenVector[DESCPET_TOKEN_TYPE_DESCRIPTION]; rSkillData.dwskilldelay = atoi(TokenVector[DESCPET_TOKEN_TYPE_DELAY].c_str()); rSkillData = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(szIconFileNameHeader); } return true; } void CPythonSkillPet::__RegisterNormalIconImage(TSkillDataPet & rData, const char * c_szHeader, const char * c_szImageName) { std::string strFileName = ""; strFileName += c_szHeader; strFileName += c_szImageName; strFileName += ".sub"; rData.pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(strFileName.c_str()); } void CPythonSkillPet::Destroy() { m_SkillDataPetMap.clear(); } CPythonSkillPet::SSkillDataPet::SSkillDataPet() { dwSkillIndex = 0; strName = ""; strIconFileName = ""; byType = 0; strDescription = ""; dwskilldelay = 0; pImage = NULL; } CPythonSkillPet::CPythonSkillPet() { /* TSkillDataPet SkillDataPet; SkillDataPet.dwSkillIndex = 0; SkillDataPet.strName = ""; SkillDataPet.strIconFileName = ""; SkillDataPet.byType = 0; SkillDataPet.strDescription = ""; SkillDataPet.dwskilldelay = 0; SkillDataPet.pImage = NULL; m_SkillDataPetMap.insert(TSkillDataPetMap::value_type(0, SkillDataPet)); */ petslot[0] = 0; petslot[1] = 0; petslot[2] = 0; m_SkillPetTypeIndexMap.insert(std::map<std::string, DWORD>::value_type("EMPTY", SKILLPET_TYPE_NONE)); m_SkillPetTypeIndexMap.insert(std::map<std::string, DWORD>::value_type("PASSIVE", SKILLPET_TYPE_PASSIVE)); m_SkillPetTypeIndexMap.insert(std::map<std::string, DWORD>::value_type("AUTO", SKILLPET_TYPE_AUTO)); } CPythonSkillPet::~CPythonSkillPet() { } void CPythonSkillPet:: SetSkillbySlot(int slot, int skillIndex) { //TraceError("Setto lo slot %d --> skill %d", slot, skillIndex); petslot[slot] = skillIndex; } BOOL CPythonSkillPet::GetSkillData(DWORD dwSkillIndex, TSkillDataPet ** ppSkillData) { TSkillDataPetMap::iterator it = m_SkillDataPetMap.find(dwSkillIndex); if (m_SkillDataPetMap.end() == it) return FALSE; *ppSkillData = &(it->second); return TRUE; } BOOL CPythonSkillPet::GetSkillIndex(int slot, int* skillIndex) { *skillIndex = petslot[slot]; return TRUE; } PyObject * petskillSetSkillSlot(PyObject * poSelf, PyObject * poArgs) { int slot; int skillIndex; if (!PyTuple_GetInteger(poArgs, 0, &slot)) return Py_BadArgument(); if (!PyTuple_GetInteger(poArgs, 1, &skillIndex)) return Py_BadArgument(); CPythonSkillPet::Instance().SetSkillbySlot(slot, skillIndex); return Py_BuildValue("i", 0); } PyObject * petskillGetIconImage(PyObject * poSelf, PyObject * poArgs) { int iSkillIndex; if (!PyTuple_GetInteger(poArgs, 0, &iSkillIndex)) return Py_BadArgument(); CPythonSkillPet::SSkillDataPet * c_pSkillData; if (!CPythonSkillPet::Instance().GetSkillData(iSkillIndex, &c_pSkillData)) return Py_BuildValue("i", 0); // 익셉션을 내는 대신 0을 리턴한다. return Py_BuildValue("i", c_pSkillData->pImage); } PyObject * petskillGetSkillbySlot(PyObject * poSelf, PyObject * poArgs) { int slot; int skillIndex; if (!PyTuple_GetInteger(poArgs, 0, &slot)) return Py_BadArgument(); if (slot > 2) return Py_BadArgument(); if (!CPythonSkillPet::Instance().GetSkillIndex(slot, &skillIndex)) return Py_BuildValue("i", 0); return Py_BuildValue("i", skillIndex); } PyObject * petskillGetEmptySkill(PyObject * poSelf, PyObject * poArgs) { CGraphicImage * noskillbtn; char szIconFileNameHeader[64 + 1]; _snprintf(szIconFileNameHeader, sizeof(szIconFileNameHeader), "d:/ymir work/ui/pet/skill_button/skill_enable_button.sub"); noskillbtn = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(szIconFileNameHeader); return Py_BuildValue("i", noskillbtn); } void initskillpet() { static PyMethodDef s_methods[] = { ///Variabili setting // { "SetSkillSlot", petskillSetSkillSlot, METH_VARARGS }, //Variabili Get // { "GetIconImage", petskillGetIconImage, METH_VARARGS }, { "GetSkillbySlot", petskillGetSkillbySlot , METH_VARARGS }, { "GetEmptySkill", petskillGetEmptySkill, METH_VARARGS }, { NULL, NULL, NULL }, }; PyObject * poModule = Py_InitModule("petskill", s_methods); } Link to comment Share on other sites More sharing options...
Berke58 97 Posted May 5, 2016 Share Posted May 5, 2016 (edited) You use this? Edited September 2, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
alin2894 14 Posted May 5, 2016 Author Share Posted May 5, 2016 (edited) 19 minutes ago, Berke58 said: You use this? yes Edited September 2, 2022 by Metin2 Dev Core X - External 2 Internal Link to comment Share on other sites More sharing options...
DisLoyal 21 Posted May 5, 2016 Share Posted May 5, 2016 How do you get this system? Link to comment Share on other sites More sharing options...
Berke58 97 Posted May 5, 2016 Share Posted May 5, 2016 2 hours ago, alin2894 said: yes This work but no have scale :S Link to comment Share on other sites More sharing options...
alin2894 14 Posted May 5, 2016 Author Share Posted May 5, 2016 11 minutes ago, Berke58 said: This work but no have scale :S How do I get scale? or what do you mean? Link to comment Share on other sites More sharing options...
Berke58 97 Posted May 5, 2016 Share Posted May 5, 2016 1 minute ago, alin2894 said: How do I get scale? or what do you mean? Like this https://www.youtube.com/watch?v=HU_PFYOmluc Link to comment Share on other sites More sharing options...
WhoIsNice 6 Posted May 5, 2016 Share Posted May 5, 2016 1 hour ago, DisLoyal said: How do you get this system? it is free? o.O Link to comment Share on other sites More sharing options...
DisLoyal 21 Posted May 5, 2016 Share Posted May 5, 2016 Link from the system? Link to comment Share on other sites More sharing options...
olafmeister 0 Posted May 28, 2017 Share Posted May 28, 2017 i have the same error how can i fix it? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now