salut. oare este pe undeva un step by step guide? nu's de meserie... si chiar as vrea sa-l pornesc singur 
merge totul perfect
Rezolvare crash core:
Deschide char.cpp :
Caută:
Code:
case POINT_CHEQUE:Code:
#ifdef ENABLE_CHEQUE_SYSTEM
case POINT_CHEQUE:
{
const int64_t nTotalCheque = static_cast<int64_t>(GetCheque()) + amount;
if (nTotalCheque < 0 || nTotalCheque >= CHEQUE_MAX)
{
sys_err("[OVERFLOW_CHEQUE] OriCheque %lld AddedCheque %lld id %u",
static_cast<long long>(GetCheque()),
static_cast<long long>(amount),
GetPlayerID());
LogManager::instance().CharLog(this,
static_cast<long long>(nTotalCheque),
"OVERFLOW_CHEQUE",
"");
return;
}
SetCheque(static_cast<int>(nTotalCheque));
val = GetCheque();
}
break;
#endifRezolvare la altă problemă. După ce faci un trade cu un jucător, daca tu îi trimiți lui 5 Won, el primește acei 5 Won, dar îți rămân și ție în inventar.
Fix:
Caută:
Înlocuiește tot cu:
Fix:
Caută:
Code:
#ifdef ENABLE_CHEQUE_SYSTEM
if (m_lCheque)
{
GetOwner()->PointChange(POINT_CHEQUE, -m_lCheque, true);
victim->PointChange(POINT_CHEQUE, m_lCheque, true);
}
#endifCode:
#ifdef ENABLE_CHEQUE_SYSTEM
if (m_lCheque > 0)
{
const long long cheque = m_lCheque;
m_lCheque = 0;
GetOwner()->PointChange(POINT_CHEQUE, -cheque, true);
victim->PointChange(POINT_CHEQUE, cheque, true);
}
#endifDupă multă bătaie de cap am mai rezolvat un bug!
Icon la upgrade + probabilitate de succes fixate !
Înainte de fix:
Și după fix:
Fix:
Pasul 1:
Caută în Userinterface / Packet.h:
Înlocuiește complet acest typedef cu:
Pasul 2:
Caută în Userinterface / PythonNetworkStreamPhaseGame.cpp :
Înlocuiește complet acest bool cu:
Icon la upgrade + probabilitate de succes fixate !
Înainte de fix:

Și după fix:

Fix:
Pasul 1:
Caută în Userinterface / Packet.h:
Code:
typedef struct SRefineTableCode:
typedef struct SRefineTable
{
DWORD src_vnum;
DWORD result_vnum;
BYTE material_count;
long long cost;
int prob;
TMaterial materials[REFINE_MATERIAL_MAX_NUM];
} TRefineTable;Caută în Userinterface / PythonNetworkStreamPhaseGame.cpp :
Code:
bool CPythonNetworkStream::RecvRefineInformationPacketNew()Code:
bool CPythonNetworkStream::RecvRefineInformationPacketNew()
{
TPacketGCRefineInformationNew kRefineInfoPacket;
if (!Recv(sizeof(kRefineInfoPacket), &kRefineInfoPacket))
return false;
TRefineTable & rkRefineTable = kRefineInfoPacket.refine_table;
PyCallClassMemberFunc(
m_apoPhaseWnd[PHASE_WINDOW_GAME],
"OpenRefineDialog",
Py_BuildValue(
"(BILiB)",
kRefineInfoPacket.pos,
rkRefineTable.result_vnum,
rkRefineTable.cost,
rkRefineTable.prob,
kRefineInfoPacket.type
)
);
for (int i = 0; i < rkRefineTable.material_count; ++i)
{
PyCallClassMemberFunc(
m_apoPhaseWnd[PHASE_WINDOW_GAME],
"AppendMaterialToRefineDialog",
Py_BuildValue(
"(II)",
rkRefineTable.materials[i].vnum,
rkRefineTable.materials[i].count
)
);
}
#ifdef _DEBUG
Tracef(" >> RecvRefineInformationPacketNew(pos=%d, result_vnum=%d, cost=%d, prob=%d, type=%d)\n",
kRefineInfoPacket.pos,
kRefineInfoPacket.refine_table.result_vnum,
rkRefineTable.cost,
rkRefineTable.prob,
kRefineInfoPacket.type);
#endif
return true;
}Creează-ți un cont sau autentifică-te pentru a participa la discuție
Trebuie să fii membru pentru a răspunde
Creează-ți un cont
Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!
Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.
Autentifică-te
-
Subiecte similare
-
3Răspunsuri1137Vizualizăride lottryy
-
9Răspunsuri3718Vizualizăride diehard2998
-
2Răspunsuri583Vizualizăride YTmaster
-
6Răspunsuri844Vizualizări
-
20Răspunsuri3907Vizualizăride [HF]White
-
Informații
Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori
Discord ID copiat:



