Jump to content

HFWhite

Active+ Member
  • Posts

    204
  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by HFWhite

  1. thank you! this fixed my issue where if i add the function to click on name to PM in normal chat, the name of the player appears also above the character in game. [Hidden Content]
  2. Thank youuu!!! This works perfectly for me for p2p block!
  3. Hey there! Does anyone know how can I increase my Mall Safebox pages to 3 or 5? Now it's only 1 page.. but my normal safebox is set to 3 pages. I can;t find anything!
  4. Hey there! I've come across this bug where the female Ninja attacks with the bow much more faster than the male Ninja. I did not find the fix anywhere on this forum, so I decided to write the actual FIX for this issue. What's the cause of this BUG? The issue is with the duration of the animation file (attack.gr2), where the male Ninja's animation takes 1.5 seconds, while the female Ninja's takes 1 second. Ymir basically did not verify the duration of the anim for both femal and male So, let's fix this bug once and for all. I found the corrected attack.gr2 animation file, with both genders now having the attack set to 1 second. By replacing the files in your client with the ones from the archive, you will resolve this issue. Before the FIX (gif): [Hidden Content] After the FIX (gif): [Hidden Content] Download:
  5. For me it's working fine without folder in mob proto.. No lag at all (see gifs above) and no other syncing problems. I even tested with /state, everything is updating as it should. But I tried with your way too. If I put in folder, the lag is back.. and oh boy it's noticeable. I made sure that the "npc_folder_name" is both in server and client. And even if it was a difference of (x+5,y+7) between clients, while mounting---when you attack the syncing happens again and it fixes that, just like in the bug with autoattack desync. (this one: [Hidden Content] )
  6. You see, I have a mount that is 3x faster than Manny, and the lag is barely noticeable. GIF: [Hidden Content] On Manny for example, the lag is non-existent: GIF: [Hidden Content]
  7. Don't need to do that.. Just delete everything from "folder" column (from all mounts) -- in mob_proto.txt -- and the lag will be gone.
  8. With these modifications, you will enable colors in notice board, like this: Image: Tutorial: Open uitip.py and add this to the start of the file: import re Now find class TipBoard(ui.Bar):, and replace it with this: class TipBoard(ui.Bar): SCROLL_WAIT_TIME = 3.0 TIP_DURATION = 5.0 STEP_HEIGHT = 17 def __init__(self): ui.Bar.__init__(self) self.AddFlag("not_pick") self.tipList = [] self.curPos = 0 self.dstPos = 0 self.nextScrollTime = 0 self.width = 370 self.SetPosition(0, 70) self.SetSize(370, 20) self.SetColor(grp.GenerateColor(0.0, 0.0, 0.0, 0.5)) self.SetWindowHorizontalAlignCenter() self.__CreateTextBar() def __del__(self): ui.Bar.__del__(self) def __CreateTextBar(self): x, y = self.GetGlobalPosition() self.textBar = TextBar(370, 300) self.textBar.SetParent(self) self.textBar.SetPosition(3, 5) self.textBar.SetClipRect(0, y, wndMgr.GetScreenWidth(), y+18) self.textBar.Show() def __CleanOldTip(self): leaveList = [] for tip in self.tipList: madeTime = tip[0] if app.GetTime() - madeTime > self.TIP_DURATION: pass else: leaveList.append(tip) self.tipList = leaveList if not leaveList: self.textBar.ClearBar() self.Hide() return self.__RefreshBoard() def __RefreshBoard(self): self.textBar.ClearBar() index = 0 for tip in self.tipList: text = tip[1] rgb = tip[2] if rgb != (0,0,0): self.textBar.SetTextColor(rgb[0],rgb[1],rgb[2]) self.textBar.TextOut(0, index*self.STEP_HEIGHT, text) self.textBar.SetTextColor(255,255,255) index += 1 def SetTip(self, text): if not app.IsVisibleNotice(): return rgb = (0,0,0) mat = re.search("\|cFF([a-zA-Z0-9]+)\|h", text) if mat and mat.group(1): hexd = mat.group(1) rgb = tuple(int(hexd[i:i+2], 16) for i in (0, 2, 4)) curTime = app.GetTime() self.tipList.append((curTime, text, rgb)) self.__RefreshBoard() self.nextScrollTime = app.GetTime() + 1.0 if not self.IsShow(): self.curPos = -self.STEP_HEIGHT self.dstPos = -self.STEP_HEIGHT self.textBar.SetPosition(3, 5 - self.curPos) self.Show() def OnUpdate(self): if not self.tipList: self.Hide() return if app.GetTime() > self.nextScrollTime: self.nextScrollTime = app.GetTime() + self.SCROLL_WAIT_TIME self.dstPos = self.curPos + self.STEP_HEIGHT if self.dstPos > self.curPos: self.curPos += 1 self.textBar.SetPosition(3, 5 - self.curPos) if self.curPos > len(self.tipList)*self.STEP_HEIGHT: self.curPos = -self.STEP_HEIGHT self.dstPos = -self.STEP_HEIGHT self.__CleanOldTip() Example of use: --- in quests: notice_all("|cFF29BFBF|hColored text Example#1") notice("|cFFFF0000|hColored text Example #2") --- ingame: "n |cFF29BFBF|h Hello World" That's all
  9. FIX: Update LastTalkTime when changing time in slowmode chat if (button) { ChatPacket(CHAT_TYPE_COMMAND, "chatslowmode %d", slowtime); if (slowtime > 0) ChatPacket(CHAT_TYPE_INFO, "Slow mode enabled."); if (slowtime < 0) ChatPacket(CHAT_TYPE_INFO, "Chat closed."); SetLastTalkTime(0); // Reset the last talk time when the slow mode is changed return false;
  10. can you do this for the other 3 classes? warrior, sura and shaman
  11. found this tutorial on another forum: How to remove [ENTER] from quests The function automatically searches for the last word, so as not to cut it, as the normal say function does. And he writes all the text filling the line as much as possible. function say2(msg) msg_size = string.len(msg) if msg_size > 59 then local i = 59 last_word = nil while last_word == nil and i > 0 do if string.sub(msg,i,i) == " " or string.sub(msg,i,i) == "." or string.sub(msg,i,i) == "," then last_word = i end i = i-1 end if i == 0 then last_word = 59 end say(string.sub(msg,0,last_word)) say2(string.sub(msg,last_word+1)) else say(msg) end end There you have the function that you must add in your questlib.lua, and add in quest_functions this line: say2 And it's as easy to use as this: #Ejemplo con texto del translate.lua say2(gameforge.rage_quest.text1) #Ejemplo texto normal say2("Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar")
  12. if (m_pkHorse) { if (rVictim.IsEnemy() || rVictim.IsPoly() || rVictim.GetActorType() == TYPE_NPC) { return FALSE; } else if (!IsMoving()) { return TRUE; } }
  13. I want to add 3 pages to the itemshop warehouse, but I don't understand from where. I've configured the account table to have 3 pages in Navicat, I've set the BYTE bSize to 3 in source: - in the normal Safebox I have 3 pages... but in the ItemShop Safebox, the pages don't even show up. It's just an inventory with 45 slots and that's it. I tend to believe that the python part for these buttons is missing in client, so if anyone has 3 buttons in the itemshop warehouse and wants to let me look through their uisafebox.py, I would be indebted. I want 3 pages like in the normal warehouse: [Hidden Content]
  14. it causes bugs with Switchbot System. You can't place items in switchbot from inventory.
  15. is this public anywhere? This is reallly helpful!
  16. === Map Filter for (__BL_PARTY_POSITION__) === Preview: [Hidden Content] >> PythonSystem.h add: ATLAS_FILTER_PARTY_MEMBER_MAP = (1 << 5), >> PythonMiniMap.cpp find: if (pkInst && pkInst->IsPartyMember()) replace with: if (CPythonSystem::Instance().CanRenderAtlasInstance(CPythonSystem::EAtlasFilter::ATLAS_FILTER_PARTY_MEMBER_MAP) && pkInst && pkInst->IsPartyMember()) >> uigamebutton.py add: self.atlasFilterButtonList.append(GetObject("atlas_filter_party_member_map")) and add a button in >> gameoptiondialog.py: atlas_filter_party_member_map === Map Filter for Offline Shop, Metin Stones & BOSS === Preview: [Hidden Content] >> PythonSystem.h add: MINIMAP_FILTER_OFFLINESHOP = (1 << 7), MINIMAP_FILTER_STONE = (1 << 8), MINIMAP_FILTER_BOSS = (1 << 9), >> PythonMiniMap.cpp replace while (aIterator != m_BossPositionVector.end()) with: while (CPythonSystem::Instance().CanRenderMinimapInstance(CPythonSystem::EMinimapFilter::MINIMAP_FILTER_BOSS) && aIterator != m_BossPositionVector.end()) replace while (aIterator != m_MetinPositionVector.end()) with: while (CPythonSystem::Instance().CanRenderMinimapInstance(CPythonSystem::EMinimapFilter::MINIMAP_FILTER_STONE) && aIterator != m_MetinPositionVector.end()) replace while (aIterator != m_ShopPositionVector.end()) with: while (CPythonSystem::Instance().CanRenderMinimapInstance(CPythonSystem::EMinimapFilter::MINIMAP_FILTER_OFFLINESHOP) && aIterator != m_ShopPositionVector.end()) >> do the python part then. (uigameoption + gameoptiondialog.py)
  17. forgot to add: I will come back with edit with those functions
  18. Tomorrow I will add functions for: Party Map Track (Atlas) +Offline Shops (Minimap) + Boss & Metins (Minimap)
  19. But maybe you don't want to do certain quests on that specific day.. eventually you'll do it.. so that is not a solution.
×
×
  • 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.