Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Nirray last won the day on February 3 2020

Nirray had the most liked content!

Community Reputation

73 Neutral


About Nirray

  • Rank


  • Gender
  • Location

Recent Profile Visitors

1368 profile views
  1. 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
  2. https://i.gyazo.com/a5ea259ef14d11796369e13a97476b64.mp4 https://i.gyazo.com/fda7647efc9b3c4416383f9dd55cb0f9.mp4 After 2 min: ?
  3. 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 https://i.gyazo.com/c6144a979629a55fc2808af386c229dd.mp4 I'm not a big fan of adding new solutions when you can use already implemented ones ?
  4. https://i.gyazo.com/6326a24ff9468e9522ab347997a665b6.mp4 ?????
  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://i.gyazo.com/2a862ec891b089
  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)) https://docs.python.org/2/reference/datamodel.html 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 ::
  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. https://i.gyazo.com/e0427ac50fd0e5449277086bca20919e.mp4 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
  • 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.