25 mesaje
Membru Începător Membru Începător
  • Mesaje: 1
  • Reacții: 1
  • Mesaje utile: 0
  • Medalii

    salut. oare este pe undeva un step by step guide? nu's de meserie... si chiar as vrea sa-l pornesc singur :D
    Membru Începător Membru Începător
  • Mesaje: 1
  • Reacții: 1
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Chunjo
  • Medalii

    Avatar utilizator
    Membru Începător
    Membru Începător

    Mesaj de valux »

    merge totul perfect
    Membru Începător Membru Începător
  • Mesaje: 11
  • Reacții: 8
  • Mesaje utile: 1
  • Regat: Chunjo
  • [ID Discord]
  • Contact:

    Medalii

    Avatar utilizator
    Membru Începător
    Membru Începător

    Mesaj de Eugen »

    Gubi scrie: Mie unul îmi pică serverul când transfer won...
    Martysama v5.8 Server Files - LITE Mali Multilanguage + ULTIMATE Ikarus Offline Shop v2 - (MOST CURRENT VERSION SHARED) - Mesaj 23 - Imagine 1
    Rezolvare crash core:

    Deschide char.cpp :

    Caută:
    Code:
    case POINT_CHEQUE:
    Înlocuiește tot case cu :
    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;
    #endif
    Membru Începător Membru Începător
  • Mesaje: 11
  • Reacții: 8
  • Mesaje utile: 1
  • Regat: Chunjo
  • [ID Discord]
  • Contact:

    Medalii

    Avatar utilizator
    Membru Începător
    Membru Începător

    Mesaj de Eugen »

    Rezolvare 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ă:
    Code:
    #ifdef ENABLE_CHEQUE_SYSTEM
    	if (m_lCheque)
    	{
    		GetOwner()->PointChange(POINT_CHEQUE, -m_lCheque, true);
    		victim->PointChange(POINT_CHEQUE, m_lCheque, true);
    	}
    #endif
    Înlocuiește tot cu:
    Code:
    #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);
    	}
    #endif
    Membru Începător Membru Începător
  • Mesaje: 11
  • Reacții: 8
  • Mesaje utile: 1
  • Regat: Chunjo
  • [ID Discord]
  • Contact:

    Medalii

    Avatar utilizator
    Membru Începător
    Membru Începător

    Mesaj de Eugen »

    După multă bătaie de cap am mai rezolvat un bug!

    Icon la upgrade + probabilitate de succes fixate !

    Înainte de fix: Martysama v5.8 Server Files - LITE Mali Multilanguage + ULTIMATE Ikarus Offline Shop v2 - (MOST CURRENT VERSION SHARED) - Mesaj 25 - Imagine 1

    Și după fix: Martysama v5.8 Server Files - LITE Mali Multilanguage + ULTIMATE Ikarus Offline Shop v2 - (MOST CURRENT VERSION SHARED) - Mesaj 25 - Imagine 2

    Fix:

    Pasul 1:


    Caută în Userinterface / Packet.h:
    Code:
    typedef struct SRefineTable
    Înlocuiește complet acest typedef cu:
    Code:
    typedef struct SRefineTable
    {
        DWORD src_vnum;
        DWORD result_vnum;
        BYTE material_count;
        long long cost;
        int prob;
        TMaterial materials[REFINE_MATERIAL_MAX_NUM];
    } TRefineTable;
    Pasul 2:

    Caută în Userinterface / PythonNetworkStreamPhaseGame.cpp :
    Code:
    bool CPythonNetworkStream::RecvRefineInformationPacketNew()
    Înlocuiește complet acest bool cu:
    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;
    }
    Scrie răspuns

    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.

    Înregistrare

    Autentifică-te

    Înapoi la “Serverfiles resurse”

    Informații

    Utilizatori ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori

    Discord ID copiat: