Jump to content

AutodesK

Inactive Member
  • Posts

    62
  • Joined

  • Last visited

  • Days Won

    4
  • Feedback

    0%

Posts posted by AutodesK

  1. On 9/15/2021 at 1:02 PM, martysama0134 said:

    The black screen was mostly caused by two major bugs:

    1. The granny controller freezing the process for n seconds until you get dc'd from the game
      1. You can test it by:
      2. Spawning tons of monsters
      3. Minimize the client for 30 - 40 minutes
      4. Maximizing the window again (it will freeze exactly at this point)
    2. The EffectManager not destroying the expired effects while the window was minimized, which caused all the executed effects to stack up and be run all at once after maximizing the window again
      1. You can test this bug very easily:
      2. Spawn tons Flame Ghosts and minimize the window
        1. /ma "Flame Ghost" 100
        2. /cannot_dead

    I wasn't sure how to solve the 1st one, but for the 2nd one you can fix it in one of these ways:

     

    151605UCH22zd.png

    1st Way) refresh only once every 256 frames = 4-6 seconds depending on the lag

     

    1516050B26Z93.png

    2nd Way) effect manager refresh for every frame

     

    151605kBI2BOi.png

    3rd Way) move the update from RenderGame to UpdateGame (it may not be called if skipFrame=true on ::Process)

    Thanks Marty!

    • Metin2 Dev 1
  2. Quote


    char.cpp: In member function 'void CHARACTER::ComputePoints()':
    char.cpp:2441:43: error: 'load' was not declared in this scope
        PointChange(POINT_ST, 0, false, false, load, compute_point_status);
                                               ^~~~
    char.cpp:2441:43: note: suggested alternative: 'Dead'
        PointChange(POINT_ST, 0, false, false, load, compute_point_status);
                                               ^~~~
                                               Dead
    char.cpp:2468:42: error: no matching function for call to 'CHARACTER::ComputeBattlePoints(bool&)'
      ComputeBattlePoints(compute_point_status);//Fixed_[C]Martin#2376_001
                                              ^
    char.cpp:2170:6: note: candidate: 'void CHARACTER::ComputeBattlePoints()'
     void CHARACTER::ComputeBattlePoints()
          ^~~~~~~~~
    char.cpp:2170:6: note:   candidate expects 0 arguments, 1 provided
    char.cpp: In member function 'void CHARACTER::PointChange(BYTE, int, bool, bool, bool)':
    char.cpp:3948:44: error: no matching function for call to 'CHARACTER::ComputeBattlePoints(bool&)'
        ComputeBattlePoints(compute_point_status);//Fixed_[C]Martin#2376_001
     

    https://metin2.download/picture/uqQn1x0MIjDlrnDc8DTsaTANiuJd98wH/.png

    • Metin2 Dev 5
    • Not Good 1
    • Think 1
    • Good 1
    • Love 1
  3. hace 52 minutos, [RaffaeL] dijo:

    You need to make changes to the binary source for that, or via python (playersettingmodule.py), but although I haven't tried, I don't think you can put anything other than onehand swords.

    I try with code "instancebase.cpp"

    and more code, but i dont know "1000" , "2000", "3000", "4000", "6000"...

     

    		case CItemData::WEAPON_DAGGER:
    			if (dwEvolution >= 6000)
    			{
    				m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION4;
    				m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION4_LEFT;
    			}
    			else if (dwEvolution >= 4000)
    			{
    				m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION3;
    				m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION3_LEFT;				
    			}
    			else if (dwEvolution >= 2000)
    			{
    				m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION2;
    				m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION2_LEFT;					
    			}
    			else if (dwEvolution >= 1000)
    			{
    				m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION1;
    				m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_EVOLUTION1_LEFT;					
    			}
    			else
    			{
    				m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
    				m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7_LEFT+refine-7;
    			}
    			break;

     

  4. sometimes...

    SYSERR: Jul 12 17:46:40 :: Analyze: login phase does not handle this packet! header 66
    SYSERR: Jul 12 17:46:40 :: Process: SEQUENCE 2c7f4400 mismatch 0x8a != 0x0 header 6
    SYSERR: Jul 12 17:46:40 :: Process: SEQUENCE_LOG [UNKNOWN]-------------
        [109 : 0xaf]
        [066 : 0xca]
        [006 : 0x8a]

    and close client

  5.  

    hace 23 minutos, ridetpro dijo:
    
    		case HEADER_CG_CLIENT_VERSION:
    			Version(d->GetCharacter(), c_pData);
    			break;
    
    		default:
    			sys_err("login phase does not handle this packet! header %d", bHeader);
    			d->SetPhase(PHASE_CLOSE);
    			return (0);
    	}
    
    	return (iExtraLen);
    }

    Create a new case, below. Identifies the 66th packet and add an empty case.
     

    mmm Okey but this function only hide the error... ? no the repair?

    • Love 1
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.