Trent

Indította Deadly2000, 2018-07-13, 10:26:43

Sziasztok, egy gond lenne ,hogy ha kilépek a trent vagy épp hwang templomban akkor nem enged vissza a szerver, hanem kidob mintha beragadtam volna.


És a game.core meg ezt írja

#0  0x083992dd in CAttribute::Get ()
[New Thread 2901403429014900 (LWP 101045/<unknown>)]
[New Thread 287ae57429014600 (LWP 101041/<unknown>)]
[New Thread 2901493429014300 (LWP 101040/<unknown>)]
[New Thread 2901463429014000 (LWP 100160/<unknown>)]
Cannot find new threads: generic error
(gdb) bt full
#0  0x083992dd in CAttribute::Get ()
No symbol table info available.
#1  0x080b6866 in CHARACTER_MANAGER::SpawnMob (this=0xffffc62c, dwVnum=8024,
    lMapIndex=67, x=302626, y=64382, z=0, bSpawnMotion=true, iRot=-1,
    bShow=true) at char_manager.cpp:372
        tree = <value optimized out>
        dwAttr = <value optimized out>
        is_set = <value optimized out>
        pkMob = (const CMob *) 0x29915680
        sectree = <value optimized out>
        ch = <value optimized out>
        __FUNCTION__ = "SpawnMob"
        s_isLog = false
        s_nextTime = 1531478283
#2  0x080b7066 in CHARACTER_MANAGER::SpawnMobRange (this=0xffffc62c,
    dwVnum=8024, lMapIndex=67, sx=284500, sy=61700, ex=314500, ey=101700,
    bIsException=true, bSpawnMotion=false, bAggressive=false)
    at char_manager.cpp:466
        x = 302626
        y = <value optimized out>
        ch = 0x0
        pkMob = <value optimized out>
        i = 14
---Type <return> to continue, or q <return> to quit---return
#3  0x081fb5ac in regen_spawn (regen=0x49b88e80, bOnce=false) at regen.cpp:373
        ch = <value optimized out>
        i = 0
#4  0x081fca6f in regen_load (
    filename=0xffff99f8 "locale/hungary/map/metin2_map_trent/stone.txt",
    lMapIndex=67, base_x=281600, base_y=0) at regen.cpp:704
        info = <value optimized out>
        tmp = {prev = 0x0, next = 0x0, lMapIndex = 0, type = 0, sx = 2900,
  sy = 61700, ex = 32900, ey = 101700, z_section = 0 '\0', direction = 0 '\0',
  time = 300, max_count = 1, count = 0, vnum = 8024, is_aggressive = false,
  event = {px = 0x0}, id = 0}
        regen = 0x49b88e80
        fp = (FILE *) 0x28d70ab4
        __FUNCTION__ = "regen_load"
#5  0x08205535 in SECTREE_MANAGER::Build (this=0xffffa90c,
    c_pszListFileName=0xffff9e88 "locale/hungary/map/index",
    c_pszMapBasePath=0x2901728c "locale/hungary/map")
    at sectree_manager.cpp:807
        pkMapSectree = 0x48902480
        setting = {iIndex = 67, iCellScale = 200, iBaseX = 281600, iBaseY = 0,
  iWidth = 76800, iHeight = 76800, posSpawn = {x = 287300, y = 5700, z = 0}}
        fp = (FILE *) 0x28d709c8
        buf = "67 metin2_map_trent\000\000wer1\000\000n_13\000\000-\231---\bB\b-       

Módosítottál esetleg mapindexet vagy kordinátákat, vagy talán raktál be másik mappot? lehet összeérnek.

Esetleg valakinek meglenne az a program amivel lehet ellenőrizni a mappokat ,hogy össze érnek -e mert akárhogy keresem nem találom


Köszönöm, és nem ütközik semmivel :s

