Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

20 Neutral

About ElRenardo

  • Rank


  • Gender
    Not Telling

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. The blurring texture thing is happening to everyone. It's more noticeable on far distance texture when you have a far perspective angle. It occurs when the DirectX device is reseted. It occurs when opening/closing an ingame web browser. You can search for ".Reset(" case sensitive in EterLib and UserInterface to find out where it's used. Commenting it in EnableWebBrowserMode and DisableWebBrowserMode will totally freeze the game while you have a webpage opened, it will unfreeze when you close the webpage and you won't have those blurred textures and this aliasi
  2. Hi, To check if a channel is running, you could eventually look at the set of the connected p2p peers ("m_set_pkPeers" defined in "p2p.h"). Every channel are sending some data to each others this way. If the channel is not connected, it won't be listed. I found out that there is a function in desc_manager.cpp that is looking for an existing connection regarding the P2P port of it. "bool DESC_MANAGER::IsP2PDescExist(const char * szHost, WORD wPort)" You can create a new one and use the "GetP2PChannel()" function instead of the "GetP2PPor
  3. Hey, You are right TMP4, there is a problem at the load of guild land npc. The DB core send all the coordinates of the npc to the channels and there's no check if the map index of the npc is in the core receiving the datas. In building.cpp, you can modify the LoadObject function: bool CManager::LoadObject(TObject * pTable, bool isBoot) { if (!map_allow_find(pTable->lMapIndex)) return false; [...] Good luck in your testing !
  4. Hey Tatsumaru, Thanks for the great work you do correcting graphical aspects of the game. I don't know if you already saw the female warrior holding a fishing rod. You certainly have a lot of work to do, but there's always more ! Thanks again !
  5. You misunderstood me, I didn't wanted to criticize your work in any way. I just wanted to achieve this without losing the functionality that search the file in the file directory if not found in the packs. But as you said, it should only be used in test env. Why couldn't we talk about other options or improving options ? As you said before: I don't understand your reaction. Maybe you had a hard day.
  6. So, for better comprehension I changed that: bool CEterPackManager::Get(CMappedFile & rMappedFile, const char * c_szFileName, LPCVOID * pData) { //TimeChecker timeChecker(c_szFileName); //Logf(1, "Load %s\n", c_szFileName); if (m_iSearchMode == SEARCH_PACK_FIRST || c_szFileName[1] == ':') { if (GetFromPack(rMappedFile, c_szFileName, pData)) return true; return GetFromFile(rMappedFile, c_szFileName, pData); } if (GetFromFile(rMappedFile, c_szFileName, pData)) return true; return GetFromPack(rMappedFile, c_szFileName, pData); } [...] bool CEterPackManager::is
  7. Haha, you're not a noob, that was not what I was saying. Here's what I may suggest you to not takeof some functionalities of the eterpack: In the function: bool CEterPackManager::Get(CMappedFile & rMappedFile, const char * c_szFileName, LPCVOID * pData) Adding a condition to check if the filename redirect in a drive in the condition that check if we search from client file first instead of pack file as following: if (m_iSearchMode == SEARCH_FILE_FIRST && c_szFileName[1] != ':') { if (GetFromFile(rMappedFile, c_szFileName,
  8. Hey, Nice to see that this problem is being treated ! I'm asking myself why you're searching for "ymir" in the file name and not just compare the second letter with ":" Then, your function: bool CEterPackManager::isExist(const char * c_szFileName) { if (m_iSearchMode == SEARCH_PACK_FIRST) { if (isExistInPack(c_szFileName)) return true; } return isExistInPack(c_szFileName); } Can be shorten as: bool CEterPackManager::isExist(const char * c_szFileName) { return isExistInPack(c_szFileName); } Have you done some testings ye
  9. I've been looking for this too some time ago and haven't found anything yet. First of all, I don't think those kind of textures are handmade but generated by 3ds max. Then maybe you don't even have to link the texture to the model, maybe it's already done when you tell 3ds max to create this texture for the model.
  10. Oh yeah, ok, I though as the right side of the gif is cut that the image was still rendered outside the right border. Of course, the edge of a board, even if it's transparent will be inside the rect of the board. As Masodikbela said, you should create an empty window at the pos and size you need and use it as a layer to render in !
  11. Hey ! Nice, you did well. You seems to have forgotten to store the width of the parent window in the rect you want to render in. Remember, you have to know the coordinate of the parent window so that the rect is well placed on the screen. Is it only the image that is still rendered outside the right or font too ? Is it working on the left side ?
  12. Thanks, can be really usefull for buildings ! :)
  13. Nice progress. You should take a look at how the rect rendering works in ExpandedImageBox.
  14. You need to create a delimiter to only render inside of it. I think there's many ways to do it, but here's how I did: I created a new flag that I apply to a window. Once this flag is applied, I'm processing all the children windows with the delimiter coordinates to render only what's inside of it ant cut what's outside. You don't really need this compatibility on every windows types as you won't use them all. What's most important is ExpendedImageBox or ImageBox and TextLine. The easiest windows types to make compatible are Line, Bar and Box you shou
  15. There you go: Replace the whole function "void CGraphicTextInstance::Render(RECT * pClipRect)" in "EterLib/GrpTextInstance.cpp" with: void CGraphicTextInstance::Render(RECT * pClipRect) { if (!m_isUpdate) return; CGraphicText* pkText=m_roText.GetPointer(); if (!pkText) return; CGraphicFontTexture* pFontTexture = pkText->GetFontTexturePointer(); if (!pFontTexture) return; float fStanX = m_v3Position.x; float fStanY = m_v3Position.y + 1.0f; UINT defCodePage = GetDefaultCodePage(); if (defCodePage == CP_ARABIC) { switch (m_hAlign) { case HORIZONTAL_
  • 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.