Jump to content

⚡FlasH⚡

Banned
  • Posts

    66
  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by ⚡FlasH⚡

  1. (
    //cmd.cpp
    //Search
    struct command_info cmd_info[] =
    
    //Add Before
    ACMD(do_online);
    
    //Search	
    	{ "\n", NULL, 0, POS_DEAD, GM_IMPLEMENTOR }
    //Add Before
    	{ "online", do_online, 0, POS_DEAD, GM_LOW_WIZARD },
    )
    
    (
    //cmd_gm.cpp
    //Search
    ACMD(do_who)
    
    //Add After
    ACMD(do_online)
    {
    	/// Phase 1 - Count Local Core
    	const DESC_MANAGER::DESC_SET& c_set_desc = DESC_MANAGER::instance().GetClientSet();
    	DESC_MANAGER::DESC_SET::const_iterator it = c_set_desc.begin();
    
    	DWORD dwLoginCount = 0;
    	while (it != c_set_desc.end())
    	{
    		LPDESC d = *(it++);
    		if (d->GetCharacter())
    			++dwLoginCount; // count login count in core
    	}
    	/// Phase 2 - Count Peer PID Connections
    	dwLoginCount = dwLoginCount + (int)P2P_MANAGER::instance().GetPIDCount();
    
    	ch->ChatPacket(CHAT_TYPE_INFO, "Total Online: [%d] ", dwLoginCount);
    }
    )
    
    (
    //p2p.h
    //Search
      	int GetCount();
    //Add after
    	int GetPIDCount() { return m_map_pkCCI.size(); };
    )
     

     

    252051BlueInfo.pngBetter than to involve a packet request..

     

     

    • Metin2 Dev 12
    • Good 5
    • Love 5
  2. You can use :

    Install them first: 

    • pkg install tcptrack -  Here u will see all connections 

    Usage:  tcptrack -i re0 (your network , ifconfig to see your name)

    unknown.png

    • pkg install nload - Bandwidth monitor.

    Thats an old school commands.

     

    Here u have new one with all tools u need to monitor ur server.

    • pkg install bpytop 

    Usage: bpytop in console.

    https://metin2.download/picture/DI9OMuFgSnwvW5MEgLHxf93cN3MNzmcz/.gif

    • Love 1
  3. Search this in char.cpp

    	case POINT_EXP_DOUBLE_BONUS: // 71
    	case POINT_GOLD_DOUBLE_BONUS: // 72
    	case POINT_ITEM_DROP_BONUS: // 73
    	case POINT_POTION_BONUS: // 74
    		if (GetPoint(type) + amount > 100) //here 100 is the maximum amount of % exp player get it
    		{
    			sys_err("BONUS exceeded over 100!! point type: %d name: %s amount %lld", type, GetName(), amount);
    			amount = 100 - GetPoint(type);
    		}

     

  4.  

    OFF: This explain everything  "There are no new sellers because in general they are on the forum only to sell and I'm not interested. It has to be win-win." That forum had to be FREE only if they want to buy VIP or ADS u don't have the right to charge them for their sells content.

     

    Seems no one of u read carefully what i say. didn't say anything ab a "middleman "  i'm not agree with that...basically the "middleman " will have everything for FREE.

    What i means is a transaction between seller-buyers through a app forums where only the seller and buyer have access bcoz of "Trade request" .

     

    Quote

    Do you want to see new things?

    -Yes

    Make a Trade request features how M2D have, if they want to buy, buy through forum and if the seller will try to scam, he will be banned.

    - What i'm meaning through forum?

    After the payment was made the seller will accept his Trade request and give him the files link (https://file.io/) which after download is removed.

    Or to be safe the buyer have 24h time to download the content ,after 24h the link will be removed even wasn't downloaded. But for that features u have to use their API (https://file.io/#api)

    In case of chargeback idk...how many trade request u have that's mean u are a Trusted seller / buyer.

     

    Regards.

    • Love 1
    • Do you think the forum lacks something?

    - i'm not sure

    • Do you want to see new things?

    -Yes

    Make a Trade request features how M2D have, if they want to buy, buy through forum and if the seller will try to scam, he will be banned.

    - What i'm meaning through forum?

    After the payment was made the seller will accept his Trade request and give him the files link (https://file.io/) which after download is removed.

    Or to be safe the buyer have 24h time to download the content ,after 24h the link will be removed even wasn't downloaded. But for that features u have to use their API (https://file.io/#api)

    In case of chargeback idk...how many trade request u have that's mean u are a Trusted seller / buyer.

    • What do you want to see on Metin2 Dev?

    Let ppl selling metin2 stuffs. many of them are interested in the sell/buy systems , and bcoz of new "rules" many of them leave the community.

    And unbanned unfair ban..
     

     

    • Good 6
  5. First u need the IsLowGM function.

    //char.cpp
    add under
    BOOL CHARACTER::IsGM() const
    
    this
    BOOL CHARACTER::IsLowGM() const
    {
    	return m_pointsInstant.gm_level > GM_PLAYER && m_pointsInstant.gm_level > GM_HIGH_WIZARD && m_pointsInstant.gm_level < GM_IMPLEMENTOR;
    }
    
    //char.h
    add under
    BOOL 			IsGM() const;
    
    this
    BOOL			IsLowGM() const;

    now let's restrict some actions for GM

    //char.cpp
    void CHARACTER::PartyInvite(LPCHARACTER pchInvitee)
     add under
     	else if (pchInvitee->IsBlockMode(BLOCK_PARTY_INVITE))
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<ÆÄƼ> %s ´ÔÀÌ ÆÄƼ °ÅºÎ »óÅÂÀÔ´Ï´Ù."), pchInvitee->GetName());
    		return;
    	}
    	
    this
    
    	else if (IsLowGM() == true && pchInvitee->IsLowGM() == false)
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<Party> You cannot send a party invitation to a player!"));
    		return;
    	}
    	else if (IsLowGM() == false && pchInvitee->IsLowGM() == true)
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<Party> You cannot send a party invitation to a GameMaster!"));
    		return;
    	}
    
    void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount)
    add
    	if (IsLowGM())
    	{
    		ChatPacket(CHAT_TYPE_INFO, "You can't open shop! You are GM!");
    		return;
    	}
    //end char.cpp
    
    //exchange.cpp
    bool CHARACTER::ExchangeStart(LPCHARACTER victim)
    add
    	if (!IsLowGM() && victim->IsLowGM())
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot trade items with a Game Master."));
    		return false;
    	}
    	if (IsLowGM() && !victim->IsLowGM())
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Game Masters cannot trade items with players."));
    		return false;
    	}
    //end exchange.cpp
    
    //shop_manager.cpp
    void CShopManager::Buy(LPCHARACTER ch, BYTE pos)
    add
    	if (ch->IsLowGM() && pkShop->IsPCShop())
    	{
    		ch->ChatPacket(CHAT_TYPE_INFO, "GameMasters cannot buy items from players' shops.");
    		return;
    	}
    //end shop_manager.cpp
    
    and for offlineshop
    //offlineshop_manager.cpp
    void COfflineShopManager::Buy(LPCHARACTER ch, BYTE pos)
    add
    	if (ch->IsLowGM())
    	{
    		ch->ChatPacket(CHAT_TYPE_INFO, "GameMasters cannot buy items from players' shops.");
    		return;
    	}
    //end offlineshop_manager.cpp

    GL ✌?️

    • Confused 2
    • Love 3
  6. u can restrict GM without a sql query.....?

    e.g 1 of them..

    bool CHARACTER::ExchangeStart(LPCHARACTER victim)
    {
    	...
    
    	if (!IsLowGM() && victim->IsLowGM())
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You cannot trade items with a Game Master."));
    		return false;
    	}
    	if (IsLowGM() && !victim->IsLowGM())
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Game Masters cannot trade items with players."));
    		return false;
    	}
    	
    	...
    }

    u dont need to restrict all GM grade , but if u want.. just change IsLowGM >> IsGM

    • Love 1
  7. On 5/23/2020 at 5:02 AM, MentaLL said:

     

    And what about OVH Anti ddos? Is really good as they said?

     

     

     

    i not sure but might be weak the protection against ddos , due to some research. Rubinum planted to open server on 22-05, but someone ddos them and they had to delayed the opened.

     

    Spoiler
    • Rubinum2 - OvH Poland / France
      ISP OVH SAS
      Organization Black Alex
      Country pl.png Poland (PL)

    and they had say "unexpected hardware issues have occurred" and is not opened yet, after some hours they say "currently we are still working on the situation in order to avoid attacks that can still occur" if this is a proof of OvH management against Ddos attacks..yeah i can say they are weak ? or maybe it's Rubinum fault ?

    • Confused 1
    • Love 1
  8. 2 hours ago, HITRON said:

    I don't know if is that is true or just rumors

    i think is just rumors, let's take some servers online for some years,

    Spoiler

     

    • Wom2 - OvH Poland / France 
      ISP OVH SAS
      Organization OVH Sp. z o. o
      Country pl.png Poland (PL)
    • Rodnia - OvH France / France
      ISP OVH SAS
      Organization OVH
      Country fr.png France (FR)
    • Origins - OvH Germany?? / France
      ISP OVH SAS
      Organization OVH GmbH
      Country de.png Germany (DE)
    • Xaleas - OvH Lithuania / France
      ISP OVH SAS
      Organization Tyler Peter
      Country lt.png Lithuania (LT)
    • Nova2 - OvH France / France
      ISP OVH SAS
      Organization OVH
      Country fr.png France (FR)
    • Calliiope - bcoz he always answered me and nicely i'll not post the new informations.?

     

    • + same OvH
    • + same OvH

     

    and yeah might be just a "rumor", ...they are still online.

     

    P.S : Sorry for this info but i'm not the only one who can find this✌?️

    • Love 1
  9. just press download and the video will play in browser

    https://metin2.download/picture/r3F9504x09DVmF8K988YXgTtGTP6KMUj/.gif 

     

    see debug log when the BINARY_NEW_AddAffect 20 0 0 4 come but after Remove Affect 20 0 come with a delay thats remove the effect of 2 th skill so i think thats the problem.

     

    PythonNetworkStreamPhaseGame.cpp

     

    BINARY_NEW_AddAffect

    bool CPythonNetworkStream::RecvAffectAddPacket()
    {
    	TPacketGCAffectAdd kAffectAdd;
    	if (!Recv(sizeof(kAffectAdd), &kAffectAdd))
    		return false;
    
    	TPacketAffectElement & rkElement = kAffectAdd.elem;
    	if (rkElement.bPointIdxApplyOn == POINT_ENERGY)
    	{
    		CPythonPlayer::instance().SetStatus (POINT_ENERGY_END_TIME, CPythonApplication::Instance().GetServerTimeStamp() + rkElement.lDuration);
    		__RefreshStatus();
    	}
    	PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_NEW_AddAffect", Py_BuildValue("(iiii)", rkElement.dwType, rkElement.bPointIdxApplyOn, rkElement.lApplyValue, rkElement.lDuration));
    
    	CPythonPlayer::instance().AddAffect(rkElement.dwType, kAffectAdd.elem); //martysama source come without this line
    
    	return true;
    }

    BINARY_NEW_RemoveAffect

    bool CPythonNetworkStream::RecvAffectRemovePacket()
    {
    	TPacketGCAffectRemove kAffectRemove;
    	if (!Recv(sizeof(kAffectRemove), &kAffectRemove))
    		return false;
    
    	PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_NEW_RemoveAffect", Py_BuildValue("(ii)", kAffectRemove.dwType, kAffectRemove.bApplyOn));
    
    	CPythonPlayer::instance().RemoveAffect(kAffectRemove.dwType, kAffectRemove.bApplyOn); //martysama source come without this line
    
    	return true;
    }

     

    • Love 1
  10. 19 hours ago, r00t3r said:

    I think is not a problem from any sistem.. i think is an problem with animations or i dont know, this strange visual bug is also present on all servers :)

    "also present on all servers" thats literally a NO, there are many who already showed they didnt have this problem me either.

    i can say just to check the animation with dragon. maybe that animation into a conflict with skill animation and can be a visual bug.

     

    • Love 1
  11. 2 hours ago, metho said:

    I wrote with Ionut and thanks to him he already released a full solution for this here: https://github.com/IonutPopescuRO/Metin2CMS/commit/b81859d7962d3054d18f1cbebff9216d3754f507

     

    He already fixed this long time ago

    Spoiler

    43e96ef31f8550e834be31aa711bd983.gif

     

    But what about Encoding, cus in his commit is nothing about this ?

    $mail->Encoding = 'base64';

     

  12. 40 minutes ago, tierrilopes said:

    You need to check mysql.err and .log, it may have some relevant info explaining its crash

    Also (because you said it works fine with just one ch and when the others are turned on it starts that behavior) it can be a shortage of resources issue, in this case a ram bottleneck.

    how he said  "it can be a shortage of resources issue, in this case a ram bottleneck." or u can check SWAP memory and if is 1GB u can add 4GB is better ,or if is 100% that can cause mysql crash

    Command:

    for gigabytes

    swapinfo -g

    for megabytes

    swapinfo -m
×
×
  • 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.