Jump to content

Hunger

Premium
  • Posts

    356
  • Joined

  • Last visited

  • Days Won

    3
  • Feedback

    0%

Community Answers

  1. Hunger's post in Emoji system bug was marked as the answer   
    https://metin2.dev/board/topic/20397-guideemoji-in-textline/
  2. Hunger's post in Inventory Bug was marked as the answer   
    There should be a refresh also in interfacemodule.py. Check that.
  3. Hunger's post in [PROBLEM] Rank points show alignment won´t show up was marked as the answer   
    Replace the entire ImageBox class in ui.py with this:
    class ImageBox(Window): def __init__(self, layer = "UI"): Window.__init__(self, layer) self.eventDict={} self.eventFunc = {"mouse_click" : None, "mouse_over_in" : None, "mouse_over_out" : None} self.eventArgs = {"mouse_click" : None, "mouse_over_in" : None, "mouse_over_out" : None} def __del__(self): Window.__del__(self) self.eventFunc = None self.eventArgs = None def RegisterWindow(self, layer): self.hWnd = wndMgr.RegisterImageBox(self, layer) def LoadImage(self, imageName): self.name=imageName wndMgr.LoadImage(self.hWnd, imageName) if len(self.eventDict)!=0: print "LOAD IMAGE", self, self.eventDict def SetAlpha(self, alpha): wndMgr.SetDiffuseColor(self.hWnd, 1.0, 1.0, 1.0, alpha) def GetWidth(self): return wndMgr.GetWidth(self.hWnd) def GetHeight(self): return wndMgr.GetHeight(self.hWnd) def OnMouseOverIn(self): try: self.eventDict["MOUSE_OVER_IN"]() except KeyError: pass def OnMouseOverOut(self): try: self.eventDict["MOUSE_OVER_OUT"]() except KeyError: pass def SAFE_SetStringEvent(self, event, func): self.eventDict[event]=__mem_func__(func) def SetEvent(self, func, *args) : result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = func self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0] def OnMouseLeftButtonUp(self) : if self.eventFunc["mouse_click"] : apply(self.eventFunc["mouse_click"], self.eventArgs["mouse_click"]) def OnMouseOverIn(self) : if self.eventFunc["mouse_over_in"] : apply(self.eventFunc["mouse_over_in"], self.eventArgs["mouse_over_in"]) else: try: self.eventDict["MOUSE_OVER_IN"]() except KeyError: pass def OnMouseOverOut(self) : if self.eventFunc["mouse_over_out"] : apply(self.eventFunc["mouse_over_out"], self.eventArgs["mouse_over_out"]) else : try: self.eventDict["MOUSE_OVER_OUT"]() except KeyError: pass  
  4. Hunger's post in [Request]-New Character Select was marked as the answer   
    At least give it a try
  5. Hunger's post in Problem With Language book was marked as the answer   
    Apparently you need to select the job first (skills) and then  you can use them.
    https://metin2.download/picture/j4R11OVIG5DCmC85Gd7tYWejV8pP7T4X/.gif
  6. Hunger's post in [BUG] Skills with magic damage was marked as the answer   
    Problem solved. It was my fault it's about the elemental bonus for monsters posted in my old topic here:
    I have canceled the entire case and it should be only 
    // iDam = iDam * (100 - pkChrVictim->GetPoint(POINT_RESIST_BOW)) / 100; If somebody will have the same problem in future.
  7. Hunger's post in Apply elemental on monsters was marked as the answer   
    I have solved the problem myself, in case somebody is looking for the same thing, the resistances are applied in length.h in common folder.
    Basically the official servers absolutely cancelled the defence against arrows for monsters and they replaced them with the elemental bonuses so:
    You have them in length.h like this :
    enum { SKILL_ATTR_TYPE_NORMAL = 1, SKILL_ATTR_TYPE_MELEE, SKILL_ATTR_TYPE_RANGE, SKILL_ATTR_TYPE_MAGIC /* SKILL_ATTR_TYPE_FIRE, SKILL_ATTR_TYPE_ICE, SKILL_ATTR_TYPE_ELEC, SKILL_ATTR_TYPE_DARK, */ }; And you need to comment RANGE which is the defence against arrows required by archers and enable the elemental which are commented.
    enum { SKILL_ATTR_TYPE_NORMAL = 1, SKILL_ATTR_TYPE_MELEE, /* SKILL_ATTR_TYPE_RANGE, */ SKILL_ATTR_TYPE_MAGIC, SKILL_ATTR_TYPE_FIRE, SKILL_ATTR_TYPE_ICE, SKILL_ATTR_TYPE_ELEC, SKILL_ATTR_TYPE_DARK, }; Please mind the comma after MAGIC.
     
    In char skill find the case below:
    case SKILL_ATTR_TYPE_RANGE: dt = DAMAGE_TYPE_RANGE; iDam = iDam * (100 - pkChrVictim->GetPoint(POINT_RESIST_BOW)) / 100; break; And comment :
    iDam = iDam * (100 - pkChrVictim->GetPoint(POINT_RESIST_BOW)) / 100; How the case should look like after:
    case SKILL_ATTR_TYPE_RANGE: dt = DAMAGE_TYPE_RANGE; // 으아아아악 // 예전에 적용안했던 버그가 있어서 방어력 계산을 다시하면 유저가 난리남 //iDam -= pkChrVictim->GetPoint(POINT_DEF_GRADE); //iDam = iDam * (100 - pkChrVictim->GetPoint(POINT_RESIST_BOW)) / 100; break; Regards, Cara
  8. Hunger's post in Hello again :D was marked as the answer   
    I have found the solution by myself.
    The correct form is
    pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "UIScript/LoadingWindow.py") But thanks anyway for your time and your replies !
×
×
  • 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.