• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

Teleport from the Arena to Lorenchia constantly

Status
Not open for further replies.
Newbie Spellweaver
Joined
Jun 6, 2016
Messages
33
Reaction score
4
Hello, friends!
I am use this server file, source codes: IGCN - MuEmu Server Season 12 ep 2 + Sources
In general, I reached the settlement of the arena, filled up to half, and I can’t do the second half because it constantly teleports me to Lorencia. But before that, he throws back a couple of times to the initial position. I understand that somewhere there is a check for speed-hack, but so far I have not been able to once-in-law. My friends I ask you for help from the jack of the Ragezone club

PS: I apologize for my English. For the translation, I took advantage of Translate.google.com



I launched into debugging and finally found it, tell me how to fix pliz.

GameServer->user.cpp->BOOL gObjCheckXYMapTile(LPOBJ lpObj, int iDbgName);
Code:
...
    BYTE attr = MapC[mapnumber].GetAttr(x, y);

    if ( (attr&4) == 4 || (attr&8) == 8 )
    {
        BYTE attr2 = MapC[mapnumber].GetAttr(x+2, y);
        BYTE attr3 = MapC[mapnumber].GetAttr(x, y+2);
        BYTE attr4 = MapC[mapnumber].GetAttr(x-2, y);
        BYTE attr5 = MapC[mapnumber].GetAttr(x, y-2);

        if ( attr2 > 1 && attr3 > 1 && attr4 > 1 && attr5 > 1 )
        {
g_Log.Add("[ CHECK POSITION ] DbgName[%d] [%s][%s] Map[%d]-(%d,%d) Invalid location causes to force to move",iDbgName,lpObj->AccountID, lpObj->Name, lpObj->MapNumber, lpObj->X, lpObj->Y);
            
            PMSG_TELEPORT pMsg;

            if (IT_MAP_RANGE(lpObj->MapNumber))
            {
                if (g_IT_Event.GetIllusionTempleState(lpObj->MapNumber) == 2)
                {
                    BYTE btTeam = g_IT_Event.GetUserTeam(lpObj->MapNumber, lpObj->m_Index);

                    if (btTeam == 0xFF)
                    {
                        pMsg.MoveNumber = 17;
                    }

                    else if (btTeam == 1)
                    {
                        pMsg.MoveNumber = lpObj->MapNumber + 109;
                    }

                    else if (btTeam == 0)
                    {
                        pMsg.MoveNumber = lpObj->MapNumber + 103;
                    }

                    else
                    {
                        pMsg.MoveNumber = 17;
                    }
                }

                else
                {
                    pMsg.MoveNumber = 17;
                }

                gObjMoveGate(lpObj->m_Index, pMsg.MoveNumber);
                return TRUE;
            }

            else if (lpObj->MapNumber == MAP_INDEX_DEVILSQUARE_FINAL && g_DevilSquareFinal.m_btDSFCurState == 2)
            {
                if (g_DevilSquareFinal.GetUserTeam(lpObj->m_Index) == -1)
                {
                    pMsg.MoveNumber = 17;
                }

                else
                {
                    pMsg.MoveNumber = 474;
                }

                gObjMoveGate(lpObj->m_Index, pMsg.MoveNumber);
                return TRUE;
            }

            else
            {
                gObjMoveGate(lpObj->m_Index, 17);
                return TRUE;
            }
        }
}
  return TRUE;


