[Development] Source Mu Main 1.03.35 [Season 5.1 - Season 5.2]

Page 18 of 25 FirstFirst ... 810111213141516171819202122232425 LastLast
Results 256 to 270 of 370
  1. #256
    Enthusiast MadeMe is offline
    MemberRank
    Sep 2022 Join Date
    ItaliaLocation
    41Posts
    Got this working and adapted to cross-platform and rebuild to Unity, thanks for this my friend!

  2. #257
    Account Upgraded | Title Enabled! Odisk is offline
    MemberRank
    Apr 2009 Join Date
    VenezuelaLocation
    208Posts
    Quote Originally Posted by MadeMe View Post
    Got this working and adapted to cross-platform and rebuild to Unity, thanks for this my friend!
    you have to rebuild the main from 0

  3. #258
    Novice arraycoder is offline
    MemberRank
    Jul 2019 Join Date
    1Posts
    I pay for the files converted to multiplatform, whoever has the means to do this work, call me discord to negotiate the value.
    Gabriel.fl#8198

  4. #259
    Apprentice iSpectrum is offline
    MemberRank
    Jun 2018 Join Date
    15Posts
    Has someone already separated the chat from the system messages?

  5. #260
    Account Upgraded | Title Enabled! Odisk is offline
    MemberRank
    Apr 2009 Join Date
    VenezuelaLocation
    208Posts
    Quote Originally Posted by iSpectrum View Post
    Has someone already separated the chat from the system messages?
    Code:
    if (MsgType != TYPE_SYSTEM_MESSAGE)
    			{
    				CMessageText* pAllMsgText = new CMessageText;
    				if (!pAllMsgText->Create(strID, strText1, MsgType))
    					delete pAllMsgText;
    				else
    				{
    					m_vecAllMsgs.push_back(pAllMsgText);
    				}
    			}
    
    
    if (MsgType == TYPE_SYSTEM_MESSAGE)
    			{
    				nScrollLinesNew++;
    			}else
    			if( (GetCurrentMsgType() == TYPE_ALL_MESSAGE || GetCurrentMsgType() == MsgType) && MsgType != TYPE_SYSTEM_MESSAGE)
    			{
    				nScrollLines++;
    			}
    
    if (MsgType == TYPE_SYSTEM_MESSAGE)
    	{
    		pvecMsgs = GetMsgs(MsgType);
    		if (pvecMsgs == NULL)
    		{
    			assert(!"Error chat 4");
    			return;
    		}
    		if (nScrollLinesNew > 0 && ((pvecMsgs->size() - (m_iCurrentRenderEndLineMsg + 1) - nScrollLinesNew) < 3))
    			m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1;
    		else if (!m_bShowFrame)
    			m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1;
    		
    
    	}
    
    bool SEASON3B::CNewUIChatLogWindow::RenderMessagesNew()
    {
    	float fRenderPosX = m_WndPos.x, fRenderPosY = m_WndPos.y - m_WndSize.cy + SCROLL_TOP_BOTTOM_PART_HEIGHT;
    
    	type_vector_msgs* pvecMsgs = GetMsgs(TYPE_SYSTEM_MESSAGE);
    	if (pvecMsgs == NULL)
    	{
    		assert(!"empty chat!");
    		return false;
    	}
    	int iRenderStartLine = 0;
    	if (GetCurrentRenderEndLineMsg() >= m_nShowingLinesMsg)
    	{
    		iRenderStartLine = GetCurrentRenderEndLineMsg() - m_nShowingLinesMsg + 1;
    	}
    	else
    	{
    		fRenderPosY = fRenderPosY + FONT_LEADING + (SCROLL_MIDDLE_PART_HEIGHT * (m_nShowingLinesMsg - GetCurrentRenderEndLineMsg() - 1));
    	}
    	fRenderPosY -= 270;
    	BYTE byAlpha = 150;
    	if (m_bShowFrame) byAlpha = 100;
    	EnableAlphaTest();
    	for (int i = iRenderStartLine, s = 0; i <= GetCurrentRenderEndLineMsg(); i++, s++)
    	{
    		if (i < 0 && i >= (int)pvecMsgs->size()) break;
    
    		bool bRenderMessage = true;
    		g_pRenderText->SetFont(g_hFont);
    		g_pRenderText->SetBgColor(0, 0, 0, 150);
    		g_pRenderText->SetTextColor(100, 150, 255, 255);
    		CMessageText* pMsgText = (*pvecMsgs)[i];
    		if (bRenderMessage && !pMsgText->GetText().empty())
    		{
    			POINT ptRenderPos = { (long)fRenderPosX + (long)WND_LEFT_RIGHT_EDGE, (long)fRenderPosY + (long)FONT_LEADING + ((long)SCROLL_MIDDLE_PART_HEIGHT * (long)s) };
    
    
    			if (!pMsgText->GetID().empty())
    			{
    				if (m_bPointedMessage == true && m_iPointedMessageIndex == i)
    				{
    					g_pRenderText->SetBgColor(30, 30, 30, 180);
    					g_pRenderText->SetTextColor(255, 128, 255, 255);
    				}
    				std::string strIDUTF8 = "";
    				g_pMultiLanguage->ConvertANSIToUTF8OrViceVersa(strIDUTF8, (pMsgText->GetID()).c_str());
    				type_string strLine = strIDUTF8 + " : " + pMsgText->GetText();
    				g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, strLine.c_str());
    			}
    			else
    			{
    				g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, pMsgText->GetText().c_str());
    			}
    		}
    	}
    	DisableAlphaBlend();
    
    	return true;
    }

  6. #261
    if(!caffeine) continue; leorond is offline
    MemberRank
    Jul 2012 Join Date
    Czech RepublicLocation
    479Posts
    Quote Originally Posted by Odisk View Post
    Code:
    if (MsgType != TYPE_SYSTEM_MESSAGE)
    			{
    				CMessageText* pAllMsgText = new CMessageText;
    				if (!pAllMsgText->Create(strID, strText1, MsgType))
    					delete pAllMsgText;
    				else
    				{
    					m_vecAllMsgs.push_back(pAllMsgText);
    				}
    			}
    
    
    if (MsgType == TYPE_SYSTEM_MESSAGE)
    			{
    				nScrollLinesNew++;
    			}else
    			if( (GetCurrentMsgType() == TYPE_ALL_MESSAGE || GetCurrentMsgType() == MsgType) && MsgType != TYPE_SYSTEM_MESSAGE)
    			{
    				nScrollLines++;
    			}
    
    if (MsgType == TYPE_SYSTEM_MESSAGE)
    	{
    		pvecMsgs = GetMsgs(MsgType);
    		if (pvecMsgs == NULL)
    		{
    			assert(!"Error chat 4");
    			return;
    		}
    		if (nScrollLinesNew > 0 && ((pvecMsgs->size() - (m_iCurrentRenderEndLineMsg + 1) - nScrollLinesNew) < 3))
    			m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1;
    		else if (!m_bShowFrame)
    			m_iCurrentRenderEndLineMsg = pvecMsgs->size() - 1;
    		
    
    	}
    
    bool SEASON3B::CNewUIChatLogWindow::RenderMessagesNew()
    {
    	float fRenderPosX = m_WndPos.x, fRenderPosY = m_WndPos.y - m_WndSize.cy + SCROLL_TOP_BOTTOM_PART_HEIGHT;
    
    	type_vector_msgs* pvecMsgs = GetMsgs(TYPE_SYSTEM_MESSAGE);
    	if (pvecMsgs == NULL)
    	{
    		assert(!"empty chat!");
    		return false;
    	}
    	int iRenderStartLine = 0;
    	if (GetCurrentRenderEndLineMsg() >= m_nShowingLinesMsg)
    	{
    		iRenderStartLine = GetCurrentRenderEndLineMsg() - m_nShowingLinesMsg + 1;
    	}
    	else
    	{
    		fRenderPosY = fRenderPosY + FONT_LEADING + (SCROLL_MIDDLE_PART_HEIGHT * (m_nShowingLinesMsg - GetCurrentRenderEndLineMsg() - 1));
    	}
    	fRenderPosY -= 270;
    	BYTE byAlpha = 150;
    	if (m_bShowFrame) byAlpha = 100;
    	EnableAlphaTest();
    	for (int i = iRenderStartLine, s = 0; i <= GetCurrentRenderEndLineMsg(); i++, s++)
    	{
    		if (i < 0 && i >= (int)pvecMsgs->size()) break;
    
    		bool bRenderMessage = true;
    		g_pRenderText->SetFont(g_hFont);
    		g_pRenderText->SetBgColor(0, 0, 0, 150);
    		g_pRenderText->SetTextColor(100, 150, 255, 255);
    		CMessageText* pMsgText = (*pvecMsgs)[i];
    		if (bRenderMessage && !pMsgText->GetText().empty())
    		{
    			POINT ptRenderPos = { (long)fRenderPosX + (long)WND_LEFT_RIGHT_EDGE, (long)fRenderPosY + (long)FONT_LEADING + ((long)SCROLL_MIDDLE_PART_HEIGHT * (long)s) };
    
    
    			if (!pMsgText->GetID().empty())
    			{
    				if (m_bPointedMessage == true && m_iPointedMessageIndex == i)
    				{
    					g_pRenderText->SetBgColor(30, 30, 30, 180);
    					g_pRenderText->SetTextColor(255, 128, 255, 255);
    				}
    				std::string strIDUTF8 = "";
    				g_pMultiLanguage->ConvertANSIToUTF8OrViceVersa(strIDUTF8, (pMsgText->GetID()).c_str());
    				type_string strLine = strIDUTF8 + " : " + pMsgText->GetText();
    				g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, strLine.c_str());
    			}
    			else
    			{
    				g_pRenderText->RenderText(ptRenderPos.x, ptRenderPos.y, pMsgText->GetText().c_str());
    			}
    		}
    	}
    	DisableAlphaBlend();
    
    	return true;
    }
    Can I ask you to share the files

    NewUIChatLogWindow.h
    NewUIChatLogWindow.cpp

    For complete chat separation code?

    Thank you

  7. #262
    Account Upgraded | Title Enabled! Odisk is offline
    MemberRank
    Apr 2009 Join Date
    VenezuelaLocation
    208Posts


    someone help me with this when activating the SCALEFORM

  8. #263
    Apprentice lzm100001 is offline
    MemberRank
    Apr 2014 Join Date
    20Posts
    who can give the MUhelper source code?

  9. #264
    if(!caffeine) continue; leorond is offline
    MemberRank
    Jul 2012 Join Date
    Czech RepublicLocation
    479Posts
    Quote Originally Posted by Odisk View Post


    someone help me with this when activating the SCALEFORM
    Go through the header links. A file must not be called more than once.
    It can also be the same struct.

    A lot of time spent looking for a bug.
    Try an older version.

  10. #265
    Novice HugoGomes is offline
    MemberRank
    Aug 2015 Join Date
    4Posts
    Fix Dark Raven Walk Visual:

    Search in Function SetPlayerWalk :

    else if ( c->Weapon[1].Type==MODEL_HELPER+5 && c->SafeZone) // ´ÙÅ©½ºÇǸ´ ¸¶À»¿¡¼­ Á¤Áö »óÅ { SetAction ( &c->Object, PLAYER_DARKLORD_WALK ); }
    Change :

    else if (c->SafeZone && c->m_PetInfo->m_dwPetType == PET_TYPE_DARK_SPIRIT) // -> Fix Dark Raven { SetAction(&c->Object, PLAYER_DARKLORD_WALK); }

  11. #266
    Apprentice zbzalex is offline
    MemberRank
    Jul 2021 Join Date
    23Posts
    Quote Originally Posted by Odisk View Post


    S3 downgrade 30%
    season 3 is best for all mu online stages.

    - - - Updated - - -

    Quote Originally Posted by leorond View Post
    Go through the header links. A file must not be called more than once.
    It can also be the same struct.

    A lot of time spent looking for a bug.
    Try an older version.
    i can help you https://mega.nz/file/CGpnHIba#UfCOaFzJqzc2m3c9eJ2N0ayYtsIUrNNpCmieEpWVR_8

  12. #267
    C++ Developer zipper20032 is offline
    MemberRank
    Oct 2006 Join Date
    0x198837ADLocation
    663Posts
    Does anyone working on adding 6.3 stuff to 5.2? Would be pretty cool to a get few people to work together on this.
    Started working on it few days ago. Pretty much I'm messing around with it just to get familiarized with the code first.

    https://ibb.co/TmBgnPM

    https://ibb.co/CzNHX6Q

    If there's any on-going serious project which I can join, I'll be glad to.

  13. #268
    if(!caffeine) continue; leorond is offline
    MemberRank
    Jul 2012 Join Date
    Czech RepublicLocation
    479Posts
    I'm still working on it. I already have RF fully integrated. I am working now with the idea of Mu Helper.

  14. #269
    Apprentice kayito is offline
    MemberRank
    Nov 2016 Join Date
    10Posts
    Quote Originally Posted by zipper20032 View Post
    Does anyone working on adding 6.3 stuff to 5.2? Would be pretty cool to a get few people to work together on this.
    Started working on it few days ago. Pretty much I'm messing around with it just to get familiarized with the code first.

    https://ibb.co/TmBgnPM

    https://ibb.co/CzNHX6Q

    If there's any on-going serious project which I can join, I'll be glad to.
    Quote Originally Posted by leorond View Post
    I'm still working on it. I already have RF fully integrated. I am working now with the idea of Mu Helper.
    You can use the .map of the Main s6.2 Thai here posted to try decompiling and reconstructing the mu helper

    https://forum.ragezone.com/f508/deve...eason-1163032/

  15. #270
    if(!caffeine) continue; leorond is offline
    MemberRank
    Jul 2012 Join Date
    Czech RepublicLocation
    479Posts
    Quote Originally Posted by kayito View Post
    You can use the .map of the Main s6.2 Thai here posted to try decompiling and reconstructing the mu helper

    https://forum.ragezone.com/f508/deve...eason-1163032/
    Better to go your own way.

    http://reverse-mu.cz/Template/Basic/Images/1.jpg

    http://reverse-mu.cz/Template/Basic/Images/2.jpg

    http://reverse-mu.cz/Template/Basic/Images/3.jpg

    http://reverse-mu.cz/Template/Basic/Images/4.jpg

    http://reverse-mu.cz/Template/Basic/Images/5.jpg


    Rather than copying other people's mistakes.

    - - - Updated - - -

    One small but important fix for players.

    When using ancient items and their properties.
    As always, everything can be blamed on the server's adjustments and the effort to please all the players.

    Let's take a look at this feature.

    This function will restore or reload split points if you press the "C" key.

    NewUICharacterInfoWindow.cpp
    PHP Code:
    void SEASON3B::CNewUICharacterInfoWindow::ResetEquipmentLevel()
    {
        
    ITEM *pItem CharacterMachine->Equipment;
        
    Hero->Weapon[0].Level = (pItem[EQUIPMENT_WEAPON_RIGHT].Level>>3)&15;
        
    Hero->Weapon[1].Level = (pItem[EQUIPMENT_WEAPON_LEFT ].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_HELM ].Level = (pItem[EQUIPMENT_HELM].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_ARMOR].Level = (pItem[EQUIPMENT_ARMOR].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_PANTS].Level = (pItem[EQUIPMENT_PANTS].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_GLOVES].Level = (pItem[EQUIPMENT_GLOVES].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_BOOTS].Level = (pItem[EQUIPMENT_BOOTS].Level>>3)&15;

        
    CheckFullSet(Hero);    

    If you have an ancient set on. After performing a character reset or redistribution of points, your special traits will not work. If you do not have the stats and level for the relevant set immediately after accessing the game.

    We all use the old familiar method of splitting points (/add, /str, /agi, ...) and don't have the basic treatment in the game client.

    Edit the function like this
    PHP Code:
    void SEASON3B::CNewUICharacterInfoWindow::ResetEquipmentLevel()
    {
        
    ITEM *pItem CharacterMachine->Equipment;
        
    Hero->Weapon[0].Level = (pItem[EQUIPMENT_WEAPON_RIGHT].Level>>3)&15;
        
    Hero->Weapon[1].Level = (pItem[EQUIPMENT_WEAPON_LEFT ].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_HELM ].Level = (pItem[EQUIPMENT_HELM].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_ARMOR].Level = (pItem[EQUIPMENT_ARMOR].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_PANTS].Level = (pItem[EQUIPMENT_PANTS].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_GLOVES].Level = (pItem[EQUIPMENT_GLOVES].Level>>3)&15;
        
    Hero->BodyPart[BODYPART_BOOTS].Level = (pItem[EQUIPMENT_BOOTS].Level>>3)&15;

        
    CheckFullSet(Hero);    

        
    g_csItemOption.init();


    Go to the file WSclient.cpp
    The function referenced by the split points command.
    Change the first case (0x00), remove the message about the distribution of points, if you don't want it there, but the end is important.
    PHP Code:
        case 0x00:    // ˝şĹČ»ýĽş Ľş°ř
            
    if(fruit >=&& fruit <= 4)
            {
    #ifdef KWAK_FIX_COMPILE_LEVEL4_WARNING_EX
                
    int index 0;
    #else // KWAK_FIX_COMPILE_LEVEL4_WARNING_EX
                
    int  index;
    #endif // KWAK_FIX_COMPILE_LEVEL4_WARNING_EX
                
                
    switch ( fruit )
                {
                case 
    0//  żˇłĘÁö.
                    
    CharacterAttribute->Energy      += point;
                    
    index 168;
                    break;
                    
                case 
    1//  ĂĽ·Â.
                    
    CharacterAttribute->Vitality    += point;
                    
    index 169;
                    break;
                    
                case 
    2//  ąÎø.
                    
    CharacterAttribute->Dexterity   += point;
                    
    index 167;
                    break;
                    
                case 
    3//  Čű.
                    
    CharacterAttribute->Strength    += point;
                    
    index 166;
                    break;
                case 
    4:    //: ĹëĽÖ
                    
    CharacterAttribute->Charisma    += point;
                    
    index 1900;
                    break;
                }
                
                
    CharacterAttribute->AddPoint += point;
                
                
    //unicode::_sprintf(strText, GlobalText[379], GlobalText[index], point, GlobalText[1412]);
                //SEASON3B::CreateOkMessageBox(strText);
                // ---- FIX ----------------------------------------------------------------------
                
    g_pCharacterInfoWindow->ResetEquipmentLevel();
                
    CharacterMachine->CalculateAll();
                
    // --------------------------------------------------------------------------------
            
    }
            break; 
    Now you have fixed the division of points via the command.
    But now there is a problem with the necessary level for the ring / pendant.
    Special options are not unlocked when leveling up an item.

    Find this function in the WSclient.cpp file, look at the end of the function and edit it.
    PHP Code:
    void ReceiveLevelUpBYTE *ReceiveBuffer )
    {
        
    LPPRECEIVE_LEVEL_UP Data = (LPPRECEIVE_LEVEL_UP)ReceiveBuffer;
        
    CharacterAttribute->Level Data->Level;
        
    CharacterAttribute->LevelUpPoint Data->LevelUpPoint;
        
    CharacterAttribute->UpPoint Data->UpPoint;
        
    CharacterAttribute->LifeMax Data->MaxLife;
        
    CharacterAttribute->ManaMax Data->MaxMana;
        
    CharacterAttribute->Life    Data->MaxLife;
        
    CharacterAttribute->Mana    Data->MaxMana;
        
    CharacterAttribute->ShieldMax Data->MaxShield;
        
    CharacterAttribute->SkillManaMax Data->SkillManaMax;
        
        
    //  Ăß°ˇµÇ´Â ˝şĹÝ Á¤ş¸.
        
    CharacterAttribute->AddPoint        Data->AddPoint;
        
    CharacterAttribute->MaxAddPoint        Data->MaxAddPoint;
        
    //    ż­¸Ĺ °¨ĽŇ Ć÷ŔÎĆ® Á¤ş¸
        
    CharacterAttribute->wMinusPoint        Data->wMinusPoint;        // ÇöŔç °¨ĽŇ Ć÷ŔÎĆ®
        
    CharacterAttribute->wMaxMinusPoint    Data->wMaxMinusPoint;        // ĂÖ´ë °¨ĽŇ Ć÷ŔÎĆ®
        
        
    unicode::t_char szText[256] = {NULL, };
        
    WORD iExp CharacterAttribute->NextExperince CharacterAttribute->Experience;
        
    sprintf(szText,GlobalText[486], iExp);
        
    g_pChatListBox->AddText(""szTextSEASON3B::TYPE_SYSTEM_MESSAGE);

        
    CharacterMachine->CalculateNextExperince();
        
        
    OBJECT *= &Hero->Object;

        if(
    IsMasterLevel(Hero->Class) == true)
        {
            
    //        OBJECT *o = &Hero->Object;
            
            
    CreateJoint(BITMAP_FLARE,o->Position,o->Position,o->Angle,45,o,80,2);
            for ( 
    int i=0i<19; ++)
            {
                
    CreateJoint(BITMAP_FLARE,o->Position,o->Position,o->Angle,46,o,80,2);
            }
        }
        else
        {
            for ( 
    int i=0i<15; ++)
            {
                
    CreateJoint(BITMAP_FLARE,o->Position,o->Position,o->Angle,0,o,40,2);
            }
            
    CreateEffect(BITMAP_MAGIC+1,o->Position,o->Angle,o->Light,0,o);
        }
        
    PlayBuffer(SOUND_LEVEL_UP);

        
    // ---- Fix -------------------------------------------------------------------
        
    g_pCharacterInfoWindow->ResetEquipmentLevel();
        
    CharacterMachine->CalculateAll();
        
    // ----------------------------------------------------------------------------

    #ifdef CONSOLE_DEBUG
        
    g_ConsoleDebug->Write(MCD_RECEIVE"0x05ąŢŔ˝[ReceiveLevelUp]");
    #endif // CONSOLE_DEBUG

    Now if you kidnap an ancient item it will show you the properties.
    I hope this fix helps someone.
    Last edited by leorond; 27-10-22 at 05:15 PM.



Advertisement