• 🎉 Hey there! I've just launched my brand new server voting platform — Metin2 P Servers 🚀

Member
Oct
Threads
0
80
5
8
HubMoney
479
Synchronizes the character's position with the server and can be used to free them if they get stuck.
If there is no available position within the available distance, the character will be warped to the village.
View attachment 1994


[Hidden content]

Credits; Owsap



i put here some fix for differents versions:



edit1: if someone don't have
Python:
    def __del__(self):
        ui.ScriptWindow.__del__(self)
        if app.OWSAP_ESCAPE:
            del self.tooltip

you cand add on def Destroy:
Python:
    def Destroy(self):
        self.ClearDictionary()
    
        if self.gameOptionDlg:
            self.gameOptionDlg.Destroy()
        
        if self.systemOptionDlg:
            self.systemOptionDlg.Destroy()
       if app.OWSAP_ESCAPE: 
             del self.tooltip
        self.__Initialize()

edit2: MIssing some functions that are used by uiEscapePopup.py
uicommon.py:
Python:
class QuestionDialog(ui.ScriptWindow):
    def GetTextSize(self):
        if self.textLine:
            return self.textLine.GetTextSize()
        return (0,0)
          
    def SetLineHeight(self, Height):
        self.textLine.SetLineHeight(Height)

also player.SHOW_UI_WINDOW_LIMIT_RANGE is missing
Python:
    def __EscapePopupRangeCheck(self):
        SHOW_UI_WINDOW_LIMIT_RANGE = 1000
        (x, y, z) = player.GetMainCharacterPosition()
        # if abs(x - self.escape_window_open_x) > player.SHOW_UI_WINDOW_LIMIT_RANGE or abs(y - self.escape_window_open_y) > player.SHOW_UI_WINDOW_LIMIT_RANGE:
        if abs(x - self.escape_window_open_x) > SHOW_UI_WINDOW_LIMIT_RANGE or abs(y - self.escape_window_open_y) > SHOW_UI_WINDOW_LIMIT_RANGE:
            chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_ESCAPE_FAR_DISTANCE)
            self.Close()


But maybe some people have a few problems, because don't have functions or like that.
The first, you need to change certain functions in Uicommon.py:
Python:
class QuestionDialog(ui.ScriptWindow): def GetTextSize(self): if self.textLine: return self.textLine.GetTextSize() return (0,0) def SetLineHeight(self, Height): self.textLine.SetLineHeight(Height)

and uiEscapePopoup.py:
Python:
def __EscapePopupRangeCheck(self): SHOW_UI_WINDOW_LIMIT_RANGE = 1000 (x, y, z) = player.GetMainCharacterPosition() # if abs(x - self.escape_window_open_x) > player.SHOW_UI_WINDOW_LIMIT_RANGE or abs(y - self.escape_window_open_y) > player.SHOW_UI_WINDOW_LIMIT_RANGE: if abs(x - self.escape_window_open_x) > SHOW_UI_WINDOW_LIMIT_RANGE or abs(y - self.escape_window_open_y) > SHOW_UI_WINDOW_LIMIT_RANGE: chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.OPTION_ESCAPE_FAR_DISTANCE) self.Close()

If you have the problem with;
Python:
net.SendCommandPacket("/escape")

You must change it with:
Python:
net.SendChatPacket("/escape")

thx