Code:
gObjMoveGate(lpObj->m_Index, pMsg.MoveNumber); [COLOR=#008000]// this is  move my to lorencia ))[/COLOR]
return TRUE;
 
Joined
Oct 8, 2006
Messages
740
Reaction score
289
The problem can actually be from the terrain file. You are using the same terrain file in the server and client? Both have to be the same, otherwise the server can't calculate the "geodata" of the map. By bad position or missing tiles in Terrain file, the server side calculation can trigger the "Safe Teleporting" mechanism just to prevent players not getting stuck or abuse such locations. That's why you are getting teleported.

In the client/Data folder, search for the World folder of specific map and copy and replace the .att file from the server. (Terrain7.att I think is for Arena, but not sure).
 
Upvote 0
Newbie Spellweaver
Joined
Jun 6, 2016
Messages
33
Reaction score
4
The problem can actually be from the terrain file. You are using the same terrain file in the server and client? Both have to be the same, otherwise the server can't calculate the "geodata" of the map. By bad position or missing tiles in Terrain file, the server side calculation can trigger the "Safe Teleporting" mechanism just to prevent players not getting stuck or abuse such locations. That's why you are getting teleported.

In the client/Data folder, search for the World folder of specific map and copy and replace the .att file from the server. (Terrain7.att I think is for Arena, but not sure).

Thanks for the answer!
Do you mean to take this file from the client and insert into the server with a replacement?
Is everything right? - But in the client, if I am not mistaken, the name of the files goes, the server_mar +1 will need to be renamed in accordance with server names or their names are identical?

SERVER SIDE
Dezi - Teleport from the Arena to Lorenchia constantly - RaGEZONE Forums



CLIENT SIDE
Dezi - Teleport from the Arena to Lorenchia constantly - RaGEZONE Forums


I apologize for annoyance



I fulfilled your recommendation, unfortunately did not help.
So far I have made a crutch
Code:
    if ((attr & 4) == 4 || (attr & 8) == 8)
    {
        BYTE attr2 = MapC[mapnumber].GetAttr(x + 2, y);
        BYTE attr3 = MapC[mapnumber].GetAttr(x, y + 2);
        BYTE attr4 = MapC[mapnumber].GetAttr(x - 2, y);
        BYTE attr5 = MapC[mapnumber].GetAttr(x, y - 2);

        if (lpObj->MapNumber == 6) { //My Crutch

            return FALSE;
        }
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Jun 6, 2016
Messages
33
Reaction score
4
Yes, you can do that bypass in the source, but not sure if it's gonna have consequences.

Try testing the map with 2-3 characters at once.

Thank you, I'll try it! How will the result be published
 
Upvote 0
Newbie Spellweaver
Joined
Jun 6, 2016
Messages
33
Reaction score
4
Yes, you can do that bypass in the source, but not sure if it's gonna have consequences.

Try testing the map with 2-3 characters at once.

In general, as you described the Church. I will listen to the advice to resolve this issue
 
Upvote 0
Newbie Spellweaver
Joined
Jun 6, 2016
Messages
33
Reaction score
4
i am soryy!
I meant your advice, by solving my problem! Google translation works miracles)
 
Upvote 0
Joined
May 26, 2009
Messages
17,312
Reaction score
3,222
i am not sure i understand right but if in your files in arena map you get randomly teleported to other maps it should usually something be in gate.txt / gate file about arena coords line that u must remove, but we need more screenshots to see where exactly u get the issue or a simple video. Other than that u get any error in gameserver?
 
Upvote 0
Newbie Spellweaver
Joined
Jun 6, 2016
Messages
33
Reaction score
4
i am not sure i understand right but if in your files in arena map you get randomly teleported to other maps it should usually something be in gate.txt / gate file about arena coords line that u must remove, but we need more screenshots to see where exactly u get the issue or a simple video. Other than that u get any error in gameserver?

Here's a video





Gate.txt extract from Lang.mpr
 

Attachments

  • Warps.zip
    9.8 KB · Views: 10
  • movereq.7z
    997 bytes · Views: 15
  • Gate.zip
    2.4 KB · Views: 11
  • Gate.txt
    30.4 KB · Views: 13
Last edited:
Upvote 0
Joined
Oct 8, 2006
Messages
740
Reaction score
289
Interesting. I saw the video, and there's a problem, because the C1 5 ... error is a client to server data packet which maybe doesn't exist. Not sure why it would send that because I expected to see the CHECK POSITION error, but I will try to take a look to see what's with that packet.

The second error (CHECK POSITION error) is indeed something regarding the position calculation from the terrain file (Terrain .ATT file). The attributes (attr2,3,4,5) are probably the map tiles at your character position cause I think it needs to load the map tiles in all direction.

I've seen the Gate.txt and other files you've attached and seems that these are correctly configured.

So, yes, I think the problem is in your Arena's Terrain ATT map file.
There are 2 files in your client. It's EncTerrain and Terrain.

Try these:
First, try to replace Terrain7 (server) with EncTerrain (rename it to Terrain7). If GS is not opening, then go for the second.
Second, try to replace Terrain7 (server) with Terrain7 from the client. Make sure you make back-ups for your files.

And add a log below: "g_Log.Add("[CHECK POSITION]"....)"
Code:
g_Log.Add("[ CHECK ATTR2,3,4,5] Attr2:%d - Attr3:%d - Attr4:%d - Attr5:%d", attr2, attr3, attr4, attr5);[COLOR=#666666]
[/COLOR]



 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Jun 6, 2016
Messages
33
Reaction score
4
Did all your actions! In the first two replacements, I was teleporter from the first step in Lorenicia, and when I hoped it from the server to the client with the renaming of the file, the problem again became the same

Dezi - Teleport from the Arena to Lorenchia constantly - RaGEZONE Forums
 
Upvote 0
Joined
May 26, 2009
Messages
17,312
Reaction score
3,222
what it looks like its that terrain server side.att and client side are not matching, so it gives that error when it moves u to lorencia Dezi you have to convert arena encterrain7.att to server side with number 6 map and save it to .att then add in your igcdata,terrain folder as 00_lorencia.att ore lorencia.att (replace the existing file) then restart the server and client and recheck. Alternatively if there is config to switch 'check position' of player it should be somewhere in the files, like AntiHack.cfg in data for example or IGC_Common.cfg

for example in antihack cfg try change

; MOVING MAP HACK CHECK

MovingHackCheck = 1
MovingHackDistance = 15

disable it to 0 and restart gs to see if thats the config make u move to lore (because ur server/client terrain dont match)
 
Last edited:
Upvote 0
Status
Not open for further replies.
Back
Top