Jump to content

ByLost

Inactive Member
  • Posts

    110
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by ByLost

  1. 10 hours ago, TMP4 said:

    input_main.cpp

    if (CheckSpeedHack)
    		{
    			int iDelta = (int) (pinfo->dwTime - ch->GetDesc()->GetClientTime());
    			int iServerDelta = (int) (dwCurTime - ch->GetDesc()->GetClientTime());
    
    			iDelta = (int) (dwCurTime - pinfo->dwTime);
    
    			// ˝Ă°ŁŔĚ ´Ę°Ô°Ł´Ů. ŔĎ´Ü ·Î±×¸¸ ÇصдŮ. ÁřÂĄ ŔĚ·± »ç¶÷µéŔĚ ¸ąŔşÁö ĂĽĹ©ÇŘľßÇÔ. TODO
    			if (iDelta >= 30000)
    			{
    				sys_log(0, "SPEEDHACK: slow timer name %s delta %d", ch->GetName(), iDelta);
    				ch->GetDesc()->DelayedDisconnect(3);
    			}
    			// 1ĂĘżˇ 20msec »ˇ¸® °ˇ´Â°Ĺ ±îÁö´Â ŔĚÇŘÇŃ´Ů.
    			else if (iDelta < -(iServerDelta / 50))
    			{
    				sys_log(0, "SPEEDHACK: DETECTED! %s (delta %d %d)", ch->GetName(), iDelta, iServerDelta);
    				ch->GetDesc()->DelayedDisconnect(3);
    			}
    		}

    The ch->GetDesc()->DelayedDisconnect(3); is disconnecting you. There are twice as you see. Either comment or try to tune the values. Most people just comment it.

     

     

    sys_log:

    [GM]Dev attack hack! time (delta, limit)=(0, 161) hack_count 10

     

    if (CheckSpeedHack)
    		{
    			int iDelta = (int) (pinfo->dwTime - ch->GetDesc()->GetClientTime());
    			int iServerDelta = (int) (dwCurTime - ch->GetDesc()->GetClientTime());
    
    			iDelta = (int) (dwCurTime - pinfo->dwTime);
    
    			// ½Ã°£ÀÌ ´Ê°Ô°£´Ù. ÀÏ´Ü ·Î±×¸¸ ÇصдÙ. ÁøÂ¥ ÀÌ·± »ç¶÷µéÀÌ ¸¹ÀºÁö üũÇؾßÇÔ. TODO
    			if (iDelta >= 30000)
    			{
    				sys_log(0, "SPEEDHACK: slow timer name %s delta %d", ch->GetName(), iDelta);
    				/* ch->GetDesc()->DelayedDisconnect(3); */
    			}
    			// 1ÃÊ¿¡ 20msec »¡¸® °¡´Â°Å ±îÁö´Â ÀÌÇØÇÑ´Ù.
    			else if (iDelta < -(iServerDelta / 50))
    			{
    				sys_log(0, "SPEEDHACK: DETECTED! %s (delta %d %d)", ch->GetName(), iDelta, iServerDelta);
    				/* ch->GetDesc()->DelayedDisconnect(3); */
    			}
    		}

     

    @FlorinMarian

    bool IS_SPEED_HACK(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time)
    {
    	if (ch->m_kAttackLog.dwVID == victim->GetVID())
    	{
    		if (current_time - ch->m_kAttackLog.dwTime < GET_ATTACK_SPEED(ch))
    		{
    			INCREASE_SPEED_HACK_COUNT(ch);
    
    			sys_log(0, "%s attack hack! time (delta, limit)=(%u, %u) hack_count %d",
    					ch->GetName(),
    					current_time - ch->m_kAttackLog.dwTime,
    					GET_ATTACK_SPEED(ch),
    					ch->m_speed_hack_count);
    			if (test_server)
    			{
    				ch->ChatPacket(CHAT_TYPE_INFO, "%s attack hack! time (delta, limit)=(%u, %u) hack_count %d",
    						ch->GetName(),
    						current_time - ch->m_kAttackLog.dwTime,
    						GET_ATTACK_SPEED(ch),
    						ch->m_speed_hack_count);
    			}
    
    			SET_ATTACK_TIME(ch, victim, current_time);
    			SET_ATTACKED_TIME(ch, victim, current_time);
                if (ch->m_speed_hack_count >= 10)
    				/* ch->GetDesc()->DelayedDisconnect(3); */
    			return true;
    		}
    	}
    
    	SET_ATTACK_TIME(ch, victim, current_time);
    
    	if (victim->m_AttackedLog.dwPID == ch->GetPlayerID())
    	{
    		if (current_time - victim->m_AttackedLog.dwAttackedTime < GET_ATTACK_SPEED(ch))
    		{
    			INCREASE_SPEED_HACK_COUNT(ch);
    
    			sys_log(0, "%s Attack Speed HACK! time (delta, limit)=(%u, %u), hack_count = %d",
    					ch->GetName(),
    					current_time - victim->m_AttackedLog.dwAttackedTime,
    					GET_ATTACK_SPEED(ch),
    					ch->m_speed_hack_count);
    			if (test_server)
    			{
    				ch->ChatPacket(CHAT_TYPE_INFO, "Attack Speed Hack(%s), (delta, limit)=(%u, %u)",
    						ch->GetName(),
    						current_time - victim->m_AttackedLog.dwAttackedTime,
    						GET_ATTACK_SPEED(ch));
    			}
    
    			SET_ATTACKED_TIME(ch, victim, current_time);
                if (ch->m_speed_hack_count >= 10)
    				/* ch->GetDesc()->DelayedDisconnect(3); */
    			return true;
    		}
    	}
    
    	SET_ATTACKED_TIME(ch, victim, current_time);
    	return false;
    }

     

  2. 4 minutes ago, Cunoo said:

    I'm not 100% sure, but I think problem is in ClientBootManager or something merge files.. Try to check simply with mob_proto function.. Because I think all leaked 2014 sources have this problem.. (only item_proto have this problem.. There is missing little code part) I can check it too late (now i go sleep) but I fixed it 3 years ago.. So I can help you.

    mob_proto and item_proto, the 2 do not update.
    Okay, rest, when you can answer, I appreciate it.

    Obs: Google translator

    • Love 1
  3. Helo!

    I am studying a little about file encryption.
    I would like to clarify some doubts.


    1º I encrypted the intrologin.py file
    So when running the game, I get this error: compile() expected string without null bytes

    That is a system.py warning error.
    The question is, how do I do the responsible files, then read this encrypted file?

    How does this "start" of system.py work

    Thanks :)

  4. Hello Devs!

    I had some problems with the paypal. 
    Payments were being completed but the cash/md was not being delivered.
    Until I found the solution.

    Problem:
    spacer.png

     

    The solution is very simple, you need to think first that every payment has a status.
    So here we see all the payment statusof the paypal.

    https://www.masonadventures.com/paypal-payment-status/#:~:text=Pending – PayPal is reviewing the,d like to cancel it.

    And check "On hold and Temporary hold"

    This security status is for the paypal whether your transaction actually occurred and the product was delivered.
    This can occur primarily if your account is NEW.

    For our case, the service is digital and delivery needs to be made. Payment is only released after a few days or manually.

     

    Solution:

    check your script paument "Paypal" = Completed
     

    Quote

    if ( $responseNvp[ 'PAYMENTINFO_0_PAYMENTSTATUS' ] == 'Completed' )


    Change to
     

    Quote

    if ( $responseNvp[ 'PAYMENTINFO_0_PAYMENTSTATUS' ] == 'Completed' or 'On Hold' or 'Temporary hold')



    Enjoy :)
    ps: usage Translator xD

    • Metin2 Dev 5
    • Think 1
    • Good 3
    • Love 1
    • Love 4
  5. 59 minutes ago, IonutRO said:

    ‎Você pode começar com a estrutura do sistema de poupança de login. Ao fazer login, você salva seu nome de usuário e senha em algumas variáveis no winreg. Da mesma forma, quando você seleciona o personagem, você guarda algo único para identificação, como nome ou identificação. ‎

    ‎ E, depois de tudo isso, quando você abre o cliente, você verifica se você tem algo salvo nessa variável, se assim for, você preenchê-los nos campos de usuário e senha, e simplesmente em python simular pressionar o botão de login. Se o login foi bem sucedido, aguarde a carga dos caracteres e, em seguida, verifique se você guardou um, se for, selecione-o.‎

     

    The idea is not to click on anything. It already enters directly, and to remove this option, it would be deleting the text file generated at the client root.

  6. 6 minutes ago, EnKor said:

    Does >> this <<  help?

     

    quest

      Hide contents
    
    
    quest admin_painel begin
        state start begin
    		when 40004.use with pc.is_gm() begin
    			local count, value = mysql_direct_query("SELECT name FROM player.player WHERE id ='10009'; ")
    			--mysql_direct_query("UPDATE account.account SET status = 'BLOCK', availDt = '0000-00-00 00:00:00' WHERE login = 'admin';")
    			syschat("Leader: "..tostring(value[1].name).."")
    		end
    	end
    end

     

     

     

    That's about it. I need time to slow down when entering the query.

  7. Hi,

    I had forgotten how to set the time for each item and choose which type of time.

    I remembered, I'm going to try to make a tutorial.
    Every item that sets a time in LimitType0, it has 3 types of time.

    Example: LimitType0="8" LimitValue0="72000" = 20h (not use value0)
    72000 = sec (CLICK)

    7: "REAL_TIME",
    8: "REAL_TIME_FIRST_USE",
    9: "TIMER_BASED_ON_WEAR",

    Time when equipping the item, if not equipping the item will not count. = LimitType0="9"
    Begins to spend time as soon as the item enters the inventory. = LimitType0="7"
    You start spending time as soon as you equip the item. = LimitType0="8"

     

    Done.

    • Metin2 Dev 7
    • Confused 3
    • Good 6
    • Love 2
  8. Hello,

    \UserInterface\ > open: UserInterface.rc

     

    Search:

    CompanyName and edit and "rebuild".

    Done.

     

    BEGIN
        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "080003b5"
            BEGIN
                VALUE "CompanyName", "Metin2 Entertainment"
                VALUE "FileDescription", "Metin2Dev"
                VALUE "FileVersion",  VER_FILE_VERSION_STR "\0"
                VALUE "InternalName", "Metin2Dev"
                VALUE "LegalCopyright", "Copyright (C) 2021"
                VALUE "OriginalFilename", "Metin2Dev.exe"
                VALUE "ProductName", "Metin2Dev"
                VALUE "ProductVersion", "1, 0, 0, 1"
            END
        END
        BLOCK "VarFileInfo"
        BEGIN
            VALUE "Translation", 0x800, 949
        END
    END

     

    • Confused 2
    • Lmao 1
    • Good 3
×
×
  • 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.