Jump to content

Nirray

Inactive Member
  • Posts

    94
  • Joined

  • Last visited

  • Days Won

    4
  • Feedback

    0%

Everything posted by Nirray

  1. A slightly different idea than mine that I wrote a long time ago, but the effect is the same Remember to use along with this: [Hidden Content] Otherwise, sky clouds clipping will be visible when logging in aaaand very annoying To fix that, you need to do same thing what "Item Shop" window does - disable mouse scroll when window is opened.
  2. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) About: Whenever I was playing on any server that had far too many drop items from monsters — I wondered — how am I going to find myself in this pile of scrap? You click on one item and pick up a completely different one, thus littering your inventory. With my solution, your players don't have to worry about it anymore. As a player: Pros: You don't have to worry about items gained by other players; The alphabetical list will allow you to easily find the acquired item; The dynamic list cleans and completes itself on a regular basis; You can still pick up items directly from the floor; You can show and hide the window whenever you want to use it; If the item isn't yours then your player name in ownership color will be red instead of yellow; You do not have to worry that your list will be flooded with items that have been lying on the ground for a long time — only the items you have acquired will go to the list; You can double-click on the name of the item and the character will automatically move towards it with the intention of picking up; You can refresh the list by yourself; You can select an item from the list and pick it up from the ground with one button. Min: You still need to be close to the item to pick it up — but it's probably fair; Sometime you must click twice on item name because of too far distance (by default). Github repository: [Hidden Content] Compatibility: I am curious about your opinions Have a nice day Author: @Nirray (Back to the past)
  3. https://metin2.download/picture/Wr8vEOP50R2aAi5i01YBur2G5A3tp6or/.gif https://metin2.download/picture/BtVq45ghBxWL09JT2uTIqlxE3QtSGEQw/.gif After 2 min: ?
  4. There is an easier way than what you suggested ? Just pick random number from range 0 to GOLD_MAX (higher number should be more "user-friendly") and if price==your_number: return SHOP_SUBHEADER_GC_NOT_ENOUGH_MONEY; The rest is just python part with interface (uishop) and so on [Hidden Content] I'm not a big fan of adding new solutions when you can use already implemented ones ?
  5. This bug is practically caused by clientside Rewrite this: void CRaceMotionData::SetName(UINT eName) In RaceMotionData.cpp and bool CActorInstance::__CanPushDestActor(CActorInstance& rkActorDst) + void CActorInstance::__ProcessDataAttackSuccess(const NRaceData::TAttackData & c_rAttackData, CActorInstance & rVictim, const D3DXVECTOR3 & c_rv3Position, UINT uiSkill, BOOL isSendPacket) In ActorInstanceBattle.cpp Especially for those animations that are used in flying after external force and after damage-hit. https://metin2.download/picture/2RgNs1N831t4nv36JT1SOA8B0R2ViSeG/.gif After fix you are able to set free even from this: https://metin2.download/picture/hM8f8qTnimgg4n7yA1DRA5nN44zYCIxv/.gif
  6. UserInterface\PythonApplication.cpp Search double g_specularSpd=0.007f; Change to: double g_specularSpd=0.00017f;
  7. local c_Equipment_Body = 0; local c_Equipment_Head = 1; local c_Equipment_Shoes = 2; local c_Equipment_Wrist = 3; local c_Equipment_Weapon = 4; local c_Equipment_Neck = 5; local c_Equipment_Ear = 6; local c_Equipment_Unique1 = 7; local c_Equipment_Unique2 = 8; local c_Equipment_Arrow = 9; local c_Equipment_Shield = 10; example: if (pc.get_wear(c_Equipment_Wrist) == 14009) then -- Wooden Bracelet +9
  8. self.RetryButton.SetEvent(ui.__mem_func__(self.RetryButton)) self.RecvButton.SetEvent(ui.__mem_func__(self.RecvButton)) [Hidden Content] Change function names to something like def OnClickRetryButton and def OnClickRecvButton, they cannot be the same like button names For example: self.serverSelectButton.SetEvent(ui.__mem_func__(self.serverSelectButton)) Instead of: self.serverSelectButton.SetEvent(ui.__mem_func__(self.__OnClickSelectServerButton)) Is going to throw same AttributeError which is stated as: 0323 01:00:01004 :: File "introLogin.py", line 714, in __LoadScript 0323 01:00:01005 :: File "ui.py", line 82, in __init__ 0323 01:00:01005 :: AttributeError 0323 01:00:01005 :: : 0323 01:00:01005 :: 'Button' object has no attribute 'im_func' 0323 01:00:01005 ::
  9. Change BasePosition then to something like (clientside and serverside): startovni_mapa 409600 409600 2 3 aronix_smallpurpletown 716800 1024000 3 3 aronix_smallgreentown 512000 716800 2 3 (I'm not sure if they're not colliding with each other, you need to check it by yourself)
  10. [Hidden Content] Remember, your map location in serverfiles and clientside must be (x*1024 + "00" && y*1024+"00") %2 == 0 7355/1024 ~= 7,1826171875 1125/1024 ~=1,0986328125 Change your atlasinfo.txt, generate new server_attr with blocked cords x=0, y=0. BLOCK on those coordinates will always teleport player to coordinates in town.txt map folder file after player warp.
  11. Set "BLOCK" attr (x: 0 and y:0) in server_attr (world editor)
  12. PythonItemModule.cpp PyObject * itemGetItemNameByVnum(PyObject * poSelf, PyObject * poArgs) { int iIndex; if (!PyTuple_GetInteger(poArgs, 0, &iIndex)) return Py_BadArgument(); if (!CItemManager::Instance().SelectItemData(iIndex)) { TraceError("Cannot find item by %d", iIndex); return Py_BuildNone(); // or // CItemManager::Instance().SelectItemData(60001); } CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer(); if (!pItemData) return Py_BuildException("no selected item data"); return Py_BuildValue("s", pItemData->GetName()); } and { "GetItemNameByVnum", itemGetItemNameByVnum, METH_VARARGS },
  13. root/uitooltip.py Find: def __AppendAccessoryMetinSlotInfo(self, metinSlot, mtrlVnum) Replace whole function: Then search: def __AppendMetinSlotInfo_AppendMetinSocketData(self, index, metinSlotData, custumAffectString="", custumAffectString2="", custumAffectString3="",leftTime=0): And also replace: Should work now ?
  14. Hello DEVs I understand that most people use cloudless skyboxes in these times, but there is a graphic glitch (usually when the player teleports/dragging a game window) with "jumping" clouds. [Preview with glitch - slow cloud speed] This is very annoying with fast moving clouds: [Preview with glitch - fast cloud speed] and warping: [Preview with glitch - warping] Fix: Client source: \EterLib\SkyBox.cpp void CSkyBox::RenderCloud() replace whole: DWORD dwCurTime = CTimer::Instance().GetCurrentMillisecond(); m_fCloudPositionU += m_fCloudScrollSpeedU * (float)( dwCurTime - m_dwlastTime ) * 0.001f; if (m_fCloudPositionU >= 1.0f) m_fCloudPositionU = 0.0f; m_fCloudPositionV += m_fCloudScrollSpeedV * (float)( dwCurTime - m_dwlastTime ) * 0.001f; if (m_fCloudPositionV >= 1.0f) m_fCloudPositionV = 0.0f; m_dwlastTime = dwCurTime; with: if (m_fCloudPositionU >= 1.0f) m_fCloudPositionU = 0.0f; if (m_fCloudPositionV >= 1.0f) m_fCloudPositionV = 0.0f; m_fCloudPositionU += m_fCloudScrollSpeedU * 0.030f; m_fCloudPositionV += m_fCloudScrollSpeedV * 0.030f; like that: > * 0.030f is optimal I have no idea why they decided to use ms timer for scrolling clouds in the rendering function that already has own clock and frameskip settings (now it just scales with game fps counter). With fix (when dragging client window) [Preview without glitch - slow cloud speed] [Preview without glitch - fast cloud speed] Warping: [Preview without glitch - warp] Have a nice day
  15. ymir work\ui\minimap_image_filter.dds Change it to square, also: \UserInterface\PythonMiniMap.cpp change cosf and sinf values to your variables
  16. [Hidden Content] password for root are the same 2009-09-18
  17. InstanceBase.cpp in client source float CInstanceBase::__GetBowRange() { float fRange = 2500.0f - 100.0f; if (__IsMainInstance()) { IAbstractPlayer& rPlayer=IAbstractPlayer::GetSingleton(); fRange += float(rPlayer.GetStatus(POINT_BOW_DISTANCE)); } return fRange; } no idea right now where it is in server side source
  18. in file uifastequip .py change: import item to: import workitem as item and import player to: import workplayer as player
  19. import worknet as net import net Remove one of them, I have no idea what kind of client you are using. I guess remove import net because of "No module named net"
  20. Remove all spaces from those two lines and place TWO TABs (line 401) and ONE TAB (line 491).
×
×
  • 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.