Jump to content

Solving a very old problem what most people ignore


TMP4
Go to solution Solved by ElRenardo,

Recommended Posts

  • Contributor

Version of Files : 40k Source (clean)

Bugfix in this message: Here

 

 

Hi,

 

There is an old error what i want to solve.

 

In the second/third core of channels, i always get a syserr like this:

SYSERR: Apr 29 15:43:59.406352 :: Show: cannot find sectree by 983887x271709 mapindex 41
SYSERR: Apr 29 15:43:59.406359 :: Show: cannot find sectree by 984077x271700 mapindex 41
SYSERR: Apr 29 15:43:59.406365 :: Show: cannot find sectree by 984242x271714 mapindex 41
SYSERR: Apr 29 15:43:59.406377 :: Show: cannot find sectree by 984415x271715 mapindex 41
SYSERR: Apr 29 15:43:59.406383 :: Show: cannot find sectree by 984595x271710 mapindex 41
SYSERR: Apr 29 15:43:59.406390 :: Show: cannot find sectree by 984766x271716 mapindex 41
SYSERR: Apr 29 15:43:59.406396 :: Show: cannot find sectree by 984912x271714 mapindex 41
SYSERR: Apr 29 15:43:59.406403 :: Show: cannot find sectree by 985078x271716 mapindex 41
SYSERR: Apr 29 15:43:59.406409 :: Show: cannot find sectree by 983754x272599 mapindex 41
SYSERR: Apr 29 15:43:59.406416 :: Show: cannot find sectree by 984052x272602 mapindex 41
SYSERR: Apr 29 15:43:59.406423 :: Show: cannot find sectree by 984617x274106 mapindex 41
SYSERR: Apr 29 15:43:59.406441 :: RegenNPC: Cannot create guild npc
SYSERR: Apr 29 15:43:59.406456 :: Show: cannot find sectree by 983951x274065 mapindex 41
SYSERR: Apr 29 15:43:59.406470 :: RegenNPC: Cannot create guild npc


I'm 99.99% sure it is because of the guild land objects and npcs. I only have a guild land sold in blue map1 (==41, that's why it only say mapindex 41 in syserr)

I think you guessed what is the problem here, the mapindex 41 is in the first core, the second core want to load that index and create guild npc + objects there but the index is not there, it is only available in the first core.

 

I think most people say "just ignore this syserr",  but i don't want to.

 

Any idea to solve this problem? I dont want to copy mapindex 41 (blue)  1 (red)  21 (yellow) to the second cores since then there can be seperated map1s for cores and that can cause troubles for players.  Like 2 people in the same map1 but they may not see each other because one is in first core's map1, other is in second core's map1.

 

Before you start typeing "I don't have this problem" please read the topic. You must have at least one guild land sold!

Edit: To be clear, you had to place some object or guild npc to produce that syserr.

 

Thanks, Sincerly,
TMP4

Edited by Gurgarath
  • Metin2 Dev 6
  • Good 2
  • Love 5
Link to comment
Share on other sites

  • Contributor

More inform: I just removed the sold guild land and the syserr disappeard - as expected.

 

I was curious how old this issue is and i had time, so i picked a very old serverfile "1675 daroo" (year 2010?) to check. 

The syserr came to the second core as soon as i bought a guild land and placed some object.

 

Edit: To be clear, you had to place some object or guild npc to produce that syserr.

Edited by TMP4
Link to comment
Share on other sites

  • Contributor

Okey i make it short:

 

When you buy a guild land, the game want to load the objects and guild npcs to every core. But map1 where the guild land are in the core1, so core2 will get those errors since there's no map1 (index=41) in core2. @WeedHex

Edited by TMP4
Link to comment
Share on other sites

  • Premium
1 minute ago, TMP4 said:

Okey i make it short:

 

When you buy a guild land, the game want to load the objects and guild npcs to every core. But map1 where the guild land are in the core1, so core2 got those errors. @WeedHex

cannot find sectree by 983887x271709 mapindex 41

 TRY:

/warp 983800 271700

 

Btw:

...

    m_chNPC = CHARACTER_MANAGER::instance().SpawnMob(m_pProto->dwNPCVnum,
            GetMapIndex(),
            GetX() + newX,
            GetY() + newY,
            GetZ(),
            false,
            (int)m_data.zRot);


    if (!m_chNPC)
    {
        sys_err("Cannot create guild npc");
        return;
    }

....
Link to comment
Share on other sites

  • Premium
On 4/30/2020 at 2:00 PM, TMP4 said:

Okey i make it short:

 

When you buy a guild land, the game want to load the objects and guild npcs to every core. But map1 where the guild land are in the core1, so core2 will get those errors since there's no map1 (index=41) in core2. @WeedHex

Yes but it can't load anything cuz your sectree is dumb.

 

Edited by WeedHex
Link to comment
Share on other sites

  • Premium
On 4/30/2020 at 2:08 PM, TMP4 said:

Do you have a localhost server with more then 1 core/ch?

 

Buy a guild land, place some object and a guild npc, and go to the second core's syserr. If your map1 is in core1, go to core2's syserr and vica versa.

Then you can see with your eyes :D

😥😥

Edited by WeedHex
  • Lmao 1
Link to comment
Share on other sites

  • Contributor

  

16 minutes ago, WeedHex said:

brain.exe

 

@WeedHex Sorry but now i gonna be honest with you! Your're so dumb when understanding the problem.

The game want to load guild npcs and objects to every core. But that is not needed, map1 (index 41) is only at core 1.

That's why it's cannot find the sectree at core 2, because it only exists in core1.

 

I can't exlain you more :( There's no problem with the sectrees or server_attrs. The syserr only appears in core 2.

 

@ElRenardo thanks i gonna test it soon!

Working, thanks!

Edited by TMP4
  • Love 2
Link to comment
Share on other sites

  • 1 year later...
  • Contributor
12 hours ago, SDlongju2 said:

too much talk here guys but solution is easy nothing to understand , i tested myself just 

Step 1 Open config File on core2

Step 2 Write there on MAP_ALLOW: number : 41

As you say map 41 is on core 1 but not on core 2 

Easy and logical:)

You'll have 2 instance of map1 (41) if you do that. So players in map1 may not see each other. If somebody goes from core1's any map to map1 (41) then he will not see the players who goes from core2's any map to map1 (41).

Edited by TMP4
  • Metin2 Dev 2
Link to comment
Share on other sites

  • 2 years later...
On 4/30/2020 at 2:13 PM, ElRenardo said:

Hey,

 

You are right TMP4, there is a problem at the load of guild land npc.

El núcleo de la base de datos envía todas las coordenadas del npc a los canales y no hay comprobación de si el índice del mapa del npc está en el núcleo que recibe los datos.

 

En building.cpp, puede modificar la función LoadObject:

 

bool CManager::LoadObject(TObject * pTable, bool isBoot)
{
	if (!map_allow_find(pTable->lMapIndex))
		return false;
[...]

 

¡Buena suerte en tus pruebas!

To solve the problem, then comment those two lines, example: 
//if (!map_allow_find(pTable->lMapIndex))
// return false;

  • kekw 4
  • Sad 1
Link to comment
Share on other sites

Announcements



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