Sziasztok!
Sikerült összehozni, a max yangot, 2 milliárdról,
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fkepfeltoltes.hu%2F150501%2F111298931K_pkiv_g_s_www.kepfeltoltes.hu_.jpg&hash=b9313ae4afc9d5c5dc69871c51e1684e06fe9b09)
Nos, kezdjünk is bele.
Szükséges fájlok:
~PythonPlayerModule.cpp
~Char.cpp
~Char.h
~config.cpp
~tables.h
~lenght.h
Mindenhol, az átírt értéket fogom leírni, tehát a funkcióra rákeresel, és teljesen felül írod ezekkel:
Hogyha már módosítottál, más értékeket is (pl max szint értékét) akkor érdemes unsigned long long-ra rakni, ugyanis van ahol több értéket is használ. Hogyha nem működik, akkor egy teljesen szűz forráson csináld meg.
char.cpp
case POINT_GOLD:
{
long long GoldAmount = 0;
const int64_t nTotalMoney = GetGold() + GoldAmount;
if (GOLD_MAX <= nTotalMoney)
{
sys_err("[OVERFLOW_GOLD] OriGold %d AddedGold %d id %u Name %s ", GetGold(), GoldAmount, GetPlayerID(), GetName());
//LogManager::instance().CharLog(this, GetGold() + amount, "OVERFLOW_GOLD", "");
return;
}
SetGold(GetGold() + GoldAmount);
goldval = GetGold();
}
break;
char.h
typedef struct character_point
{
long points[POINT_MAX_NUM];
BYTE job;
BYTE voice;
BYTE level;
DWORD exp;
long long gold; //az érték long long vagy ULL.
int hp;
int sp;
int iRandomHP;
int iRandomSP;
int stamina;
BYTE skill_group;
} CHARACTER_POINT;
// Pénz kezdete
long long GetGold() const { return m_points.gold; }
void SetGold(long long gold) { m_points.gold = gold; }
bool DropGold(INT gold);
INT GetAllowedGold() const;
void GiveGold(INT iAmount); // Érték adás
// pénz vége
config.cpp
long long GOLD_MAX = 1000000000000000000LL;
tables.h
typedef struct SPlayerTable
{
DWORD id;
char name[CHARACTER_NAME_MAX_LEN + 1];
char ip[IP_ADDRESS_LENGTH + 1];
WORD job;
BYTE voice;
BYTE level;
BYTE level_step;
short st, ht, dx, iq;
DWORD exp;
long long gold;
BYTE dir;
INT x, y, z;
INT lMapIndex;
long lExitX, lExitY;
long lExitMapIndex;
long hp;
long sp;
short sRandomHP;
short sRandomSP;
int playtime;
short stat_point;
short skill_point;
short sub_skill_point;
short horse_skill_point;
TPlayerSkill skills[SKILL_MAX_NUM];
TQuickslot quickslot[QUICKSLOT_MAX_NUM];
BYTE part_base;
WORD parts[PART_MAX_NUM];
short stamina;
BYTE skill_group;
long lAlignment;
char szMobile[MOBILE_MAX_LEN + 1];
short stat_reset_count;
THorseInfo horse;
DWORD logoff_interval;
int aiPremiumTimes[PREMIUM_MAX_NUM];
} TPlayerTable;
PythonPlayerModule.cpp
PyObject * playerGetElk(PyObject* poSelf, PyObject* poArgs)
{
__int64 GoldVal = CPythonPlayer::Instance().GetStatus(POINT_GOLD);
return Py_BuildValue("L", GoldVal);
}
lenght.h
GOLD_MAX = 999990000000ULL,
vagy
GOLD_MAX = 999990000000LL,
vagy
GOLD_MAX = 999990000000L,
vagy
GOLD_MAX = 999990000000IL,
vagy
GOLD_MAX = 999990000000ILL,
Ez attol függ, hogy mit módositottál eddig a gamefiled-ban.
Navicatban pedig emeljük a yang értékét, értelemszerüen arra az értékre, amire itt beállitottuk.