1 .Client Source/UserInterface/PythonNonPlayer.cpp // Ara DWORD CPythonNonPlayer::GetMonsterMaxHP(DWORD dwVnum) // Ekle DWORD CPythonNonPlayer::GetMonsterRegenPercent(DWORD dwVnum) { const CPythonNonPlayer::TMobTable* c_pTable = GetTable(dwVnum); if (!c_pTable) { DWORD bRegenPercent = 0; return bRegenPercent; } return c_pTable->bRegenPercent; } DWORD CPythonNonPlayer::GetMonsterRegenRate(DWORD dwVnum) { const CPythonNonPlayer::TMobTable* c_pTable = GetTable(dwVnum); if (!c_pTable) { DWORD bRegenCycle = 0; return bRegenCycle; } return c_pTable->bRegenCycle; } ------ PythonNonPlayer.h------------- // Ara DWORD GetMonsterMaxHP(DWORD dwVnum); // Ekle DWORD GetMonsterRegenRate(DWORD dwVnum); DWORD GetMonsterRegenPercent(DWORD dwVnum); -------PythonNonPlayerModule.cpp-------------- // Ara PyObject * nonplayerGetMonsterMaxHP(PyObject * poSelf, PyObject * poArgs) // Ekle PyObject * nonplayerGetMonsterRegenRate(PyObject * poSelf, PyObject * poArgs) { int race; if (!PyTuple_GetInteger(poArgs, 0, &race)) return Py_BuildException(); CPythonNonPlayer& rkNonPlayer=CPythonNonPlayer::Instance(); return Py_BuildValue("i", rkNonPlayer.GetMonsterRegenRate(race)); } PyObject * nonplayerGetMonsterRegenPercent(PyObject * poSelf, PyObject * poArgs) { int race; if (!PyTuple_GetInteger(poArgs, 0, &race)) return Py_BuildException(); CPythonNonPlayer& rkNonPlayer=CPythonNonPlayer::Instance(); return Py_BuildValue("i", rkNonPlayer.GetMonsterRegenPercent(race)); } // Ara { "GetMonsterMaxHP", nonplayerGetMonsterMaxHP, METH_VARARGS }, // Ekle { "GetMonsterRegenRate", nonplayerGetMonsterRegenRate, METH_VARARGS }, { "GetMonsterRegenPercent", nonplayerGetMonsterRegenPercent, METH_VARARGS }, 2. client/pack/root/uitarget.py // Ara self.AppendTextLine(localeInfo.TARGET_INFO_EXP % str(iExp)) // Ekle self.AppendTextLine(localeInfo.TARGET_INFO_REGEN % (str(nonplayer.GetMonsterRegenPercent(race)), str(nonplayer.GetMonsterRegenRate(race)))) 3. client/pack/locale/locale_game.txt // Ara TARGET_INFO_MAX_HP Max. HP : %s // Ekle TARGET_INFO_REGEN Regenerare HP: %s%% la %s secunde *** Bonus: Hesabınızda "Hasar: 1-5" görünmesini istemiyorsanız, uitarget.py içinde değiştirin: *** self.AppendTextLine(localeInfo.TARGET_INFO_DAMAGE % (str(iDamMin), str(iDamMax))) bunun ile if not(nonplayer.IsMonsterStone(race)): self.AppendTextLine(localeInfo.TARGET_INFO_DAMAGE % (str(iDamMin), str(iDamMax)))