2018-07-13, 18:11:21 #5 Utolsó szerkesztés: 2018-07-13, 18:14:22 Szerző: K3zX
Amúgy azt tisztázzuk hogy beragad a karakter, vagy leáll a szerver?
Mert mindkettőről beszélsz, ha van game.core akkor a szerver (az adott ch/ch core-ja) leállt,
ha ez ch1 2. core-ja akkor karaktercseréig még el lehet jutni, mert a login az 1. core-on van.

A biztonság kedvéért vedd ki a regen.txt-ket, stone.txt-ket, és próbálj úgy kijelentkezni ott.

A debug megemlíti a char_manager.cpp-t is (2 sorát), abban miket módosítgattál?

Nem áll le a szerver csupán kivág ,ha karakter választottam.
A csatorna nincs több corera rakva 1 en fut.

Akkor hogy van neked game.core-od?
Nem lehet hogy az a game.core nem is aktuális, régi?

2018-07-13, 19:03:55 #8 Utolsó szerkesztés: 2018-07-13, 19:15:50 Szerző: Deadly2000
Ez aktuális, de megnézem a forrásba még és jelezek

Üzenet összefésülés: 2018-07-13, 19:07:23

if (!(pkMob->m_table.bType == CHAR_TYPE_NPC || pkMob->m_table.bType == CHAR_TYPE_WARP || pkMob->m_table.bType == CHAR_TYPE_GOTO) || mining::IsVeinOfOre (dwVnum))
{
LPSECTREE tree = SECTREE_MANAGER::instance().Get(lMapIndex, x, y);

if (!tree)
{
sys_log(0, "no sectree for spawn at %d %d mobvnum %d mapindex %d", x, y, dwVnum, lMapIndex);
return NULL;
}

DWORD dwAttr = tree->GetAttribute(x, y);

bool is_set = false;

if ( mining::IsVeinOfOre (dwVnum) ) is_set = IS_SET(dwAttr, ATTR_BLOCK);
else is_set = IS_SET(dwAttr, ATTR_BLOCK | ATTR_OBJECT);

if ( is_set )
{
// SPAWN_BLOCK_LOG
static bool s_isLog=quest::CQuestManager::instance().GetEventFlag("spawn_block_log");
static DWORD s_nextTime=get_global_time()+10000;

DWORD curTime=get_global_time();

if (curTime>s_nextTime)
{
s_nextTime=curTime;
s_isLog=quest::CQuestManager::instance().GetEventFlag("spawn_block_log");

}

if (s_isLog)
sys_log(0, "SpawnMob: BLOCKED position for spawn %s %u at %d %d (attr %u)", pkMob->m_table.szName, dwVnum, x, y, dwAttr);
// END_OF_SPAWN_BLOCK_LOG
return NULL;
}

if (IS_SET(dwAttr, ATTR_BANPK))
{
sys_log(0, "SpawnMob: BAN_PK position for mob spawn %s %u at %d %d", pkMob->m_table.szName, dwVnum, x, y);
return NULL;
}
}


Ez a sor van a char_managerbe

DWORD dwAttr = tree->GetAttribute(x, y);

Üzenet összefésülés: 2018-07-13, 19:15:50

Jobban átnéztem amit írt és amire utalt, az lehetett a gond ,hogy 2x ugyan arra a kordinátára volt a stone.txt be híva metin
tehát

m 60 161 150 200 0 0 3650s 100 1 8024
m 179 817 150 200 0 0 3650s 100 1 8024
m 230 194 200 150 0 0 3600s 100 1 8025
m 366 292 200 150 0 0 3750s 100 1 8025
m 60 161 150 200 0 0 3650s 100 1 8024
m 179 817 150 200 0 0 3650s 100 1 8024
m 230 194 200 150 0 0 3600s 100 1 8025
m 366 292 200 150 0 0 3750s 100 1 8025

Akkor egyelőre csak annyit tudok még javasolni a regen/stone kiszedésén kívül hogy csinálj új server_attr-t a mappoknak WE-vel, mert ez meg arra utal.

Szerintem ez volt a gond mert 2 mapban ugyan így volt, most átírtam őket szóval köszönöm